Surface partitioning — Task
Used in: Urban Design Visualisation (Example). Implementation: Surface partitioning (Recipe - QGIS).
Surface partitioning is the Task of turning a collection of edge lines — road edges, kerbs, building outlines — into a planar partition: a set of polygons that covers an area completely, with no gaps and no overlaps, each classified by surface type. Many national datasets record the edges of streets and pavements but not the areas between them; this Task recovers the areas.
The planar partition is itself a topological constraint (the fifth commitment of the Domain of Discourse), and the Task is mostly about satisfying it.
Task Schema (tool-agnostic)
- Select the boundary sources (decision point) — which line layers are real boundaries? Edge lines are; centre lines are not, and must be excluded, or every road is split lengthwise.
- Collect and node the edges (Operator) — merge all boundary lines into one layer, snap near-coincident ends within a small tolerance (e.g., 0.3 m) and split lines where they cross.
- Find the gaps (Operator) — mark dangles: loose line ends that prevent areas from closing.
- Close gaps and add missing boundaries (decision point) — by hand: close each gap, delete overshoots, and draw the boundaries the data lacks (plaza edges, planting beds). This is where the site visit and the orthophoto come in.
- Polygonize (Operator) — build polygons from the closed line network. Polygons inside building footprints are classed
building. - Classify (Operator + decision point) — a spatial join with the centre lines (and their road type) gives a
hint; the practitioner sets the final nominal class: road, cycle path, footpath / pavement, plaza, parking, green, water, building, other. - Iterate — a missing polygon means a remaining gap: return to step 3.
Output: a classified surface layer satisfying the planar-partition constraint. Precision matters where the map will be read closely; elsewhere it can be rough, and that should be stated.