问题标签 [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 - 从 QGIS Python 控制台查找 Python 脚本的目录
我将从我在 QGIS 上的 Python 控制台上打开的脚本目录中导入一些 CSV 文件。但是,我无法使用os.getcwd()
其他方式访问真实目录。
有没有办法做到这一点?
python - 弃用警告:gdal.py 被放置在命名空间中,现在可以作为 osgeo.gdal 使用
我的脚本有问题。我想使用一个允许我直接在我的代码中使用 qgis 软件的包。这个包被称为 qgis.core。我在安装它时遇到了一些麻烦,但它似乎已经完成了。现在的问题是,当我运行允许我进行我想要的治疗的脚本时,我会收到一条错误消息。我会把你放在脚本和错误下。如果有人可以帮助我,谢谢。
剧本 :
回报 :
postgresql - 如何加载 Postgres QgsVectorLayer
我有一个 QGIS 脚本,我正在尝试加载存储在 Postgres 数据库中的矢量图层。当我打印图层的 isValid() 方法时,我得到了 False。这是我的代码:
我提供了我尝试过的其他 QgsVectorLayer 配置。所有打印层无效。
QGIS 版本:3.16.3-汉诺威 Python 版本:3.8.5 Ubuntu 版本:20.04.02 LTS
我已经使用 DBeaver 检查了我的凭据,并且能够连接。
python - PyQGis 与 QWebEngineView 崩溃
我安装了 QGIS 3.16.3-Hannover 和 Qt 5.11.2 和 64 位 Windows 10。在另外两台计算机上,我也在类似的条件下安装了它。
我正在将 PyQgis 用于 Qgis 的独立应用程序,我认为 PyQgis 中有些东西不能很好地工作,因为我不能使用 QWebEngineView 和 QWebKit 是的。
我的症状是:
1.-如果在安装了Qgis的QtDesigner中,我在设计中添加了QWebEngineView小部件,程序直接crash并停止运行。
2.- 如果在独立应用程序中我启动 QWebEngineView 它会给我一个错误:
代码:
它给出的错误是:
我看过这个链接:
https://issues.qgis.org/issues/18155 3年前看来这个错误无法解决...
然后与其他:
https://forum.qt.io/topic/70457/qt-5-7-qtwebenginewidgets-not-working-on-linux/3
我的安装中似乎缺少以下文件夹,其中包括:资源、qtwebengine_locales、...
我已经使用 OsGeo4W 设置卸载了 qwebengine。然后我重新安装了它。
我看到QGis使用5.10.1版本,我尝试通过pip install安装它,但它告诉我只有5.12的版本。
我认为它一定是 QWebEngineView 没有与 Qgis 正确安装。因为如果我将它与 python38 或 python 39 的安装一起使用,那么它是否有效。
python - PyQgis 代码执行需要很多时间?
我已经在 pyqgis 中编写了下面的 python 代码,它循环了一个 ~30 MB 的 shapefile。它添加了一个具有基于另一个属性计算的特征的属性。完全执行代码大约需要 10 分钟,这是否正常?有时它根本不执行它 - QGIS 只是永远加载(等待超过 30 分钟),直到我关闭它。
shapefile 有大约 130.000 个特征和 27 个属性。
我的笔记本电脑有 16 GB RAM 和 Intel Core i5-1135G7。
代码:
raster - 如何在QGIS中获取每个单元格的面积作为单元格值的栅格?
我想获得一个栅格图层,其中一个已经存在的栅格的每个栅格像元的面积作为像元值。由于栅格的分辨率为 0.5°x0.5°,几乎覆盖了整个地球,因此像元区域差异很大。
有人知道如何在 QGIS 中做到这一点吗?
先感谢您 :)
编辑:在我的情况下,“区域”是指海平面高度上的地面区域
pyqgis - pyQGIS 自定义对比度增强功能
我正在尝试实现自定义对比度增强功能,该功能将允许我增强 QGIS 中的活动栅格图层,而无需创建新的栅格文件。
我不想做 MinMaxEnhancement 或使用任何其他现有的增强方法,我想使用一个自定义函数,它使用平均统计量以及最小值、最大值。
到目前为止,这是我的代码(顺便说一句,我在插件中执行此操作):
还有我的 CustomFunction(我返回一个固定值50
用于测试目的,将来我计划用一个使用每个栅格波段的最小值、最大值和平均统计数据的函数来替换它):
返回的值enhanceContrast(20)
符合50
预期。但是,图层消失了,就好像它已被关闭一样,我希望该图层具有平坦的颜色,每个像素的值为 50。
老实说,我找不到有关该setContrastEnhancementFunction
方法的任何示例或大量文档,因此我可能会错误地使用它。
raster - 在 QGIS 中创建的栅格地图的值在 ArcGIS 中加载后会发生变化
我在 QGIS 中创建了一个栅格地图,以 GeoTiff 格式的“字节”数据类型保存,其值为 1 到 5。当我尝试在 ArcGIS 中打开文件时,值 0 和 6 - 255 会自动添加到地图中。我应该在 QGIS 中以哪种数据类型保存栅格数据,以便在加载时不会在 ArcGIS 中自动创建额外的值?
python-3.x - pyQgis处理算法
我想使用 pyQgis 找出 2 个矢量图层之间的相交多边形,但我总是遇到错误 AttributeError: module 'processing' has no attribute 'run' 谁能帮帮我?我正在窗口机器上使用QGis编写python,我已经将基本的QGIS路径添加到环境变量中,但是我不确定是否需要将SAGA包添加到窗口环境变量中。
python - 在 Python 脚本期间消除 QGIS 临时文件
我正在使用循环来创建许多光栅采样输出。循环完成后,QGIS 需要相当长的时间来“清理”放置输出文件的目录,这意味着:删除每个输出 Geopackage 的两个临时文件需要时间(大约 20 分钟)(全部在所有 1128x16 文件中) )。我正在通过 processing.run() 函数访问栅格采样。
每次执行光栅采样后是否可以触发“清理”过程?因此,脚本的用户不会在冻结的屏幕前等待并问自己为什么必须这样做,因为所有所需的输出文件都已创建。
当然,完成整个算法的时间可能会增加,但会更加用户友好:)