地理信息系统

制图师,地理学家和GIS专业人员的问答

2
在QGIS 2.18.1中通过python合并矢量层
我目前正在使用以下代码将两个矢量层合并在一起: def append_layers(layer1, layer2, output): from processing.core.Processing import Processing Processing.initialize() import processing.tools processing.tools.general.runalg("qgis:mergevectorlayers", layer1, layer2, output) append_layers(layer1.shp, layer2.shp, output.shp) 这在QGIS 2.14中似乎可以正常工作,但是在2.18.1中失败,并显示以下消息: Error: Wrong number of parameters ALGORITHM: Merge vector layers 在2.14和2.18之间是否有变化?还是我只是缺少真正明显的东西?

2
反转多边形(从左到右的规则)
我有一个无法正确显示的geojson文件,并且我相信它与包含不遵循右手规则的多多边形的文件有关。哪些工具可以帮助我解决此问题? 我曾尝试使用QGIS进行导入和导出,并使用进行了格式之间的来回转换org2org,但这并没有带我任何地方。
9 geojson 


2
将文本从每个分隔符之前的字符串字段拆分为新字段
我试图从包含以点分隔的文本的字符串字段中提取文本数据,然后使用字段计算器将其放置在新字段中。 我正在使用此python函数(源自QGIS中/之前的如何提取文本?): from qgis.core import * from qgis.gui import * @qgsfunction(args='auto', group='Custom') def func(value1, feature, parent): return value1.split('.')[0] 这将返回第一个点之前的所有文本。现在,我想知道如何编写该函数以将每个分隔的文本行放在单独的字段中。 之前: 后:


