27.1.20. 向量选择
27.1.20.1. 按属性提取
从输入图层创建两个矢量层:一个将仅包含匹配要素,而另一个将包含所有非匹配要素。
将要素添加到生成的图层的条件基于输入图层中的属性值。
参见
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
要从中提取要素的层。 |
Selection attribute |
|
[tablefield: any] |
层的过滤字段 |
Operator |
|
[enumeration] 默认:0 |
有许多不同的操作员可用:
|
Value 任选 |
|
[string] |
待评估的价值 |
Extracted (attribute) |
|
[same as input] 默认: |
指定匹配要素的输出矢量图层。以下选项之一:
还可以在此处更改文件编码。 |
Extracted (non-matching) |
|
[same as input] 默认: |
指定非匹配要素的输出矢量图层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Extracted (attribute) |
|
[same as input] |
具有来自输入图层的匹配要素的矢量图层 |
Extracted (non-matching) |
|
[same as input] |
具有来自输入图层的非匹配要素的矢量图层 |
Python代码
Algorithm ID : qgis:extractbyattribute
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.20.2. 按表达式提取
从输入图层创建两个矢量层:一个将仅包含匹配要素,而另一个将包含所有非匹配要素。
将要素添加到生成的图层的条件基于QGIS表达式。有关表达式的更多信息,请参见 表达式 。
参见
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
输入向量层 |
Expression |
|
[expression] |
用于过滤向量层的表达式 |
Matching features |
|
[same as input] 默认: |
指定匹配要素的输出矢量图层。以下选项之一:
还可以在此处更改文件编码。 |
Non-matching |
|
[same as input] 默认: |
指定非匹配要素的输出矢量图层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Matching features |
|
[same as input] |
具有来自输入图层的匹配要素的矢量图层 |
Non-matching |
|
[same as input] |
具有来自输入图层的非匹配要素的矢量图层 |
Python代码
Algorithm ID : qgis:extractbyexpression
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.20.3. 按位置提取
创建仅包含输入图层中匹配要素的新矢量图层。
将要素添加到生成的图层的条件基于每个要素与其他图层中的要素之间的空间关系。
探索空间关系
几何谓词是布尔函数,用于通过比较要素的几何形状是否以及如何共享一部分空间来确定要素与另一个要素之间的空间关系。

图 27.124 查找层之间的空间关系
使用上图,我们通过将绿色圆圈与橙色矩形特征进行空间比较来寻找绿色圆圈。可用的几何谓词包括:
- Intersect
测试一个几何体是否与另一个几何体相交。如果几何图形在空间上相交(共享空间的任何部分-重叠或接触),则返回1(真),如果它们不相交,则返回0。在上图中,这将返回圆圈1、2和3。
- Contain
返回1(TRUE)当且仅当b没有点位于a的外部,并且b的内部至少有一个点位于a的内部。在图片中,没有圆被返回,但如果你反过来寻找它,这个矩形将是,因为它完全包含圆1。这与 are within 。
- Disjoint
如果几何图形不共享任何部分的空间(没有重叠,没有接触),则返回1(真)。只返回圆4。
- Equal
当且仅当几何图形完全相同时,返回1(TRUE)。不会退回任何圆圈。
- Touch
测试一个几何体是否与另一个几何体接触。如果几何图形至少有一个共同点,但其内部不相交,则返回1(TRUE)。只返回圆3。
- Overlap
测试一个几何体是否与另一个几何体重叠。如果几何图形共享空间、维度相同,但不完全包含在彼此之间,则返回1(TRUE)。只返回圆2。
- Are within
测试一个几何体是否在另一个几何体中。如果几何图形a完全位于几何图形b内部,则返回1(真)。仅返回圆1。
- Cross
如果提供的几何图形具有一些(但不是全部)公共内点,并且实际交叉点的尺寸低于提供的最高几何图形,则返回1(TRUE)。例如,一条与多边形相交的直线将作为一条直线相交(True)。相交的两条线将作为一个点相交(True)。两个多边形作为一个多边形交叉(FALSE)。在图片中,不会返回任何圆圈。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Extract features from |
|
[vector: any] |
输入向量层 |
Where the features (geometric predicate) |
|
[enumeration] [list] 默认: [0] |
输入要素与相交要素应具有的空间关系类型,以便可以选择该要素。以下一项或多项:
如果选择了多个条件,则必须满足其中至少一个条件(或运算)才能提取特征。 |
By comparing to the features from |
|
[vector: any] |
相交向量层 |
Extracted (location) |
|
[same as input] 默认: |
为与比较图层中的一个或多个要素具有选定空间关系(S)的要素指定输出矢量图层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Extracted (location) |
|
[same as input] |
矢量层,包含输入层中与比较层中的一个或多个要素具有选定空间关系的要素(S)。 |
Python代码
Algorithm ID : qgis:extractbylocation
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.20.4. 距离内提取
创建仅包含输入图层中匹配要素的新矢量图层。无论要素位于指定的最大距离内的任何位置,都将被复制到其他参照图层中的要素。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Extract features from |
|
[vector: any] |
要从中复制要素的输入矢量图层 |
By comparing to the features from |
|
[vector: any] |
使用要素贴近度的矢量图层 |
Where the features are within |
|
[number] 默认:100 |
要在其中选择输入要素的参考要素周围的最大距离 |
Modify current selection by |
|
[enumeration] 默认:0 |
应该如何管理算法的选择。以下选项之一:
|
Extracted (location) |
|
[same as input] 默认: |
指定与参考要素在设定距离内的要素的输出向量层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Extracted (location) |
|
[same as input] |
输入图层中的要素与参考要素的距离条件匹配的矢量图层 |
Python代码
Algorithm ID : native:extractwithindistance
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.20.5. 按几何图形类型过滤
按要素的几何图形类型过滤要素。传入要素将根据它们是否具有点、线或多边形几何图形而被定向到不同的输出。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
要评估的层 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Point features 任选 |
|
[vector: point] |
具有点的层 |
Line features 任选 |
|
[vector: line] |
带线的层 |
Polygon features 任选 |
|
[vector: polygon] |
包含多边形的层 |
Features with no geometry 任选 |
|
[table] |
无几何图形的矢量层 |
Python代码
Algorithm ID : native:filterbygeometry
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.20.6. 随机抽取
获取一个矢量层,并生成一个仅包含输入层中要素子集的新层。
根据特征ID,使用百分比或计数值来定义子集中特征的总数,从而随机定义子集。
参见
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
要从中选择要素的源矢量图层 |
Method |
|
[enumeration] 默认:0 |
随机选择的方法。以下选项之一:
|
Number/percentage of selected features |
|
[number] 默认:10 |
要选择的要素数量或百分比 |
Extracted (random) |
|
[vector: any] 默认: |
为随机选择的要素指定输出向量层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Extracted (random) |
|
[same as input] |
包含从输入图层中随机选择的要素的矢量图层 |
Python代码
Algorithm ID : qgis:randomextract
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.20.7. 子集内随机抽取
获取一个矢量层,并生成一个仅包含输入层中要素子集的新层。
根据特征ID,使用百分比或计数值来定义子集中特征的总数,从而随机定义子集。百分比/计数值不会应用于整个层,而是应用于每个类别。类别是根据给定属性定义的。
参见
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
要从中选择要素的矢量图层 |
ID field |
|
[tablefield: any] |
要从中选择要素的源矢量图层的类别 |
Method |
|
[enumeration] 默认:0 |
随机选择的方法。以下选项之一:
|
Number/percentage of selected features |
|
[number] 默认:10 |
要选择的要素数量或百分比 |
Extracted (random stratified) |
|
[same as input] 默认: |
为随机选择的要素指定输出向量层。以下选项之一:
还可以在此处更改文件编码。 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Extracted (random stratified) |
|
[same as input] |
包含从输入图层中随机选择的要素的矢量图层 |
Python代码
Algorithm ID : qgis:randomextractwithinsubsets
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.20.8. 随机选择
获取一个矢量层并选择其要素的子集。该算法不会产生新的层。
根据特征ID,使用百分比或计数值来定义子集中特征的总数,从而随机定义子集。
Default menu :
参见
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
选区的矢量层 |
Method |
|
[enumeration] 默认:0 |
随机选择的方法。以下选项之一:
|
Number/percentage of selected features |
|
[number] 默认:10 |
要选择的要素数量或百分比 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[same as input] |
具有所选要素的输入图层 |
Python代码
Algorithm ID : qgis:randomselection
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.20.9. 子集内随机选择
获取一个矢量层并选择其要素的子集。该算法不会产生新的层。
根据特征ID,使用百分比或计数值来定义子集中特征的总数,从而随机定义子集。
百分比/计数值不会应用于整个层,而是应用于每个类别。
类别是根据给定的属性定义的,该属性也被指定为算法的输入参数。
不会创建任何新输出。
Default menu :
参见
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
要在其中选择要素的矢量图层 |
ID field |
|
[tablefield: any] |
要从中选择要素的输入图层的类别 |
Method |
|
[enumeration] 默认:0 |
随机选择的方法。以下选项之一:
|
Number/percentage of selected features |
|
[number] 默认:10 |
要选择的要素数量或百分比 |
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[same as input] |
具有所选要素的输入图层 |
Python代码
Algorithm ID : qgis:randomselectionwithinsubsets
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.20.10. 按属性选择
在矢量层中创建选区。
选择要素的标准基于输入图层中的属性值。
参见
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
要在其中选择要素的矢量图层 |
Selection attribute |
|
[tablefield: any] |
层的过滤字段 |
Operator |
|
[enumeration] 默认:0 |
有许多不同的操作员可用:
|
Value 任选 |
|
[string] |
待评估的价值 |
Modify current selection by |
|
[enumeration] 默认:0 |
应该如何管理算法的选择。以下选项之一:
|
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[same as input] |
具有所选要素的输入图层 |
Python代码
Algorithm ID : qgis:selectbyattribute
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.20.11. 按表达式选择
在矢量层中创建选区。
选择要素的标准基于QGIS表达式。有关表达式的更多信息,请参见 表达式 。
参见
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[vector: any] |
输入向量层 |
Expression |
|
[expression] |
用于过滤输入图层的表达式 |
Modify current selection by |
|
[enumeration] 默认:0 |
应该如何管理算法的选择。以下选项之一:
|
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[same as input] |
具有所选要素的输入图层 |
Python代码
Algorithm ID : qgis:selectbyexpression
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.20.12. 按位置选择
在矢量层中创建选区。
选择要素的标准基于每个要素与其他层中要素之间的空间关系。
Default menu :
探索空间关系
几何谓词是布尔函数,用于通过比较要素的几何形状是否以及如何共享一部分空间来确定要素与另一个要素之间的空间关系。

