Add governed VMM flood hazard scenarios
This commit is contained in:
@@ -277,6 +277,51 @@ Safety contract:
|
||||
- product periods such as `1979_1990` remain explicitly multi-year and are not
|
||||
presented as exact annual observations.
|
||||
|
||||
### GET `/api/v1/projects/{project_id}/datasets/flood-hazard/products`
|
||||
|
||||
Returns the fixed twelve-product VMM flood-depth registry in the canonical
|
||||
envelope. Products combine `pluviaal`/`fluviaal`, current climate/climate
|
||||
projection 2050 and T10/T100/T1000. Each product keeps the official WCS
|
||||
coverage id, probability class, source unit centimetres, normalized unit
|
||||
metres, publication metadata, attribution and limitation.
|
||||
|
||||
### POST `/api/v1/projects/{project_id}/datasets/flood-hazard/acquire`
|
||||
|
||||
Acquires one bounded official VMM OGRK WCS 1.1 coverage behind the synchronous
|
||||
Job abstraction. Arbitrary coverage identifiers and service URLs are rejected.
|
||||
|
||||
```json
|
||||
{
|
||||
"bbox": {"min_x": 5.0, "min_y": 51.1, "max_x": 5.2, "max_y": 51.3, "crs": "EPSG:4326"},
|
||||
"area_id": "optional-project-area-uuid",
|
||||
"product_key": "pluviaal_current_t100",
|
||||
"resolution_m": 5.0,
|
||||
"force_refresh": false
|
||||
}
|
||||
```
|
||||
|
||||
The service tiles municipality-size requests, validates EPSG:31370 and one
|
||||
Float32 depth band, converts positive source centimetres to metres, clips to
|
||||
the exact persisted Area and stores an ordinary raster Dataset and
|
||||
DatasetVersion. Zero/null source cells become transparent nodata. The scenario
|
||||
is not a temporal observation and receives no fabricated `observed_at` value.
|
||||
|
||||
### POST `/api/v1/projects/{project_id}/datasets/{dataset_id}/raster/flood-hazard/select`
|
||||
|
||||
Returns mapped positive-depth area in hectares, share of the selection, mean,
|
||||
P90 and maximum modeled local depth and `modelled_max_depth_area_integral_m3`.
|
||||
Every result identifies mechanism, climate context, probability class and
|
||||
return period. The integral sums local modeled maximum depth times cell area;
|
||||
it is explicitly not concurrent flood storage, permanent waterbody content,
|
||||
current water level or bathymetry. These unsupported metrics remain listed in
|
||||
the response.
|
||||
|
||||
### GET `/api/v1/projects/{project_id}/datasets/{dataset_id}/raster/flood-hazard/image`
|
||||
|
||||
Returns a constrained transparent PNG for a persisted governed VMM flood-depth
|
||||
Dataset. It never accepts an arbitrary path or coverage id and is used by the
|
||||
existing MapLibre image-overlay path.
|
||||
|
||||
### GET `/api/v1/projects/{project_id}/datasets`
|
||||
|
||||
List datasets.
|
||||
|
||||
@@ -8737,3 +8737,51 @@ Known limitations:
|
||||
Next:
|
||||
- Audit P5 official bathymetry and water-depth sources before enabling any
|
||||
water depth or volume metric. Keep DHMV as height/relief input only.
|
||||
|
||||
## Sprint 208 - Governed VMM flood-hazard scenarios (2026-07-15)
|
||||
|
||||
Implemented:
|
||||
- Audited official Vlaamse water-depth/bathymetry sources. Public coastal and
|
||||
North Sea bathymetry does not cover Mol; Waterinfo is station-based and GRB
|
||||
water geometry is two-dimensional. Permanent waterbody volume therefore
|
||||
remains unavailable.
|
||||
- Added a fixed VMM OGRK registry for twelve water-depth scenarios: fluvial and
|
||||
pluvial, current climate and climate projection 2050, each at T10/T100/T1000.
|
||||
- Added bounded WCS 1.1 retrieval, 10 km tiling, multipart GeoTIFF extraction,
|
||||
georeferenced mosaicking, exact persisted-Area clipping and conversion from
|
||||
positive source centimetres to normalized metres.
|
||||
- Persisted scenario, probability, units, bounds, request URLs and response,
|
||||
coverage and normalized checksums through the existing Job, Dataset and
|
||||
DatasetVersion architecture. No migration or direct raster DB write exists.
|
||||
- Added exact raster selection metrics for mapped inundated area/share,
|
||||
mean/P90/maximum modeled depth and a maximum-depth area integral. The API,
|
||||
UI and Ollama context all prohibit interpreting that integral as actual,
|
||||
permanent or concurrent water volume.
|
||||
- Added an `Overstroming` map theme, explicit scenario selector, transparent
|
||||
MapLibre overlay, source-inventory presentation and full-Mol operator.
|
||||
- Added Docker/Unraid configuration, packaging and focused backend/frontend/AI
|
||||
contracts without a new dependency.
|
||||
|
||||
Validation evidence before live deployment:
|
||||
- Official WCS capabilities and DescribeCoverage confirmed EPSG:31370, 2 m
|
||||
GridOffsets, Float32 values, null value 0 and `image/tiff` multipart output.
|
||||
- A live bounded VMM request returned valid georeferenced data; official
|
||||
catalog metadata confirms depth is expressed in centimetres between modeled
|
||||
water surface and terrain.
|
||||
- Synthetic GIS fixtures confirmed 200 positive 5 m cells at 1 m depth produce
|
||||
0.5 ha mapped area and exactly 5,000 m3 maximum-depth area integral.
|
||||
- Focused flood-hazard and Ollama tests passed; frontend typecheck and build
|
||||
passed. Full readiness and Tower provisioning follow in this same pass.
|
||||
|
||||
Known limitations:
|
||||
- The scenario raster represents modeled local maximum depth at 1:100,000
|
||||
application scale, not a measurement of a current flood event.
|
||||
- No public municipality-wide inland bathymetry was identified. Waterbody
|
||||
bottom elevation, uncertainty and permanent content remain open.
|
||||
- Scenario alternatives are not observations in time and are intentionally not
|
||||
exposed as a historical temporal series.
|
||||
|
||||
Next:
|
||||
- Complete live twelve-scenario Mol provisioning and browser validation. After
|
||||
that, treat permanent inland bathymetry as an external-data prerequisite,
|
||||
not as a value derivable from DHMV or the flood-hazard maps.
|
||||
|
||||
@@ -269,6 +269,19 @@ public provider endpoint's `not_configured` status.
|
||||
- User accounts.
|
||||
- Full model registry tables.
|
||||
|
||||
## Governed flood-hazard rasters
|
||||
|
||||
VMM flood-depth scenarios require no new table. Each acquired coverage is an
|
||||
ordinary `datasets` raster plus immutable `dataset_versions` provenance and a
|
||||
normal synchronous acquisition Job. The GeoTIFF remains filesystem/object
|
||||
storage; PostgreSQL keeps source identity, WCS checksums, EPSG:31370 bounds,
|
||||
source/normalized units, exact Area scope and scenario parameters.
|
||||
|
||||
Scenario alternatives do not receive a fabricated `observed_at` value and are
|
||||
not grouped as a temporal series. Selection metrics are calculated on demand
|
||||
from the persisted raster. Bathymetry and permanent waterbody volume remain
|
||||
absent from persistence until a separately governed source/model exists.
|
||||
|
||||
## Temporal dataset foundation
|
||||
|
||||
Historical observations remain normal `datasets` and `vector_features`; there
|
||||
|
||||
@@ -340,6 +340,32 @@ DSM includes buildings and vegetation. Neither is exposed as water depth,
|
||||
water volume or a directly measured building-height product. A drainage model
|
||||
would require a separately governed hydrological processing pass.
|
||||
|
||||
## VMM overstromingsgevaarkaarten
|
||||
|
||||
- Naam: Overstromingsgevaarkaart Waterdiepte
|
||||
- Uitgever: Vlaamse Milieumaatschappij
|
||||
- Type: raster/modelscenario
|
||||
- Toegang: publieke OGRK WCS 1.1 `https://geoservice.waterinfo.be/OGRK/wcs`
|
||||
- Coverages: fluviaal/pluviaal, huidig klimaat/klimaatprojectie 2050,
|
||||
T10/T100/T1000
|
||||
- Native raster: 2 m Float32, EPSG:31370, waterdiepte in centimeter
|
||||
- Publicatie: 2019/2021 afhankelijk van product; scenario-identiteit is
|
||||
leidend en wordt niet als observatiedatum opgeslagen
|
||||
- Cache: canonical raster Dataset plus request/response/output checksums
|
||||
- Operator: `scripts/provision_mol_flood_hazards.py`
|
||||
- Prioriteit: P5 scenariofundament uitgevoerd voor Mol
|
||||
|
||||
VMM beschrijft deze lagen als maximale lokale waterdiepte tussen wateroppervlak
|
||||
en maaiveld voor een gekozen kans- en klimaatscenario. GeoIntel converteert
|
||||
positieve waarden naar meter en kan een diepte-oppervlakte-integraal berekenen.
|
||||
Omdat lokale maxima niet noodzakelijk op hetzelfde tijdstip optreden, is dat
|
||||
geen gelijktijdig overstromingsvolume. De bron bevat evenmin bodemprofielen van
|
||||
meren, kanalen of waterlopen en kan dus geen permanente waterinhoud leveren.
|
||||
|
||||
De officiële audit vond geen publieke, gebiedsdekkende inland-bathymetrie voor
|
||||
Mol. Kust- en Noordzeeproducten vallen buiten de ruimtelijke scope. Waterinfo
|
||||
stations blijven puntmetingen en GRB-watergeometrie blijft tweedimensionaal.
|
||||
|
||||
## Gebouwenregister
|
||||
|
||||
The governed operator `scripts/provision_buildings_addresses_register.py`
|
||||
|
||||
@@ -185,6 +185,45 @@ Raster / afgeleid van LiDAR.
|
||||
|
||||
P4 operationeel voor Mol; regionale uitrol volgt dezelfde operatorgrenzen.
|
||||
|
||||
## VMM overstromingsgevaarkaarten waterdiepte
|
||||
|
||||
### Rol
|
||||
|
||||
Scenarioanalyse voor gemodelleerde overstroming door intense neerslag
|
||||
(`pluviaal`) en vanuit waterlopen (`fluviaal`). Dit is een afzonderlijk thema
|
||||
en geen verdieping van de gewone GRB-waterlaag.
|
||||
|
||||
### Governed products
|
||||
|
||||
- VMM OGRK WCS 1.1, twaalf vaste coverages
|
||||
- huidig klimaat en klimaatprojectie 2050
|
||||
- grote, middelgrote en kleine kans: T10, T100 en T1000
|
||||
- native raster 2 m, EPSG:31370, bronwaarden in centimeter
|
||||
- GeoIntel normaliseert positieve dieptes naar meter en bronnullen naar
|
||||
transparant `-9999` nodata
|
||||
- standaard analysekopie 5 m, exact geclipt op de persisted Area
|
||||
|
||||
### Toegestane metingen
|
||||
|
||||
- gemodelleerd overstroomd oppervlak in hectare
|
||||
- aandeel van de selectie met positieve gemodelleerde diepte
|
||||
- gemiddelde, P90 en maximale lokale gemodelleerde maximumdiepte in meter
|
||||
- diepte-oppervlakte-integraal in m3, uitsluitend onder die exacte naam en met
|
||||
de vaste waarschuwing dat lokale maxima niet noodzakelijk gelijktijdig zijn
|
||||
|
||||
De laag meet geen huidige waterstand en bevat geen bodemhoogte. Bathymetrie,
|
||||
permanente inhoud van waterlichamen en gelijktijdig overstromingsvolume blijven
|
||||
onbeschikbaar. Scenario's zijn alternatieve modelcondities, geen historische
|
||||
meetmomenten en daarom geen GeoIntel-temporale reeks.
|
||||
|
||||
### Type
|
||||
|
||||
Raster / gemodelleerd overstromingsgevaar.
|
||||
|
||||
### Prioriteit
|
||||
|
||||
P5 overstromingsscenario's operationeel voor Mol; bathymetrie blijft open.
|
||||
|
||||
## LAS/LAZ LiDAR
|
||||
|
||||
### Rol
|
||||
|
||||
+4
-1
@@ -67,7 +67,10 @@ pass live Mol validation before regional expansion.
|
||||
|
||||
### P5 - Water depth / bathymetry
|
||||
|
||||
- [ ] Identify an authoritative source with compatible spatial coverage, vertical datum, date and uncertainty; otherwise keep volume unavailable.
|
||||
- [x] Audit authoritative sources: no public municipality-wide inland bathymetry for Mol was identified; keep permanent waterbody volume unavailable.
|
||||
- [x] Integrate the separate public VMM fluvial/pluvial flood-hazard depth scenarios without presenting them as bathymetry or current water state.
|
||||
- [x] Persist scenario identity, source centimetres, normalized metres, WCS checksums, exact Area clipping and positive-depth coverage.
|
||||
- [x] Expose mapped inundation area, depth statistics and a clearly named maximum-depth area integral with a prohibition on calling it concurrent volume.
|
||||
- [ ] Define waterbody linkage, surface elevation, bottom elevation and uncertainty propagation before adding any volume metric.
|
||||
- [ ] Validate coverage gaps and prohibit extrapolation outside measured/profiled waterbodies.
|
||||
- [ ] Add independent GIS review and golden-volume fixtures before exposing the result to users or Ollama.
|
||||
|
||||
Reference in New Issue
Block a user