Geo/tools/ is now every geographic script, with Geo/README.md documenting each one; the Blender-side builders moved beside their outputs in Art/blender/*/ and import their helpers from Geo/tools/osm_common.py. That module gains to_unreal_local() and to_blender_local(): the only place in the repository that multiplies metres by 100, so a second silent scale cannot be introduced. block_height_report.py adds height provenance for the block — 3 of 15 buildings have no height data and render at a placeholder 6.4 m. asset_metadata.py writes and audits <asset>.geo.json sidecars; four now exist (hero-facade, terrain, street, blockout) and the audit recomputes each centre from the origin, failing anything that disagrees.
57 lines
4.0 KiB
Markdown
57 lines
4.0 KiB
Markdown
# Elevation check — Hollywood Blvd block
|
||
|
||
Measured 2026-11-06 with `Geo/tools/elevation_probe.py` against the USGS Elevation Point Query Service (3DEP, 1 m seamless DEM, raster id 129943). Raw responses: `Geo/raw/epqs-2026-11-06.json`. Reproduce with:
|
||
|
||
```bash
|
||
python3 Geo/tools/elevation_probe.py Geo/raw/osm-api-map-2026-11-06.osm --workers 5
|
||
```
|
||
|
||
Heights are **orthometric, NAVD88**, as published for 3DEP CONUS. They are not ellipsoidal heights and must not be mixed with GPS/ellipsoid values.
|
||
|
||
Note: the point service answers in 6–8 s per request, so the probe runs requests in parallel and samples a grid rather than a dense sweep.
|
||
|
||
## Grid along the boulevard
|
||
|
||
Five positions along the 279.4 m block, at the south sidewalk (12.6 m from the centreline), the road centreline, and the north sidewalk (13.6 m).
|
||
|
||
| Along block | South sidewalk | Centreline | North sidewalk |
|
||
| ---: | ---: | ---: | ---: |
|
||
| 0.0 m (Orange Dr) | 118.90 | 119.36 | 119.59 |
|
||
| 69.8 m | 118.11 | 118.46 | 118.49 |
|
||
| 139.7 m | 116.95 | 117.41 | 117.50 |
|
||
| 209.5 m | 116.04 | 116.27 | 116.47 |
|
||
| 279.4 m (Highland Ave) | 115.65 | 115.91 | 116.10 |
|
||
|
||
Crossings: Orange Dr 118.96 m, mid-block 117.53 m, Highland 115.95 m.
|
||
|
||
## What the numbers say
|
||
|
||
- **Longitudinal grade: about 3.3 m of fall over 279 m, roughly 1.2 %, descending eastward** toward Highland. That is a real, visible slope for a walking demo, not a rounding artefact: it repeats consistently on all three lines.
|
||
- **Cross slope: the north sidewalk sits 0.4–0.7 m higher than the south** across a 26 m road reserve, which is 1.5–2.5 %. The road drains southward.
|
||
- **Total relief on walkable surfaces: 3.94 m** (115.65 m at the Highland end to 119.59 m at the Orange Drive end).
|
||
|
||
## Decision
|
||
|
||
`AGENTS.md` requires separately licensed elevation data unless the DEM shows less than 1 m of variation. Here the variation is **3.94 m**, so elevation data is required, and the sampled source already qualifies: **USGS 3DEP 1 m DEM is a US Government work in the public domain**, so there is no licence conflict and no third-party purchase.
|
||
|
||
Chosen source: **USGS 3DEP 1 m (3DEP seamless, CONUS)**, reprojected to EPSG:26911 with the origin in [`../manifests/local-origin.md`](../manifests/local-origin.md), vertical datum NAVD88 recorded.
|
||
|
||
Consequence for `0.1.0`: the demo cannot use a flat ground plane. The street and sidewalks must follow this grade, or the walkable demo will look and feel wrong at the Highland end, where the whole block drops away.
|
||
|
||
## Caveat on building-interior samples
|
||
|
||
Points inside the hero footprint returned 114.53–117.13 m — a 2.6 m spread within one building outline, which is not ground reference. 3DEP can carry structures and voids there. Those four diagnostic points are excluded from the relief figure; use the street and sidewalk lines, not building interiors, for any ground surface.
|
||
|
||
## DEM acquired
|
||
|
||
Downloaded 2026-11-06 from the 3DEP export service, already in EPSG:26911, clipped to E 376 100–376 650 / N 3 774 050–3 774 400 at 1 m. Manifest, checksum, and full request: [`../manifests/2026-11-06-3dep-dem.md`](../manifests/2026-11-06-3dep-dem.md). File is committed — it is 984 KB, public domain, and the blockout needs it.
|
||
|
||
Cross-check at three points: raster 115.911 / 119.422 / 117.593 m against the service's own point query 115.910 / 119.418 and this document's probe 115.911 / 119.418 / 117.53. Agreement is centimetres, so the georeferencing holds.
|
||
|
||
Window statistics: min 110.46 m, max 127.73 m, spread 17.28 m — building tops and the ground rising north of the boulevard. The **walkable relief stays 3.94 m**; the demo ground mesh follows the street, not the window envelope.
|
||
|
||
## Next
|
||
|
||
1. ~~Sample the kerb line and the crossing ramps~~ — done: seven cross-sections in [`2026-11-06-cross-sections.md`](2026-11-06-cross-sections.md) locate the gutters at ±10–11 m and show a ~2 % crown. They also show the DEM does **not** resolve a kerb upstand, so kerb height stays an assumption.
|
||
2. Build the ground mesh from the DEM along the street, not from a flat plane, and assert the 3.94 m fall survives the Blender→Unreal path.
|