24.1.3. Check Geometry
24.1.3.1. Dangle-end lines
Detects dangle-end lines in line geometries and reports them as errors. A dangle-end line is a line feature that terminates at a vertex connected to only one segment, resulting in an endpoint without a proper connection.

Fig. 24.2 Errors for dangle-end lines are reported on line features, and entire features with dangling ends are highlighted in red for clarity.
Parameters
Basic parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Input layer |
|
[vector: line] |
Layer with the geometries to check. |
Unique feature identifier |
|
[tablefield: any] |
Field storing unique values for feature identification. |
Dangle-end errors |
|
[vector: point] Default: |
Specification of the output layer containing the errors location. One of:
The file encoding can also be changed here. |
Dangle-end features Optional |
|
[vector: line] Default: |
Line layer containing the identified dangle-end line features. One of:
The file encoding can also be changed here. |
Advanced parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Tolerance |
|
[numeric: integer] Default: 8 |
Numerical precision of geometric operations, given as an integer n, meaning that two vertices less than 10-n apart (in map units) are considered to be merged. |
Outputs
Label |
Name |
Type |
Description |
---|---|---|---|
Dangle-end errors |
|
[vector: point] |
Output point layer representing the error locations and information.
Other than the
|
Dangle-end features |
|
[vector: line] |
Output line layer containing the input dangle-end features. If no dangle-end features are found, the output layer will be empty. |
Python code
Algorithm ID: native:checkgeometrydangle
import processing
processing.run("algorithm_id", {parameter_dictionary})
The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.
24.1.3.2. Duplicated geometries
Checks for duplicated geometries in a vector layer, and reports them as errors.
Parameters
Basic parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Input layer |
|
[vector: geometry] |
Layer with the geometries to check |
Unique feature identifier |
|
[tablefield: any] |
Field storing unique values for feature identification |
Duplicate geometries errors |
|
[vector: point] Default: |
Specification of the output layer containing the errors location. One of:
The file encoding can also be changed here. |
Duplicate geometries Optional |
|
[vector: same as input] Default: |
Specification of the output layer containing the geometries that were found to be duplicated. One of:
The file encoding can also be changed here. |
Advanced parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Tolerance |
|
[numeric: integer] Default: 8 |
Numerical precision of geometric operations, given as an integer n, meaning that two vertices less than 10-n apart (in map units) are considered to be merged. |
Outputs
Label |
Name |
Type |
Description |
---|---|---|---|
Duplicate geometries errors |
|
[vector: point] |
Output point layer representing the error locations and information.
Other than the
|
Duplicate geometries |
|
[vector: same as input] |
Output layer containing the geometries that were found to be duplicated.
Available fields are the same as in the |
Python code
Algorithm ID: native:checkgeometryduplicate
import processing
processing.run("algorithm_id", {parameter_dictionary})
The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.
24.1.3.3. Duplicated vertices
Checks for duplicated vertices in line or polygon geometries, and reports them as errors.
Parameters
Basic parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Input layer |
|
[vector: line, polygon] |
Layer with the geometries to check |
Unique feature identifier |
|
[tablefield: any] |
Field storing unique values for feature identification |
Duplicated vertices errors |
|
[vector: point] Default: |
Specification of the output layer containing the errors location. One of:
The file encoding can also be changed here. |
Duplicated vertices features Optional |
|
[vector: same as input] Default: |
Specification of the output layer containing the features with duplicated vertices. One of:
|
Advanced parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Tolerance |
|
[numeric: integer] Default: 8 |
Numerical precision of geometric operations, given as an integer n, meaning that two vertices less than 10-n apart (in map units) are considered to be merged. |
Outputs
Label |
Name |
Type |
Description |
---|---|---|---|
Duplicated vertices errors |
|
[vector: point] |
Output point layer representing the error locations and information.
Other than the
|
Duplicated vertices features |
|
[vector: same as input] |
Output layer containing the features with duplicated vertices.
Available fields are the same as in the |
Python code
Algorithm ID: native:checkgeometryduplicatenodes
import processing
processing.run("algorithm_id", {parameter_dictionary})
The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.
24.1.3.4. Features inside polygon
Checks the input geometries contained in the polygons from the polygon layers list. A polygon layer can be checked against itself. Any contained features are reported as errors.

