Record live Mol terrain validation
GeoIntel CI / docs-smoke (push) Canceled after 0s
GeoIntel CI / contract-smoke (push) Canceled after 0s

This commit is contained in:
Codex
2026-07-15 19:09:51 +02:00
parent d64f07ad9c
commit 6238b252a9
6 changed files with 48 additions and 13 deletions
+7 -1
View File
@@ -10,7 +10,8 @@
## Sprint 207 Governed DHMV II terrain foundation (2026-07-15) ## Sprint 207 Governed DHMV II terrain foundation (2026-07-15)
- Added a fixed official Digitaal Vlaanderen DHMV II DTM/DSM WCS registry, - Added a fixed official Digitaal Vlaanderen DHMV II DTM/DSM WCS registry,
bounded multipart GeoTIFF acquisition and exact persisted-Area clipping. rate-limited 10 km multipart GeoTIFF acquisition, georeferenced mosaicking
and exact persisted-Area clipping.
- Validates and retains native 1 m product identity, 5 m analysis resolution, - Validates and retains native 1 m product identity, 5 m analysis resolution,
EPSG:31370, Float32 nodata, TAW, acquisition period and source/output EPSG:31370, Float32 nodata, TAW, acquisition period and source/output
checksums through ordinary Dataset, DatasetVersion and Job persistence. checksums through ordinary Dataset, DatasetVersion and Job persistence.
@@ -22,6 +23,11 @@
presenting DHMV terrain/surface height as water depth or volume. presenting DHMV terrain/surface height as water depth or volume.
- Added runtime/Unraid configuration and focused acquisition, GIS formula, - Added runtime/Unraid configuration and focused acquisition, GIS formula,
persistence, API, frontend and packaging tests without a migration. persistence, API, frontend and packaging tests without a migration.
- Live Mol DTM/DSM provisioning now persists 4,581,867 valid 5 m cells per
product with complete Area coverage and immutable cache reuse. Browser
validation confirmed the MapLibre relief overlay and full-Area metrics.
- Scoped the orthophoto building-recognition prompt to the building theme so
terrain results remain focused on elevation, relief and slope.
## Sprint 206 Governed Buildings and Addresses Register snapshot (2026-07-15) ## Sprint 206 Governed Buildings and Addresses Register snapshot (2026-07-15)
+7
View File
@@ -1193,6 +1193,13 @@ The default 5 m analysis copy keeps complete-Mol processing bounded while
retaining native 1 m resolution, EPSG:31370, TAW, `-9999` nodata and the retaining native 1 m resolution, EPSG:31370, TAW, `-9999` nodata and the
2013-2015 acquisition period in provenance. 2013-2015 acquisition period in provenance.
Municipality-sized requests are split into sequential WCS tiles of at most
10 km per side. The client sends the explicit media accept header required by
the production service, waits between requests, retries transient provider
statuses once and mosaics only tiles that validate against EPSG:31370, one
band and the requested resolution. Every tile URL and aggregate transfer
checksum remains in provenance.
Run the complete Mol operator after the regional workspace and Mol Area exist: Run the complete Mol operator after the regional workspace and Mol Area exist:
```bash ```bash
@@ -422,6 +422,7 @@ def test_frontend_and_runtime_expose_dhmv_workflow() -> None:
assert "digitaal_vlaanderen_dhmv" in app_source assert "digitaal_vlaanderen_dhmv" in app_source
assert "Hoogte & reliëf" in map_source assert "Hoogte & reliëf" in map_source
assert "terrainImageUrl" in map_source assert "terrainImageUrl" in map_source
assert "analysisMode === 'current' && activeTheme.id === 'buildings' && mapSelectionBbox" in map_source
assert "selectTerrain" in hook_source assert "selectTerrain" in hook_source
assert "/raster/terrain/select" in service_source assert "/raster/terrain/select" in service_source
for path in ( for path in (
+28 -8
View File
@@ -8690,9 +8690,10 @@ Next:
Implemented: Implemented:
- Added a fixed `dtm_1m`/`dsm_1m` product registry for the official Digitaal - Added a fixed `dtm_1m`/`dsm_1m` product registry for the official Digitaal
Vlaanderen production WCS and rejected arbitrary coverage identifiers. Vlaanderen production WCS and rejected arbitrary coverage identifiers.
- Added bounded WCS scaling, multipart GeoTIFF extraction, exact persisted-Area - Added bounded, rate-limited 10 km WCS tiling, multipart GeoTIFF extraction,
clipping and validation of EPSG:31370, one Float32 band, resolution, nodata georeferenced mosaicking, exact persisted-Area clipping and validation of
and valid cells before canonical DatasetService persistence. EPSG:31370, one Float32 band, resolution, nodata and valid cells before
canonical DatasetService persistence.
- Retained response, coverage and normalized-output SHA256 evidence plus native - Retained response, coverage and normalized-output SHA256 evidence plus native
1 m resolution, default 5 m analysis resolution, TAW and period 2013-2015. 1 m resolution, default 5 m analysis resolution, TAW and period 2013-2015.
- Added exact masked terrain selection with governed height, relief and slope - Added exact masked terrain selection with governed height, relief and slope
@@ -8702,9 +8703,28 @@ Implemented:
readable period/source labels and raster-aware rectangle/full-Area queries. readable period/source labels and raster-aware rectangle/full-Area queries.
- Added `scripts/provision_mol_dhmv.py`, Docker/Unraid settings and documentation. - Added `scripts/provision_mol_dhmv.py`, Docker/Unraid settings and documentation.
Initial validation: Validation evidence:
- Focused acquisition, raster, GIS metric, API, frontend and packaging tests - Full local readiness passed compilation, 669 backend tests, one Alembic head
pass with deterministic synthetic GeoTIFF fixtures. (`202607150001`), frontend TypeScript typecheck/build and shell syntax gates.
- The production WCS required an explicit `Accept: */*` header and rejected
rapid municipality tile requests. The governed client now waits two seconds
between requests and retries a transient provider status once. Four real
requests produced one `2928 x 3794`, EPSG:31370, 5 m Mol bounding raster
before exact municipality masking.
- Tower deployment passed all-in-one health, PostGIS 3.6 migration/schema
smoke, frontend proxy and icon verification.
- Live DTM Dataset `eccb9174-edb9-4867-928c-9acc5d686fa5` is ready with
checksum `9c5f06f5ce2070128aca06e3cbcec00ec8f698bf592c1745245280cd0488ad9b`.
Live DSM Dataset `34d1be8e-3a80-4ea3-98e5-238739000524` is ready with
checksum `54e36a2aada03f52eb24a7b6af505871d33ed52a5c2af04500793dbfca72f7af`.
Both contain 4,581,867 valid 5 m cells and report complete Mol coverage.
- Full-Mol DTM metrics are mean 31.8985 m TAW, minimum 20.8598 m TAW,
maximum 48.4594 m TAW, relief 27.5996 m and mean slope 1.2377 degrees.
Re-running the operator reused both immutable datasets.
- Browser validation selected Mol, activated DTM by default, rendered the
colour-relief overlay, returned all terrain metrics, retained the explicit
water-depth/volume limitation, showed no horizontal overflow and emitted no
browser console warnings/errors.
- No migration, direct raster database write, LiDAR point-cloud processing or - No migration, direct raster database write, LiDAR point-cloud processing or
water-volume inference was introduced. water-volume inference was introduced.
@@ -8715,5 +8735,5 @@ Known limitations:
explicit smaller acquisition. DSM-DTM building height remains future work. explicit smaller acquisition. DSM-DTM building height remains future work.
Next: Next:
- Complete the full readiness and live Mol operator/browser validation, then - Audit P5 official bathymetry and water-depth sources before enabling any
audit P5 bathymetry sources before enabling any water depth or volume metric. water depth or volume metric. Keep DHMV as height/relief input only.
+1 -1
View File
@@ -1325,7 +1325,7 @@ export function MapWorkspace({
</div> </div>
</div> </div>
{analysisMode === 'current' && mapSelectionBbox ? ( {analysisMode === 'current' && activeTheme.id === 'buildings' && mapSelectionBbox ? (
<div className={`geo-image-analysis geo-image-analysis-${orthophotoAnalysisStage}`}> <div className={`geo-image-analysis geo-image-analysis-${orthophotoAnalysisStage}`}>
<div> <div>
<span>Beeldanalyse</span> <span>Beeldanalyse</span>
+4 -3
View File
@@ -1524,9 +1524,10 @@ docker exec geointel python /app/scripts/provision_mol_dhmv.py
The operator resolves project and Area through the API, derives the bounded The operator resolves project and Area through the API, derives the bounded
EPSG:4326 request rectangle and calls the canonical DHMV endpoints. The backend EPSG:4326 request rectangle and calls the canonical DHMV endpoints. The backend
requests the fixed official WCS coverages, extracts multipart GeoTIFF, clips to requests the fixed official WCS coverages in rate-limited tiles of at most
the exact Area, validates EPSG:31370/resolution/nodata/valid cells and stores 10 km per side, extracts multipart GeoTIFF, creates one georeferenced mosaic,
through DatasetService. It then runs a full-Area terrain metric smoke. clips to the exact Area, validates EPSG:31370/resolution/nodata/valid cells and
stores through DatasetService. It then runs a full-Area terrain metric smoke.
Useful safe overrides: Useful safe overrides: