woensdag 17 oktober 2012

"Waar is de BAG, hier is de BAG!" : de BAG als ultieme geocache

Sinds de brede verspreiding van goedkope GPS ontvangers is geocaching een populair tijdverdrijf geworden: verstop een schat in een holle boom, gat in de grond of onder je deurmat, en geef wat aanwijzingen waarmee de schatzoekers op pad kunnen gaan. Die aanwijzingen kunnen de coördinaten van de vindplaats zijn, maar leuker en spannender is het als er tussendoor puzzels moeten worden opgelost, opdrachten worden vervuld en wat al niet meer.
Terzijde wat historisch besef: Kees van Kooten en Wim de Bie introduceerden het fenomeen in 1984 door een kistje met een duizendje (gulden!) bij de Pyramide van Austerlitz te begraven. Dat gaf 's nachts nogal wat reuring op de Utrechtse Heuvelrug, zoals het "Volksdagblad de Waarheid" de dag er na berichtte. Andere tijden!

Voor App bouwers die met open data aan de slag willen is een lijst met coördinaten van de Nederlandse adressen de ultieme heilige graal. Aangezien de rijksoverheid openheid en waardecreatie heel belangrijk vind is de basisregistratie adressen en gebouwen (BAG) als open data beschikbaar gesteld. Nou ja, je moest nog wel even 150 euro bij wijze van verstrekkingskosten bij het Kadaster achterlaten, en per maandelijkse update nog eens 10 euro betalen. Maar daar krijg je wel 8 miljoen adressen voor terug, dus per adres eigenlijk een schijntje.

Sinds medio juni kun je die 150 euro en dat maandelijkse tientje in de pocket houden door gebruik te maken van de gratis versie zoals aangeboden door de geomotor van Nederland: PDOK. Om het leuk en spannend te maken moet je ook hier wat raadsels oplossen.
Na je vingers blauw getypt te hebben aan de URL www.nationaalgeoregister.nl en vervolgens "adressen" als zoekterm te hebben ingevoerd verschijnt een lijstje van 18 hits. Eentje scoort een relevantie van 100%, de overige 17 0%. Dat zou je op het verkeerde been kunnen zetten, gewoon negeren is het beste. In de top 5 staan een "Inspire View Service PDOK voor (..) adressen (..)", "adressen", "adressen WMS", "Inspire adressen WFS", en op 5 de eerste commerciële aanbieder (BridGIS) met "adresservice".

Die "view service" en "WMS" (beide van de Rijksoverheid) blijken evenals de "adressen" van Kadaster services te zijn die alleen een plaatje opleveren, waarvan de URL die naar de webservice stuit op een "error 404 - not found". Vooruit, een aanwijzing: type "request=getcapabilites" achter die URL en je krijgt er wel allerlei inhoudelijke en technische informatie over.
Maar we willen echte data, dus die WFS lijkt wel wat. en inderdaad, na wat gepuzzle levert de URL http://geodata.nationaalgeoregister.nl/inspireadressen/wfs?request=getFeature&typename=inspireadressen&outputformat=JSON 4Mb aan download op. Helaas levert het PDOK motortje maximaal 15.000 objecten per request, dus om via deze weg heel Nederland bij elkaar te sparen moet je zo'n 1000 requests afvuren en daarbij bijvoorbeeld telkens een andere bounding box opgeven. Dat gaat 'm niet worden.

Nog even terug naar de NGR-hitlist dan maar, en verdomd, verstopt op nummer 7 staat daar een "Inspire Download Service van adressen (inspire adressen)". klikkerdeklik, dat leidt naar http://geodata.nationaalgeoregister.nl/inspireadressen/atom/inspireadressen.xml Kijk, nu wordt het wat: complete BAG-n van een 4 tal datums, met als meest recente 8 augustus. Downloaden maar, en ja hoor, en stroomt 1.3 Gb naar binnen. Die kwantiteit is een goed voorteken! Na unzippen blijkt er naast 7 ZIPfiles een leveringsdocument-BAG-extract.xml in te zitten. Als ik daar in puzzel zie ik onder meer dat het  draaimoment van deze dataset 8 augustus, half tien 's ochtends is.

