问题标签 [pyqgis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 initQgis() 时出现分段错误 11 - MacOS
我在 macOS Catalina v.10.15.7 上使用 QGIS.3.16
运行以下代码时出现问题
当我在终端中运行它时,我得到以下错误代码
我知道 11 表示第 11 行,这就是 app.initQgis() 所以那里有些东西不起作用。
我在 Jupyter Notebook 中运行了相同的代码,但当时没有出现错误。我尝试重新启动计算机以“清理”内存,但仍然出现同样的错误。
此外,我在使用 QGIS.3.14 时使用了相同的代码并且效果很好,但现在我每次都会出错。
有什么想法可能是错的吗?
***************************** 编辑 ******************** ***************
跟进此事。我安装了QGIS3.10 LTR并尝试了相同的,然后错误没有出现。但是我必须添加 GDAL_PATH 才能打开 shapefile。
qgis - 通过 Python 脚本 startEditing 编辑图层,我们是否必须“关闭”编辑?
我正在处理一个矢量图层,我必须将所有 n+i [id] 属性合并到实体(n)[id] 中,其中实体(n+i)[id] 等于实体(n)[id],然后删除所有 n+i 个实体。一切正常,但我在提交更改之前调用了几次startEditing
函数,我的问题是:调用commitChanges
closesstartEditing
还是让它打开,就像它是我们需要在工作完成后释放的文件描述符或指针一样?
代码是:
如您所见,我们调用了多次olayer.startEditing
,甚至更多,因为所有代码都在 while 正文中......那么这会产生大量的 startEditing “指针”还是只是不断地将 olayer 可编辑状态设置为“对版本开放”?
实际上代码可以工作,但是速度很慢,这是原因吗?
python - PyQGIS 特征缺乏几何
我正在使用 QGIS(点层)中的 shapefile,并且我正在尝试遍历所有点,但是有些点显然没有有效的几何图形。
当我输入时,layer.getFeature(1).geometry()
我得到<QgsGeometry: null>
因此我不能使用该.asPoint()
函数但是当我遍历所有特征时,它不会显示那些具有空几何的特征:
那么为什么在遍历所有层时没有显示任何空几何,而是第一个(实际上所有特征在使用单个特征layer.getFeature(x)
命令时都显示空几何)。有没有办法解决这个问题?
vector - 如何在 PyQGIS 中向地理包附加/添加图层
对于一个项目,我正在创建不同的图层,这些图层都应该写入一个地理包中。我正在使用 QGIS 3.16.1 和 QGIS 中的 Python 控制台,它在 Python 3.7 上运行
我尝试了很多事情,但无法弄清楚如何做到这一点。这是我到目前为止使用的。
问题是在“test.gpkg”中创建了一个名为“test”的层,而不是“points1”或“points2”。第二个 QgsVectorFileWriter.writeAsVectorFormatV2() 也覆盖第一个的输出,而不是将图层附加到现有的地理包中。
我还尝试创建单个 .geopackages,然后使用“包层”处理工具 (processing.run("native:package") 将所有层合并到一个地理包中,但不幸的是,属性类型都转换为字符串。
任何帮助深表感谢。提前谢谢了。
python - 如何从python中的列表中打印特定行
我有一个名为“DistInt”的列表,其中包含强度值和地震事件的相应距离。有没有办法只打印列表中的特定行?
将打印 DistInt 列表:
例如,我想打印行 - [2.0, 321.0121765154287]
python - 使用 PyQGIS 加载用户配置文件的问题
嗨,在启动 QGIS3 时,我的 startup.py 脚本有以下代码,我想检查用户配置文件是否存在,如果不存在,则创建并加载它,但似乎这个过程陷入了某种不可阻挡的循环,使其无法使用该应用程序。
有没有办法解决这个问题?
arcgis - 是否可以在 GIS 软件中创建泰森多边形,但根据 DEM 加权?
基本上我正在寻找的是一种类似于最低成本分析的算法或扩展,但不是使用 DEM 顶部的点来创建点之间的路径(线向量),而是创建一个泰森(Voronoi)多边形(以点为中心),其空间限制将由 DEM 定义。
因此,例如,2 个多边形之间的边界将由 2 个多边形的中心点之间的最低成本分析来确定。然后,目标将是,而不是获得一组带有箭头直线边界的泰森多边形(如图片中所示),而是创建一组多边形,其限制将由 DEM(浮雕)确定。有点像以一个点为中心的分水岭。
顺便说一句,如果有适用于 QGIS 的解决方案,那就太好了。
谢谢!
python - 如何将多边形划分为特定大小的小多边形?
我想将不规则多边形划分/切割成特定大小(1.6mx 1m)的小多边形,这样就必须利用大部分不规则多边形区域(优化模型)
多边形的长度和宽度可以互换(1.6m X 1m(或)1m X 1.6m)
所以,最后,我需要尽可能多的多边形(1.6m X 1m)。
您可以将其视为包装问题。我需要在多边形内尽可能多地打包大小(1.6mx 1m)的矩形。矩形可以平移和旋转,但不能相互交叉。
我使用了“创建网格”功能,但它只是以特定方式切割整个多边形。
但我还想要的是,这里也可以垂直切割一个蓝色多边形(1m x 1.6m)。
所以,我想知道 QGIS/ArcGIS 中是否有这个插件或任何用于这种多边形优化的 python 脚本?
python - 使用 PYQGIS 从受代理保护的地理服务器添加 WMS 层
我有一个托管在地理服务器上的 wms 图层,用于使用 OpenLayers 在 Web 地图应用程序上显示。我将使用代理 URL 获取地图图像,该代理 URL 向 Geoserver 发送请求并返回 wms 图层图像作为响应。但是,我不能在 pyqgis 中使用相同的 URL 来加载图层作为 QGIS 中的栅格图层。我可以使用 QgsRasterLater 函数成功加载我的 localhost GeoServer 数据,但由于我的远程服务器的 GeoServer 只能通过代理 URL 访问,我得到一个无效的图层响应。
加载本地主机层的功能(成功运行):
加载受代理保护的远程 GeoServer 层的功能(不工作):
情况1:
案例二: