27.1.20. Vector selection

27.1.20.1. Extract by attribute

Creates two vector layers from an input layer: one will contain only matching features while the second will contain all the non-matching features.

The criteria for adding features to the resulting layer is based on the values of an attribute from the input layer.

参数

标注

名称

类型

描述

输入图层

INPUT

[vector: any]

Layer to extract features from.

Selection attribute

FIELD

[tablefield: any]

Filtering field of the layer

Operator

OPERATOR

[enumeration]

Default: 0

Many different operators are available:

  • 0 --- =

  • 1 --- ≠

  • 2 --- >

  • 3 --- >=

  • 4 --- <

  • 5 --- <=

  • 6 --- begins with

  • 7 --- contains

  • 8 --- is null

  • 9 --- is not null

  • 10 --- does not contain

Value

可选

VALUE

[string]

Value to be evaluated

Extracted (attribute)

OUTPUT

[same as input]

Default: [Create Temporary Layer]

Specify the output vector layer for matching features. One of:

  • Create Temporary Layer (TEMPORARY_OUTPUT)

  • 保存到文件…

  • Save to Geopackage…

  • Save to Database Table…

文件编码也可以在此更改。

Extracted (non-matching)

FAIL_OUTPUT

[same as input]

Default: [Skip output]

Specify the output vector layer for non-matching features. One of:

  • Skip Output

  • Create Temporary Layer (TEMPORARY_OUTPUT)

  • 保存到文件…

  • Save to Geopackage…

  • Save to Database Table…

文件编码也可以在此更改。

输出

标注

名称

类型

描述

Extracted (attribute)

OUTPUT

[same as input]

Vector layer with matching features from the input layer

Extracted (non-matching)

FAIL_OUTPUT

[same as input]

Vector layer with non-matching features from the input layer

Python代码

Algorithm ID: qgis:extractbyattribute

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

当你在数据处理工具箱某个算法前悬停时,算法 id 将会展现。*参数字*将会提供参数的名称与数值。参考详见`数据处理_控制台`以获取如何从Python控制台中运行数据处理算法。

27.1.20.2. Extract by expression

Creates two vector layers from an input layer: one will contain only matching features while the second will contain all the non-matching features.

The criteria for adding features to the resulting layer is based on a QGIS expression. For more information about expressions see the 表达式.

参数

标注

名称

类型

描述

输入图层

INPUT

[vector: any]

Input vector layer

Expression

EXPRESSION

[expression]

Expression to filter the vector layer

Matching features

OUTPUT

[same as input]

Default: [Create Temporary Layer]

Specify the output vector layer for matching features. One of:

  • Create Temporary Layer (TEMPORARY_OUTPUT)

  • 保存到文件…

  • Save to Geopackage…

  • Save to Database Table…

文件编码也可以在此更改。

Non-matching

FAIL_OUTPUT

[same as input]

Default: [Skip output]

Specify the output vector layer for non-matching features. One of:

  • Skip Output

  • Create Temporary Layer (TEMPORARY_OUTPUT)

  • 保存到文件…

  • Save to Geopackage…

  • Save to Database Table…

文件编码也可以在此更改。

输出

标注

名称

类型

描述

Matching features

OUTPUT

[same as input]

Vector layer with matching features from the input layer

Non-matching

FAIL_OUTPUT

[same as input]

Vector layer with non-matching features from the input layer

Python代码

Algorithm ID: qgis:extractbyexpression

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

当你在数据处理工具箱某个算法前悬停时,算法 id 将会展现。*参数字*将会提供参数的名称与数值。参考详见`数据处理_控制台`以获取如何从Python控制台中运行数据处理算法。

27.1.20.3. Extract by location

Creates a new vector layer that only contains matching features from an input layer.

The criteria for adding features to the resulting layer is based on the spatial relationship between each feature and the features in an additional layer.

Exploring spatial relations

Geometric predicates are boolean functions used to determine the spatial relation a feature has with another by comparing whether and how their geometries share a portion of space.

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

图 27.123 Looking for spatial relations between layers

Using the figure above, we are looking for the green circles by spatially comparing them to the orange rectangle feature. Available geometric predicates are:

Intersect

Tests whether a geometry intersects another. Returns 1 (true) if the geometries spatially intersect (share any portion of space - overlap or touch) and 0 if they don’t. In the picture above, this will return circles 1, 2 and 3.

