Building heights from elevation models — Task

Used in: Urban Design Visualisation (Example). Implementation: Building heights from DHM (Recipe - QGIS).

Building heights from elevation models is the Task of giving each building footprint a height above ground — and, where needed, an eave height and a roof type — by comparing a surface model (DSM, the top of everything) with a terrain model (DTM, the bare ground). Footprint registers rarely carry reliable heights; elevation models carry heights, but not buildings. This Task joins the two.

In workflow terms it sits at Recording the Domain of Discourse: it produces an attribute of an already-accepted Cognised Existence from primary data, rather than analysing anything.

Task Schema (tool-agnostic)

  1. Choose the source models (decision point) — a DSM and a DTM of the same date, resolution and vertical datum. Mismatched dates (a building built between the two) give nonsense heights.
  2. Compute height above ground (Operator: local map algebra) — nDSM = DSM − DTM.
  3. Restrict to the building interior (Operator: inward buffer) — shrink each footprint, typically by about 0.5 m, so wall-edge and street pixels are excluded.
  4. Remove outliers (Operator: filter) — discard pixels far above the typical roof level (chimneys, antennas, overhanging trees).
  5. Summarise the remaining pixels (Operator: zonal statistics) —
    • height: a high percentile (e.g., the 95th) — the ridge, without the outliers
    • eave: a low percentile (e.g., the 10th)
    • ground: the terrain elevation under the building, from the DTM
  6. Derive the roof (Operator: arithmetic + reclassify) — roof_rise = height − eave; roof_type = flat below a threshold (e.g., 1.0 m), else pitched.
  7. Flag problems (Operator + decision point) — mark buildings with too few pixels, no data or negative heights, and check unusually large roof_rise values by hand: they usually mean a lower wing inside the same footprint.

Output: building footprints with height, eave, roof_rise, roof_type, ground and a quality flag — ready for Context massing (Task).

Epistemic Choices to record

The percentiles, buffer distance, outlier rule and flat-roof threshold are all judgements. The defaults suit Danish town centres at 0.4 m resolution; record any change, and any height corrected by hand, in the Design Rationale.

Task Recipes (tool-bound)