Fig. 24.3 Reporting errors on features inside a polygon.
See also
Parameters
Basic parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Input layer |
|
[vector: geometry] |
Layer with the geometries to check. |
Unique feature identifier |
|
[tablefield: any] |
Field storing unique values for feature identification. |
Polygon layers |
|
[vector: polygon][list] |
List of polygon layers to check against. |
Errors from contained features |
|
[vector: point] Default: |
Point layer representing the contained features. One of:
The file encoding can also be changed here. |
Contained features Optional |
|
[vector: same as input] Default: |
Specification of the output layer containing features within the checked polygons. One of:
The file encoding can also be changed here. |
Advanced parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Tolerance |
|
[numeric: integer] Default: 8 |
Numerical precision of geometric operations, given as an integer n, meaning that two vertices less than 10-n apart (in map units) are considered to be merged. |
Outputs
Label |
Name |
Type |
Description |
---|---|---|---|
Errors from contained features |
|
[vector: point] |
Output point layer representing the error locations and information.
Other than the
|
Contained features |
|
[vector: same as input] |
Output layer containing features within the checked polygons.
Available fields are the same as in the |
Python code
Algorithm ID: native:checkgeometrycontained
import processing
processing.run("algorithm_id", {parameter_dictionary})
The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.
24.1.3.5. Holes
Detects holes in polygon geometries and reports them as errors.

