VolledigeBAG

De volledige BAG (in de configuratie de container VolledigeBAG) is de BAG-dataset waar het model mee rekent: per objecttype alle voorkomens van alle objecten, dus inclusief alle historische statussen en geldigheidsperioden. Hij komt als compacte stores uit Xml2MMD van de BAG-Tools. Deze pagina beschrijft wat RSopen uit die stores leest en hoe het ze inleest. Voor de plek van deze stap in de totale keten, zie BAG verwerking.

De stores

De stores staan in %RSo_DataDir%/Vastgoed/BAG_<BAG_file_date>_History/, een MMD-store per objecttype. Ze worden buiten RSopen gemaakt, eenmaal per levering, en zijn compact genoeg om bij elke run rechtstreeks te lezen: identificaties als uint64, statussen als code met de labeltabel in de store, registratiedatums als yyyymmdd-getal en coördinaten in millimeters. RSopen leest er drie:

Objecttype Store Wat RSopen eruit gebruikt
pand pand.mmd Het pandvlak (in millimeters, door BAG-Tools vereenvoudigd met een tolerantie van 0,1 meter), het oorspronkelijke bouwjaar, status, geldigheid en registratiedatums
vbo vbo.mmd Het punt (bij een vbo met een vlak een punt binnen dat vlak), de gebruiksdoelen, de oppervlakte, status en geldigheid, de nummeraanduiding, en de relaties met panden (gerelateerdPand), per relatie met het voorkomen van het vbo waar zij bij hoort
nummeraanduiding nummeraanduiding.mmd De postcode, voor de PC6-centroïden van de vbo’s

Xml2MMD maakt ook stores voor ligplaats, standplaats, openbare ruimte en woonplaats; die leest RSopen niet.

Elk record is een voorkomen. Een object dat bijvoorbeeld de statussen Bouwvergunning verleend, Bouw gestart en Pand in gebruik heeft doorlopen, staat drie keer in de tabel, elk met de eigen geldigheidsperiode. Hierop berust het maken van snapshots per peildatum.

Generieke velden

Pand en vbo krijgen via het sjabloon meta_src_template dezelfde generieke velden:

Attribuut Betekenis
status_rel De BAG-status van dit voorkomen, gekoppeld aan de statusclassificatie via het label in de labeltabel van de store (hoofdletterongevoelig) en niet via de volgorde van de codes (zie BAG statussen en voorraad)
Begindatum / Einddatum Geldigheidsperiode van dit voorkomen (yyyymmdd als geheel getal)

Bij panden leest het model daarnaast TIJDSTIPREGISTRATIE en EINDREGISTRATIE, het registratiemoment in de BAG, als terugval bij implausibele begin- en einddatums.

Inlezen: VolledigeBAG

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

Per objecttype leest het model de store zoals hij is (ImportRaw), geeft enkele velden de naam die de rest van de lezer verwacht (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 en IsVoorraad: de status en of die tot de voorraad hoort, opgezocht in de classificatie (zie BAG statussen en voorraad);
  • de datumlogica: een Einddatum van 0 (object nog geldig) wordt vervangen door MaxDatum = 20500101. Voor panden geldt bovendien: is de begin- of einddatum implausibel (voor 1960-01-01), dan wordt het registratietijdstip (TIJDSTIPREGISTRATIE/EINDREGISTRATIE) gebruikt;
  • Bouwjaar_trunc: bouwjaren tot en met 1005 of na BAG_RecentYear worden null, bouwjaren voor 1500 worden afgekapt op 1500;
  • oppervlakte_trunc (vbo): de foutcodes van de BAG (999, 9999, 99999, 999999, 888888 en 999998) worden null, daarna gelden een ondergrens en bovengrenzen die voor woon- en niet-woonobjecten verschillen, zie BAG verwerking;
  • de pandhoogte uit de AHN-pandenset van het modeljaar, voor de bovengrens op niet-woonobjecten;
  • een correctie van de draairichting: pandvlakken met een negatieve oppervlakte worden omgekeerd;
  • Footprint: oppervlakte van het pandvlak in m², en een met 0,2 meter opgeblazen vlak voor de pandtypering;
  • de studiegebiedvlaggen (IsNederland, IsNoord_Holland, IsUtrecht en zo verder). De stores kennen ze niet, dus het model berekent ze uit de ligging van het pandmidden of het vbo-punt ten opzichte van de provinciegrenzen; IsNederland is altijd waar, de landsgrens zit in de selectie hieronder;
  • IsLogistiekFunctie en LigtInCBSVerblijfsrecreatie, de vlaggen voor logistiek en verblijfsrecreatie (zie BAG verwerking);
  • de relaties tussen vbo en pand: Import/gerelateerdPand heeft per relatie het voorkomen van het vbo, en daarop kiezen de jaarsets hun relaties, zodat een vbo alleen hangt aan de panden van zijn voorkomen op de peildatum (#839). src/gerelateerdPand is dezelfde tabel teruggebracht tot unieke paren van vbo en pand; daarlangs krijgt een vbo de voetafdruk en de hoogte van zijn pand.

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, wat kapotte geometrieën wegfiltert;
  • 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.