27.1.20. 向量选择

27.1.20.1. 按属性提取

从输入图层创建两个矢量层:一个将仅包含匹配要素,而另一个将包含所有非匹配要素。

将要素添加到生成的图层的条件基于输入图层中的属性值。

参数

标签

名字

类型

描述

Input layer

INPUT

[vector: any]

要从中提取要素的层。

Selection attribute

FIELD

[tablefield: any]

层的过滤字段

Operator

OPERATOR

[enumeration]

默认:0

有许多不同的操作员可用:

  • 0-=

  • 1-≠

  • 2->

  • 3->=

  • 4-<

  • 5-<=

  • 6-开头是

  • 7-包含

  • 8-为空

  • 9-不为空

  • 10-不包含

Value

任选

VALUE

[string]

待评估的价值

Extracted (attribute)

OUTPUT

[same as input]

默认: [Create Temporary Layer]

指定匹配要素的输出矢量图层。以下选项之一:

  • 创建临时层 (TEMPORARY_OUTPUT )

  • 保存到文件…

  • 保存到Geopackage…

  • 保存到数据库表…

还可以在此处更改文件编码。

Extracted (non-matching)

FAIL_OUTPUT

[same as input]

默认: [Skip output]

指定非匹配要素的输出矢量图层。以下选项之一:

  • 跳过输出

  • 创建临时层 (TEMPORARY_OUTPUT )

  • 保存到文件…

  • 保存到Geopackage…

  • 保存到数据库表…

还可以在此处更改文件编码。

产出

标签

名字

类型

描述

Extracted (attribute)

OUTPUT

[same as input]

具有来自输入图层的匹配要素的矢量图层

Extracted (non-matching)

FAIL_OUTPUT

[same as input]

具有来自输入图层的非匹配要素的矢量图层

Python代码

Algorithm IDqgis:extractbyattribute

import processing
processing.run("algorithm_id", {parameter_dictionary})

这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。

27.1.20.2. 按表达式提取

从输入图层创建两个矢量层:一个将仅包含匹配要素,而另一个将包含所有非匹配要素。

将要素添加到生成的图层的条件基于QGIS表达式。有关表达式的更多信息,请参见 表达式

参数

标签

名字

类型

描述

Input layer

INPUT

[vector: any]

输入向量层

Expression

EXPRESSION

[expression]

用于过滤向量层的表达式

Matching features

OUTPUT

[same as input]

默认: [Create Temporary Layer]

指定匹配要素的输出矢量图层。以下选项之一:

  • 创建临时层 (TEMPORARY_OUTPUT )

  • 保存到文件…

  • 保存到Geopackage…

  • 保存到数据库表…

还可以在此处更改文件编码。

Non-matching

FAIL_OUTPUT

[same as input]

默认: [Skip output]

指定非匹配要素的输出矢量图层。以下选项之一:

  • 跳过输出

  • 创建临时层 (TEMPORARY_OUTPUT )

  • 保存到文件…

  • 保存到Geopackage…

  • 保存到数据库表…

还可以在此处更改文件编码。

产出

标签

名字

类型

描述

Matching features

OUTPUT

[same as input]

具有来自输入图层的匹配要素的矢量图层

Non-matching

FAIL_OUTPUT

[same as input]

具有来自输入图层的非匹配要素的矢量图层

Python代码

Algorithm IDqgis:extractbyexpression

import processing
processing.run("algorithm_id", {parameter_dictionary})

这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。

27.1.20.3. 按位置提取

创建仅包含输入图层中匹配要素的新矢量图层。

将要素添加到生成的图层的条件基于每个要素与其他图层中的要素之间的空间关系。

探索空间关系

几何谓词是布尔函数,用于通过比较要素的几何形状是否以及如何共享一部分空间来确定要素与另一个要素之间的空间关系。

../../../../_images/selectbylocation.png

图 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

INPUT

[vector: any]

输入向量层

Where the features (geometric predicate)

PREDICATE

[enumeration] [list]

默认: [0]

输入要素与相交要素应具有的空间关系类型,以便可以选择该要素。以下一项或多项:

  • 0-交集

  • 1-包含

  • 2-不相交

  • 3-相等

  • 4-触摸

  • 5-重叠

  • 6-在

  • 7-克罗斯

如果选择了多个条件,则必须满足其中至少一个条件(或运算)才能提取特征。

By comparing to the features from

INTERSECT

[vector: any]

相交向量层

Extracted (location)

OUTPUT

[same as input]

默认: [Create temporary layer]

为与比较图层中的一个或多个要素具有选定空间关系(S)的要素指定输出矢量图层。以下选项之一:

  • 创建临时层 (TEMPORARY_OUTPUT )

  • 保存到文件…

  • 保存到Geopackage…

  • 保存到数据库表…

还可以在此处更改文件编码。

产出

标签

名字

类型

描述

Extracted (location)

OUTPUT

[same as input]

矢量层,包含输入层中与比较层中的一个或多个要素具有选定空间关系的要素(S)。

Python代码

Algorithm IDqgis:extractbylocation

import processing
processing.run("algorithm_id", {parameter_dictionary})

这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。

27.1.20.4. 距离内提取

创建仅包含输入图层中匹配要素的新矢量图层。无论要素位于指定的最大距离内的任何位置,都将被复制到其他参照图层中的要素。

参数

标签

名字

类型

描述

Extract features from

INPUT

[vector: any]

要从中复制要素的输入矢量图层

By comparing to the features from

REFERENCE

[vector: any]

使用要素贴近度的矢量图层

Where the features are within

DISTANCE

[number]

默认:100

要在其中选择输入要素的参考要素周围的最大距离

Modify current selection by

METHOD

[enumeration]

默认:0

应该如何管理算法的选择。以下选项之一:

  • 0-创建新选区

  • 1-添加到当前选择

  • 2-在当前选择范围内选择

  • 3-从当前选择中删除

Extracted (location)

OUTPUT

[same as input]

默认: [Create temporary layer]

指定与参考要素在设定距离内的要素的输出向量层。以下选项之一:

  • 创建临时层 (TEMPORARY_OUTPUT )

  • 保存到文件…

  • 保存到Geopackage…

  • 保存到数据库表…

还可以在此处更改文件编码。

产出

标签

名字

类型

描述

Extracted (location)

OUTPUT

[same as input]

输入图层中的要素与参考要素的距离条件匹配的矢量图层

Python代码

Algorithm IDnative:extractwithindistance

import processing
processing.run("algorithm_id", {parameter_dictionary})

这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。

27.1.20.5. 按几何图形类型过滤

按要素的几何图形类型过滤要素。传入要素将根据它们是否具有点、线或多边形几何图形而被定向到不同的输出。

参数

标签

名字

类型

描述

Input layer

INPUT

[vector: any]

要评估的层

产出

标签

名字

类型

描述

Point features

任选

POINTS

[vector: point]

具有点的层

Line features

任选

LINES

[vector: line]

带线的层

Polygon features

任选

POLYGONS

[vector: polygon]

包含多边形的层

Features with no geometry

任选

NO_GEOMETRY

[table]

无几何图形的矢量层

Python代码

Algorithm IDnative:filterbygeometry

import processing
processing.run("algorithm_id", {parameter_dictionary})

这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。

27.1.20.6. 随机抽取

获取一个矢量层,并生成一个仅包含输入层中要素子集的新层。

根据特征ID,使用百分比或计数值来定义子集中特征的总数,从而随机定义子集。

参见

随机选择

参数

标签

名字

类型

描述

Input layer

INPUT

[vector: any]

要从中选择要素的源矢量图层

Method

METHOD

[enumeration]

默认:0

随机选择的方法。以下选项之一:

  • 0-所选要素数

  • 1-所选要素的百分比

Number/percentage of selected features

NUMBER

[number]

默认:10

要选择的要素数量或百分比

Extracted (random)

OUTPUT

[vector: any]

默认: [Create temporary layer]

为随机选择的要素指定输出向量层。以下选项之一:

  • 创建临时层 (TEMPORARY_OUTPUT )

  • 保存到文件…

  • 保存到Geopackage…

  • 保存到数据库表…

还可以在此处更改文件编码。

产出

标签

名字

类型

描述

Extracted (random)

OUTPUT

[same as input]

包含从输入图层中随机选择的要素的矢量图层

Python代码

Algorithm IDqgis:randomextract

import processing
processing.run("algorithm_id", {parameter_dictionary})

这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。

27.1.20.7. 子集内随机抽取

获取一个矢量层,并生成一个仅包含输入层中要素子集的新层。

根据特征ID,使用百分比或计数值来定义子集中特征的总数,从而随机定义子集。百分比/计数值不会应用于整个层,而是应用于每个类别。类别是根据给定属性定义的。

参数

标签

名字

类型

描述

Input layer

INPUT

[vector: any]

要从中选择要素的矢量图层

ID field

FIELD

[tablefield: any]

要从中选择要素的源矢量图层的类别

Method

METHOD

[enumeration]

默认:0

随机选择的方法。以下选项之一:

  • 0-所选要素数

  • 1-所选要素的百分比

Number/percentage of selected features

NUMBER

[number]

默认:10

要选择的要素数量或百分比

Extracted (random stratified)

OUTPUT

[same as input]

默认: [Create temporary layer]

为随机选择的要素指定输出向量层。以下选项之一:

  • 创建临时层 (TEMPORARY_OUTPUT )

  • 保存到文件…

  • 保存到Geopackage…

  • 保存到数据库表…

还可以在此处更改文件编码。

产出

标签

名字

类型

描述

Extracted (random stratified)

OUTPUT

[same as input]

包含从输入图层中随机选择的要素的矢量图层

Python代码

Algorithm IDqgis:randomextractwithinsubsets

import processing
processing.run("algorithm_id", {parameter_dictionary})

这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。

27.1.20.8. 随机选择

获取一个矢量层并选择其要素的子集。该算法不会产生新的层。

根据特征ID,使用百分比或计数值来定义子集中特征的总数,从而随机定义子集。

Default menuVector ► Research Tools

参见

随机抽取

参数

标签

名字

类型

描述

Input layer

INPUT

[vector: any]

选区的矢量层

Method

METHOD

[enumeration]

默认:0

随机选择的方法。以下选项之一:

  • 0-所选要素数

  • 1-所选要素的百分比

Number/percentage of selected features

NUMBER

[number]

默认:10

要选择的要素数量或百分比

产出

标签

名字

类型

描述

Input layer

INPUT

[same as input]

具有所选要素的输入图层

Python代码

Algorithm IDqgis:randomselection

import processing
processing.run("algorithm_id", {parameter_dictionary})

这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。

27.1.20.9. 子集内随机选择

获取一个矢量层并选择其要素的子集。该算法不会产生新的层。

根据特征ID,使用百分比或计数值来定义子集中特征的总数,从而随机定义子集。

百分比/计数值不会应用于整个层,而是应用于每个类别。

类别是根据给定的属性定义的,该属性也被指定为算法的输入参数。

不会创建任何新输出。

Default menuVector ► Research Tools

参数

标签

名字

类型

描述

Input layer

INPUT

[vector: any]

要在其中选择要素的矢量图层

ID field

FIELD

[tablefield: any]

要从中选择要素的输入图层的类别

Method

METHOD

[enumeration]

默认:0

随机选择的方法。以下选项之一:

  • 0-所选要素数

  • 1-所选要素的百分比

Number/percentage of selected features

NUMBER

[number]

默认:10

要选择的要素数量或百分比

产出

标签

名字

类型

描述

Input layer

INPUT

[same as input]

具有所选要素的输入图层

Python代码

Algorithm IDqgis:randomselectionwithinsubsets

import processing
processing.run("algorithm_id", {parameter_dictionary})

这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。

27.1.20.10. 按属性选择

在矢量层中创建选区。

选择要素的标准基于输入图层中的属性值。

参数

标签

名字

类型

描述

Input layer

INPUT

[vector: any]

要在其中选择要素的矢量图层

Selection attribute

FIELD

[tablefield: any]

层的过滤字段

Operator

OPERATOR

[enumeration]

默认:0

有许多不同的操作员可用:

  • 0-=

  • 1-≠

  • 2->

  • 3->=

  • 4-<

  • 5-<=

  • 6-开头是

  • 7-包含

  • 8-为空

  • 9-不为空

  • 10-不包含

