Het beste uit Top10NL, BAG en OSM combineren in QGIS

Al enige tijd gebruik ik in QGIS de BAG pandcontouren als alternatief voor de Top10NL gebouwvlakken. De BAG pandcontouren zijn immers veel nauwkeuriger. Dit is geen diskwalificatie voor de Top10NL, integendeel. Elke geodataset heeft z’n eigen sterke punten. Voor de Top10NL is dat natuurlijk het terreinbeeld. Voor de OpenStreetMap (OSM) is dat vanzelfsprekend het wegenassenstelsel, dat dagelijks wordt bijgewerkt door een grote community enthousiastelingen. Omdat de Top10NL vooralsnog gemiddeld een paar jaar achterloopt, is het verleidelijk om de OSM wegen te gebruiken als alternatief voor de Top10NL wegvlakken. Dat wordt ook steeds meer gedaan, zie bijvoorbeeld www.webmapper.nl en natuurlijk de PDOK BRT WMS services. Maar is de OSM ook te renderen zodat ze net de Top10 wegvakken lijken? Ja, als je een aantal specifieke lijnen uit de Top10NL hartlijnen behoudt. Hier een voorbeeld van Knooppunt Raasdorp, waar de naar Amsterdam-Westpoort doorlopende A5 al is getekend in OSM (22 juni 2013), en op de Top10NL (april 2013, van luchtfoto 211) nog net niet, alleen het talud (gemaakt met QGIS 1.8):

Top10NL (april 2013), OSM wegen (22 juni 2013) en BAG panden (april 2013) bij Knooppunt Raasdorp.
Top10NL (april 2013 / van luchtfoto 2011), OSM wegen (22 juni 2013) en BAG panden (april 2013) bij Knooppunt Raasdorp.

De Nederlandse OSM wegen zijn te downloaden vanaf http://download.geofabrik.de/europe.html. Wel moet je de OSM shapes nog even converteren naar het Rijksdriehoeksstelsel. In QGIS 1.8 is dat een koud kunstje. Voeg de vectorlaag “Roads” toe, selecteer met de rechtermuisknop op de kaartlaag “Opslaan als…”, kies ESRI Shapefile en kies het juiste CRS (Amersfoort / RD New (EPSG:28992)). Dat levert een shapefile op van 264Mb. Die kaartlaag vervolgens toevoegen aan het beeldscherm.

Waar de Top10NL wegvakken biedt, en daarmee dus de exacte breedte van de weg bevat, zijn in OSM alle wegen even breed, want het zijn lijnen, geen vlakken. Dat lijkt aanvankelijk een nadeel, maar op schalen zoals hierboven (1:25000) is dat nauwelijks merkbaar. De paarse, rode en oranje wegen lijken hierboven alleen maar breder omdat iedere weghelft apart is opgenomen in de data, en dus op het scherm al snel twee keer zo breed lijkt. Het juist inkleuren van de wegen is goed te doen dankzij het OSM Roads attribuut “type”, waarmee je snelwegen, primaire wegen, secundaire wegen, enz. verschillend kunt kleuren. Zo wordt duidelijk dat de labels “Hoofdweg” (Top10NL) en “Primary road” (OSM) subjectief zijn: wat in de Top10NL een Hoofdweg is, is in OSM soms een primary (of trunk) en soms secondary road, maar dat mag de pret niet drukken. De wegen zijn eenvoudig te omranden door dezelfde kaartlaag eronder te zetten, maar dan in donkergrijs en een stukje breder.

