-
Notifications
You must be signed in to change notification settings - Fork 2
Programmatuur en dataelementen van het model
De Ruimtescanner is opgebouwd als een modulair GeoDMS-model waarin ruimtelijke datasets en berekeningen zijn georganiseerd in een hiërarchische containerstructuur. De programmatuur beschrijft de logische relaties tussen domeinen (ruimtelijke eenheden), datasets (bronbestanden) en functies (afgeleide indicatoren en allocatieregels).
Met programmatuur wordt hier bedoeld: de modelinterne programmatische structuur en logica binnen GeoDMS, niet de softwareapplicatie zelf.
Het model bestaat uit vier hoofdcomponenten:
- Modelcontainers – classificaties, parameters, configsettings en exportsettings.
- Datacontainers – inlezen en voorbewerken van externe data; SourceData, BaseData, VariantData.
- Rekencontainers – het allocatieproces.
- Outputcontainers – indicatoren, aggregatie, analyse en export.
De Ruimtescanner volgt de standaard GeoDMS-opzet, bovenop de generieke setup (zie naming conventions).
Hieronder wordt de containerstructuur en bijbehorende logica kort toegelicht.
- Modelparameters: bevat alle modelbrede instellingen die in elke variant gelden.
- Variantparameters: bevat instellingen die variant-specifiek zijn; voor elke variant staan de waarden naast elkaar, waarbij alleen de waarde van de gekozen variant wordt gebruikt.
- CaseClassifications: sommige classificaties zijn variant-specifiek. Vanuit deze container worden subsets van de relevante classificaties afgeleid.
- PrivData: bevat uitsluitend data die niet openbaar beschikbaar is. In een publieke versie worden deze items waarschijlijk rood; dat is geen probleem, want ze worden dan niet aangeroepen.
- SourceData: inlezen van brondata. Hier worden zo min mogelijk aanpassingen aan de oorspronkelijke data gedaan.
- BaseData: combineert en bewerkt de brondata om de gewenste modeldoelen te kunnen berekenen. Deze gegevens zijn nog niet variant-specifiek.
- VariantData: bevat data die variant-specifiek is, bijvoorbeeld geschiktheid (suitability). Deze wordt opgebouwd via ontwikkelpakketten die per variant verschillen.
- Allocatie: doorloopt het allocatieproces (per zichtjaar, per sequentie, per sector-alloc-regio, per iteratie en per subsector) en schrijft de resultaten weg.
- Indicatoren: leest de ontkoppelde allocatieresultaten in en berekent een reeks indicatoren en statistieken.
- PostAllocAnalyses: bevat aanvullende analyses op de allocatieresultaten. Deze staan los van de kern-engine van het model, om die overzichtelijk en schoon te houden.
- CommitChecks: bevat finale controles waarmee snel kan worden nagegaan of het model correct draait en consistente resultaten geeft.
- WritePrivData: genereert ontkoppelde priv-data (alleen beschikbaar waneer je de privdata hebt).
- WriteBaseData: ontkoppelt alle benodigde basedata. Dit bespaart rekentijd tijdens modellering of exploratief rekenen, en is herbruikbaar bij het doorrekenen van meerdere varianten, omdat de basedata voor elke variant gelijk is.
- WriteVariantData: ontkoppelt alle benodigde variantdata. Dit versnelt modellering en exploratief rekenen doordat variantdata slechts één keer wordt opgebouwd.
- WriteAllocatie: hulpcontainer voor een verkort pad naar het genereren van allocatieresultaten.
Het allocatieproces wordt op meerdere momenten gestart (per zichtjaar, per sequentie, per sector-alloc-regio, per iteratie en per subsector). De hiërarchie is als volgt:
- Zichtjaren – per zichtjaar wordt het model opnieuw uitgevoerd.
- Sequenties – binnen een zichtjaar vinden meerdere sequenties plaats.
- Sector-alloc-regio’s – binnen elke sequentie wordt per sector-alloc-regio gealloceerd (bijvoorbeeld Wonen – NVM).
- Iteraties – binnen een sector-alloc-regio wordt het allocatiemodel iteratief toegepast totdat claims zijn verwerkt.
Deze structuur komt één-op-één terug in de modelhiërarchie:
/Allocatie/Zichtjaren/Y2050/Sequences/Seq_0/SectorAllocRegios/Wonen_NVM/Iters_Normaal/Iter_0/Subsectoren/eengezins_VrijeSector
De Ruimtescanner maakt gebruik van het concept CompactedDomain om rekenprestaties (geheugengebruik en rekentijd) te verbeteren.
In plaats van over alle cellen te itereren, worden alleen cellen opgenomen die potentieel relevant zijn — dat wil zeggen: cellen die op land liggen.
In het geval van Nederland op 100 meter resolutie wordt het aantal cellen zo teruggebracht van circa 9.1 miljoen naar ongeveer 3.5 miljoen, omdat de Noordzee en Waddenzee buiten beschouwing blijven. Bij kleinere celgroottes wordt het efficiëntievoordeel nog groter.
Object Vision B.V.