feat: add official Kempen operating scope
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 18:32:32 +02:00
parent e9c75b2fd6
commit bb7310e015
17 changed files with 1020 additions and 9 deletions
+22
View File
@@ -7850,3 +7850,25 @@ Validation:
Next:
- Define the exact municipality list or administrative boundary that GeoIntel will call `Kempen`, then reuse the proven source operators and temporal query path for that scope without changing Mol semantics.
## Sprint 189 Official Kempen operational scope (2026-07-14)
Implemented:
- Chose the official Vlaamse `Vervoerregio Kempen` as GeoIntel's reproducible operational regional scope. It has 28 municipalities and explicitly includes both Mol and Nijlen.
- Added `geographic_scopes.py` as the operator registry for scope identity, current municipality names/NIS codes, policy authority and limitation text.
- Added `provision_geographic_scope.py` to fetch current authoritative VRBG boundaries, validate all members, create a valid regional union and retain boundary/member GeoJSON plus checksums and manifest.
- The operator creates or reuses `Kempen Regional Workbench`, one regional Area, 28 municipality Areas and two source datasets exclusively through canonical API envelopes.
- Added a compact Mol/Kempen selector to the primary map flow, scope-aware heading text and the neutral `Volledig werkgebied` action.
- Kept thematic regional fetching outside the scope pass. No startup fetch, direct PostGIS write, fake metric or unbounded regional theme download was introduced.
Source proof:
- A live read-only VRBG run matched all 28 registered municipalities and current NIS codes.
- The valid union measured 1,399.2505 km2 in EPSG:31370 with WGS84 bbox `[4.59723873, 51.01047967, 5.26224853, 51.50511313]`.
- The scope is labelled as the transport-policy region and never as the complete cultural, landscape or historical Kempen.
Validation before deployment:
- New focused scope and map-flow suite passed 9 tests.
- Python scope/operator compilation and frontend TypeScript typecheck passed.
Next:
- Deploy and run the scope operator on Tower, verify 29 Areas and both boundary datasets, then design bounded regional theme partitions before importing high-volume GRB or WCS data.
+18
View File
@@ -88,6 +88,24 @@ 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.
## Operational Kempen scope
The canonical regional workspace uses the official 28-municipality Vlaamse
`Vervoerregio Kempen` policy boundary. `scripts/geographic_scopes.py` is the
operator source of truth for its members and current NIS codes. The resulting
regional geometry is a union of current authoritative VRBG municipality
boundaries.
- Project: `Kempen Regional Workbench`.
- Regional Area: `Vervoerregio Kempen - officiële operationele grens`.
- Member Areas: one current official boundary for every municipality.
- Scope key: `kempen-transport-region`.
- Provenance: authority URL, VRBG request URL, member codes, fetch timestamp,
artifact checksums and the policy-boundary limitation.
- Scale policy: thematic providers are partitioned and validated separately;
no interactive request or application startup may download the entire
region or silently substitute missing data.
## User-uploaded raster strategy
V1 must support controlled local datasets because public raster access and model compatibility can be difficult.
+23
View File
@@ -29,6 +29,29 @@ start geen verborgen providerfetch. De resulterende GeoJSON-artefacten,
checksums en bron-URL's worden onder persistent operator storage bewaard en
via de bestaande DatasetService/vectorfeature-flow geïmporteerd.
### Operationele regio Kempen
Voor regionale analyse gebruikt GeoIntel de officiële `Vervoerregio Kempen`
van de Vlaamse overheid. Deze beleidsregio bestaat uit 28 gemeenten. Ze is
expliciet gekozen omdat ze actueel, reproduceerbaar en bestuurlijk
gedocumenteerd is. GeoIntel beweert niet dat deze grens samenvalt met de
ruimere culturele, landschappelijke of historische Kempen.
`scripts/geographic_scopes.py` registreert de 28 actuele namen en NIS-codes.
`scripts/provision_geographic_scope.py` controleert die tegen `VRBG/Refgem`,
maakt de regionale union en bewaart zowel de union als alle afzonderlijke
gemeentegrenzen met bron-URL, checksum, autoriteit en beperking. De gemeten
operationele grens omvat circa `1.399,25 km²`.
Bronnen:
- https://www.vlaanderen.be/mobiliteitsprofessionals/personenvervoer/basisbereikbaarheid/mobiliteitsuitdagingen-regionaal-aanpakken/vervoerregios/over-de-vervoerregio-kempen
- https://geo.api.vlaanderen.be/VRBG/ogc/features/v1/collections/Refgem/items
De scope-operator haalt geen thematische gegevens op. GRB, bevolking en
landgebruik volgen als afzonderlijke begrensde imports; ontbrekende regionale
thema's blijven zichtbaar onbeschikbaar.
### Mol population history
`scripts/provision_mol_population_history.py` imports official Statbel
+2 -1
View File
@@ -8,7 +8,8 @@
- [x] Add official Mol GRB roads, water and parcels provisioning support.
- [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.
- [x] Define and provision the official 28-municipality Vervoerregio Kempen as the explicit operational regional scope.
- [ ] Partition and provision regional theme datasets in bounded batches, starting with current buildings/context and then population/land-use time 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`.