Contain

Returns 1 (true) if and only if no points of b lie in the exterior of a, and at least one point of the interior of b lies in the interior of a. In the picture, no circle is returned, but the rectangle would be if you would look for it the other way around, as it contains circle 1 completely. This is the opposite of are within.

Disjoint

Returns 1 (true) if the geometries do not share any portion of space (no overlap, not touching). Only circle 4 is returned.

Equal

Returns 1 (true) if and only if geometries are exactly the same. No circles will be returned.

Touch

Tests whether a geometry touches another. Returns 1 (true) if the geometries have at least one point in common, but their interiors do not intersect. Only circle 3 is returned.

Overlap

Tests whether a geometry overlaps another. Returns 1 (true) if the geometries share space, are of the same dimension, but are not completely contained by each other. Only circle 2 is returned.

Are within

Tests whether a geometry is within another. Returns 1 (true) if geometry a is completely inside geometry b. Only circle 1 is returned.

Cross

Returns 1 (true) if the supplied geometries have some, but not all, interior points in common and the actual crossing is of a lower dimension than the highest supplied geometry. For example, a line crossing a polygon will cross as a line (true). Two lines crossing will cross as a point (true). Two polygons cross as a polygon (false). In the picture, no circles will be returned.

参数

标注

名称

类型

描述

Extract features from

INPUT

[vector: any]

Input vector layer

Where the features (geometric predicate)

PREDICATE

[enumeration] [list]

Default: [0]

Type of spatial relation the input feature should have with an intersect feature so that it could be selected. One or more of:

  • 0 --- intersect

  • 1 --- contain

  • 2 --- disjoint

  • 3 --- equal

  • 4 --- touch

  • 5 --- overlap

  • 6 --- are within

  • 7 --- cross

If more than one condition is chosen, at least one of them (OR operation) has to be met for a feature to be extracted.

By comparing to the features from

INTERSECT

[vector: any]

Intersection vector layer

Extracted (location)

OUTPUT

[same as input]

Default: [Create temporary layer]

Specify the output vector layer for the features that have the chosen spatial relationship(s) with one or more features in the comparison layer. One of:

  • Create Temporary Layer (TEMPORARY_OUTPUT)

  • 保存到文件…

  • Save to Geopackage…

  • Save to Database Table…

文件编码也可以在此更改。

输出

标注

名称

类型

描述

Extracted (location)

OUTPUT

[same as input]

Vector layer with features from the input layer that have the chosen spatial relationship(s) with one or more features in the comparison layer.

Python代码

Algorithm ID: qgis:extractbylocation

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

当你在数据处理工具箱某个算法前悬停时,算法 id 将会展现。*参数字*将会提供参数的名称与数值。参考详见`数据处理_控制台`以获取如何从Python控制台中运行数据处理算法。

27.1.20.4. Extract within distance

Creates a new vector layer that only contains matching features from an input layer. Features are copied wherever they are within the specified maximum distance from the features in an additional reference layer.

参数

标注

名称

类型

描述

Extract features from

INPUT

[vector: any]

Input vector layer to copy features from

By comparing to the features from

REFERENCE

[vector: any]

Vector layer whose features closeness is used

Where the features are within

DISTANCE

[数字]

Default: 100

The maximum distance around reference features to select input features within

Modify current selection by

METHOD

[enumeration]

Default: 0

How the selection of the algorithm should be managed. One of:

  • 0 --- creating new selection

  • 1 --- adding to current selection

  • 2 --- selecting within current selection

  • 3 --- removing from current selection

Extracted (location)

OUTPUT

[same as input]

Default: [Create temporary layer]

Specify the output vector layer for the features that are within the set distance from reference features. One of:

  • Create Temporary Layer (TEMPORARY_OUTPUT)

  • 保存到文件…

  • Save to Geopackage…

  • Save to Database Table…

文件编码也可以在此更改。

输出

标注

名称

类型

描述

Extracted (location)

OUTPUT

[same as input]

Vector layer with features from the input layer matching the condition of distance from reference features

Python代码

Algorithm ID: native:extractwithindistance

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

