Questions tagged «qgis-processing»

空间数据处理框架,为QGIS带来了高级分析功能。

4
沿着PyQGIS生成相等大小的多边形?
我想沿着一条线创建多边形,以在下一步中将它们用于AtlasCreator。 ArcMap有一个称为“ 带状地图索引要素”的工具。 使用此工具,我可以选择多边形的高度和宽度(例如8km x 4km),并自动沿线生成/旋转它们。 每个多边形生成的属性之一是随后需要在Atlas Generator中旋转我的向北箭头的旋转角度。 有谁知道如何在QGIS中/使用pyQGIS解决此任务?也可以在自定义插件中使用的Grass或SAGA算法或prosssings-toolbox-model也很好;)Edit1:我不仅需要打印范围,而且还需要多边形本身,因为我想用所有多边形/范围作为某种总览图。 Edit2:我提供了一个赏金,因为我仍在寻找一种可以在QGIS-Plugin中使用的PyQGIS解决方案,而无需在QGIS之外安装软件(没有像PostGIS / Oracle这样的RDBMS)

8
QGIS矢量菜单中缺少处理工具?
我在QGIS 2.16的“向量”菜单中缺少所有常用的处理工具(例如,向量叠加,分析等)。它们确实出现在处理工具箱中,但“矢量”菜单中没有它们的迹象。有人遇到过这个问题吗?

5
使用QGIS识别矢量点数据中的聚类吗?
我有一个农村宽带数据点(有多快等)的矢量数据集,我想探讨是否存在具有相似特征的点簇,并绘制包含它们的多边形。 例如,在一个分布在景观上的单个PostGIS数据集中,我可能有45,000个点。我想确定彼此位于x公里以内且速度低于y kbps的群集,并为每个合格群集生成凸包。 例如,在QGIS中是否有一种简单的方法?

1
如何使用gdal_proximity计算到要素的距离?
我正在使用gdal_proximity查找距美国(下48个州)最近的主要河流的距离。我已经将NHD +网络流线投影到Conus Albers(epsg:5070),选择了河流顺序> 5的河流,并进行了栅格化处理,燃烧的河流为255,没有河流为0。这很好,但是现在我需要查找距离到最近的河流(50公里以内)。输入文件在大陆范围内的分辨率为30m,因此非常大,但转换应使用简单的gdal_proximity命令: gdal_proximity.bat -values 255 -distunits GEO -maxdist 50000 -nodata -999 infile.tif outfile.tif -co COMPRESS=DEFLATE -co BIGTIFF=YES -co TILED=YES 这似乎几乎可以正常工作,但是在输出中产生了一个奇怪的几何图案(参见图片)。输出中存在的数据已正确处理。谁能说出为什么缺少这么多输出? 编辑:要测试这是否由任何可选参数引起,我在此配置中再次运行了gdal_proximity: gdal_proximity.bat H:\data\tmp\NHDplus_network_flowline_SO6plus.tif H:/data/tmp/NHDplus_network_flowline_SO6plus_proximity.tif -values 255 -maxdist 50000 -of GTiff 产生基本上相同的结果: 我唯一的想法是,它可能与栅格的大小有关(未压缩的〜100 gb。据我所知,BigTiff的大小没有限制,但gdal的大小可能存在限制有效分析?

3
使用QGIS中的交点工具忽略无效的输入功能?
在QGIS 2.18中,当我使用“矢量”>“地理处理工具”>“相交”工具时,我能够检查一个选项“忽略NULL几何[可选]”。 现在,我已经下载了QGIS 3.2,该选项不再存在。但是,当我尝试在正在处理的两层之间创建交集时,会收到一条消息,提示某处存在无效的几何图形,应该对其进行修复或“将处理设置更改为'忽略无效的输入要素' ' 选项。” 但是该选项不存在!或者,如果确实存在,我只是在任何地方都找不到。 有谁知道如何/在QGIS 3.2中更改此设置?

2
使用来自独立PyQGIS脚本的QGIS3处理算法(GUI外部)
我正在编写必须在QGIS GUI外部运行的脚本。我从qgis.core调用了一些API函数,但我想使用处理插件。 我可以使用sys.path.append()导入处理,但无法运行任何进程。此外,QgsApplication.processingRegistry()。algorithms()中缺少所有“本机”算法 那么有可能以这种方式运行处理吗?我想念什么? import os, sys from qgis.core import * QgsApplication.setPrefixPath('/usr', True) qgs = QgsApplication([], False) qgs.initQgis() sys.path.append('/usr/share/qgis/python/plugins') from processing.core.Processing import Processing Processing.initialize() import processing layer1 = QgsVectorLayer('data/ROUTE_PRIMAIRE.SHP') layer2 = QgsVectorLayer('data/ROUTE_SECONDAIRE.SHP') processing.run('qgis:union', layer1, layer2, 'test.shp') # returns nothing 我正在使用QGIS 3.0.1-Debian 9

3
运行OSGeo4w Shell脚本时qgis.core的导入错误
我一直很努力,与此相伴后,要运行脚本OSGeo4w壳牌,QGIS之外。但是我收到以下错误: ImportError:没有名为qgis.core的模块 我还阅读了以下帖子,并尝试导入各种模块,但无济于事: 如何在QGIS python控制台之外运行sextante算法? 如何从外部为QGIS运行简单的python脚本(例如Sublime Text)? 使用PyQGIS编写独立的Python脚本? 这是一个简单的脚本,它创建一个网格并将一个多边形shapefile剪切到其上。 注意:该脚本已经过测试,可以在QGIS中运行时成功运行。 ##Test=name import os import glob import sys sys.path.append("C:\Program Files\QGIS Brighton\lib;%OSGEO4W_ROOT:\=/%/apps/qgis;%OSGEO4W_ROOT%\apps\qgis\bin;%OSGEO4W_ROOT%\apps\grass\grass-6.4.3\lib;%PATH%") from PyQt4.QtCore import * from PyQt4.QtGui import * from qgis.core import * QgsApplication.setPrefixPath("C:\Program Files\QGIS Brighton\apps\qgis", True) QgsApplication.initQgis() from os.path import expanduser home = expanduser("~") # Folder path of the Results …

2
用Python访问`processing`吗?
我想从独立脚本访问QGIS之外的Python中的爆炸线功能。 我必须加载哪个模块才能使用它? 我该如何访问processing? from qgis.core import * layerInput = QgsVectorLayer('test.shp', 'test', 'ogr') processing.runalg('qgis:explodelines', layerInput, 'temp.shp')

1
为什么在独立的PyQGIS处理脚本中导入顺序很重要?
在运行独立的PyQGIS处理脚本时遇到了一个奇怪的问题。脚本中的导入顺序会影响其正常执行。 您可以通过打开Python控制台并输入以下脚本(我使用GNU / Linux,QGIS 2.6.1,处理插件v.2.2.0-2和Python 2.7.3)来重现该问题: # Prepare the environment import sys from qgis.core import QgsApplication from PyQt4.QtGui import QApplication app = QApplication([]) QgsApplication.setPrefixPath("/usr", True) QgsApplication.initQgis() # Prepare processing framework sys.path.append('/home/YOUR_USER/.qgis2/python/plugins') from processing.core.Processing import Processing Processing.initialize() print Processing.getAlgorithm("qgis:creategrid") # Exit applications QgsApplication.exitQgis() QApplication.exit() 您应该获得: ALGORITHM: Create grid HSPACING <ParameterNumber> VSPACING …

1
从GUI取消QGIS处理脚本的干净方法
我已经编写了一个QGIS处理脚本,可以进行最接近的设施分析。以完整的输入数据集(地址为20k,起点为100,目标点,OSM道路网为线束为13k)运行大约3个小时,因此使用了各种进度指示器,以使用户确信它是仍然有效(日志输出,进度条,剩余时间,橡皮筋指示最近处理过的设施的方式,请参见下面的屏幕截图): 现在,我想取消正在运行的脚本,据我所知,这只能[X]在处理脚本gui窗口的右上角完成。 但是这样做的话,脚本仍然按照蓝色橡皮筋,处理时间和进度条指示进行处理。 ...以及任务管理器中的系统资源: 但是,几分钟后(约14分钟),脚本将停止处理,并且系统不再消耗资源: 由于关闭窗口和停止处理之间的时间间隔对我来说似乎是不可预测的,因此我的问题是:这是取消QGIS处理脚本的推荐方法,还是有其他方法可以从gui中彻底取消此类脚本?

3
是否可以在QGIS处理算法中使用存储层?
我正在构建一个QGIS插件,该插件连接到局域网中的MySQL数据库,然后将其中一个表的子集添加到内存层中;该子集基于数据货币(仅对进行测量的每个位置进行最新观察)。此存储层已成功创建。 但是,然后我想运行一些地理处理算法,而在其中任何一个中使用内存层都遇到了麻烦。 self.stationuri = "point?crs=epsg:4326&field=id:integer&field={}:double&index=yes".format(self.cb_field.currentText()) self.vlayer = QgsVectorLayer(self.stationuri,"scratch","memory") if not self.vlayer.isValid(): raise Exception("Failed to create in-memory layer") self.vlayer.startEditing() for i,r in enumerate(result): # Result is row-by-row result of SQL query # Add features ... self.vlayer.commitChanges() self.vlayer.updateExtents() # Add layer to map QgsMapLayerRegistry.instance().addMapLayer(self.vlayer) # Layer is successfully added to map with …




1
r.mapcalc在QGIS中不提供输出
一段时间以来,我一直在尝试使用QGIS处理工具箱中的r.mapcalc。但是,该算法没有任何输出。我已经尝试了几个栅格图层和不同的表达式,但是该算法从不向“结果目录”输出任何内容。下面的图像显示了一个简单的算法设置示例。也许我错过了一些东西,但是我没有在网上找到任何类似的东西。

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.