Zelf met de BGT in QGIS werken

De Basisregistratie Grootschalige Topografie (BGT) begint al aardig gevuld te raken. Deze open overheidsdata wordt 2x per maand aangeboden door NLExtract in PostGIS formaat. Zie: http://data.nlextract.nl/bgt/postgis/ . Het PostGIS backup bestand is inmiddels gegroeid naar zo’n 12 Gigabyte.

Je kunt dit bestand in QGIS gebruiken als je zelf PostgreSQL met de PostGIS extensie hebt geïnstalleerd. Zie hiervoor https://www.postgresql.org/ . Kies bij de installatie een handig wachtwoord voor de gebruiker ‘postgres’. Vergeet niet na installatie Stackbuilder te activeren om de Postgis extensie beschikbaar te krijgen. In de PgAdmin tool maak je dan een nieuwe database aan genaamd ‘bgt’. Daarin maak je een nieuw schema ‘latest’. Denk ook hierbij weer aan het toevoegen van de Postgis extensie. Vervolgens kun je op de database titel kiezen voor “restore” en kies je de NLExtract BGT dump. Na 30-40 minuten stampen heb je de gehele BGT tot je beschikking in QGIS. Maar ja, hoe visualiseer je die?

In de OpenTopo kaarten (www.opentopo.nl) zie je hoe ik de BGT visualiseer op het schaalniveau van 3200 pix/km. Deze visualisatie (althans, de BGT elementen daarin, ik gebruik ook OSM en Top10NL) kun je nu zelf ook gebruiken, via een speciaal door mij samengesteld QGIS BGT projectbestand.

Download daarvoor deze zipfile op imergis.nl. Je vindt daarin een QGIS projectbestand en twee SVG plaatjes. Plaats de plaatjes in een mapje “SVG” dat een submap is van waar je projectbestanden staan. Open het QGIS projectbestand in een tekst editor zoals Notepad++ en doe een “Find & Replace” op het wachtwoord, dat nu nog bestaat uit sterretjes. Bestand bewaren en in QGIS openen. Je zou zoiets als het volgende moeten zien:

zelfbgt1

Hierbij zit dus geen schaduwreliëf en geen labels, want die haal ik uit andere bronnen. Je hebt echter wel de volledige BGT van Nederland onder handbereik. Let op, deze visualisatie is bedoeld voor een schaal van 3200 pix/km op 96 dpi, dus in QGIS ongeveer 1:1180. Je kunt in- en uitzoomen wat je wilt, maar dat geeft misschien niet altijd het gewenste beeld. Je hebt in elk geval wel een basis om mee te werken.

Veel plezier ermee. Vragen? Stuur me een e-mail.

– Jan-Willem van Aalst

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.

België en Duitsland in RD met QGIS

De Basisregistratie Topografie (BRT/Top10NL) houdt ongeveer een kilometer na de landsgrens al op. Velen, bijvoorbeeld brandweermensen, hebben behoefte aan meer kaartbeeld over de landsgrens. Die kaartdata is er, en nog kosteloos ook. De Open Street Map (OSM) van de Europese landen is als Shapefiles te downloaden, o.a. via de Duitse GeoFabrik, http://download.geofabrik.de/europe.html. Ze wordt aangeboden in WGS84 (latitude, longitude). QGIS 1.8 biedt een eenvoudige mogelijkheid om die te converteren naar het Rijksdriehoeksstelsel (EPSG:28992): maak een kopie van de Shapefile onder een andere naam (eventueel alleen het relevante geselecteerde gebied langs de grens “selectie opslaan als…”), en kies daarbij voor het geselecteerde CRS “Amersfoort New/RD”. QGIS maakt een nieuwe shapefile aan met het gewenste RD-coördinaatstelsel. Die Shapefile kun je toevoegen als kaartlaag in je QGIS RD-projectfile. Die Shapefile sluit aan de landsgrens mooi aan op de BRT kaartlagen.

Voorbeeldje van de stad Emden, bij Delfzijl:

OSM beeld van Emden, geconverteerd naar RD stelsel, en opgemaakt in het QGIS JW kleurenschema.

Voor de kleurenopmaak heb ik gebruikt gemaakt van de kleurcodes die ik eerder op dit forum heb gedeeld. De OSM versies (QML formaat, voor in QGIS) vind je hier. Per OSM sublaag (natural, landuse, buildings, roads, etc) vind je een stijlbestand. Let wel, de wegen heb je minimaal 2x nodig: één keer voor de zwarte omranding, en één keer voor de kleuren daar bovenop. En omdat de OSM roads ook een “tunnel” indicator hebben, kun je die ook als aparte kaartlaag toevoegen met een eigen QML opmaak.

Natuurlijk is OSM vooral gericht op wegen, en minder op terrein. Mij valt op dat er in de OSM terreinvlakken nogal wat ‘gaten’ zitten, afhankelijk per landsgebied, provincie of zelfs gemeente. Zo heeft Emden z’n zaakjes goed voor elkaar, maar de buurgemeenten hebben veel minder terreinvlakken beschikbaar (zie links bovenin bij het voorbeeld).

 

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!

 

Meer combi’s Top10NL en AHN25 in QGIS 1.8

Per begin juli 2012 heeft Kadaster een update van de Top10NL uitgebracht. Daarin zijn kaartbladen van midden-Nederland en de gemeente Rotterdam bijgewerkt. Ook zijn ‘gaten’ in Terrein_vlak uit de vorige versie (bv. een paar stukken akkerland in Flevoland en een huizenblok in Houten) gerepareerd. Voor het eerst is nu ook de Tweede Maasvlakte in aanbouw te zien. De Top10NL dataset (GML, 2Gb zip) is hier kosteloos te bestellen en met nlextract.nl te converteren naar PostGIS.
In een eerder artikel heb ik de Top10NL gecombineerd met het GIS rasterbestand van de AHN25 (Actuele Hoogtekaart 25x25m) uit 2005/2006. QGIS 1.8 biedt hier prima mogelijkheden voor.

Hieronder nog twee voorbeelden, waarbij de hoogtekaart op 15% opacity (85% transparantie) staat. De gebouwvlakken staan op 100% opacity boven de AHN, omdat vanwege de AHN resolutie (25x25m) het beeld teveel vertekent, en alle wijken na 2005 sowieso niet zichtbaar zijn. Maar zoals de voorbeelden laten zien, zijn duingebieden en rivieren/uiterwaarden fraai weer te geven.

Zandvoort en de Amsterdamse Waterleidingduinen, Top10NL + AHN25
Zandvoort en de Amsterdamse Waterleidingduinen, Top10NL + AHN25

De complexe loop van de Maas bij Roermond, Top10NL + AHN25
De complexe loop van de Maas bij Roermond, Top10NL + AHN25

Hoogtekaart AHN25 en Top10NL in QGIS 1.8

QGIS 1.8 (Lisboa) heeft betere ondersteuning voor reliëf-schakering. Rijkswaterstaat geeft kosteloos het Actuele Hoogtebestand 25×25 m (“AHN25″) uit (via servicedesk-data@rws.nl). Het bestand is uit 2006, maar hey, hoogte verandert niet zo snel in Nederland. RWS levert een .adf puntbestand van 259Mb, met dus een resolutie van 25×25 meter. In QGIS is daar middels “raster” -> “Terrein analysis” -> “Relief” een mooi reliëfbeeld van te maken, dat als Geo-TIFF is weg te schrijven.

Combineren we dat reliëfbeeld met de Top10NL JW-Style, (met AHN25 op 20% zichtbaarheid), dan krijgen we dit kaartbeeld. Een preview:

Voorvertoning van AHN-Top10NL gecombineerd kaartbeeld

Nu wordt de AHN t/m 2013 opnieuw ingemeten door Rijkswaterstaat en Waterschappen, zie www.ahn.nl, met een superresolutie van 50x50cm! Men heeft mij verteld dat er helaas nog geen plannen zijn om van deze dataset een kosteloze open-data versie te publiceren, zelfs niet één van 25x25m. Graag hoor ik jullie ideeën over hoe we zo’n kosteloze actualisatie zouden kunnen “stimuleren”.

Top10NL Kleurenschema JW-style nu ook als .SLD beschikbaar

QGIS 1.8 (Lisboa) biedt betere ondersteuning voor .SLD (Style Layer Definition) bestanden dan vorige versies. De .SLD bestanden zijn prettig omdat het een pakket-onafhankelijke standaard is.
Het kleurenschema “Top10NL JW-style” is nu ook beschikbaar als .SLD bestanden.
Zie hiervoor http://www.imergis.nl/asp/46.asp.

Op die pagina staan ook voorbeelden van stedenkaarten die in QGIS 1.7 zijn gemaakt. In QGIS 1.8 is ook de rendering van het schermbeeld merkbaar verbeterd; bovendien heeft Kadaster een update van de Top10NL uitgegeven, dus deze kaarten zullen de komende maanden worden bijgewerkt.

Noot: er zijn enkele minor improvements t.o.v. vorige versies:
1. Terrein_vlak typelandgebruik “overig” en Gebouw_vlak type “laagbouw” hebben iets meer verzadiging gekregen
2. Wegdeelvlak typeinfrastructuur “lokale weg” is nu lichtgeel geworden i.p.v. gebroken wit. “Straat” en “Overig” zijn nog wel gebroken wit.
3. Spoorbaandeel_lijn is iets zwarter gemaakt om in dichtbebouwde gebieden het contrast met wegdeel_vlak_omlijning beter te laten uitkomen.
4. De tunnels (wegdeel_hartlijn én spoorbaandeel_lijn) zijn nog iets transparanter geworden.

Deze changes worden dus nog verwerkt op de nieuwe versies van de voorbeeldkaarten op http://www.imergis.nl/asp/46.asp.

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