1
在QGIS API中保存空间索引?
我正在尝试使用Qgis API为某些shapefile创建空间索引。我已按照内森·伍德罗(Nathan Woodrow)博客(https://nathanw.net/2013/01/04/using-a-qgis-spatial-index-to-speed-up-your-code/)中所述的步骤进行操作,并且效果很好: layer = QgsVectorLayer(path, name, 'ogr') idx = QgsSpatialIndex() all_features = layer.getFeatures() map(idx.insertFeature, all_features) 我的问题是我没有任何结果文件(.qix?.sbn?.sbx?) 如何保存该空间索引,以便Shapefile的未来用户可以从中受益?


3
更改Shapefile数据源编码?
我试图通过属性更改唯一的shapefile数据源编码,以及如何将shapefile从LATIN1编码为UTF-8?但这并没有改变。 如果不保存QGIS项目,是否不能直接更改shapefile数据源编码? 我也尝试了这段代码,它显示了更改编码,但是当我再次打开shapefile时,它显示了相同的旧系统编码: for layer in QgsMapLayerRegistry.instance().mapLayers().values(): layer.setProviderEncoding(u'UTF-8') layer.dataProvider().setEncoding(u'UTF-8') print layer.name(), layer.dataProvider().encoding() (我不是保存QGIS项目,而是直接访问和保存shapefile。保存项目并执行此任务后,它将正常工作)
9 qgis  pyqgis  encoding 

1
如何在独立的PyQGIS脚本中列出项目层?
我正在尝试加载现有的.qgs项目并获取其中的图层列表。我似乎可以打开该项目,但无法获取图层列表。对于基本的PyQGIS语法,我有些困惑,本食谱未涵盖此特定示例。 from qgis.core import * from PyQt4.QtCore import QFileInfo QgsApplication.setPrefixPath(r"C:\OSGeo4W\apps\qgis-ltr", True) qgs = QgsApplication([], False) qgs.initQgis() # Get the project instance project = QgsProject.instance() # Open the project project.read(QFileInfo( r'C:\path\to\project\project.qgs')) print project.fileName() # Get the layers in the project layers = QgsMapLayerRegistry.instance().mapLayers() print layers qgs.exitQgis() 当前,layers尽管该项目存在并且其中包含许多层,但是这仅返回一个空dict。
9 pyqgis 

2
将带有坐标列表的Excel文件添加到QGIS作为图层?
我之前在QGIS中添加了分隔的文本图层,并分别包含了经度和纬度。但是现在我有一个Excel文件,例如: station no parcel no parcel coordinates 63 215 X1,Y1; X2,Y2; X3,Y3; X4,Y4 因此,我将每个宗地的所有宗地坐标都放在一列中。我需要将此数据和地块添加到我的先前的shapefile中,没有桩号。但是我不知道如何将这个坐标导入QGIS。

2
使用GDAL创建具有特定纬度/经度位置的图像?
我有以下格式的纬度,经度和data_val的ASCII文件。 35-13.643782N, 080-57.190157W, 118.6 ... 我有一个GeoTiff图像文件,可以轻松查看它。 我想在ASCII文件中找到的特定纬度/经度位置上,在图像上放置“大头针”(可以是点/标记/星号,或者最简单的东西)。 到目前为止,这是我设法做到的: 我的源图像如下所示: Driver: GTiff/GeoTIFF Files: /tmp/Charlotte SEC 100.tif Size is 16867, 12358 Coordinate System is: PROJCS["Lambert Conformal Conic", GEOGCS["NAD83", DATUM["North_American_Datum_1983", SPHEROID["GRS 1980",6378137,298.2572221010042, AUTHORITY["EPSG","7019"]], AUTHORITY["EPSG","6269"]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433], AUTHORITY["EPSG","4269"]], PROJECTION["Lambert_Conformal_Conic_2SP"], PARAMETER["standard_parallel_1",38.66666666666666], PARAMETER["standard_parallel_2",33.33333333333334], PARAMETER["latitude_of_origin",34.11666666666667], PARAMETER["central_meridian",-78.75], PARAMETER["false_easting",0], PARAMETER["false_northing",0], UNIT["metre",1, AUTHORITY["EPSG","9001"]]] Origin = (-365041.822331817995291,240536.419747152860509) Pixel Size = (42.334586069440391,-42.334898968590878) …

1
在QGIS中附加ArcGIS图像服务器数据集?
我尝试使用'qgis.utils.iface.addRasterLayer()'在QGIS中添加数据集。但这会引发此错误。 无效的层:GDAL提供者无法打开GDAL数据集 http ://precisionedgeag.com:8080/arcgis/rest/services/ImageServices/RapidEye_R_NDVI?f=json&pretty=true:`C:\ DOCUME〜1 \ 15937.DSM \ LOCALS〜1 \ Temp \ file.dat'无法识别为受支持的文件格式。栅格层提供者无效(提供者:gdal,URI:http://precisionedgeag.com:8080 / arcgis / rest / services / ImageServices / RapidEye_R_NDVI?f = json&pretty = true 如何在QGIS中添加此ArcGIS服务器(Imageservice数据集)?

1
使用R处理向量以更快地栅格化
我正在将向量转换为R中的栅格。但是,过程太长了。是否可以将脚本放入多线程或GPU处理中以使其更快地执行? 我的脚本栅格化矢量。 r.raster = raster() extent(r.raster) = extent(setor) #definindo o extent do raster res(r.raster) = 10 #definindo o tamanho do pixel setor.r = rasterize(setor, r.raster, 'dens_imov') 光栅 类:RasterLayer尺寸:9636、11476、110582736(nrow,ncol,ncell)分辨率:10、10(x,y)范围:505755、620515、8555542、8651792(xmin,xmax,ymin,ymax)坐标。参考 :+ proj = longlat + datum = WGS84 + ellps = WGS84 + towgs84 = 0,0,0 设定者 类:SpatialPolygonsDataFrame功能:5419范围:505755,620515.4,8555429,8651792(xmin,xmax,ymin,ymax)坐标。参考 :+ proj = utm …

1
合并相邻的平行线并将计数添加为QGIS中的属性?
我有一个包含多条线的层,这些线代表飞机的飞行轨迹。我的目标是创建地图以分析某些空域中的交通流量。 我想合并彼此相距一定距离(例如1海里)内的所有平行线或接近平行线的线段。 合并的新行应包含一个属性,其中包含已合并的原始行数。例如,如果将5条平行线合并为一条,则新合并的线应具有5的count属性,这将允许我相应地设置其样式。 考虑以下原理图示例: 输入: 三个单独的线,其中两个具有相同的平行线段。 所需的输出: 绿色和橙色线的公共部分已合并为一条线(红色)。新的红线的count属性为2。 注意:在此示例中,红线将是两个原始线段的平均值。其余的绿色和橙色线段不必完全连接到新的红色线。换句话说,拓扑不必是完整的,因为结果将仅用于视觉表示。 基本上,我正在尝试创建以下内容: (资源) 我将如何在QGIS中实现这样的结果?请记住,实际数据集比上面的示例大得多,因此该解决方案应该是可伸缩的。 我遇到了本教程,该教程的功能与我要尝试的非常相似。但是,我希望能够使用QGIS做到这一点。
9 qgis  line 

2
在QGIS中将线转换为多边形会生成条形多边形
在尝试使用以下方法在PyQGIS中将折线图层多边形化时 processing.runandload("qgis:linestopolygons",explode_path,polygon_path) python控制台中的命令,它不会创建与线边缘相对应的多边形。相反,它沿弯曲的边缘创建了条形多边形。为什么不沿线边缘创建多边形? 在多边形化时,黑线应该是创建的多边形的边缘。而是沿着弯曲的边缘(蓝色多边形)仅创建了几个条。

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.