Het ‘probleem’ in de Top10NL van de ongelijkvloerse kruisingen van gelijke wegtypen (zoals knooppunt Raasdorp) is in OSM eenvoudig te tackelen dankzij de attributen “tunnel” en “bridge”. Een snelweg die over een andere heengaat teken je nogmaals (dus de Roads gefilterd op “bridge > 0″, met vlak daaronder dezelfde laag met een zwart lijntje, ietwat verplaatst naar beide zijkanten. Dit werkt heel goed, zelfs op snelwegen die onder een zeer schuine hoek onder een andere doorlopen.

De Top10NL hartlijnen van de bospaden heb ik behouden; de kwaliteit daarvan is in veel gevallen vooralsnog beter dan die van OSM, merkte ik rondom mijn eigen woonplaats Zeist. Ook de brede ‘pedestrian’ (voetgangers) pleinen heb ik behouden op het kaartbeeld, omdat OSM Roads nu eenmaal geen vlakken tonen. Bij grote parkeerplaatsen blijkt dat geen probleem omdat de OSM mensen netjes alle rijstroken van die parkeerplaatsen intekenen. Hulde!

Ook toekomstige wegen zijn soms opgenomen in de OSM. Zie hierboven het voorbeeld van de nieuwe A9 om Badhoevedorp heen. Deze “proposed” roads zijn netjes te filteren en als grijze streepjeslijnen weer te geven in QGIS 1.8. Met OSM en BAG wordt de Top10NL wel heel actueel!

Zijn er dan geen drawbacks? Een bezwaar zou kunnen zijn dat OSM geen garanties biedt op volledigheid en juistheid, omdat het een “vrijwilligersinitiatief” is. Maar zoals inmiddels welbekend is de OSM kwaliteit van (in elk geval) Nederland bijzonder goed. Bij inzoomen merk je wel dat de OSM lijnen niet altijd de exacte hartlijn (vergeleken met de luchtfoto) volgen (een meter ernaast is geen uitzondering), maar op de schaal 1:25000 heb je daar geen last van.

Het mooie vind ik dat met de komst van open GeoData, QGIS een prachtig vehikel biedt om het beste uit de vele steeds beter wordende geodatasets te kunnen halen, en te presenteren in een betekenisvol kaartbeeld. De Top10NL is onverslaanbaar qua terreinbeeld, de BAG qua gebouwen, en de OSM qua wegen. Wát een verschil met tien jaar geleden! Ik kan niet wachten op QGIS 2.0.

 Jan-Willem van Aalst, www.imergis.nl.

BAG gebruiksfuncties op Top10NL in QGIS

De pandcontouren van de BAG vormen een elegant alternatief voor de gebouwvlakken van de Top10NL, het verschil in actualiteit van beide bronnen daargelaten. Met de BAG is het mogelijk om in een stad snel de locaties van winkelcentra, uitgaanscentra (“bijeenkomst”), kantoorparken en industriegebieden zichtbaar te maken op de Top10NL. Maar de gebruiksfuncties zitten niet in een geometriekolom van de BAG (PostGIS formaat), omdat een verblijfsobject meerdere gebruikersfuncties kan hebben (1:n relatie). Via de gratis BAG converter van Geon is het echter mogelijk om een shapefile van verblijfsobjecten te maken waarin per verblijfsobject twee gebruiksfuncties als attribuut worden meegenomen.

In QGIS is deze punt-shapefile (vaak de voordeur van een pand, maar niet altijd) te plotten bovenop de BAG pandcontouren die op de Top10NL zijn geplakt. Hieronder een voorbeeld van het centrum van Almere, met de volgende legenda van gebruiksfuncties (exclusief ‘woonfunctie’, anders staat de kaart vol met stipjes):

  • Groen: winkelfunctie
  • Paars: bijeenkomstfunctie
  • Geel: onderwijsfunctie
  • Roze: gezondheidsfunctie
  • Blauw: kantoorfunctie
  • Bruin: industriefuntie
  • Groenblauw (cyaan): sportfunctie
  • Rood: logiesfunctie
Almere Top10NL + BAG pandcontouren + BAG VBO verblijfsfuncties
QGIS screenshot: Almere Top10NL + BAG pandcontouren + BAG VBO verblijfsfuncties

De volledige plaat met legenda is hier te zien.

De Topografische kaart geeft zo snel inzicht in waar de winkels zijn, waar het uitgaansgebied is, waar de kantoorparken zijn, waar de scholen zijn etc. Een volgende stap zou zijn om in QGIS een heel pandvlak te kleuren in plaats van alleen een stipje. Dat vergt echter wat complexere attribuut-joining berekeningen. Wizards met een slimme oplossing hiervoor zijn van harte uitgenodigd om dat hier te melden!

 

Een kleurenschema voor de TOP10NL

Als je een geografisch bestand voor het eerst in QGIS opent, worden willekeurige kleuren toegekend aan de punten, lijnen en vlakken om een eerste indruk te kunnen krijgen. Maar QGIS biedt natuurlijk uitgebreide functionaliteit om zelf een kleurenschema samen te stellen en te beheren. Dit artikel beschrijft het opstellen van zo’n kleurenschema voor de TOP10NL, met het volgende effect:

Figuur 1. Kleurenschema toevoegen

Vanaf het moment dat ik als zevenjarig jongetje de speciale TDN uitgave van de topografische kaart Walcheren 1:25.000 kreeg, ging het fout (en het is nooit meer goedgekomen…). Mijn voorliefde voor grafische vormgeving kreeg een duidelijke cartografische dimensie! Dus toen het Kadaster in 2012 eindelijk de TOP10NL kosteloos aanbood, kon ik mijn geluk niet op. De beroemde topografische kaart kunnen voorzien van een eigen opmaak: een jongensdroom die eindelijk uitkwam. En QGIS leest ook GML bestanden, dus dat leek appeltje-eitje te worden!

Continue reading Een kleurenschema voor de TOP10NL