feat: add official modern Mol land-use series
GeoIntel CI / docs-smoke (push) Canceled after 0s
GeoIntel CI / contract-smoke (push) Canceled after 0s

This commit is contained in:
Codex
2026-07-14 17:51:24 +02:00
parent 8f27c5cc6f
commit b35f135fea
14 changed files with 1199 additions and 20 deletions
+24
View File
@@ -7819,3 +7819,27 @@ Remaining source limitations:
- The latest official population snapshot in this workspace is 2025.
- The forest/green evolution series currently represents the available historical land-use editions through 1969; it must not be presented as current forest cover.
- Partial-sector population results remain area-weighted estimates because no finer authoritative population surface has been ingested.
## Sprint 188 Official modern Mol land-use series (2026-07-14)
Implemented:
- Added `provision_official_landuse_timeseries.py` for explicit MercatorNet WCS subsets of the official Departement Omgeving version 3 land-use maps for 2013, 2016, 2019, 2022 and 2025.
- Validated one-band integer GeoTIFF input, EPSG:31370, 10 m resolution and the documented 1-19 class domain before processing.
- Preserved every raw raster, exact request URL, catalogue URL, raster/vector checksum, class histogram and processing manifest in operator storage.
- Polygonized documented class 12 (`Bos`) in metric CRS, clipped it to the official Mol boundary, normalized it to EPSG:4326 and uploaded it through the existing API/DatasetService/vector-feature path.
- Added source-governed hectare aggregation metadata, 10 m/non-cadastral limitations and unstable raster-polygon identity declarations.
- Kept `department-omgeving:land-use:forest:mol` separate from the historical land-use series and added a compact frontend series selector.
Source validation:
- Live WCS capabilities exposed all five expected coverages through `lu:lu_landgebruik_vlaa_<year>_v3`.
- A full-Mol fetch-only run produced 3,768 / 3,823 / 3,953 / 3,615 / 3,676 forest polygons for 2013 / 2016 / 2019 / 2022 / 2025 without truncation.
- Polygonized forest area was 3,723.17 / 3,615.39 / 3,592.27 / 3,648.98 / 3,626.56 ha. These are measurements within the official 10 m representation, not cadastral forest areas.
- Every raster cell touching the municipality is considered before exact vector clipping. The 916 NoData edge cells in each WCS subset were explicitly excluded and recorded rather than assigned a class.
Validation:
- New focused backend suite passed 4 tests.
- Frontend TypeScript typecheck passed after temporal-series selection wiring.
- Full readiness and live Tower/PostGIS/browser validation remain the final steps of this pass.
Next:
- Deploy and provision all five modern snapshots on Tower, then verify current forest selection, both temporal series and a drawn rectangle in the internal browser.
+27
View File
@@ -61,6 +61,33 @@ OSM is used for fast, broad, fallback context.
### OSM caveat
OSM is community-maintained and may be incomplete. UI and reports must describe it as contextual/fallback data, not official ground truth.
## Official modern land-use strategy
The Departement Omgeving version 3 land-use maps are the authoritative modern
source series for categorical land use. GeoIntel retrieves only explicit
boundary subsets from MercatorNet WCS; no whole-Flanders raster is fetched at
startup or during an interactive map query.
- Source years: 2013, 2016, 2019, 2022 and 2025.
- Native representation: one integer category per 10 m cell in EPSG:31370.
- Preserved evidence: raw GeoTIFF, WCS request, catalogue URL, checksum, class
histogram and processing manifest.
- Operational representation: source cells polygonized in EPSG:31370, clipped
to the requested boundary and normalized to EPSG:4326 `vector_features`.
- Boundary behavior: retain every source cell touching the boundary, then
perform the exact metric geometry intersection; exclude and report NoData.
- Selection metric: exact polygon intersection area within the source's 10 m
representation, reported in hectares with a non-cadastral warning.
- Identity: raster polygons are not stable source objects; temporal object
lineage is unavailable.
Modern land-use series must remain separate from the 1778, 1873 and 1969
historical cartographic series. Comparisons are valid within each persisted
series and must retain the source methodology warning. Extension from Mol to
Kempen reuses the same operator with an explicit approved boundary, project,
area and scope key; an ambiguous regional label is never converted into an
invented boundary.
## User-uploaded raster strategy
V1 must support controlled local datasets because public raster access and model compatibility can be difficult.
+35
View File
@@ -63,6 +63,41 @@ The operator uses standards-compliant WFS 2.0 XML POST requests. This keeps
the spatial/class filters server-side without exposing a long XML filter in a
GET query, which the public gateway rejects.
### Mol modern land use
`scripts/provision_official_landuse_timeseries.py` uses the public Departement
Omgeving/MercatorNet WCS to retrieve the harmonized version 3 land-use maps for
2013, 2016, 2019, 2022 and 2025. The source is a categorical 10 m GeoTIFF in
Belgian Lambert 72 (`EPSG:31370`) with 19 documented classes. GeoIntel currently
derives only class `12` (`Bos`) as the operational forest theme.
Every source raster is clipped against the explicit official boundary,
validated for integer classes, CRS and resolution, checksummed and retained in
persistent operator storage. Forest cells are polygonized and clipped in
`EPSG:31370`, then transformed to canonical `EPSG:4326` and uploaded through
DatasetService/VectorFeatureService. The raw raster remains the provenance
artifact; the persisted polygons provide rectangle selection, PostGIS area
aggregation and temporal comparison without a parallel query path.
All cells touching the requested boundary are considered before the exact
metric geometry clip; NoData cells are excluded and counted in the manifest.
The modern series key is
`department-omgeving:land-use:forest:mol`. It remains separate from
`digitaal-vlaanderen:historical-landuse:forest:mol`: the 1778-1969
cartographic editions and the harmonized 2013-2025 10 m land-use maps are not
presented as one continuous measurement method. Raster-derived polygon
identities are unstable, so GeoIntel compares hectares and never invents
added/removed forest objects.
Official catalogues:
- https://www.vlaanderen.be/datavindplaats/catalogus/landgebruik-vlaanderen-toestand-2013
- https://www.vlaanderen.be/datavindplaats/catalogus/landgebruik-vlaanderen-toestand-2016
- https://www.vlaanderen.be/datavindplaats/catalogus/landgebruik-vlaanderen-toestand-2019
- https://www.vlaanderen.be/datavindplaats/catalogus/landgebruik-vlaanderen-toestand-2022
- https://www.vlaanderen.be/datavindplaats/catalogus/landgebruik-vlaanderen-toestand-2025
- https://www.vlaanderen.be/statistiek-vlaanderen/ruimtegebruik/landgebruik/metadata-landgebruik
## OSM
- Naam: OpenStreetMap
+3 -2
View File
@@ -6,8 +6,9 @@
- [x] Add drag rectangle selection with automatic persisted theme queries.
- [x] Separate exact bbox intersection totals from the bounded map preview.
- [x] Add official Mol GRB roads, water and parcels provisioning support.
- [ ] Select and validate an official Mol population/statistical-sector source before enabling the population theme.
- [ ] Select and validate an authoritative Flemish land-cover source before enabling the forest/green theme.
- [x] Select, validate and provision official Statbel 2021-2025 population/statistical-sector snapshots for Mol.
- [x] Select, validate and provision official Departement Omgeving 2013-2025 forest snapshots from the 10 m land-use map.
- [ ] Define the exact administrative Kempen scope before provisioning municipality or regional copies of the proven source series.
This file now starts with the current implementation status. Older preparation/backlog sections are preserved below as historical planning context and should not be treated as the live sprint board without checking `docs/CODEX_EXECUTION_LOG.md`.