问题标签 [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.

0 投票
2 回答
1398 浏览

python - 我在哪里可以找到 QGIS 的所有 python 函数的概述

我正在使用 python 语言为 QGIS 制作插件。我到处寻找,但似乎无法很好地概述 Python 脚本中可用的所有 QGIS 函数。

例如,假设我选择了一个多边形作为几何体。我知道我可以使用计算多边形的面积.geometry().area()

但是我在哪里可以找到我可以用这个几何做的所有事情的概述?QGIS Cookbook 提供了一些示例,但并非全部。

0 投票
1 回答
583 浏览

python - QGIS 3损坏/禁用的python

我在使用 QGIS 3 时遇到了主要的 Python 问题。我试图从 OS4GEO shell 安装第 3 方库。步骤是:

1-以管理员身份运行shell;2- py3_env;3-点安装 scikit-learn

我在那里遇到了错误,所以我卸载了 QGIS 并重新安装它以获得一个干净的 python 库。当我重新打开新安装的 QGIS 时,我失去了对 python 的支持。插件支持丢失并且没有处理选项。卸载/安装 QGIS 并不能解决问题。奇怪的是,它是特定于版本的。如果我破坏了 3.4,重新安装它并不能解决问题,但我可以安装 3.10 和 3.15 并且它们可以工作。但是,如果我尝试将 Python 库添加到 3.10,它会中断并且全新安装并不能解决问题。

即使在使用卸载程序之后,如何重置 Python 版本?

0 投票
2 回答
153 浏览

python - QgsProcessingUtils.mapLayerFromString() 中的第二个参数是什么?

我目前正在尝试选择一个图层。在 Qgis 2 中,这是通过做

但是现在,文档说我必须在 Qgis3 中使用 QgsProcessingUtils.mapLayerFromString() 。显然,当我得到这个错误时,我现在需要提出第二个论点。

第二个论点是什么?

0 投票
0 回答
24 浏览

pandas - 有没有办法根据最近邻计算国家之间的产品余额?

我创建了一个数据集,其中包含每个国家/地区的产品容量和产量。

我有兴趣计算这些不同国家之间的平衡。例如,法国的余额为 50,比利时的余额为 10,德国的余额为 -50。

我有兴趣创建一个 python 函数,该函数根据距离来计算这些国家之间的平衡,以优化这些流量;EG:德国比比利时10,德国比法国40,达到平衡!有没有我不熟悉的现有功能?

我已经用到目前为止我想出的代码添加了这个问题。

在此处输入图像描述 在此处输入图像描述

https://drive.google.com/drive/folders/1WCllWC2dgSCsqQ3TokB9obO90jd4ZAoT?usp=sharing

0 投票
1 回答
457 浏览

python - 在 QGIS 中使用第三方 Python 模块

我开发了一个使用第三方库的 QGIS 插件。目前的情况是插件的用户必须在 QGIS 中安装一些 Python 库,然后他/她才能使用我的插件。每次安装新的QGIS版本,用户都需要重新安装第三方库才能使用我的插件。此外,在这种情况下,用户没有安装库的管理员权限。他们需要让他们的公司帮助台安装这些库。

有没有办法在安装我使用的第三方库时完全不打扰用户或公司帮助台?

0 投票
1 回答
254 浏览

python - PyQGIS中的CheckableComboBox(等待选择)

我在 QGIS 的内置 python 编辑器中使用此代码。如何在标记必要的行时让脚本等待,然后才能继续执行?到目前为止,我不能这样做:窗口启动,但脚本继续执行,因此无法使用选择列表。例如,我可以以某种方式在那里添加“确定”按钮(如在标准对话框中)?

QGS 的内置 python-editor 中的脚本 1 QGS 内置 python-editor 中的脚本 2

0 投票
0 回答
272 浏览

qgis - QGIS3中将光栅转换为矢量的问题

我正在尝试使用 QGIS3.14 中的 Polygonize 工具将一些栅格层(从 wms)转换为矢量图层,但是我总是收到此解码错误:

UnicodeDecodeError:“utf-8”编解码器无法解码位置 41 中的字节 0x92:无效的起始字节

我什至尝试了其他一些示例栅格,但给出了相同的错误消息。
有什么建议可以解决这个问题吗?

我希望有人能帮助我

0 投票
1 回答
233 浏览

python - AttributeError:“float”对象没有属性“GCPPixel”

我是编码新手,并尝试使用 gdal 库和 qgis python 控制台将 SEVIRI 本机图像转换为 tif 格式。问题是当我想添加 GCP 时出现错误并且我不知道如何解决这个问题我知道我以错误的方式添加 GCP 但我不知道什么是正确的方法!我搜索了很多,但没有找到任何关于在使用 gdaltranslate 时在 qgis python 控制台中添加 GCP 的信息。任何建议都会有所帮助。这是我在 qgis python 控制台中的代码:

0 投票
1 回答
1340 浏览

python - 如何删除所有层*除了*pyqgis中的一些特定层?

我需要为我的 QGIS 项目加载几个矢量图层,以便我在其中的每一个中测试我的脚本的每个功能。但是,最后我只想处理一两层感兴趣的层并丢弃其他层,所以我想自动执行此操作。

我用一些层成功地做到了这一点,但是有一层给我带来了问题,我还没有弄清楚原因。

这是一些代码:

加载层(这些几乎肯定不是问题):

现在这是我创建的功能,用于删除所有加载的图层,除了我想要使用的图层。prints只是因为我试图理解问题所在。

然后我创建了一个新层——那个给我带来问题的层。稍后我需要在迭代过程中编辑该层。我按照 OpenSourceOptions 教程中名为PyQGIS: Create a Shapefile的分步示例进行操作:

然后我删除我不感兴趣的图层:

就是这样。当我第一次运行该程序时,什么也没有发生。这是我得到的:

这符合我的预期。但在第二次和第 n 次,我得到:

你能发现问题出在哪里吗?为什么会出现这个错误?为什么它只发生在第二次运行?

谢谢!

0 投票
0 回答
59 浏览

python - 在 python/QGIS 中使用以编程方式创建的索引字符串查找?

我正在尝试根据查找表将数据添加到 shapefile。因此,shapefile 和查找表都具有土地利用、雨水和土壤属性的值,并且查找表还具有我想根据土地利用/雨水/土壤值添加到 shapefile 中的其他变量的值。这是我在 R 中非常有信心做的事情,但它需要在 python 中,因为这是 QGIS 中使用的语言,而且我对 python 很陌生。

目前,我通过在 python 中使用 pandas 数据框来简化问题:

显然,这两个表都会有更多的数据,但希望你能明白。所以我想要v1,v2v3intosample_df基于匹配所有landuse,soil和的值rain。我已经尝试了各种解决方案,涉及np.logical_and()和其他一些类似的事情,并且已经能够使它适用于简化版本,但不能为表格增加价值。到目前为止,我不会再让你厌烦我失败尝试的细节,但我认为最好的解决方案(至少对于我的 python 编程水平)将是创建一个索引字符串,将landuse,rainsoil值组合起来基于此的表之间的行和匹配。例如,第一行的字符串sample_df'Pasture 90 350',我可以将其添加到两个表中,然后用作索引。

但是,当我尝试使用以下方法创建索引字符串时:

它将所有值soil合并rain到字符串中,这不是我想要的。

而且,当我使用简单的数字索引键进行下一步的测试运行时:

lookup_df[lookup_df['index1'] == sample_df['index1']]部分独立工作,但分配不工作。

谁能帮我?我猜该解决方案涉及使用.assign(我理解它是mutate()R 中的 python 等价物),但我无法弄清楚。提前感谢您的任何帮助!