(Wanneer de volgende zending komt is niet geheel duidelijk; er zat een regelmaat van 1x per maand in, na 8 augustus is de aanvoer stilgevallen. Als het goed is hoor ik binnenkort van het Kadaster meer over het leveringsplan)

Maar liefst 7 zipfiles heb ik nu. Eén met STA in de naam, een NUM, een PND een OPR een WPL, een LIG en een VBO. Dankzij Herko Coomans' onvolprezen "Hitchhikers Guide to the BAG" weet ik dat er nummers, panden, woonplaatsen, verblijfsobjecten, standplaatsen en ligplaatsen in moeten zitten, dus dat puzzeltje valt ook wel op te lossen.

Nog wel wat lastig dat die 7 zips soms weer uit meer dan één XML met de echte inhoud bestaan, omdat er een maximale grootte van 20 Mb per bestand is gehanteerd, dus dat weer even aan elkaar metselen. Gelukkig is er voor die technische puzzels uit de vorig alinea een kant-en-klare oplossing om het hele spul in een PostGIS database te prakken: nlextract.

Kortom, de geocache die BAG heet is gevonden. Champagne, ballonnen! Op nar de volgende geoschat, want zo'n inhoudeljke en technische geospeurtocht smaakt naar meer.

(voor deze usecase het verslag van deze "geocache" heb ik me onder meer laten inspireren door Erik Romijn's verhaal "De Weg Kwijt? De Zoektocht van een App Maker door Geo-informatiesystemen" op de OSGeo.nl dag op 28 juni in Velp en vele vragen op Twitter en LinkedIn van "neo-geo's die zich een slag in de rondte zochten naar de BAG.

6 opmerkingen:

  1. Ha Gert-Jan

    Leuk stuk!
    Pleeg je nu fraude door de verstrekkingskosten te omzeilen of breng je de beveiliging van PDOK ter discussie?

    Alexander

    BeantwoordenVerwijderen
    Reacties
    1. Hoi Alexander,

      Ik hoop met dit stuk vooral de vindbaarheid onder de aandacht te brengen. Dat alles basis van een volstrekt legaal (en ook zo bedoeld) verkrijgbare BAG.

      Verwijderen
    2. Beste Gert-Jan,

      Bestaat er ergens een link met de gebruiksvoorwaarden van de BAG / de download van de BAG van PDOK?

      Verwijderen
  2. Gert-Jan,

    Goed en leuk verhaal. Toch vind ik het vreemd dat je de beschikbare services als fysieke data wilt opslaan, bv. voor een app.
    Zodra je de data hebt binnengehaald en deze ergens gaat opslaan, kun je stellen dat deze data na een dag al verouderd is.
    Apps kunnen juist optimaal gebruik maken van online services.
    Ook de manier hoe jij de WFS toepast (heel veel data tegelijk opvragen) met als toevoeging: "Helaas levert het PDOK motortje maximaal 15.000 objecten per request" is niet aan te raden.
    WFS is juist bedoeld om "gedoseerd" toe te passen: altijd kleine aantallen features tegelijk opvragen is het devies.
    Binnenkort, op 25 oktober, mag ik (GeoNovation) in Tilburg een presentatie geven over hoe ik BAG WFS als LAYAR laag vrijgeef.
    Hiermee is het al mogelijk om alle BAG gegevens op elk plekje in Nederland via LAYAR op te vragen. De PDOK BAG service wordt simpelweg "gedoseerd" doorgesluist naar LAYAR.
    Layar naam is BAG.GeoNote.nl .
    Geocaching wordt hiermee wel heel eenvoudig! Meer info: www.PDOKter.nl .
    Peter-Paul Koonings

    BeantwoordenVerwijderen
  3. Hoi Peter-Paul,

    Interessante toepassing! Misschien dat ik de 25e even langskom.
    In contacten met open data gebruikers (met name web/apps developers) hoor ik wisselende wensen tav data-in-de-lucht (service) of data-in-de-hand (download).
    Die WFS-en blijven op 2 manieren positioneerbaar: live-gebruik of basis voor al dan niet gefilterde download. Zelf denk ik dat slimmere WMS-en (bijvoorbeeld met on-the-fly SLDs) een hoop WFS-als-live-service requests overbodig kunnen maken.

    BeantwoordenVerwijderen
  4. laatste release 8 jan 2014

    BeantwoordenVerwijderen