当你在数据处理工具箱某个算法前悬停时,算法 id 将会展现。*参数字*将会提供参数的名称与数值。参考详见`数据处理_控制台`以获取如何从Python控制台中运行数据处理算法。

27.1.20.5. Filter by geometry type

Filters features by their geometry type. Incoming features will be directed to different outputs based on whether they have a point, line or polygon geometry.

参数

标注

名称

类型

描述

输入图层

INPUT

[vector: any]

Layer to evaluate

输出

标注

名称

类型

描述

Point features

可选

POINTS

[vector: point]

Layer with points

Line features

可选

LINES

[vector: line]

Layer with lines

Polygon features

可选

POLYGONS

[vector: polygon]

Layer with polygons

Features with no geometry

可选

NO_GEOMETRY

[table]

Geometry-less vector layer

Python代码

Algorithm ID: native:filterbygeometry

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

当你在数据处理工具箱某个算法前悬停时,算法 id 将会展现。*参数字*将会提供参数的名称与数值。参考详见`数据处理_控制台`以获取如何从Python控制台中运行数据处理算法。

27.1.20.6. Random extract

Takes a vector layer and generates a new one that contains only a subset of the features in the input layer.

The subset is defined randomly, based on feature IDs, using a percentage or count value to define the total number of features in the subset.

参数

标注

名称

类型

描述

输入图层

INPUT

[vector: any]

Source vector layer to select the features from

Method

METHOD

[enumeration]

Default: 0

Random selection methods. One of:

  • 0 --- Number of selected features

  • 1 --- Percentage of selected features

Number/percentage of selected features

NUMBER

[数字]

Default: 10

Number or percentage of features to select

Extracted (random)

OUTPUT

[vector: any]

Default: [Create temporary layer]

Specify the output vector layer for the randomly selected features. One of:

  • Create Temporary Layer (TEMPORARY_OUTPUT)

  • 保存到文件…

  • Save to Geopackage…

  • Save to Database Table…

文件编码也可以在此更改。

输出

标注

名称

类型

描述

Extracted (random)

OUTPUT

[same as input]

Vector layer containing randomly selected features from the input layer

Python代码

Algorithm ID: qgis:randomextract

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

当你在数据处理工具箱某个算法前悬停时,算法 id 将会展现。*参数字*将会提供参数的名称与数值。参考详见`数据处理_控制台`以获取如何从Python控制台中运行数据处理算法。

27.1.20.7. Random extract within subsets

Takes a vector layer and generates a new one that contains only a subset of the features in the input layer.

The subset is defined randomly, based on feature IDs, using a percentage or count value to define the total number of features in the subset. The percentage/count value is not applied to the whole layer, but instead to each category. Categories are defined according to a given attribute.

参数

标注

名称

类型

描述

输入图层

INPUT

[vector: any]

Vector layer to select the features from

ID field

FIELD

[tablefield: any]

Category of the source vector layer to select the features from

Method

METHOD

[enumeration]

Default: 0

Random selection method. One of:

  • 0 --- Number of selected features

  • 1 --- Percentage of selected features

Number/percentage of selected features

NUMBER

[数字]

Default: 10

Number or percentage of features to select

Extracted (random stratified)

OUTPUT

[same as input]

Default: [Create temporary layer]

Specify the output vector layer for the randomly selected features. One of:

  • Create Temporary Layer (TEMPORARY_OUTPUT)

  • 保存到文件…

  • Save to Geopackage…

  • Save to Database Table…

文件编码也可以在此更改。

输出

标注

名称

类型

描述

Extracted (random stratified)

OUTPUT

[same as input]

Vector layer containing randomly selected features from the input layer

Python代码

Algorithm ID: qgis:randomextractwithinsubsets

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

当你在数据处理工具箱某个算法前悬停时,算法 id 将会展现。*参数字*将会提供参数的名称与数值。参考详见`数据处理_控制台`以获取如何从Python控制台中运行数据处理算法。

27.1.20.8. Random selection

Takes a vector layer and selects a subset of its features. No new layer is generated by this algorithm.

The subset is defined randomly, based on feature IDs, using a percentage or count value to define the total number of features in the subset.

Default menu: Vector ► Research Tools

参数

标注

名称

类型

描述

输入图层

INPUT

[vector: any]

Vector layer for the selection

Method

METHOD

[enumeration]

Default: 0

