Add governed bathymetry profile workflow
GeoIntel CI / docs-smoke (push) Canceled after 0s
GeoIntel CI / contract-smoke (push) Canceled after 0s

This commit is contained in:
Codex
2026-07-17 15:25:00 +02:00
parent c0cab9e3c5
commit 5b4e18059a
31 changed files with 1990 additions and 4 deletions
+131
View File
@@ -0,0 +1,131 @@
# Bathymetry expansion roadmap
## Purpose
GeoIntel must distinguish three different questions:
1. Where were cross-sections measured and what does the source document say?
2. What is the continuous elevation of the bed at a specific survey epoch?
3. What is the water depth or volume at a specific moment?
Only the first question is operational for Mol through the VHA cross-section
profile layer. A bed model does not provide water depth without a compatible
water-surface elevation. Flood-hazard maximum depth is a scenario result and
must not be reused as current water level.
## Governed source matrix
| Source | Coverage | Data | Vertical reference | GeoIntel status |
| --- | --- | --- | --- | --- |
| VMM VHA Digital Atlas | Flanders | Point locations, structured profile fields, PDF evidence | Document-specific | Operational, bounded vector acquisition |
| MDK Belgian Continental Shelf model | Belgian North Sea | Continuous 20 x 20 m bathymetric raster | LAT | Available, not integrated |
| SPW navigable waterways and reservoir lakes | Wallonia | 0.5 m bed-elevation raster and XYZ cloud | mDNG | Available, not integrated |
| Port of Antwerp-Bruges publications | Port survey areas | Periodic soundings | Product-specific | Catalog candidate |
VHA contains approximately 129,643 profile points across Flanders at the
observed catalog state. This is a scale indication, not a fixed contractual
count. Mol contained 828 exact in-boundary points during source validation,
715 with document links and 112 with a structured depth field. Production
provisioning always records the live counts and checksums.
## Operational tier 1: Mol
- Query only an explicit EPSG:4326 bbox.
- Intersect the bbox with the exact persisted Mol Area.
- Page the official ArcGIS FeatureServer response without truncation.
- Resolve VHA watercourse names from the official atlas layer.
- Normalize profile points to EPSG:4326.
- Persist the artifact through `DatasetService.import_vector_bytes`.
- Persist every point through `VectorFeatureService`; the provider never
writes directly to `vector_features`.
- Expose document, measurement date, depth and width fields without parsing or
inventing values from scanned PDFs.
- Keep volume unsupported.
## Tier 2: all of Flanders
Flanders must be provisioned as exact municipality or other approved Area
partitions, not as one monolithic request. The backend feature limit protects
the provider and the application. A regional logical layer may group complete
partitions, but each Dataset retains its Area id, query URLs, checksums, exact
count and measurement-date range.
Before regional activation:
- add a governed Flanders boundary manifest and partition coordinator;
- prove idempotent resume and no duplicate VHA `OBJECTID` within a partition;
- benchmark PostGIS point selection and viewport delivery;
- add freshness/version probing for the VHA MapServer;
- keep individual profile dates instead of fabricating one Dataset
`observed_at`.
## Tier 3: Belgium
Belgian coverage is a federation of source adapters with one normalized
contract, not one assumed national dataset:
- Flanders: VHA profiles and future validated bed rasters;
- Wallonia: SPW bathymetry for measured navigable waterways/reservoirs;
- Brussels: hydrological context until an authoritative public bathymetric
product is identified;
- federal/maritime: MDK and legally appropriate maritime boundaries.
Every adapter must emit:
- authority and owner;
- exact geographic and temporal coverage;
- horizontal and vertical CRS/datum;
- survey/acquisition time;
- resolution or sample density;
- source URL, request identity, checksum, attribution and license;
- explicit supported and unsupported metrics.
LAT, TAW and mDNG values must never be merged or compared without a documented,
tested vertical transformation and uncertainty statement.
## Tier 4: the Belgian North Sea
The map must distinguish:
- the Belgian land boundary and baseline;
- the territoriale zee (up to 12 nautical miles);
- the Belgian EEZ and continental shelf, which are jurisdictional maritime
zones and should not be labelled ordinary municipal or provincial
"grondgebied".
The MDK bathymetry WCS is the preferred continuous source candidate. Activation
requires a live Docker validation of TLS/certificates, GetCapabilities,
coverage identifiers, bounded GeoTIFF retrieval, CRS, LAT, nodata, pixel size,
response limits and maritime clipping. WMTS can support visual context but is
not the analytical source.
## Depth and volume rules
For a compatible bed raster and water-surface raster at the same time and
vertical datum:
`volume_m3 = sum(max(0, water_surface_z - bed_z) * cell_area_m2)`
For surveyed cross-sections along a connected reach:
`volume_m3 = sum(((section_area_i + section_area_i+1) / 2) * reach_length_i)`
The second method requires complete profile geometry, ordered chainage,
contemporaneous water level and defensible interpolation. VHA profile points
alone do not satisfy those prerequisites.
Historical evolution compares only survey epochs with documented compatible
coverage, datum and method. A changed raster footprint is not automatically
bed evolution.
## Implementation order
1. Operate and validate the Mol VHA profile Dataset and map flow.
2. Add VHA municipal partition orchestration for Flanders.
3. Implement a bounded MDK WCS probe, then acquisition behind live evidence.
4. Implement SPW download staging and vertical-datum metadata validation.
5. Add maritime boundaries as separate authoritative scope layers.
6. Add cross-source vertical-datum transformation only with authoritative
grids/parameters and uncertainty tests.
7. Add volume only after a compatible measured or modeled water-surface source
is part of the same analysis contract.