Value

任选

VALUE

[string]

待评估的价值

Modify current selection by

METHOD

[enumeration]

默认:0

应该如何管理算法的选择。以下选项之一:

  • 0-创建新选区

  • 1-添加到当前选择

  • 2-从当前选择中删除

  • 3-在当前选择范围内选择

产出

标签

名字

类型

描述

Input layer

INPUT

[same as input]

具有所选要素的输入图层

Python代码

Algorithm IDqgis:selectbyattribute

import processing
processing.run("algorithm_id", {parameter_dictionary})

这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。

27.1.20.11. 按表达式选择

在矢量层中创建选区。

选择要素的标准基于QGIS表达式。有关表达式的更多信息,请参见 表达式

参数

标签

名字

类型

描述

Input layer

INPUT

[vector: any]

输入向量层

Expression

EXPRESSION

[expression]

用于过滤输入图层的表达式

Modify current selection by

METHOD

[enumeration]

默认:0

应该如何管理算法的选择。以下选项之一:

  • 0-创建新选区

  • 1-添加到当前选择

  • 2-从当前选择中删除

  • 3-在当前选择范围内选择

产出

标签

名字

类型

描述

Input layer

INPUT

[same as input]

具有所选要素的输入图层

Python代码

Algorithm IDqgis:selectbyexpression

import processing
processing.run("algorithm_id", {parameter_dictionary})

这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。

27.1.20.12. 按位置选择

在矢量层中创建选区。

选择要素的标准基于每个要素与其他层中要素之间的空间关系。

Default menuVector ► Research Tools

探索空间关系

几何谓词是布尔函数,用于通过比较要素的几何形状是否以及如何共享一部分空间来确定要素与另一个要素之间的空间关系。

../../../../_images/selectbylocation.png

图 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

INPUT

[vector: any]

输入向量层

Where the features (geometric predicate)

PREDICATE

[enumeration] [list]

默认: [0]

输入要素与相交要素应具有的空间关系类型,以便可以选择该要素。以下一项或多项:

  • 0-交集

  • 1-包含

  • 2-不相交

  • 3-相等

  • 4-触摸

  • 5-重叠

  • 6-在

  • 7-克罗斯

如果选择了多个条件,则必须满足其中至少一个条件(或运算)才能提取特征。

By comparing to the features from

INTERSECT

[vector: any]

相交向量层

Modify current selection by

METHOD

[enumeration]

默认:0

应该如何管理算法的选择。以下选项之一:

  • 0-创建新选区

  • 1-添加到当前选择

  • 2-在当前选择范围内选择

  • 3-从当前选择中删除

产出

标签

名字

类型

描述

Input layer

INPUT

[same as input]

具有所选要素的输入图层

Python代码

Algorithm IDqgis:selectbylocation

import processing
processing.run("algorithm_id", {parameter_dictionary})

这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。

27.1.20.13. 在距离内选择

在矢量层中创建选区。无论要素位于与其他参照图层中的要素之间指定的最大距离内,都将被选中。

参数

标签

名字

类型

描述

Select features from

INPUT

[vector: any]

要从中选择要素的输入矢量图层

By comparing to the features from

REFERENCE

[vector: any]

使用要素贴近度的矢量图层

Where the features are within

DISTANCE

[number]

默认:100

用于选择输入要素的参考要素周围的最大距离

Modify current selection by

METHOD

[enumeration]

默认:0

应该如何管理算法的选择。以下选项之一:

  • 0-创建新选区

  • 1-添加到当前选择

  • 2-在当前选择范围内选择

  • 3-从当前选择中删除

产出

标签

名字

类型

描述

Input layer

INPUT

[same as input]

具有所选要素的输入图层

Python代码

Algorithm IDnative:selectwithindistance

import processing
processing.run("algorithm_id", {parameter_dictionary})

这个 algorithm id 当您将鼠标悬停在处理工具箱中的算法上时,将显示。这个 parameter dictionary 提供参数名称和值。看见 从控制台使用处理算法 有关如何从Python控制台运行处理算法的详细信息。