Rules¶
Run a rule as topology-checker <group> <rule>, or use rule = "<group>/<rule>" in topology.toml. topology-checker <group> <rule> --help prints the exact semantics.
Points (10)¶
| Rule | Needs | Description | ArcGIS | QGIS |
|---|---|---|---|---|
point/must-not-overlap |
one point layer | Find duplicate points within the distance tolerance. | Must Be Disjoint | Must not have duplicates |
point/must-not-overlap-with |
two point layers | Find duplicate points across two layers within the distance tolerance. | ||
point/must-be-inside |
point layer + polygon layer | Find points outside the polygons, including points on or within the distance tolerance of their edges. | Must Be Properly Inside Polygons | Must be inside |
point/must-be-covered-by-lines |
point layer + line layer | Find points without covering linework, including line endpoints. | Must Be Covered By (Point-Line) | Must be covered by |
point/must-be-covered-by-line-endpoints |
point layer + line layer | Find points without a covering open line endpoint. Closed line parts have no endpoints. | Must Be Covered By Endpoint Of | Must be covered by endpoints of |
point/must-be-covered-by-polygon-boundaries |
point layer + polygon layer | Find points away from polygon edges, including holes and shared parcel edges. | Must Be Covered By Boundary Of (Point-Area) | |
point/must-be-covered-by-polygons |
point layer + polygon layer | Find points outside polygon areas and farther than the tolerance from their edges. Boundary points are allowed. | ||
point/must-not-be-inside-polygons |
point layer + polygon layer | Find points strictly inside polygons. Points on or within tolerance of their edges are allowed. | ||
point/must-not-intersect-lines |
point layer + line layer | Find points touching linework anywhere, including endpoints, within tolerance. | ||
point/must-not-intersect-polygons |
point layer + polygon layer | Find points inside polygons or touching their edges within tolerance. |
Lines (19)¶
| Rule | Needs | Description | ArcGIS | QGIS |
|---|---|---|---|---|
line/must-not-have-dangles |
one line layer | Find unconnected line endpoints. | Must Not Have Dangles | Must not have dangles |
line/must-not-have-pseudo-nodes |
one line layer | Find joins connecting exactly two distinct features at their endpoints. Closed loops are allowed. | Must Not Have Pseudo Nodes | Must not have pseudo nodes |
line/must-not-overlap |
one line layer | Find shared line segments between distinct features. Crossings and overlaps within one feature are excluded. | Must Not Overlap | |
line/must-not-overlap-with |
two line layers | Find shared line segments across two layers. Crossings are excluded. | Must Not Overlap With | |
line/must-not-self-overlap |
one line layer | Find line segments traced more than once by the same feature, including across its parts. | Must Not Self-Overlap | |
line/must-not-intersect |
one line layer | Find overlaps and crossings between distinct features away from their endpoints. Endpoint touches are allowed. | Must Not Intersect | |
line/must-not-intersect-with |
two line layers | Find overlaps and crossings across two layers away from their endpoints. Endpoint touches are allowed. | Must Not Intersect With | |
line/must-not-intersect-or-touch-interior |
one line layer | Find overlaps, crossings and endpoint touches on the interior of another feature. Touches only at both features' endpoints are allowed. | Must Not Intersect Or Touch Interior | |
line/must-not-intersect-or-touch-interior-with |
two line layers | Find overlaps, crossings and endpoint touches on a line's interior across two layers. Touches only at both features' endpoints are allowed. | Must Not Intersect Or Touch Interior With | |
line/must-not-self-intersect |
one line layer | Find overlaps and crossings within one feature. Closed loops and self-touches are allowed. | Must Not Self-Intersect | |
line/must-be-inside |
line layer + polygon layer | Find line pieces outside the polygons that are longer than the distance tolerance. Lines on polygon edges are allowed. | Must Be Inside | |
line/endpoints-must-be-covered-by-points |
line layer + point layer | Find open line endpoints without a covering point. Closed line parts have no endpoints. | Endpoint Must Be Covered By | End points must be covered by |
line/must-be-covered-by-polygon-boundaries |
line layer + polygon layer | Find line pieces that do not follow polygon edges, including holes and shared edges. | Must Be Covered By Boundary Of (Line-Area) | |
line/must-not-cross-polygon-boundaries |
line layer + polygon layer | Find lines entering or leaving polygons through exterior or hole edges. Tangencies, endpoint touches and shared segments are allowed. | ||
line/must-be-properly-inside-polygons |
line layer + polygon layer | Find whole line parts that leave polygon coverage or come within tolerance of its boundary. | ||
line/must-not-overlap-with-polygons |
line layer + polygon layer | Find line pieces inside polygons or along their edges, longer than tolerance. Isolated contacts are allowed. | ||
line/must-not-overlap-polygon-boundaries |
line layer + polygon layer | Find line pieces shared with polygon edges, longer than tolerance. Crossings and isolated contacts are allowed. | ||
line/must-not-intersect-polygons |
line layer + polygon layer | Find any line contact with polygons, including interior pieces, shared edges and isolated touches within tolerance. | ||
line/endpoints-must-be-covered-by-polygon-boundaries |
line layer + polygon layer | Find open line endpoints away from polygon exterior or hole edges. Closed line parts have no endpoints. |
Polygons (7)¶
| Rule | Needs | Description | ArcGIS | QGIS |
|---|---|---|---|---|
polygon/must-not-overlap |
one polygon layer | Find shared areas between distinct polygon features, ignoring slivers below the tolerance. | Must Not Overlap | Must not overlap |
polygon/must-not-overlap-with |
two polygon layers | Find shared polygon areas across two layers, ignoring slivers below the tolerance. | Must Not Overlap With | Must not overlap with |
polygon/must-not-have-gaps |
one polygon layer | Find enclosed gaps between polygons, ignoring sliver gaps below the tolerance. Also report outer boundaries separately. | Must Not Have Gaps | Must not have gaps |
polygon/boundaries-must-be-covered-by-lines |
polygon layer + line layer | Find polygon edge pieces without covering linework, including hole edges. | Boundary Must Be Covered By (Area-Line) | |
polygon/must-contain-point |
polygon layer + point layer | Find polygons without a strictly interior point feature. All parts of a point feature must qualify. | Contains Point | Must contain |
polygon/must-contain-one-point |
polygon layer + point layer | Find polygons and point features without a one-to-one interior assignment. Count feature IDs, including multipart features. | Contains One Point | |
polygon/must-not-contain-points |
polygon layer + point layer | Find strictly contained points, with the polygon as the primary feature. Boundary points are allowed. |
All geometries (2)¶
| Rule | Needs | Description | ArcGIS | QGIS |
|---|---|---|---|---|
geometry/must-not-be-multipart |
one layer of any geometry type | Find features with more than one part. A Multi geometry with only one part is allowed. | Must Be Single Part (lines) | Must not have multi-part geometries |
geometry/must-not-be-contained-by |
two layers of any geometry type | Find whole features contained by an individual feature in the other layer. Equal geometries are allowed. No tolerance buffer is used. | Check Geometry (Contained) |