feat: add governed Mol nature value layer
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 13:20:13 +02:00
parent a0795ae008
commit 16be7564f3
16 changed files with 1251 additions and 7 deletions
+8
View File
@@ -496,6 +496,11 @@ Rules:
- Results are generated from persisted PostGIS `vector_features`, not from client-side map data.
- `feature_count` is the number of GeoJSON features returned in the bounded preview. `total_feature_count` is the exact number of persisted rows intersecting the requested bbox or persisted Area geometry.
- `summary` keeps one backwards-compatible primary metric and exposes all relevant measurements in `metrics`. Known themes use metric PostGIS calculations: building/forest/water/parcel surfaces in hectares, road and watercourse lengths in kilometres, population in inhabitants and intersecting feature counts as supporting evidence.
- Governed datasets may declare additional `source_metadata.selection_metrics`.
Each metric may constrain one persisted feature-property to an explicit value
allowlist before the same PostGIS aggregation runs. The BWK/Natura 2000
dataset uses this only for official `EVAL` classes; it does not collapse mixed
classes into a made-up score.
- Area and length calculations transform geometry to Belgian Lambert 72 (`EPSG:31370`); they are never calculated in geographic degrees.
- Water volume is not inferred from 2D GRB geometry. It remains unavailable until a source provides reliable depth or bathymetry with compatible spatial coverage and provenance.
- The response is capped by `limit` and returns `truncated=true` when `total_feature_count` exceeds the returned preview.
@@ -1582,6 +1587,9 @@ aggregation method, feature count, estimate status and an optional warning.
Supported PostGIS aggregations are feature count, intersection area,
intersection length, numeric sum and area-weighted numeric sum. Area and length
are measured after transformation to EPSG:31370.
Configured supplemental metrics can use `filter_property` plus
`filter_values`. Filters are server-owned dataset metadata, not arbitrary
client SQL or request expressions.
### PATCH `/api/v1/projects/{project_id}/datasets/{dataset_id}/temporal`
+21
View File
@@ -227,6 +227,27 @@ until a governed operator import, provenance record and validation pass exist.
LiDAR, suitable for elevation, slope and drainage. It does not provide water
depth.
## Governed BWK and Natura 2000 state 2025
`scripts/provision_mol_bwk_natura2000.py` uses the official production WFS
`https://geo.api.vlaanderen.be/BWK/wfs`, feature type `BWK:Bwkhab`. It follows
server `next` links and uses WFS `startIndex` only when a full page omits that
link. A short final page is required for completeness. Raw response pages,
request URLs and SHA256 checksums are retained.
The source bbox is reduced to the exact persisted Mol Area in Belgian Lambert
72. Only valid polygonal intersections are emitted, transformed back to
EPSG:4326 and imported through DatasetService with `source_name` equal to
`inbo_bwk_natura2000` and `reference_layer_name` equal to `nature_value`.
Required attribution is `Bron: INBO`.
`EVAL` classes are reported separately. Natura 2000 and regionally important
biotope hectares use official `PHAB` shares; uncertain `ohab` polygons remain
knowledge gaps. The official report warns that parts of the 2025 edition,
especially outside Habitats Directive areas, can still be based on older
mapping. GeoIntel therefore preserves origin fields and never presents this
single edition as a historical trend.
## Governed Waterinfo station history
`scripts/provision_waterinfo_station_history.py` uses the public Waterinfo
+15
View File
@@ -213,6 +213,21 @@ series may not be merged into one area-wide value. Point water level and
discharge may not be converted to water volume without governed compatible
depth/profile data.
### BWK and Natura 2000 polygons
The governed state-2025 import uses `BWK:Bwkhab` polygons. Geometry is fetched
in EPSG:4326, validated and clipped against the persisted Mol boundary in
EPSG:31370, then persisted in EPSG:4326. Required retained fields include
`EVAL`, `EENH1..8`, `V1..3`, `HERK`, `BWKLABEL`, `HAB1..5`, `PHAB1..5`,
`HERKHAB`, `HERKPHAB` and `HABLEGENDE`.
BWK value classes remain independent. Natura 2000 codes, regionally important
biotope codes and uncertain `ohab` knowledge gaps are also independent. PHAB
shares can be theoretical source allocations; derived hectares therefore keep
an estimate warning, especially for partial rectangle intersections. State
2025 is a product edition and must not be presented as a uniform 2025 field
survey or an annual time series.
### Vector
Ondersteund:
+7
View File
@@ -109,6 +109,13 @@ product/layer, request/spatial hash, temporal validity and limitations are held
in source/provenance metadata. Browser PNG rendering is derived on request and
does not replace the stored GeoTIFF.
BWK/Natura 2000 evidence lives under
`storage/operator-evidence/bwk-natura2000-2025/mol/`. The `raw/` directory
contains immutable WFS pages; the adjacent manifest records their URLs,
checksums, boundary checksum, page/feature counts, clipping diagnostics and
official class totals. The final GeoJSON is the retained source artifact while
`datasets` and `vector_features` remain the canonical queryable PostGIS state.
Offline demo export artifacts can be inspected and cleaned with:
```bash