Random selection method. One of:

  • 0 --- Number of selected features

  • 1 --- Percentage of selected features

Number/percentage of selected features

NUMBER

[数字]

Default: 10

Number or percentage of features to select

输出

标注

名称

类型

描述

输入图层

INPUT

[same as input]

The input layer with features selected

Python代码

Algorithm ID: qgis:randomselection

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

当你在数据处理工具箱某个算法前悬停时,算法 id 将会展现。*参数字*将会提供参数的名称与数值。参考详见`数据处理_控制台`以获取如何从Python控制台中运行数据处理算法。

27.1.20.9. Random selection within subsets

Takes a vector layer and selects a subset of its features. No new layer is generated by this algorithm.

The subset is defined randomly, based on feature IDs, using a percentage or count value to define the total number of features in the subset.

The percentage/count value is not applied to the whole layer, but instead to each category.

Categories are defined according to a given attribute, which is also specified as an input parameter for the algorithm.

No new outputs are created.

Default menu: Vector ► Research Tools

参数

标注

名称

类型

描述

输入图层

INPUT

[vector: any]

Vector layer to select features in

ID field

FIELD

[tablefield: any]

Category of the input layer to select the features from

Method

METHOD

[enumeration]

Default: 0

Random selection method. One of:

  • 0 --- Number of selected features

  • 1 --- Percentage of selected features

Number/percentage of selected features

NUMBER

[数字]

Default: 10

Number or percentage of features to select

输出

标注

名称

类型

描述

输入图层

INPUT

[same as input]

The input layer with features selected

Python代码

Algorithm ID: qgis:randomselectionwithinsubsets

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

当你在数据处理工具箱某个算法前悬停时,算法 id 将会展现。*参数字*将会提供参数的名称与数值。参考详见`数据处理_控制台`以获取如何从Python控制台中运行数据处理算法。

27.1.20.10. Select by attribute

Creates a selection in a vector layer.

The criteria for selecting features is based on the values of an attribute from the input layer.

参数

标注

名称

类型

描述

输入图层

INPUT

[vector: any]

Vector layer to select features in

Selection attribute

FIELD

[tablefield: any]

Filtering field of the layer

Operator

OPERATOR

[enumeration]

Default: 0

Many different operators are available:

  • 0 --- =

  • 1 --- ≠

  • 2 --- >

  • 3 --- >=

  • 4 --- <

  • 5 --- <=

  • 6 --- begins with

  • 7 --- contains

  • 8 --- is null

  • 9 --- is not null

  • 10 --- does not contain

Value

可选

VALUE

[string]

Value to be evaluated

Modify current selection by

METHOD

[enumeration]

Default: 0

How the selection of the algorithm should be managed. One of:

  • 0 --- creating new selection

  • 1 --- adding to current selection

  • 2 --- removing from current selection

  • 3 --- selecting within current selection

输出

标注

名称

类型

描述

输入图层

INPUT

[same as input]

The input layer with features selected

Python代码

Algorithm ID: qgis:selectbyattribute

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

当你在数据处理工具箱某个算法前悬停时,算法 id 将会展现。*参数字*将会提供参数的名称与数值。参考详见`数据处理_控制台`以获取如何从Python控制台中运行数据处理算法。

27.1.20.11. Select by expression

Creates a selection in a vector layer.

The criteria for selecting features is based on a QGIS expression. For more information about expressions see the 表达式.

参数

标注

名称

类型

描述

输入图层

INPUT

[vector: any]

Input vector layer

Expression

EXPRESSION

[expression]

Expression to filter the input layer

Modify current selection by

METHOD

[enumeration]

Default: 0

How the selection of the algorithm should be managed. One of:

  • 0 --- creating new selection

  • 1 --- adding to current selection

  • 2 --- removing from current selection

  • 3 --- selecting within current selection

输出

标注

名称

类型

描述

输入图层

INPUT

[same as input]

The input layer with features selected

Python代码

Algorithm ID: qgis:selectbyexpression

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

当你在数据处理工具箱某个算法前悬停时,算法 id 将会展现。*参数字*将会提供参数的名称与数值。参考详见`数据处理_控制台`以获取如何从Python控制台中运行数据处理算法。

27.1.20.12. Select by location

Creates a selection in a vector layer.

