Add regional historical land-use operator
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 23:25:15 +02:00
parent acac63a3dd
commit 3a8f6e6cef
13 changed files with 1165 additions and 11 deletions
+44
View File
@@ -8808,3 +8808,47 @@ Next:
value derivable from DHMV or flood-hazard maps. Continue the independent P5
waterbody linkage/uncertainty design only when governed depth profiles exist;
otherwise proceed with the regional historical buildings/water/roads backlog.
## Sprint 209 - Regional historical land-use expansion (2026-07-15)
Implemented:
- Audited the production Digitaal Vlaanderen Historical Land Use WFS and its
1778, 1873 and 1969 collections. Broad regional hit counts stop at 10,000,
confirming that one transport-region bounding request is not a defensible
completeness strategy.
- Added `scripts/provision_regional_historical_landuse.py` for historical
building, water and road land-use classes over the 28 registered transport-
region municipalities. It requires the checksummed VRBG scope artifact and
never infers or broadens the regional definition.
- Added resumable municipality partitions with exact WFS JSON response bytes
retained as deterministic gzip artifacts, source/artifact SHA256, request
pagination evidence, boundary hashes, clipping diagnostics and combined
regional output manifests.
- Clipped and validated polygonal geometry per municipality, suffixing source
ids with NIS codes to prevent cross-boundary collisions. Source identities
remain explicitly unstable and do not enable object lineage.
- Added one canonical Dataset upload per theme/year with regional Area scope,
immutable temporal identity, hectare aggregation and methodological warning.
No API route, database migration or direct PostGIS write was added.
- Extended `provision_regional_timeseries.py`, all-in-one packaging, readiness
compilation and operator/source documentation.
Validation evidence before live provisioning:
- Fourteen focused partition, raw-evidence, clipping, assembly, upload,
coordinator and packaging tests pass.
- The official source catalog still reports the production WFS and the three
governed historical collections. Live partition provisioning and browser
Evolution validation follow in this pass.
Known limitations:
- Historical `buildings` are mapped built land-use surfaces, not individual
building footprints. Historical `roads` and `water` are mapped surfaces,
not current centerlines, bathymetry or volume.
- The three editions use different source maps and cartographic methods.
Comparisons are exploratory hectare changes within one series, never a
continuous equivalent to modern GRB or 10 m land-use products.
Next:
- Run the complete nine-snapshot operator on live Tower/PostGIS, verify all 28
partition manifests and then validate regional/municipality Evolution in the
browser before marking the backlog item complete.
+6
View File
@@ -300,3 +300,9 @@ observation/validity dates, checksum and source/provenance JSON. The
Time-series comparison is read-only and aggregates persisted geometry inside a
requested bbox. Object-level added/removed/modified evidence is only valid for
sources that explicitly declare stable source feature identifiers.
Regional 1778/1873/1969 historical land-use snapshots use the same tables.
Their `provenance_metadata` records 28-partition identity, combined output
checksum and retained raw-response status. Municipality-clipped source ids are
partition-suffixed for uniqueness, while `identity_stable=false` prohibits
object-lineage interpretation. No partition or temporal shadow table is added.
+20 -3
View File
@@ -129,7 +129,7 @@ Statistical-sector codes and boundaries can change between editions. GeoIntel
therefore compares population metrics but does not present sector additions,
removals or boundary changes as population-object lineage.
### Mol historical land use
### Historical land use for Mol and the approved region
`scripts/provision_mol_historical_landuse.py` uses the official Digitaal
Vlaanderen Historical Land Use WFS for the 1778, 1873 and 1969 collections.
@@ -146,6 +146,17 @@ 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.
`scripts/provision_regional_historical_landuse.py` extends the building,
water and road series to the approved 28-municipality transport-region scope.
Broad regional WFS counts are capped at 10,000 by the public service, so the
operator uses the retained official VRBG municipality boundaries as 28
explicit source partitions. Each exact WFS JSON response is retained as a
deterministically compressed artifact with response and artifact SHA256,
then clipped to its municipality before one regional snapshot is assembled.
Partition-suffixed feature ids prevent cross-boundary source polygons from
colliding. Those ids remain processing evidence and are not historical object
lineage.
### Mol modern land use
`scripts/provision_official_landuse_timeseries.py` uses the public Departement
@@ -181,14 +192,18 @@ added/removed forest objects.
### Regional official time series
`scripts/provision_regional_timeseries.py` applies the same population and
modern forest operators to the approved 28-municipality
`scripts/provision_regional_timeseries.py` applies the population, modern
land-use and partitioned historical land-use operators to the approved 28-municipality
`kempen-transport-region` scope. It resolves the checksummed VRBG union
boundary and writes to `Kempen Regional Workbench` through the normal dataset
API. Regional keys are
`statbel:population-statistical-sector:kempen-transport-region` and
`department-omgeving:land-use:{theme}:kempen-transport-region`, so Mol datasets
remain independent observations rather than aliases.
Historical buildings, water and roads use
`digitaal-vlaanderen:historical-landuse:{theme}:kempen-transport-region` and
remain separate from both current GRB geometry and the harmonized 2013-2025
land-use rasters.
The command is explicit and operator-triggered. No source fetch happens during
startup or map interaction. Partial statistical sectors remain area-weighted
@@ -201,6 +216,8 @@ exact regional union clip before polygon persistence.
Official catalogues:
- https://www.vlaanderen.be/datavindplaats/catalogus/wfs-historisch-landgebruik
- https://www.vlaanderen.be/datavindplaats/catalogus/digitalisatie-historisch-landgebruik-en-landgebruiksveranderingen-in-vlaanderen-1778-2022
- 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