Een serie kaarten genereren 2 (Linux)

In een eerder artikel heb ik beschreven hoe je QGIS een serie thematische kaarten kunt laten genereren met behulp van een batch file. Deze methode was bedoeld voor de Windows-versie van QGIS. Nu heb ik voor Linux een vergelijkbaar shell script geschreven (‘projectsnapshots’). Dat is te vinden in het ZIP-bestand bij dit artikel. Dat bevat ook alle andere bestanden die je nodig hebt om dit script te testen en een voorbeeld van het resultaat. Het resultaat bestaat uit een serie afbeeldingen en een HTML-bestand waarin alle kaarten worden getoond. De inhoud kan bijvoorbeeld worden gekopieerd en geplakt in een tekstverwerkingsbestand. Let er wel op dat je het script nog uitvoerbaar moet maken voordat je het kunt starten. Voor verdere instructies verwijs ik naar het eerdere artikel. Het script is getest met openSUSE 12.3. Het werkt wel met QGIS 1.9.0-Master, maar helaas niet met QGIS 1.8.

Shell script to generate series of maps

Download ZIP file met shell script en voorbeeldbestanden

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.

Kleurinstellingen voor WMS- en WMTS-kaartlagen

Een voordeel van het gebruik van externe kaart-services als WMS en WMTS is dat je het stijlen van je kaart aan een ander kunt overlaten. Maar soms is dat ook een nadeel, bijvoorbeeld als er in je achtergrondkaart kleuren voorkomen die je zelf wil gebruiken in je bovenliggende kaartlaag.

Als voorbeeld heb ik een kaart gemaakt met de Top10NL van PDOK als ondergrond met daarop een willekeurige polygonen-laag in willekeurige kleuren. Door de felle en bonte kleuren in de Top10 zijn mijn polygonen slecht te onderscheiden.

map1_nochange

In de QGIS master-versie (binnenkort QGIS 2.0) ontdekte ik een handige nieuwe optie. Per WMS- en WMTS-kaartlaag kunnen nu kleurinstellingen worden aangepast. Zo kun je de kleurtoon, helderheid en het contrast veranderen. Ook is er een optie om de hele kaartlaag in zwart/wit (grijstinten) te tonen of een bepaalde kleur mee te geven, bijvoorbeeld paarstinten. (Het blijft een kwestie van smaak natuurlijk…)

Continue reading Kleurinstellingen voor WMS- en WMTS-kaartlagen

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).

 

QGIS en WFS caching

Via de PDOK-servicesplugin is het mogelijk om de verschillende PDOK kaartservices te gebruiken.

WFS is op zich een interessante service, echter wanneer je een laag als ‘wfs nwb wegvakken’ aanroept in QGIS via de PDOKservicesPlugin krijg je het volgende resultaat:

Het (in eerste instantie) vreemde resultaat verkrijg je ook wanneer je ingezoomed bent op een gemeente. Je zou verwachten dat je dan de features krijgt binnen de huidige Extent/BoundingBox, maar je blijkt toch weer diezelfde balk te krijgen….

Maar wij kunnen / QGIS kan dit fixen.

Continue reading QGIS en WFS caching

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!

 

Nieuwe versie 0.4 PDOK-servicesplugin

Ik heb net een nieuwe versie gemaakt van de PDOK-servicesplugin. Deze plugin is beschikbaar via de standaard plugin-repository in QGIS. Laad de plugin door via het menu the kiezen voor ‘Plugins/Python plugins ophalen’ en dan te zoeken met de term ‘pdok’. Zie verder ook het eerdere artikel Eenvoudige PDOK-services plugin voor QGIS. Sinds de laatste update van de PDOK-services werkte die namelijk niet meer.

Deze nieuwe update van de PDOK-services voegt een paar leuke nieuwe kaartlagen toe, bijvoorbeeld de fietsknooppuntroutes in Nederland. Daarnaast zijn er echter wat technische veranderingen doorgevoerd, waardoor de manier van laagnamen in de Capabilities niet meer strookte met het systeem wat hiervoor in de lucht was. Voor de liefhebbers: in de Capabilities stonden voorheen laagnamen als “natura2000″, terwijl de laag moest worden opgehaald met “natura2000:natura2000″. Dit is nu gefixed.

Er zijn natuurlijk altijd een paar mogelijke verbeterpunten toe noemen. Ik ventileer ze hier maar:

  • Fietsknooppunten: Persoonlijk zou ik iets meer liefde aan de visualisatie toevoegen :-) De fietsknooppunten worden nu in een soort neon-groen getoond, met de labels neongroen met een witte halo. Het zou mooier (en nog niet eens zo heel veel werk) zijn als dat gewoon het groen zou zijn van de knooppuntbordjes zelf, en de labels groene tekst in een groenomrand wit cirkeltje (net als de bordjes).
  • Alle CBS services: waarom hebben alle lagen van het cbs, zoals de gemeenten, provincies, wijken etc eigenlijk een vulling? Die zullen toch nooit als ondergrond worden gebruikt, maar veel meer als deel van een meer uitgebreider kaart?

  • TopXRaster-services: elke top-kaart is in een aparte (schaalafhankelijke) service opgenomen. Met als gevolg dat iemand die op 1:50.000 niveau de Top25Raster service laadt NIETS ziet. Waarom niet een van de volgende mogelijkheden:
    1. Een (extra?) service die je TopRaster noemt, en waarin alle TopRaster-kaarten (schaalafhankelijk) zitten. Zodat je tenminste in het gebruik op alle zoomniveau’s een kaart hebt.
    2. Als minder alternatief: laat desnoods een lichte contour van Nederland of de provincies zien op die niveau’s dat je nu niets ziet.

En voor de plugin zelf: op dit moment gebruikt de plugin een kopie van een JSON-bestand die alleen opgehaald kan worden door mensen die in een whitelist staan (gemeenten etc). Het zou natuurlijk veel mooier zijn als zo’n bestand ergens openbaar zou staan, zodat de plugin live aanpassingen meteen zou tonen.

Gelukkig: er is nog genoeg werk dus ;-)

Proportionele symbolen (2)

In het artikel Gebieden inkleuren werd de waarde van een attribuut met QGIS gepresenteerd door gebieden in te kleuren. Voor relatieve gegevens, zoals percentages of verhoudingsgetallen, is dat een goede optie. Voor absolute gegevens, zoals inwonertal, zijn symbolen die in grootte variëren geschikter. Beide kaartvormen kunnen overigens ook goed met elkaar worden gecombineerd. Dit is een herziene versie van een ouder artikel.

Methoden

QGIS 1.8 bevat vier mogelijkheden om proportionele symbolen weer te geven. Die zijn allemaal te vinden in het dialoogvenster ‘Layer properties’, op verschillende tabbladen. De volgende tabel geeft de voor- en nadelen weer. ‘Old symbology’ wordt daarbij buiten beschouwing gelaten. Continue reading Proportionele symbolen (2)