feat: provision regional Kempen context layers
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 20:07:03 +02:00
parent 84f695d069
commit 0ed214da02
10 changed files with 1142 additions and 0 deletions
+16
View File
@@ -1,3 +1,19 @@
## Sprint 191 Regional Kempen GRB context foundation (2026-07-14)
Changed:
- Added `scripts/provision_regional_grb_context.py` for bounded, independently resumable `roads`, `water` and `parcels` source snapshots across the approved 28-municipality scope.
- Reused geographic-scope artifacts and the existing DatasetService/VectorFeatureService partition import boundary; no direct SQL, migration, API contract or interactive provider fetch was introduced.
- Preserved line and polygon source dimensions and collection-qualified identities, with length-based or area-based deterministic ownership for boundary-crossing features.
- Added Docker packaging, readiness compilation, focused source-geometry/service tests and operator/source documentation.
Tested before deployment:
- `python -m py_compile scripts/provision_regional_grb_context.py`.
- `python -m pytest backend/tests/test_sprint191_regional_grb_context.py backend/tests/test_sprint190_regional_grb_buildings.py backend/tests/test_sprint106_map_bbox_extract.py -q` (`19 passed`).
- `bash scripts/run_readiness_check.sh` (`552 passed`; one Alembic head; frontend typecheck/build and script syntax gates passed).
Next:
- Pass the complete release gate, deploy the operator and provision all three live regional snapshots before claiming runtime readiness.
## Sprint 169 Filtered YOLO candidate gate and operator hardening (2026-07-12)
Changed:
+22
View File
@@ -124,6 +124,28 @@ reference dataset uses `source_name=grb`, `reference_layer_name=buildings`,
selection aggregation. Existing viewport and bbox selection APIs remain the
only interactive delivery path.
### Regional GRB context partition policy
Roads, water and parcels reuse the building operator's 28 resumable source
partitions and one-dataset-per-theme persistence model. Polygon collections
use maximum intersection area for cross-boundary ownership; line collections
use maximum intersection length. Exact ties use the lower NIS code. Source
identities are collection-qualified because the water theme combines `WTZ`,
`WLAS` and `WGR`.
The user-facing datasets use `source_name=grb`, `dataset_role=reference`,
`coverage_scope=kempen-transport-region` and respectively
`reference_layer_name=roads`, `water` or `parcels`. They are current source
snapshots with immutable observation dates, not temporal series inferred from
successive operator runs. Feature counts retain source-object semantics and
must not be relabelled as road length, water area or legal parcel counts.
Only `scripts/provision_regional_grb_context.py` may fetch these bounded
artifacts. Application startup, map requests and the public provider registry
remain fetch-free. All combined artifacts enter PostGIS through the existing
DatasetService/VectorFeatureService boundary and existing bbox/Area selection
contracts.
## User-uploaded raster strategy
V1 must support controlled local datasets because public raster access and model compatibility can be difficult.
+21
View File
@@ -67,6 +67,27 @@ referentiedataset via DatasetService en VectorFeatureService. De publieke GRB
provider blijft `not_configured`: dit is een bewuste operatorrun en geen live
download vanuit een browseractie of applicatiestart.
De overige actuele GRB-contextlagen volgen dezelfde begrensde aanpak via
`scripts/provision_regional_grb_context.py`:
- `roads`: collectie `Wegsegment` (lijngeometrie). Dit zijn wegsegmenten uit
de basiskaart, geen verkeersmetingen en geen routeringsnetwerk.
- `water`: collecties `WTZ` (vlakken), `WLAS` en `WGR` (lijnen). De gemengde
objecttelling is geen maat voor wateroppervlakte, debiet of volume.
- `parcels`: collectie `ADP` (vlakken). Dit is de grafische ligging van het
vermoedelijke kadastrale perceel en geen juridisch landmeetkundig bewijs.
Lijnobjecten worden bij gemeentegrenzen toegewezen op basis van de grootste
intersectielengte, vlakobjecten op basis van de grootste intersectieoppervlakte
en exacte ties op de laagste NIS-code. De brongeometrie wordt alleen tegen de
volledige regiogrens gesneden. Bron-ID's worden met hun collectienaam
gekwalificeerd zodat de drie watercollecties nooit stilzwijgend botsen.
Collectiecatalogus en contract:
- https://geo.api.vlaanderen.be/GRB/ogc/features/v1/collections?f=text%2Fhtml
- https://geo.api.vlaanderen.be/GRB/ogc/features/v1/openapi?f=text%2Fhtml
### Mol population history
`scripts/provision_mol_population_history.py` imports official Statbel