Skip to content

VolledigeBAG

Jip Claassens edited this page Jun 10, 2026 · 1 revision

De VolledigeTabel (in de configuratie VolledigeBAG genoemd) is de geconsolideerde BAG-dataset waar het model mee rekent: één tabel per objecttype, met daarin alle voorkomens van alle objecten — dus inclusief alle historische statussen en geldigheidsperioden. Deze pagina beschrijft hoe die tabel wordt gemaakt (MaakVolledigeBAG) en hoe ze wordt ingelezen (VolledigeBAG). Voor de plek van deze stap in de totale keten, zie BAG verwerking.

Waarom deze tussenstap?

Het resultaat van het BAG-tools-script XML2FSS is nog versnipperd: de grote objecttypen pand en vbo zijn opgeknipt in tientallen deelbestanden ("filesets"), en de geometrieën zijn nog niet vereenvoudigd. MaakVolledigeBAG voegt alles samen tot één tabel per objecttype, voert eenmalige bewerkingen uit (geometrievereenvoudiging, studiegebied-vlaggen, adresverrijking) en schrijft het resultaat weg. Daarna kan het model deze tabellen snel inlezen zonder de dure samenvoegstap te herhalen.

Genereren: MaakVolledigeBAG

Bestand: SourceData/Vastgoed/BAG/MaakVolledigeBAG.dms.

Aansturing

  • Bron: %BAG_DataDir%/<BAG_file_date>/ — de FSS-bestanden uit BAG-tools.
  • Doel: %RSo_DataDir%/Vastgoed/VolledigeTabel_<BAG_file_date>/ — één .mmd-bestand per objecttype.
  • Trigger: het item MaakVolledigeBAGTabel updaten (bijvoorbeeld in de GeoDMS GUI). Via ExplicitSuppliers worden dan alle write_result-items van de objecttypen gegenereerd.
  • Validatie: er wordt eerst gecontroleerd of de bronmap een volledige set FSS-bestanden bevat (aanwezigheid van pand/nr_fss.csv). Zo niet, dan meldt MaakVolledigeBAGTabel welke map ontbreekt en gebeurt er niets.

Objecttypen

Objecttype Bron Resultaat Bijzonderheden
pand pand/fs_1.fssfs_N.fss pand.mmd Filesets; geometrievereenvoudiging; bouwjaar
vbo vbo/fs_1.fssfs_N.fss vbo.mmd Filesets; gebruiksdoelen; gerelateerdPand- en nevenadres-subtabellen
nummeraanduiding nummeraanduiding.fss nummeraanduiding.mmd Verrijkt met straatnaam en woonplaats
openbareruimte openbareruimte.fss openbareruimte.mmd Levert de straatnaam
woonplaats woonplaats.fss woonplaats.mmd Levert de woonplaatsnaam (via point-in-polygon)
ligplaats, standplaats ligplaats.fss, standplaats.fss ligplaats.mmd, standplaats.mmd Aanwezig in de configuratie, maar standaard uitgeschakeld

Filesets samenvoegen

Het aantal deelbestanden staat in nr_fss.csv. Voor elk deelbestand wordt via een template een lees-unit aangemaakt; vervolgens worden alle deelbestanden met union_unit/union_data samengevoegd tot één grote set (src). Dit gebeurt voor de data-attributen, de meta-attributen én de subtabellen (gerelateerdPand, nevenadres).

Meta-attributen

Elk objecttype krijgt via het template meta_src_template dezelfde set generieke BAG-attributen mee:

Attribuut Betekenis
Status De BAG-status van dit voorkomen, als string (zie BAG statussen en voorraad)
Begindatum / Einddatum Geldigheidsperiode van dit voorkomen (yyyymmdd als geheel getal)
TIJDSTIPREGISTRATIE / EINDREGISTRATIE Registratiemoment in de LVBAG; gebruikt als terugvaloptie bij ontbrekende of implausibele begin-/einddatums

Eén record = één voorkomen. Een object dat bijvoorbeeld de statussen Bouwvergunning verleendBouw gestartPand in gebruik heeft doorlopen, staat drie keer in de tabel, elk met de eigen geldigheidsperiode. Hierop berust het on-the-fly snapshotmechanisme.

Overige bewerkingen

  • Geometrievereenvoudiging: pandpolygonen worden vereenvoudigd met bg_simplify_polygon(geometry_mm, 0.1) (tolerantie 0,1 mm-eenheden) om opslag en rekentijd te beperken.
  • gerelateerdPand: de 1-op-n-koppeltabel tussen vbo's en panden wordt meegeschreven. Deze bevat in de bron duplicaten (mutaties op velden die het model niet gebruikt); omdat de tabel enkel de associatie vbo↔pand vastlegt, wordt ze bij het inlezen veilig gecondenseerd tot unieke combinaties.
  • Adresverrijking nummeraanduiding: de straatnaam wordt opgezocht via de openbareruimte, de woonplaats via point-in-polygon op de woonplaatsgeometrie, en de geometrie via het gekoppelde vbo.
  • Studiegebied-vlaggen: per pand/vbo wordt bepaald of het in Nederland en in de voorgedefinieerde studiegebieden (provincies) ligt, zodat het model later snel op studiegebied kan filteren.

Inlezen: VolledigeBAG

Bestand: SourceData/Vastgoed/BAG.dms, container VolledigeBAG.

Het model leest de .mmd-bestanden uit VolledigeTabel_<BAG_file_date> in (Import) en bouwt daar een verrijkte laag omheen (src), met onder meer:

  • pand_bag_nr / vbo_bag_nr: de identificatie als uint64, voor snelle koppelingen;
  • status_rel: koppeling van de statusstring aan de statusclassificatie via een (hoofdletterongevoelige) lookup;
  • IsVoorraad: opgezocht in de classificatie, per status (zie BAG statussen en voorraad);
  • datumlogica: een Einddatum van 0 (object nog geldig) wordt vervangen door MaxDatum = 20500101. Voor panden geldt bovendien: is de begin- of einddatum implausibel (vóór 1960-01-01), dan wordt het registratietijdstip (TIJDSTIPREGISTRATIE/EINDREGISTRATIE) gebruikt;
  • Bouwjaar_trunc: bouwjaren ≤ 1005 of in de toekomst worden null, bouwjaren vóór 1500 worden afgekapt op 1500;
  • oppervlakte_trunc (vbo): oppervlaktes ≥ 500.000 m² worden als ongeldig (null) beschouwd;
  • winding-order-correctie: pandpolygonen met een negatieve oppervlakte (verkeerde draairichting) worden omgekeerd;
  • Footprint: oppervlakte van de pandgeometrie in m².

Selectie van geldige records

Niet alle records doen mee. De uiteindelijke sets panden/pand en VBOs/vbo bevatten alleen records die:

  • een geometrie binnen de bounding box van Nederland hebben (RD-coördinaten: x tussen 0 en 300.000, y tussen 300.000 en 620.000);
  • voor panden: een omvang (x- en y-bereik) kleiner dan 1 km hebben — dit filtert kapotte geometrieën;
  • binnen het gekozen studiegebied (ModelParameters/StudyArea) liggen.

Er wordt hier dus niet op status of datum gefilterd: dat gebeurt pas bij het maken van de jaarsnapshots, zie BAG verwerking.

Clone this wiki locally