图 27.125 查找层之间的空间关系
使用上图,我们通过将绿色圆圈与橙色矩形特征进行空间比较来寻找绿色圆圈。可用的几何谓词包括:
- Intersect
测试一个几何体是否与另一个几何体相交。如果几何图形在空间上相交(共享空间的任何部分-重叠或接触),则返回1(真),如果它们不相交,则返回0。在上图中,这将返回圆圈1、2和3。
- Contain
返回1(TRUE)当且仅当b没有点位于a的外部,并且b的内部至少有一个点位于a的内部。在图片中,没有圆被返回,但如果你反过来寻找它,这个矩形将是,因为它完全包含圆1。这与 are within 。
- Disjoint
如果几何图形不共享任何部分的空间(没有重叠,没有接触),则返回1(真)。只返回圆4。
- Equal
当且仅当几何图形完全相同时,返回1(TRUE)。不会退回任何圆圈。
- Touch
测试一个几何体是否与另一个几何体接触。如果几何图形至少有一个共同点,但其内部不相交,则返回1(TRUE)。只返回圆3。
- Overlap
测试一个几何体是否与另一个几何体重叠。如果几何图形共享空间、维度相同,但不完全包含在彼此之间,则返回1(TRUE)。只返回圆2。
- Are within
测试一个几何体是否在另一个几何体中。如果几何图形a完全位于几何图形b内部,则返回1(真)。仅返回圆1。
- Cross
如果提供的几何图形具有一些(但不是全部)公共内点,并且实际交叉点的尺寸低于提供的最高几何图形,则返回1(TRUE)。例如,一条与多边形相交的直线将作为一条直线相交(True)。相交的两条线将作为一个点相交(True)。两个多边形作为一个多边形交叉(FALSE)。在图片中,不会返回任何圆圈。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Select features from |
|
[vector: any] |
输入向量层 |
Where the features (geometric predicate) |
|
[enumeration] [list] 默认: [0] |
输入要素与相交要素应具有的空间关系类型,以便可以选择该要素。以下一项或多项:
如果选择了多个条件,则必须满足其中至少一个条件(或运算)才能提取特征。 |
By comparing to the features from |
|
[vector: any] |
相交向量层 |
Modify current selection by |
|
[enumeration] 默认:0 |
应该如何管理算法的选择。以下选项之一:
|
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[same as input] |
具有所选要素的输入图层 |
Python代码
Algorithm ID : qgis:selectbylocation
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。
27.1.20.13. 在距离内选择
在矢量层中创建选区。无论要素位于与其他参照图层中的要素之间指定的最大距离内,都将被选中。
参数
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Select features from |
|
[vector: any] |
要从中选择要素的输入矢量图层 |
By comparing to the features from |
|
[vector: any] |
使用要素贴近度的矢量图层 |
Where the features are within |
|
[number] 默认:100 |
用于选择输入要素的参考要素周围的最大距离 |
Modify current selection by |
|
[enumeration] 默认:0 |
应该如何管理算法的选择。以下选项之一:
|
产出
标签 |
名字 |
类型 |
描述 |
---|---|---|---|
Input layer |
|
[same as input] |
具有所选要素的输入图层 |
Python代码
Algorithm ID : native:selectwithindistance
import processing
processing.run("algorithm_id", {parameter_dictionary})
这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。