# Data Sources ## Orthofotomozaiek Vlaanderen - meest recent - Naam: Orthofotomozaiek middenschalig, winteropnamen, kleur, meest recent - Beheerder: Digitaal Vlaanderen - Type: RGB-raster via WMS - Operationele laag: `OMWRGBMRVL` / `Ortho` - CRS bij opslag: `EPSG:31370` - Gebruik: expliciet begrensde luchtbeeldanalyse en lokale gebouwdetectie - Autoriteit: officiele beeldbron; AI-detecties zelf zijn niet-autoritatief De hoofdkaart kan na een getekende rechthoek een expliciete, begrensde WMS GetMap-aanvraag uitvoeren. De backend aanvaardt alleen rechthoeken van 128 tot 1.024 meter per zijde, samplet standaard op 1 m/pixel voor het actieve lokale modelprofiel en bewaart het gegeorefereerde GeoTIFF via DatasetService met aanvraag, checksum, bron, attributie en beperking. Een identieke selectie mag 24 uur worden hergebruikt. Er is geen startupfetch en de browser bevraagt de externe WMS nooit rechtstreeks. De bron is de meest recente samengestelde wintermozaiek op het moment van de aanvraag. GeoIntel verzint geen historische pixelopnamedatum. Bronnen: - https://www.vlaanderen.be/datavindplaats/catalogus/orthofotomozaiek-middenschalig-winteropnamen-kleur-meest-recent-vlaanderen - https://www.vlaanderen.be/digitaal-vlaanderen/onze-diensten-en-platformen/luchtopnamen/gebruik-orthofotomozaieken Voor een rolling-releasebeslissing gebruikt `scripts/orthophoto_release_preflight.py` uitsluitend metadata. Het bindt de lokale `most_recent`-productvariant aan de officiële ISO-editie en exacte WMS- capabilitieshash, controleert het EPSG:31370/15 cm/driebanden-rasterdomein via WCS `DescribeCoverage` en bemonstert de querybare `Vliegdagcontour` op een deterministisch raster met maximaal 128 m afstand. Er worden geen `GetMap`-, `GetCoverage`- of uploadrequests uitgevoerd. De WCS-domeincontrole bewijst dat de volledige begrensde selectie binnen het officiële rasterdomein valt. De WMS publiceert geen vliegdagpolygonen als WFS; het vluchtjaar blijft daarom expliciet puntbewijs en geen verzonnen polygon- union. Een selectie met ontbrekende contourpunten, meerdere/afwijkende vluchtjaren, gewijzigde service-identiteit of een niet-vergelijkbare lokale `most_recent_at_*` marker is niet stagebaar. `scripts/manage_orthophoto_release.py` voert daarna uitsluitend op expliciet operatorverzoek `plan`, `stage`, `review` en `apply` uit. Stage haalt exact een begrensde `Ortho`-GetMap op, bewaart bronresponse, genormaliseerde RGB-GeoTIFF en review-PNG met checksums, maar schrijft geen Dataset. Review koppelt een benoemde goedkeuring aan exact die bytes. Apply valideert preflight, plan, review en lokale bronstaat opnieuw en gebruikt vervolgens de bestaande Dataset-uploadroute. De nieuwe Dataset krijgt de officiële `YYYY.NN`-editie; oude `most_recent_at_*` rasters blijven onveranderd bewaard. De eerste overgang vereist een aparte baselinevlag plus de exacte oude marker. Er is geen scheduler, browserfetch of automatische vervanging. Dit document verzamelt concrete databronnen voor GeoIntel Kempen. ## Cross-domain official area profile GeoIntel uses one governed MercatorNet WCS registry for five non-water policy rasters. The operator is explicit and bounded; no source fetch occurs during startup or directly from the browser. | Product | Coverage | Resolution | Selection output | | --- | --- | ---: | --- | | Ruimtebeslag 2025 | `lu:lu_ruibes_vlaa_2025_v3` | 10 m | occupied hectares and share | | Open ruimte 2022 | `lu:lu_openruimte_vlaa_2022_v3` | 10 m | open-space hectares and share | | Inwonersdichtheid 2019 | `ni:ni_inw_ha_vlaa_2019` | 100 m | estimated inhabitants and inhabitants/ha | | Knooppuntwaarde 2022 | `lu:lu_knptw_ha_2022_v3` | 100 m | source-score distribution | | Voorzieningenniveau 2022 | `lu:lu_totvznv_ha_2022_v3` | 100 m | normalized source-score distribution | All coverages are stored in EPSG:31370 with their native cells, exact Area mask, request/checksum provenance and reference year. Space occupation is not the same as buildings or paving. Open space is not automatically nature or publicly accessible land. Population is a 2019 raster estimate, not a current register count. Accessibility and service scores are not live travel times or object counts. In `Flanders Regional Workbench` these five products are shown as `Op aanvraag` until a user chooses a municipality or draws a bounded rectangle. One selection acquires, persists and analyses the five products through the canonical backend. Repeating the exact same product, bounds and Area reuses the retained source evidence. GeoIntel does not preload 1,425 municipality/product combinations and does not permit one unbounded whole-Flanders WCS transfer. ## DOV digital soil map - Service: `https://www.dov.vlaanderen.be/geoserver/wfs` - Layer: `bodemkaart:bodemtypes` - Source CRS and metric clipping: EPSG:31370 - Persisted geometry: EPSG:4326 through DatasetService/VectorFeatureService - Scale: 1:20,000 - Survey evidence: field data collected between 1949 and 1971 The Mol and regional operators follow all WFS pages, keep checksummed raw responses and persist soil type, series, generalized legend, texture, drainage, profile and substrate fields. The regional snapshot is assembled from 28 exact municipality partitions with unique NIS-suffixed source ids. Selection output reports intersected mapped hectares and fixed sand/anthropogenic context classes. The drainage field remains historical baseline evidence; GeoIntel does not claim it describes current parcel drainage or replace a site investigation. ## GRB — Basiskaart Vlaanderen - Naam: Basiskaart Vlaanderen / GRB - Beheerder: Digitaal Vlaanderen - Type: vector - Gebruik: referentiegebouwen, wegen, terreinobjecten, QA/QC - Toegang: WFS of download - Cache: PostGIS per analysegebied - Prioriteit: V1 - Opmerking: belangrijkste officiële referentiebron voor QA/QC. ### Volledige gemeente Mol De operationele Mol-workspace gebruikt twee expliciete Digitaal Vlaanderen OGC API-bronnen: - `VRBG/Refgem`, gefilterd op `NAAM='Mol'` en gecontroleerd op NIS-code `13025`, als officiële gemeentegrens. - `GRB/GBG`, volledig gepagineerd en exact tegen die grens gesneden, als gemeentebrede gebouwreferentie. Deze bronnen worden uitsluitend via het expliciete operatorcommando `scripts/provision_mol_municipality_workspace.py` opgehaald. De applicatie 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. De actuele regionale gebouwlaag wordt afzonderlijk opgehaald door `scripts/provision_regional_grb_buildings.py`. De operator bevraagt `GRB/GBG` per officiële gemeentegrens, volgt alle pagina's en weigert elk veiligheidslimiet als truncatie te verbergen. Grensoverschrijdende objecten worden aan één gemeentepartitie toegewezen op basis van de grootste overlap; de uiteindelijke geometrie wordt uitsluitend tegen de volledige regiogrens gesneden. Daardoor bevat het regionale dataset elke GRB-bronidentiteit exact één keer. De 28 bronpartities, paginabronnen, aantallen en checksums blijven als operatorbewijs bewaard. GeoIntel indexeert ze batchgewijs als één regionaal 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 ### Beheerde GRB-edities en objectevolutie Elke regionale GRB-import blijft een onveranderlijke Dataset in dezelfde `temporal_series_key`. De operators bewaren uitsluitend de officiële OGC feature-ID als `source_feature_id`; een ontbrekende ID wordt niet vervangen door een geometriehash. Nieuwe snapshots declareren `identity_scheme=grb_ogc_feature_id` en de toegelaten collectieprefixen. De tijdelijke vergelijkingsservice toont toegevoegde, verwijderde en gewijzigde objecten alleen wanneer beide snapshots hetzelfde gecontroleerde identiteitscontract hebben en alle geselecteerde ID's aanwezig en uniek zijn. Oudere, reeds beheerde snapshots worden alleen onder hun volledige authoritatieve operatorprovenance aanvaard. Dagelijkse editieverschillen zijn wijzigingen in de officiële registratie; de fysieke wijziging kan eerder zijn gebeurd. ### Refreshgereedheid van officiële bronnen | bronfamilie | huidige behandeling | volgende veilige stap | | --- | --- | --- | | GRB gebouwen/wegen/water/percelen | operationele, expliciete plan-stage-apply refresh met onveranderlijke snapshots | alleen een nieuw officieel gedateerd cataloguseditie na operatorbevestiging ophalen | | Statbel bevolking | jaarlijkse, expliciete edities in één tijdreeks; officiële DCAT-releaseprobe | een nieuwe publicatie alleen na schema-, sectorgeometrie- en totalencontrole toevoegen | | ALZ landbouwgebruikspercelen | definitieve jaarlijkse edities 2008-2025; expliciete publicatieprobe en plan-stage-review-apply promotie; metricvergelijking zonder objectlineage | alleen een nieuwere definitieve v3-editie na gestagede schema-/codelijst-/scopecontrole en benoemde review toevoegen | | orthofoto | vaste lokale analyseopnamen plus operationele preflight en benoemde plan-stage-review-apply-promotie voor een officiële `YYYY.NN`-editie | alleen een nieuwere officiële editie als afzonderlijke immutable Dataset promoveren na verse evidence en review | | landgebruik, thematische rasters, DHMV en VMM-scenario's | vaste product-/scenario-edities, geen rolling snapshot | alleen een nieuwe gedocumenteerde producteditie als afzonderlijke Dataset verwerven | | bodemkaart en historische kaarten | historische referentie-editie | niet als verouderde actuele bron labelen; alleen vervangen bij een officiële inhoudelijke heruitgave | | BWK/Natura 2000 en gebouwen-/adressenregister | expliciete actuele snapshot met eigen methodologische betekenis | eerst een stabiele officiële editieprobe en bron-specifieke reconciliatiecontrole toevoegen | Geen van deze regels activeert een browserfetch, scheduler of automatische vervanging. Een bron wordt pas `refreshable` wanneer versie, dekking, schema, provenance en een begrensde acquisitieroute afzonderlijk verifieerbaar zijn. De ALZ-publicatiepagina levert drie campagnesnapshots: v1 en v2 zijn voorlopig, v3 is de definitieve historische editie. GeoIntel vergelijkt daarom de lokale `2025-definitive` uitsluitend met de officiële `2025-v3`, terwijl de actuele `2026-v1` zichtbaar maar niet updategerechtigd blijft. De probe leest alleen de allowlisted HTML-pagina en linkidentiteiten; ZIP-archieven worden pas door de afzonderlijke operator opgehaald na menselijke editiebevestiging. `scripts/manage_alz_agriculture_release.py` beheert zo'n toekomstige definitieve editie in vier afzonderlijke operatorstappen. `plan` vergelijkt read-only de nieuwste v3 met de lokale `*-definitive` Dataset. `stage` vereist de exacte `YYYY-v3`, leidt de archief-URL af uit de gecontroleerde campagne en publicatiedatum en voert de bestaande provisioner uitsluitend met `--force --fetch-only` uit. Het staged plan bindt bronarchief, GeoPackage- schema/CRS, genormaliseerde GeoJSON, gewascodelijst, scope-aantallen en de verschillen met de vorige definitieve editie aan SHA-256. `review` vereist een benoemde menselijke goedkeuring van exact dat plan. `apply` vereist de plan- en reviewhash, controleert catalogus en alle bestanden opnieuw en maakt via de bestaande uploadservice hoogstens een nieuwe immutable Dataset. Een v1/v2-snapshot, huidige of oudere editie, cataloguswijziging, gewijzigde bronbyte of evidence buiten de beheerde opslagroot blokkeert de flow. Er is geen scheduler, browserdownload of automatische vervanging. De Statbel-probe leest uitsluitend de officiële DCAT Turtle-catalogus en selecteert de nieuwste unieke Nederlandstalige publicatie `Bevolking per statistische sector`. Voor 2025 vereist GeoIntel de nieuwe REDEGEO-indeling; de meegeleverde oude indeling is alleen overgangsevidentie. De cataloguslinks naar TXT/ZIP en XLSX worden op host, pad, jaar en variant gevalideerd maar niet opgehaald. De afzonderlijke statistische-sectorgeometrie 2026 betekent niet dat er al bevolkingscijfers per sector voor 2026 zijn gepubliceerd. Een afzonderlijke import-preflight in `scripts/statbel_population_preflight.py` controleert lokaal gestagede officiele ZIP-archieven voordat de bevolkingsoperator een nieuwe afgeleide snapshot mag aanbieden aan DatasetService. De controle is fail-closed voor bron-URL en editie, ZIP-veiligheid, verplichte kolommen, REDEGEO-layout, EPSG:31370, situatiedatum, geometrie/sectorjoin, gemeentetoewijzing, nationale en scopespecifieke totalen en een begrensde vergelijking met de vorige snapshot. Herstelbare bron-topologiefouten worden uitsluitend met `make_valid` genormaliseerd wanneer geometriesoort en oppervlakte behouden blijven; elk herstel staat in het manifest. Vanaf de editie 2025 mag de eerste vijf tekens van `CD_SECTOR` niet als actuele gemeentecode worden gebruikt. Gemeentefusies kunnen een historische sectorcode onder een nieuwe `CD_REFNIS` plaatsen. GeoIntel valideert daarom de expliciete gemeentevelden uit de bevolkings- en geometriebron tegen elkaar. Bevolkingsregels met suffix `ZZZZ` zijn officiele niet-lokaliseerbare totalen: ze tellen mee in de reconciliatie en het manifest, maar niet in kaartselecties of ruimtelijke schattingen. Een geslaagde preflight maakt een controlespoor met SHA-256 voor beide bronarchieven en de afgeleide GeoJSON. Zij geeft alleen technische importgeschiktheid aan; zij vervangt of importeert nooit automatisch een bestaande Dataset. `scripts/manage_statbel_population_release.py` beheert een toekomstige editie in vier afzonderlijke operatorstappen. `plan` vergelijkt de nieuwste allowlisted DCAT-editie read-only met de lokale bronversie. `stage` vereist expliciete bevestiging van jaar en REDEGEO-layout, haalt de exact uit het cataloguscontract afgeleide Statbel-URL's begrensd op en voert alleen de preflight/artefactstaging uit. `review` schrijft pas na een benoemde menselijke goedkeuring SHA-256-gebonden reviewevidence. `apply` vereist zowel plan- als reviewhash, controleert catalogusidentiteit en alle bestanden opnieuw en maakt via de bestaande uploadservice hoogstens een nieuwe immutable Dataset. De coordinator accepteert geen vrije provider-URL, start geen achtergrondtaak en kan een actuele of oudere remote editie niet stagen. Een ontbrekende bijbehorende sectorgeometrie, gewijzigde catalogus, gewijzigde bronbyte, onverklaarde totalensprong of onvolledige review blokkeert de flow. Bestaande snapshots blijven beschikbaar voor historische vergelijking. ### Mol population history `scripts/provision_mol_population_history.py` imports official Statbel population-by-statistical-sector tables and matching sector geometries for 2021 through 2025. It keeps the published sector total as `population_total`, clips the official geometry to Mol NIS `13025` and uploads each year as a separate dataset in `statbel:population-statistical-sector:mol`. Nieuwe of met `--force` herbouwde edities doorlopen verplicht de import-preflight. Bestaande historische caches zonder preflightmanifest mogen alleen worden hergebruikt wanneer de overeenkomende Dataset al bestaat; een nieuwe import uit zo'n cache wordt geweigerd totdat de officiele bron opnieuw wordt gestaged en gevalideerd. Complete sectors use their published population total. A rectangle that cuts through a sector uses an explicitly labelled area-weighted estimate; the source does not justify a more precise intra-sector distribution. 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. ### 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. Buildings, forest, water and roads are filtered server-side, clipped to the official Mol boundary and uploaded through the existing dataset service. Source classes, request URLs, observation year, simplification tolerance and methodological limitations remain in provenance. These historical map editions support exploratory area evolution, not cadastral object lineage. Their feature identities are declared unstable and GeoIntel does not fabricate added/removed object counts. 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 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 derives four explicitly labelled, methodologically comparable surfaces from one retained source raster per year: - `forest`: class 12, bosoppervlakte; - `water`: class 17, wateroppervlakte (not water volume); - `built`: classes 1-4 and 6-8, surface used by built functions, not GRB building footprints; - `transport`: class 5, transport-infrastructure surface, not GRB road length. 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. ### Regional official time series `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 population estimates; forest hectares remain measurements in the harmonized 10 m source representation and are not cadastral forest boundaries. The WCS source limits large responses, so regional forest retrieval is partitioned by the same 28 official municipality boundaries. GeoIntel retains those source rasters, merges them on their native 10 m grid and applies the 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 - 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 ## Audited official follow-up sources These sources are available from their public authorities but are not silently treated as loaded GeoIntel data. The Source inventory labels them separately until a governed operator import, provenance record and validation pass exist. - Biologische Waarderingskaart / Natura 2000 (INBO), state 2025: suitable for habitat, biotope and ecological-value analysis, not a continuous annual series. - Buildings and Addresses Register (Digitaal Vlaanderen): continuously updated building status, life cycle and address linkage; complementary to GRB geometry and not yet imported. - DHMV II DTM/DSM (Digitaal Vlaanderen): governed bounded WCS acquisition is implemented below. The official 1 m source and 5 m analysis copy are suitable for measured elevation, relief and slope. Drainage remains an interpretation; the products do 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 annual agricultural-use parcels `scripts/provision_agricultural_parcel_history.py` uses the official annual download archives published by Agentschap Landbouw en Zeevisserij. Only the definitive editions 2008-2025 are allowed. The provisional current-campaign snapshot is deliberately excluded, and the retiring Digitaal Vlaanderen `Landbgebrperc` WFS is not used as the long-term source path. Each official ZIP, SHA256 checksum, full-edition crop code list and manifest is retained. The temporary GeoPackage is validated as EPSG:31370 with the stable annual field set, read through the GIS optional dependencies and deleted after the normalized GeoJSON has been built. Geometry is clipped exactly against the persisted scope Area in Lambert 72 and imported only through DatasetService. Future definitive editions are accepted only as one explicit release per operator run with an exact official `agpa___public.zip` identity. Reaching that URL is not sufficient for persistence: the separate release manager must first stage and bind all evidence, receive named approval and revalidate it during apply. The regional default creates the series `alz:agricultural-use-parcels:kempen-transport-region`; `--scope mol` creates an independent Mol series. Selection and evolution expose exact intersected hectares for total declared use and official main-crop groups. Individual parcel additions/removals are unavailable because parcel identity is not stable across campaign years. Official catalogues: - https://landbouwcijfers.vlaanderen.be/open-geodata-landbouwgebruikspercelen - https://www.vlaanderen.be/datavindplaats/catalogus/open-geodata-landbouwgebruikspercelen ## Governed Waterinfo station history `scripts/provision_waterinfo_station_history.py` uses the public Waterinfo KiWIS query service only after an explicit operator command. It discovers the documented annual water-level (`192784`) and discharge (`192895`) groups, filters station points against the exact persisted Area and retains the raw station/value JSON plus SHA256 manifests. Each station and year becomes one immutable reference Dataset through the normal upload API. Series keys include the station identity; different stations are never averaged into one municipal value. Selection aggregation is a numeric mean over the selected station records and remains labelled as a point measurement. Water level or discharge does not establish area-wide water volume without compatible depth, profile and coverage data. ## Governed historical orthophotos The bounded map acquisition registry includes the official annual winter mosaics for 2012-2025, period products for 2000-2003, 2005-2007 and 2008-2011, the RGB 1979-1990 summer mosaic and the panchromatic 1971 mosaic. Requests stay within the configured 128-1,024 m safety envelope and are persisted as EPSG:31370 raster Datasets with explicit product, layer, observation period, attribution and request hashes. Historical mosaics are for visual comparison only in this phase. Current YOLO building detection and current GRB QA remain restricted to `most_recent`, since validating an old image against today's building state would produce dishonest quality metrics. ## OSM - Naam: OpenStreetMap - Type: vector - Gebruik: fallback referentie, wegen, POI's, landuse - Toegang: Overpass API of lokale extracten - Cache: PostGIS per analysegebied - Prioriteit: V1 fallback ## Sentinel-2 - Naam: Copernicus Sentinel-2 - Type: multispectraal raster - Gebruik: NDVI, NDWI, NDBI, remote sensing change detection - Toegang: Copernicus/STAC later te bepalen - Cache: raster storage + metadata in PostGIS - Prioriteit: V2 ## DHMV - Naam: Digitaal Hoogtemodel Vlaanderen - Type: raster/hoogte - Gebruik: DTM/DSM hoogte, reliëf, helling en laagste punten - Toegang: productie-WCS `https://geo.api.vlaanderen.be/DHMV/wcs` - Coverages: `DHMVII_DTM_1m`, `DHMVII_DSM_1m` - Native raster: 1 m Float32, EPSG:31370, nodata `-9999`, hoogte in TAW - Opnameperiode: 2013-2015; geen uniforme recente peildatum - Cache: canonical raster Dataset plus WCS request/response/output checksums - Operators: `scripts/provision_mol_dhmv.py`, `scripts/provision_regional_dhmv.py` - Prioriteit: P4 uitgevoerd voor alle 28 Kempen-gemeenten The operator requests a bounded 5 m analysis copy by default so a complete municipality remains operationally manageable while retaining the official 1 m native resolution in source metadata. The response is clipped to the exact persisted Area before `DatasetService` stores it. DTM is bare-earth terrain; DSM includes buildings and vegetation. Neither is exposed as water depth, water volume or a directly measured building-height product. A drainage model would require a separately governed hydrological processing pass. De regionale operator gebruikt exact de 28 persistente gemeente-Areas van de goedgekeurde Kempen-scope en plant twee outputs per gemeente. Die 56 gemeentepartities vermijden een onnodig monolithisch hoogtebestand, blijven binnen WCS/pixelgrenzen en sluiten aan op de gebiedsgebonden datasetselectie in de kaart. De live matrix bevat 56 geverifieerde Datasets en DatasetVersions. De regionale kaart combineert alleen de partities die een getekende selectie raken; globale statistieken worden uit de samengevoegde cellen berekend. Herhaalruns gebruiken de bestaande checksummed requestcache. ## VMM overstromingsgevaarkaarten - Naam: Overstromingsgevaarkaart Waterdiepte - Uitgever: Vlaamse Milieumaatschappij - Type: raster/modelscenario - Toegang: publieke OGRK WCS 1.1 `https://geoservice.waterinfo.be/OGRK/wcs` - Coverages: fluviaal/pluviaal, huidig klimaat/klimaatprojectie 2050, T10/T100/T1000 - Native raster: 2 m Float32, EPSG:31370, waterdiepte in centimeter - Publicatie: 2019/2021 afhankelijk van product; scenario-identiteit is leidend en wordt niet als observatiedatum opgeslagen - Cache: canonical raster Dataset plus request/response/output checksums - Operators: `scripts/provision_mol_flood_hazards.py`, `scripts/provision_regional_flood_hazards.py` - Prioriteit: P5 scenariofundament uitgevoerd voor alle 28 Kempen-gemeenten VMM beschrijft deze lagen als maximale lokale waterdiepte tussen wateroppervlak en maaiveld voor een gekozen kans- en klimaatscenario. GeoIntel converteert positieve waarden naar meter en kan een diepte-oppervlakte-integraal berekenen. Omdat lokale maxima niet noodzakelijk op hetzelfde tijdstip optreden, is dat geen gelijktijdig overstromingsvolume. De bron bevat evenmin bodemprofielen van meren, kanalen of waterlopen en kan dus geen permanente waterinhoud leveren. De officiële audit vond geen publieke, gebiedsdekkende inland-bathymetrie voor Mol. Kust- en Noordzeeproducten vallen buiten de ruimtelijke scope. Waterinfo stations blijven puntmetingen en GRB-watergeometrie blijft tweedimensionaal. ## Regionale VMM overstromingsscenario's `scripts/provision_regional_flood_hazards.py` breidt de beheerde VMM-overstromingsflow uit naar de goedgekeurde `kempen-transport-region` scope. De operator gebruikt de 28 persistente gemeente-Areas die door `provision_geographic_scope.py` zijn aangemaakt en roept per gemeente en per scenario uitsluitend de bestaande canonical API aan: - `POST /api/v1/projects/{project_id}/datasets/flood-hazard/acquire` - `POST /api/v1/projects/{project_id}/datasets/{dataset_id}/raster/flood-hazard/select` Deze gemeentepartities zijn bewust. Een volledig regionaal raster in een aanvraag zou de publieke WCS- en pixelgrenzen onnodig belasten. In de UI blijft een gemeente gekoppeld aan haar eigen bestand. Op het volledige Kempen-gebied worden de 28 partities als één logische scenario-laag getoond. Een getekende rechthoek opent alleen de rakende partities en berekent globale statistieken uit de werkelijk samengevoegde cellen. De regionale operator ondersteunt `--dry-run`, `--members` en `--products`. De uitgevoerde volledige scope bevat 336 gecontroleerde Datasets en 336 DatasetVersions zonder ontbrekende gemeente/scenario-combinaties. Herhaalruns gebruiken bestaande checksummed Datasets via de backend-cache zolang de requestidentiteit niet verandert. Ook regionaal blijft de semantiek onveranderd: VMM-waterdiepte is een gemodelleerde maximale lokale diepte per kans- en klimaatscenario. GeoIntel kan oppervlakte, gemiddelde/P90/maximale diepte en de diepte-oppervlakte-integraal berekenen. Dat is geen gelijktijdig waterbergingsvolume, geen actuele waterstand en geen bathymetrie. ## Gebouwenregister The governed operator `scripts/provision_buildings_addresses_register.py` reads the official Digitaal Vlaanderen OGC API Features collections `Gebouw`, `Gebouweenheid` and `Adres`. The source is continuously updated; GeoIntel therefore creates a dated snapshot rather than claiming an annual historical series. Raw response pages, request URLs and SHA256 checksums are retained as operator evidence. The operator follows advertised `next` links and, when a full page omits that link, continues with an explicit `startIndex`. This is required because the production address collection currently stops advertising `next` at a service-side result window even though later offsets remain available. A short final page is required before the snapshot is considered complete. Building polygons are clipped against the exact persisted Area in EPSG:31370, transformed to EPSG:4326 and persisted through the normal Dataset upload route with `source_name=digitaal_vlaanderen_buildings_addresses_register` and `reference_layer_name=building_registry`. Register lifecycle state remains separate from GRB geometry. Each register building receives an explicit `matched`, `review`, `ambiguous` or `unmatched` GRB reconciliation result; a low-confidence or duplicate match is never silently promoted. Building units use the official `GebouwObjectId` relation. The public address collection does not expose that relation directly, so addresses are linked only through an exact, unambiguous unit position or unambiguous polygon containment. Ambiguous and unmatched rows are counted in the manifest and are never forced to the nearest building. The queryable layer contains building polygons, lifecycle status and aggregate unit/address counts only. Street names, full addresses, house numbers and box numbers are excluded. Address counts are not households, dwellings, residents or population. Raw source pages remain restricted operator evidence and are not exposed by the API or map. Official endpoints and catalogues: - https://geo.api.vlaanderen.be/Gebouwenregister/ogc/features/v1/collections/Gebouw/items - https://geo.api.vlaanderen.be/Gebouwenregister/ogc/features/v1/collections/Gebouweenheid/items - https://geo.api.vlaanderen.be/Adressenregister/ogc/features/v1/collections/Adres/items - https://www.vlaanderen.be/datavindplaats/catalogus/gebouwen-en-adressenregister - https://www.vlaanderen.be/datavindplaats/catalogus/gebouwenregister Digitaal Vlaanderen is transitioning the download products in summer 2026. This operator uses the current production OGC API and does not depend on the retiring `/v2/extract` path. ## Lokale demo datasets De repo moet ruimte voorzien voor kleine samplebestanden in `tests/fixtures/` of `datasets/raw/demo/`. Grote datasets mogen niet standaard in git. ## Sprint 7B provider registry Sprint 7B exposes provider metadata only. It does not perform GRB WFS calls, OSM Overpass calls, downloads, or fake data generation. | provider | authority_level | configured | layers | dataset mapping | | --- | --- | --- | --- | --- | | `grb` | authoritative | false | buildings, roads, parcels | `dataset_role=reference`, `source_name=grb` | | `osm` | contextual | false | buildings, roads, water, landuse | default `dataset_role=source`, explicit reference `dataset_role=reference`, `source_name=osm` | | `manual` | manual | true | uploaded user layers | `dataset_role=reference`, `source_name=manual` | | `fixture` | fixture | true | demo/test fixture layers | `dataset_role=reference`, `source_name=fixture` | Future provider output must flow through `DatasetService` and `VectorFeatureService`; providers must not write directly to `vector_features`. ## Regional BWK/Natura 2000 state 2025 `scripts/provision_regional_bwk_natura2000.py` expands the governed Mol operator to the approved 28-municipality Kempen transport-region scope. It queries the same official INBO `BWK:Bwkhab` WFS collection separately for each official VRBG municipality boundary. Every response is retained as a deterministic gzip artifact with both compressed-artifact and original-response SHA256 checksums. Geometry is intersected with each municipality in EPSG:31370 before it is transformed to EPSG:4326. Source polygons crossing a municipality boundary are therefore split into auditable pieces and receive a NIS suffix; those pieces must not be interpreted as independent source observations. The 28 validated partitions are assembled into one regional snapshot and persisted through the ordinary Dataset upload API with `source_name=inbo_bwk_natura2000`, `reference_layer_name=nature_value` and `temporal_series_key=inbo-bwk-natura2000:kempen-transport-region`. The state remains a single 2025 map edition, not an annual time series. BWK valuation, Natura 2000 shares, regional biotopes and uncertain habitat remain separate fields and metrics. PHAB-derived hectares remain explicitly estimated. ## Platform-wide audited source portfolio The complete follow-up portfolio is maintained in `docs/DATAVINDPLAATS_SOURCE_ROADMAP.md` and represented in the frontend by `frontend/src/lib/sourcePortfolio.ts`. It covers six equal product domains: space/buildings, nature/agriculture, soil/relief, mobility/accessibility, population/services and climate/living environment. An official catalogue record means only that a candidate source has been audited. It does not make the source operational. The Sources workspace may report `operational` only when a matching Dataset has `status=ready`. Future provider output continues to use DatasetService and, for vectors, VectorFeatureService. Arbitrary service URLs, browser-side fetches and startup downloads remain forbidden. The fixed allowlist of public Mercator thematic rasters for space occupation, open space, population density, node value and service level is operational for bounded Mol, Kempen and Flanders selections. The digital soil map follows the canonical vector persistence path for Mol and Kempen. Additional Flemish vector themes still require governed regional operators; a catalogue record alone never makes them operational. ## Bathymetry, inland profiles and maritime scope The official VHA Digital Atlas profile-point layer is the first operational bathymetry-adjacent source. GeoIntel requests an explicit bbox, clips against the exact persisted Area and retains VHA point identifiers, watercourse names, profile numbers, measurement dates, available structured depth/width values and official document URLs. Scanned documents remain evidence; missing fields are not filled by fabricated OCR output. The following sources are audited but not yet operational: - MDK Dieptemodel Belgisch Continentaal Plat/Noordzee: 20 x 20 m continuous raster in LAT, exposed through WCS/WMTS. GeoIntel now has a strict-TLS, read-only GetCapabilities probe. On 2026-07-17 the official metadata endpoint presented a certificate for another hostname and returned no usable capabilities path; status therefore remains `tls_error` and raster acquisition is disabled. - SPW bathymetry of navigable waterways and reservoir lakes: 0.5 m bed elevation and XYZ data in mDNG. - Port of Antwerp-Bruges periodic soundings: catalog candidate pending a stable public machine contract. See `docs/BATHYMETRY_EXPANSION_ROADMAP.md`. TAW, LAT and mDNG remain separate until an authoritative vertical transformation is implemented and tested. The territorial sea, EEZ and continental shelf are separate scope layers and must be labelled according to their legal meaning. The official VRBG RefGem collection currently exposes 285 Flemish municipalities. `scripts/provision_flanders_geographic_scope.py` validates the complete inventory, produces checksum-bound land-boundary artifacts and creates one persisted municipality Area per source feature. The separate `scripts/provision_flanders_bathymetry_profiles.py` coordinator acquires VHA profiles per Area, writes an atomic resumable manifest and requests regional activation only after all 285 partitions are accounted for. A municipality with zero source points is retained as an explicit no-profile partition, not silently omitted.