Experimental

Validates vector topology against rule-set checks (self-intersection, overlap, gaps, dangles, point coverage, endpoint snapping) and emits feature-level violations.

data-tools vector topology rules qa

## Parameters

Name | Description | Required | Default
--- | --- | --- | ---
`input` | Input vector path. | Required | `input.gpkg`
`rule_set` | Rule configuration as JSON array/object, CSV string, or file path. Defaults to all 6 MVP rules. Supported: line_must_not_self_intersect, polygon_must_not_overlap, polygon_must_not_have_gaps, line_must_not_have_dangles, point_must_be_covered_by_line, line_endpoints_must_snap_within_tolerance. | Optional | `['line_must_not_self_intersect', 'polygon_must_not_overlap', 'polygon_must_not_have_gaps', 'line_must_not_have_dangles', 'point_must_be_covered_by_line', 'line_endpoints_must_snap_within_tolerance']`
`snap_tolerance` | Tolerance for line_endpoints_must_snap_within_tolerance rule in coordinate units. Defaults to 1.0. | Optional | `1.0`
`output` | Output vector path for violations. If omitted, derived beside input. | Optional | `topology_rule_violations.gpkg`
`report` | Optional JSON summary report path. | Optional | —

## Examples

Validate network topology including self-intersections, dangles, and endpoint snapping.

    wbe.topology_rule_validate(input='network.gpkg', output='network_topology_violations.gpkg', report='network_topology_violations.json', rule_set=['line_must_not_self_intersect', 'line_endpoints_must_snap_within_tolerance'], snap_tolerance=0.5)

## Project Links

WbW Homepage User Manual Support WbW