Questions tagged «qgis»

QGIS是根据GNU通用公共许可证许可的跨平台GIS应用程序。

1
如何在QGIS中使用Python脚本将画布数据填充到作曲家地图并将构图导出为png
我想在QGIS中创建一个Python脚本,该脚本将获取一些数据(在我的示例中为shp + tif),使用模板模板Composer(来自文件),并将创建的合成导出到png图像。 几乎没有编程经验(除了基本的Python知识),我在Google上搜索了一些代码片段,并试图使它们协同工作。我从以前回答的一个问题中提取了Map Composer代码: 使用Python将Print / Map QGIS composer视图保存为PNG / PDF(不更改可见布局中的任何内容)吗? 我设法加载了数据和Map Composer模板(已定义了一个地图和图例项目),但我的导出png图像具有一个空的地图框架(该框架内没有矢量/栅格数据)。图例项目看起来很好。 使此代码有效吗? from qgis.core import * import qgis.utils from PyQt4 import QtCore, QtGui from qgis import core, gui # ADD VECTOR LAYER data_folder = "D:/QGIS/dane/" granica = "granica_SZ VI_UTM34.shp" granica_name = granica[0:-4] granica = data_folder + granica …

1
QGIS中的SAGA逆距离加权-如何设置最小点数?
我正在分析QGIS版本2.8.2中的postGIS点数据集,总共约有20万个特征。为了计算加权平均值,我使用了逆距离加权插值技术。但是,我担心输出中看到的“高”值是少数异常值的结果,而不是任何有意义的空间模式的基础。 SAGA IDW插件(或其他IDW工具)中是否可以设置栅格表面以计算加权平均值所需的最小点数,就像它考虑最大点数一样?

1
计算QGIS中两个单独图层的要素之间的空间相关性
我试图确定一个地区大量现役军人的存在是否与高/低暴力犯罪水平在空间上相关。也就是说,与不靠近军事基地的地区相比,围绕大型军事基地的地区平均而言,暴力程度是否更高? 我正在使用以下两个数据集: (1)美国大陆军事基地的点数据集及其相应的部队等级: (2)一组有关城镇的暴力犯罪率的全国性数据: 我觉得我正在寻找某种基于重力的模型,其中“质量”函数给出每个基地的部队水平。因此,大部队的存在将对更大的区域产生影响,并且在质心附近(即GIS层中的点位置)产生更大的影响。 我认为从概念上讲,它看起来像这样: 在此图中,X,Y,Z代表军事基地。a,b,c,d分别代表城市(每个城市的属性表中都有一个暴力发生率字段)。 基部周围的梯度表示影响范围,该范围随距基体质心的距离呈指数减小。更大的部队存在等于更大的影响半径(具有一定的最大阈值距离),并且相对于较小的基地附近的区域,也意味着在中心附近的影响更大。 每个城市将基于其周围所有影响力半径来自其周围所有基地的所有“力”向量的大小之和而获得得分。因此,例如,在我的图表中,城市a的得分为0,因为它位于在任何基地的半径之外。城市b仅受基数X影响。城市C仅会受到基准Z的影响,并且其得分将低于基准b,因为X的基准比Z大得多。最后,城市d位于两个基准X和Y的半径内,它将基于两个基地的影响力总和获得得分。然后,我将查看城市的较高分数与较高的暴力发生率之间是否存在相关性。 我一直在研究各种基于重力的模型(例如Huff模型等),但一直无法找到QGIS / Python所能提供的信息,因此我不确定如何实现我上面描述的内容……有人建议吗?为了这?你们中的任何人以前曾在其他领域进行过此类分析吗? 因此,TLDR为: 对于此类问题,我可以使用哪些统计技术? 是否有QGIS内置的工具(或作为插件提供)可以做到这一点? 如果QGIS中没有类似的东西,是否有任何Python库可以执行这种分析?


2
运行python脚本后如何退出QGIS?
我想通过运行python脚本qgis --code myscript.py,然后立即退出。我正在使用iface.actionExit().trigger(),当我从python控制台运行QGIS时,它会杀死QGIS,但当放入传递给的脚本时,它不会--code。 立即退出的正确方法是什么?我正在运行QGIS 2.0.1 更新:我也试过了sys.exit()。QGIS将其捕获并弹出以下窗口: An error occured during execution of following code: execfile('myscript.py') Traceback (most recent call last): File "", line 1, in File "myscript.py", line 14, in sys.exit() SystemExit 更新:os.kill(os.getpid(), 9)可以,但这是一个肮脏的hack,我正在寻找更好的东西。
10 qgis  python  pyqgis 