The criteria for selecting features is based on the spatial relationship between each feature and the features in an additional layer.

Default menu: Vector ► Research Tools

Exploring spatial relations

Geometric predicates are boolean functions used to determine the spatial relation a feature has with another by comparing whether and how their geometries share a portion of space.

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

图 27.124 Looking for spatial relations between layers

Using the figure above, we are looking for the green circles by spatially comparing them to the orange rectangle feature. Available geometric predicates are:

Intersect

Tests whether a geometry intersects another. Returns 1 (true) if the geometries spatially intersect (share any portion of space - overlap or touch) and 0 if they don’t. In the picture above, this will return circles 1, 2 and 3.

Contain

Returns 1 (true) if and only if no points of b lie in the exterior of a, and at least one point of the interior of b lies in the interior of a. In the picture, no circle is returned, but the rectangle would be if you would look for it the other way around, as it contains circle 1 completely. This is the opposite of are within.

Disjoint

Returns 1 (true) if the geometries do not share any portion of space (no overlap, not touching). Only circle 4 is returned.

Equal

Returns 1 (true) if and only if geometries are exactly the same. No circles will be returned.

Touch

Tests whether a geometry touches another. Returns 1 (true) if the geometries have at least one point in common, but their interiors do not intersect. Only circle 3 is returned.

Overlap

Tests whether a geometry overlaps another. Returns 1 (true) if the geometries share space, are of the same dimension, but are not completely contained by each other. Only circle 2 is returned.

Are within

Tests whether a geometry is within another. Returns 1 (true) if geometry a is completely inside geometry b. Only circle 1 is returned.

Cross

Returns 1 (true) if the supplied geometries have some, but not all, interior points in common and the actual crossing is of a lower dimension than the highest supplied geometry. For example, a line crossing a polygon will cross as a line (true). Two lines crossing will cross as a point (true). Two polygons cross as a polygon (false). In the picture, no circles will be returned.

参数

标注

名称

类型

描述

Select features from

INPUT

[vector: any]

Input vector layer

Where the features (geometric predicate)

PREDICATE

[enumeration] [list]

Default: [0]

Type of spatial relation the input feature should have with an intersect feature so that it could be selected. One or more of:

  • 0 --- intersect

  • 1 --- contain

  • 2 --- disjoint

  • 3 --- equal

  • 4 --- touch

  • 5 --- overlap

  • 6 --- are within

  • 7 --- cross

If more than one condition is chosen, at least one of them (OR operation) has to be met for a feature to be extracted.

By comparing to the features from

INTERSECT

[vector: any]

Intersection vector layer

Modify current selection by

METHOD

[enumeration]

Default: 0

How the selection of the algorithm should be managed. One of:

  • 0 --- creating new selection

  • 1 --- adding to current selection

  • 2 --- selecting within current selection

  • 3 --- removing from current selection

输出

标注

名称

类型

描述

输入图层

INPUT

[same as input]

The input layer with features selected

Python代码

Algorithm ID: qgis:selectbylocation

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

当你在数据处理工具箱某个算法前悬停时,算法 id 将会展现。*参数字*将会提供参数的名称与数值。参考详见`数据处理_控制台`以获取如何从Python控制台中运行数据处理算法。

27.1.20.13. Select within distance

creates a selection in a vector layer. Features are selected wherever they are within the specified maximum distance from the features in an additional reference layer.

参数

标注

名称

类型

描述

Select features from

INPUT

[vector: any]

Input vector layer to select features from

By comparing to the features from

REFERENCE

[vector: any]

Vector layer whose features closeness is used

Where the features are within

DISTANCE

[数字]

Default: 100

The maximum distance around reference features to select input features

Modify current selection by

METHOD

[enumeration]

Default: 0

How the selection of the algorithm should be managed. One of:

  • 0 --- creating new selection

  • 1 --- adding to current selection

  • 2 --- selecting within current selection

  • 3 --- removing from current selection

输出

标注

名称

类型

描述

输入图层

INPUT

[same as input]

The input layer with features selected

Python代码

Algorithm ID: native:selectwithindistance

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

当你在数据处理工具箱某个算法前悬停时,算法 id 将会展现。*参数字*将会提供参数的名称与数值。参考详见`数据处理_控制台`以获取如何从Python控制台中运行数据处理算法。