feat: terrain mesh from the DEM, and correct the blockout frame

Tools/terrain_from_dem.py builds a 191x106 grid at 2 m over the block, Z being
NAVD88 minus the origin ground. Building footprints from the OSM extract are cut
out so rooftops never become terrain (72 footprints, 6310 cells). Spot checks
reproduce the measured profile: origin 0.00, Orange Dr +3.39, south gutter
+0.93, crown +1.38, north sidewalk +1.43.

Blosm projects with a sphere, not an ellipsoid, so its frame was ~0.4% oversized
and rotated by meridian convergence: about 2 m at the theatre. The blockout now
fits a six-parameter affine into EPSG:26911 on five control points (0.0 cm
residual) and transforms root objects only, since children inherit and double
transforming them read as a 2 m placement error.
This commit is contained in:
zwitschi committed 2026-11-06 23:40:50 +01:00
1 parent bf23a27939
commit ece48649f5
7 files changed
+391 -9

No files matched your search

@@ -40,6 +40,10 @@ Consequence: kerb height and shape are an **assumption** until measured or obser
- The north sidewalk sits higher than the road crown and keeps rising toward the building line, so the two sidewalks are not mirror images.
- Crossing ramps must be modelled deliberately at the three crossings; nothing in the DEM supplies the local ramp geometry.
## Reproduced in the terrain mesh
`Art/blender/terrain/terrain-2026-11-06.blend` samples the DEM on a 2 m grid and reproduces these numbers: origin Z 0.00, Orange Drive end +3.39, south gutter +0.93, road centre +1.38, north sidewalk +1.43 relative to the origin ground. The crown therefore survives from DEM to mesh. See `Art/blender/README.md`.
## Open
- Kerb height, kerb radius, and ramp slope: assumption until surveyed or measured from photographs.