2
如何创建动态领导线?
除了QGIS“移动标签”工具之外,我还尝试使用PostGIS视图创建动态引线。 CREATE VIEW leader_line AS SELECT gid, ST_MakeLine(geom, ST_SetSRID(ST_MakePoint(xcord_label, ycord_label), SRID))::geometry(linestring, SRID) AS geom FROM point WHERE xcord_label IS NOT NULL; 这适用于所有标签,WHERE ST_X(geom) < xcord_label但会为标签创建错误的引出线WHERE ST_X(geom) > xcord_label。 有谁知道如何正确放置标签的引线WHERE ST_X(geom) > xcord_label?有什么方法可以引用标签的xmax坐标吗?


2
启用即时CRS转换时,QGIS区域计算有所不同
当我打开QGIS,添加图层并通过字段计算器计算shapefile的面积时,我得到的面积与打开QGIS并选中“启用CRS动态转换”并计算面积的面积不同。尽管要确保项目和图层具有相同的坐标系(相同的EPSG编号),但这仍然可行。我究竟做错了什么? 我有一个shapefile,其中包含使用ArcGIS进行面积计算的信息(不是我自己,数据是交给我的,我不知道使用ArcGIS计算面积的CRS)。形状文件层CRS是EPSG:21781(瑞士)。在QGIS中,如果我不更改OTF设置并将项目CRS保留为EPSG:4326(WGS84),则得到的值与ArcGIS区域值相同。但是,如果在将图层添加到EPSG之前更改了OTF:21781,则会得到不同的面积值。据我了解,这表明ArcGIS Area是使用CRS EPSG:4326计算的。 第一个工作流程: 打开QGIS 项目CRS:EPSG 4326 添加层 项目CRS自动适应,现在为EPSG 21781 使用字段计算器计算$ area 第二个工作流程: 打开QGIS 项目CRS:EPSG 4326 打开OTF,将项目CRS设置为EPSG 21781 添加层 使用字段计算器计算$ area 第一和第二个工作流程的步骤5不要产生相同的区域。

1
相交线以使用带有QGIS的Python进行交叉?
我有一组代表公交线路的线路。一些线重叠并且走相同的路。 我能够提取节点。 但是我对仅提取这样的交叉点感兴趣: 我怎样才能做到这一点?我正在寻找QGIS或Python的方法。 我尝试了GDAL Python 的交集方法,但这基本上只返回了顶点。 如果有两条线交叉,则QGIS的“ 线交叉点”方法会返回交叉点。但是,如果两条公交线路在同一条道路上走得很远,这并不能给我他们指向合并的位置。