Fig. 24.4 Reporting errors for holes on a polygon feature.
See also
Parameters
Basic parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Input layer |
|
[vector: polygon] |
Layer with the geometries to check |
Unique feature identifier |
|
[tablefield: any] |
Field storing unique values for feature identification |
Holes errors |
|
[vector: point] Default: |
Specification of the output layer containing the errors location. One of:
The file encoding can also be changed here. |
Polygons with holes Optional |
|
[vector: polygon] Default: |
Polygon layer with the features containing holes. One of:
The file encoding can also be changed here. |
Advanced parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Tolerance |
|
[numeric: integer] Default: 8 |
Numerical precision of geometric operations, given as an integer n, meaning that two vertices less than 10-n apart (in map units) are considered to be merged. |
Outputs
Label |
Name |
Type |
Description |
---|---|---|---|
Holes errors |
|
[vector: point] |
Output point layer representing the error locations and information.
Other than the
|
Polygon with holes |
|
[vector: polygon] |
Output polygon layer with features containing holes.
If no holes are found, the output layer will be empty.
Available fields are the same as in the |
Python code
Algorithm ID: native:checkgeometryhole
import processing
processing.run("algorithm_id", {parameter_dictionary})
The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.
24.1.3.6. Lines intersecting each other
Checks intersections between line geometries within a layer. Intersections between two different lines are errors.
See also
Parameters
Basic parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Input layer |
|
[vector: line] |
Layer with the geometries to check. |
Unique feature identifier |
|
[tablefield: any] |
Field storing unique values for feature identification. |
Intersection errors |
|
[vector: point] Default: |
Specification of the output layer containing the intersections location. One of:
The file encoding can also be changed here. |
Intersecting feature Optional |
|
[vector: line] Default: |
Specification of the output layer for features intersecting each other. One of:
The file encoding can also be changed here. |
Advanced parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Tolerance |
|
[numeric: integer] Default: 8 |
Numerical precision of geometric operations, given as an integer n, meaning that two vertices less than 10-n apart (in map units) are considered to be merged. |
Outputs
Label |
Name |
Type |
Description |
---|---|---|---|
Intersection errors |
|
[vector: point] |
Output point layer representing the error locations and information.
Other than the
|
Intersecting feature |
|
[vector: line] |
Output layer containing, for each identified intersection, the feature (with same |
Python code
Algorithm ID: native:checkgeometrylineintersection
import processing
processing.run("algorithm_id", {parameter_dictionary})
The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.
24.1.3.7. Lines intersecting other layer
Checks if the input line layer features intersect with the check layer features. An input feature that intersects with a check layer feature is an error.
See also
Parameters
Basic parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Input layer |
|
[vector: line] |
Layer with the geometries to check. |
Unique feature identifier |
|
[tablefield: any] |
Field storing unique values for feature identification. |
Check layer |
|
[vector: line, polygon] |
Layer with the geometries to check against. |
Line intersecting other layer errors |
|
[vector: point] Default: |
Specification of the output point layer containing the locations of intersection errors. One of:
The file encoding can also be changed here. |
Line intersecting other layer features Optional |
|
[line] Default: |
Line layer with the input features that intersect features in the check layer. One of:
The file encoding can also be changed here. |
Advanced parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Tolerance |
|
[numeric: integer] Default: 8 |
Numerical precision of geometric operations, given as an integer n, meaning that two vertices less than 10-n apart (in map units) are considered to be merged. |
Outputs
Label |
Name |
Type |
Description |
---|---|---|---|
Line intersecting other layer errors |
|
[vector: point] |
Output point layer representing the error location and information.
Other than the
|
Line intersecting other layer features |
|
[vector: line] |
Output layer containing, for each identified intersection, the input feature it belongs to.
If no intersections are found, the output layer will be empty.
Additional fields are available (see |
Python code
Algorithm ID: native:checkgeometrylinelayerintersection
import processing
processing.run("algorithm_id", {parameter_dictionary})
The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.
24.1.3.8. Overlaps
Calculates overlapping areas in polygon geometries, and reports areas smaller than a given minimum as errors.

Fig. 24.5 Hashed polygons indicate overlapping areas smaller than the specified minimum.
See also
Parameters
Basic parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Input layer |
|
[vector: polygon] |
Layer with the geometries to check. |
Unique feature identifier |
|
[tablefield: any] |
Field storing unique values for feature identification. |
Min overlap area |
|
[numeric: double] |
Minimum area of the overlap to be reported as an error. If set to 0, all overlaps are reported. |
Overlap errors |
|
[vector: point] Default: |
Specification of the output layer containing centroid points of the overlapping areas. One of:
The file encoding can also be changed here. |
Overlap features Optional |
|
[vector: polygon] Default: |
Specification of the output layer for features containing overlaps. One of:
The file encoding can also be changed here. |
Advanced parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Tolerance |
|
[numeric: integer] Default: 8 |
Numerical precision of geometric operations, given as an integer n, meaning that two vertices less than 10-n apart (in map units) are considered to be merged. |
Outputs
Label |
Name |
Type |
Description |
---|---|---|---|
Overlap errors |
|
[vector: point] |
Output point layer representing the error locations and information.
Other than the
|
Overlap features |
|
[vector: polygon] |
Output layer containing the overlapping areas.
Additional fields are available (see |
Python code
Algorithm ID: native:checkgeometryoverlap
import processing
processing.run("algorithm_id", {parameter_dictionary})
The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.
24.1.3.9. Self-intersections
Detects self-intersections in line or polygon geometries, and reports them as errors.

Fig. 24.6 Reporting errors on features with self-intersections.
See also
Parameters
Basic parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Input layer |
|
[vector: line, polygon] |
Layer with the geometries to check |
Unique feature identifier |
|
[tablefield: any] |
Field storing unique values for feature identification |
Self-intersecting errors |
|
[vector: point] Default: |
Specification of the output layer containing the errors location. One of:
The file encoding can also be changed here. |
Self-intersecting features Optional |
|
[same as input] Default: |
Line or polygon layer containing self-intersected features. One of:
The file encoding can also be changed here. |
Advanced parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Tolerance |
|
[numeric: integer] Default: 8 |
Numerical precision of geometric operations, given as an integer n, meaning that two vertices less than 10-n apart (in map units) are considered to be merged. |
Outputs
Label |
Name |
Type |
Description |
---|---|---|---|
Self-intersecting errors |
|
[vector: point] |
Output point layer representing the error locations and information.
Other than the
|
Self-intersecting features |
|
[vector: line, polygon] |
Output polygon or line layer with features containing the self-intersecting features.
If no self-intersecting features are found, the output layer will be empty.
Available fields are the same as in the |
Python code
Algorithm ID: native:checkgeometryselfintersection
import processing
processing.run("algorithm_id", {parameter_dictionary})
The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.
24.1.3.10. Small angles
Compares the angles within line or polygon geometries to a specified threshold, and reports as error any angle below that value.

Fig. 24.7 Reporting errors on a line feature for angles lower than 15°.
See also
Parameters
Basic parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Input layer |
|
[vector: line, polygon] |
Layer with the geometries to check. |
Unique feature identifier |
|
[tablefield: any] |
Field storing unique values for feature identification. |
Minimum angle |
|
[numeric: double] |
Allowed minimum angle between adjacent segments in a feature’s geometry. Any angle below this threshold is reported as error. |
Small angle errors |
|
[vector: point] Default: |
Specification of the output layer containing the errors location. One of:
The file encoding can also be changed here. |
Advanced parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Tolerance |
|
[numeric: integer] Default: 8 |
Numerical precision of geometric operations, given as an integer n, meaning that two vertices less than 10-n apart (in map units) are considered to be merged. |
Outputs
Label |
Name |
Type |
Description |
---|---|---|---|
Small angle errors |
|
[vector: point] |
Output point layer representing the error locations and information (the ID and name of the input layer, the ID, geometry part, ring and vertex index of the erroneous feature, x and y coordinates of the error and the value of the erroneous angle). |
Python code
Algorithm ID: native:checkgeometryangle
import processing
processing.run("algorithm_id", {parameter_dictionary})
The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.
24.1.3.11. Small segments
Calculates length of individual segments in line or polygon geometries, and reports segments shorter than a minimum length as errors.

Fig. 24.8 Reporting errors (in red) on single line segments shorter than the given threshold.
See also
Parameters
Basic parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Input layer |
|
[vector: line, polygon] |
Layer with the geometries to check. |
Unique feature identifier |
|
[tablefield: any] |
Field storing unique values for feature identification. |
Minimum segment length |
|
[numeric: double] Default: 0.0 |
Minimum length of segments to be considered valid, in map units. |
Short segments errors |
|
[vector: point] Default: |
Specification of the output layer containing centroid of short segments. One of:
The file encoding can also be changed here. |
Short segments features Optional |
|
[vector: same as input] Default: |
Specification of the output layer for features containing short segments. One of:
The file encoding can also be changed here. |
Advanced parameters
Label |
Name |
Type |
Description |
---|---|---|---|
Tolerance |
|
[numeric: integer] Default: 8 |
Numerical precision of geometric operations, given as an integer n, meaning that two vertices less than 10-n apart (in map units) are considered to be merged. |
Outputs
Label |
Name |
Type |
Description |
---|---|---|---|
Short segments errors |
|
[vector: point] |
Output point layer representing the error locations and information.
Other than the
|
Short segments features |
|
[vector: same as input] |
Output layer containing, for each identified short segment, the feature it belongs to.
Additional fields are available (see |
Python code
Algorithm ID: native:checkgeometrysegmentlength
import processing
processing.run("algorithm_id", {parameter_dictionary})
The algorithm id is displayed when you hover over the algorithm in the Processing Toolbox. The parameter dictionary provides the parameter NAMEs and values. See Using processing algorithms from the console for details on how to run processing algorithms from the Python console.