2
如何数字化具有正交边缘的建筑占地面积?
使用QGIS,我试图数字化旧的栅格地图,并且由于我最终希望将这些2d图层加载到草图中以转换成3D模型,因此我需要将所有东西都摆成正方形。 这是我正在使用的地图的示例: 您可以看到的绿线是我已经使用线的几何形状数字化的铁路轨道的矢量层,其余的是我正确地以地理参考的基于栅格的层,并且是每层背后的背景。 我的目标是捕获建筑物的占地面积,以我的示例为例,并使用普通的捕获多边形工具,如下所示: 尽管这足以生成2D矢量地图(例如:显示为Web地图图块或在QGis中使用),但对于将其导出为KML,然后导入Sketch-up并没有好处,因为所有内容都不都是100%正方形的,更困难的是要使事情100%平方。 从QGis中的工具可以看到,我已经安装了数字化矩形,并安装了cad-tools插件,但这对我需要做的事情没有好处,例如,如果我们使用正交多边形捕获工具: 我可以从需要的角度开始绘制第一条线,但是一旦按CTRL键使内容与第一条线成直角和/或直角,一切都会出错,因为插件没有考虑到建筑物的旋转角度,这意味着通过专用的北/东水平/垂直方向,任何附加点都是正确的,并且与那些轴成90度。 如果我要追查的建筑物在那些轴上,那么没问题,一切都很好,但是其中许多都不是,在综合大楼周围有各种角度(这是我正在数字化的大型工厂现场) 完美的工具类似于草图中的原点工具,您要做的是将原点放置在一个角上,然后拉伸彼此成90度角的X和Y,并在前面面,左面向下,您随后捕捉到的这些原点或从中衍生的任何参考线都将自动与其他直线成90度角,但需要根据需要将旋转因子考虑在内,如下图所示: 在不先使用QGis的情况下,当然可以在草图中捕获和数字化多边形,但是如果我这样做,我就不能对其进行地理参考,它们只会以0,0为中心生成标准世界坐标 在QGis中对它们进行数字化处理,以确保其在空间中的位置正确且符合OSGB36投影。 Sketch-up也不会遵循背景地图中的地理参考,当我尝试导入时,它会将左下角固定在0,0处,然后要求我对其进行适当缩放。 我发现将地理参考地图绘制成草图的唯一方法是使用Google地球工具中的捕获区域。但是,从SK版本8或更高版本开始,执行此操作只会导入基本的Google Earth Ariel摄影图像,而不会导入您可能已显示的任何自定义叠加层,这意味着,如果我加载了georef,则当我尝试捕获它时会被忽略。地理位置参考位置。 Sketch-up V7及更低版本不会忽略自定义图像,但是V7不再可供下载,即使您找到了副本,它也不会运行,因为auth服务器将不再对其密钥进行身份验证... :-( 终极问题 因此,本质上,我要问的是,有没有人知道QGis的插件,该插件为我提供了与草绘中相似的功能,如果没有,那么任何人都无法提出一种方法(或工作流程)以使我能够捕获建筑物足迹,同时保持边缘彼此正交,但不像当前工具那样被锁定在水平和垂直方向。 即使以某种方式提供一个可捕捉的网格(我至少可以将这些点与建筑物的角点对齐)也会有所改善。 如果没有,那么看来我将必须学习QGis插件api并编写自己的插件。
10 qgis  digitizing 

2
是否基于基于折线的缓冲区创建缓冲区,而没有折线端盖并且没有在QGIS中溶解创建的多边形?
我在QGIS中有一个投影线层(Shapefile)。我想为每个线段创建一个没有线端盖的多边形。生成的多边形不应分解为单个多边形。 我尝试了fTools缓冲工具。这样可以创建一个缓冲区而不会溶解,但无法定义线路端盖。 我也尝试过GRASS的v.buffer。这可以创建具有定义的行尾的缓冲区,但是我不能禁用此溶解。 是否有可能同时存在:未溶解且管线末端没有瓶盖?结果应该是每个线段都带有多边形(缓冲区)的Shapefile。
10 qgis  buffer  dissolve 

1
使用QGIS和pgRouting计算步行和骑行等时线图?
我相信我应该能够从指定点开始产生步行和骑自行车等时线,所以刚刚安装了QGIS。在使用ArcMap之前,我已经很容易做到这一点,但是,我确实在QGIS方面苦苦挣扎。 从我已阅读的内容中,我应该使用PGRouting和OSM2PGrouting映射(已安装)。我以前从未真正使用过SQL,并寻求做这些等时线的虚拟指南。我已经阅读了各种方法,其中最详细地介绍了我所苦苦挣扎的SQL。

2
QGIS横截面距离使用椭球?
我正在使用QGIS 1.8和2.6,无法使用任何“横截面轮廓”工具来提供椭圆(“适当”)距离。所有距离均使用太长/远的地理坐标。 例如,从卑诗省温哥华到基洛纳的直线距离约为270公里。我的横断面都说是420公里。 QGIS距离测量工具允许您使用椭球体(我将其设置为WGS 84)并给我271公里。 谁能阐明如何使用任何轮廓工具来给我“适当的”距离?

2
QGIS中的核心功能会利用多线程吗?
阅读完在QGIS中启用多线程处理后?,我想知道QGIS 2.6在运行各种过程时是否将包括此功能。我在网上检查了一下,发现QGIS 2.4引入了多线程渲染(我认为它在2.6中将再次可用)。现在,可以非常快速地重绘地图,尤其是在处理大型数据集时。 我读到将多线程包含到核心功能中是相当困难的,建议用户操纵Python代码以实现此功能,例如在PyQGIS中的并行GIS操作中?。 我还检查了功能请求,但Tim Sutton已将其关闭了9个月,最新评论为: “我要结束这一点-Martin Dobias在分支机构中有一个实现,它将在QGIS 2.2之后合并。” QGIS 2.6中的某些功能是否会利用多线程(或者将再次专注于呈现),如果没有,在QGIS 3.0中会有所改变吗?

2
将QGIS的多层保存到SpatiaLite数据库?
每次我将QGIS中的一个图层保存为一个空间对象时,它都会坚持创建一个新的数据库(如果您选择一个现有的数据库,则会询问您是取消还是替换)。 我想将项目的所有层打包到单个spacespaceite db中进行分发。 我认为我可以使用本机的sqlite工具来组合单个文件中的图层,但是不必这样做会很不错。
10 qgis  spatialite 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.