Staafdiagrammen met legenda

Dit artikel beschrijft hoe je een kaart kunt maken met staafdiagrammen en een legenda.

Benodigde software
Quantum GIS (qgis.org)
LegendSVG (qgis.nl)
Eventueel Inkscape (inkscape.org)

Benodigde bestanden
Kaartlaag met gebieden
Kaartlaag met data

Als voorbeeld is een vectorkaart van de Nederlandse provincies gebruikt als ondergrond. Daar bovenop is een laag geplaatst vanuit een csv-bestand. Dat bevat de x- en y-coördinaten van de gewenste gebiedsmiddelpunten en onder andere het aantal inwoners per provincie naar drie leeftijdsgroepen.

Beperkingen
Deze techniek is niet zo geschikt als zeer veel gebieden moeten worden weergegeven. Dit wordt al snel onoverzichtelijk. Bovendien is de staafbreedte is niet instelbaar.

Voorbereiding
Zorg dat de benodigde lagen geopend en volledig zichtbaar zijn.

Weergave staafdiagrammen

Selecteer de eigenschappen van de laag met de data (met rechtermuisknop) en ga naar het tabblad ‘Overlay’. Zet een vinkje voor ‘Display diagrams’ (‘Diagrammen tonen’) en selecteer ‘Bar chart’ (‘Staafdiagram’) als diagramtype. Nu moeten de attributen een voor een worden toegevoegd. In dit geval de bevolkingsaantallen per leeftijdscategorie. Selecteer een attribuut en klik op ‘Add’ (‘Toevoegen’) en herhaald dat voor de overige attributen.

Nu moet je opgeven hoe hoog de staven moeten worden. Meestal kan hiervoor het beste dat attribuut worden gebruikt met de hoogste maximale waarde op gebiedsniveau. Helaas pakt dat verkeerd uit als dit attribuut in een of meer regio’s nul is. Klik op ‘Find maximum value’ (‘Maximale waarde zoeken’) om de maximale waarde voor het geselecteerde attribuut te bepalen en geeft bij ‘Size’ (‘Grootte’) op hoe hoog de grootste staaf moet worden. In de huidige stabiele versie van QGIS (1.7.4) heeft het geen zin om bij ‘Size unit’ (‘Eenheden voor grootte’) te kiezen voor ‘Map units’ (‘Kaarteenheden’) in plaats van millimeters. Klik op ‘Apply’ om het effect van de gebruikte instellingen op de kaart te zien. Schuif hiervoor zonodig het dialoogvenster wat opzij. Noteer de ingestelde maximale waarde en de bijbehorende staafhoogte. Die heb je later nodig voor het maken van de legenda. Als het resultaat naar wens is, klik je op ‘OK’ om het dialoogvenster te verlaten.

Overigens mag ook handmatig een maximale waarde worden ingevuld. Met het oog op de legenda is vaak handig om die waarde iets naar boven af te ronden, om te voorkomen dat in de legenda ‘rare’ getallen komen te staan.

Soms is het ook nog nodig om op het tabblad ‘Style’ (‘Stijl’) de puntsymbolen 100 procent transparant te maken. Anders verschijnen er puntsymbolen in gebieden met hele lage waarden voor de geselecteerde attributen.

Legenda maken

QGIS bevat momenteel geen mogelijkheid om automatisch een legenda te maken voor een kaart met staaf-, taart- of cirkeldiagrammen. Hiervoor heb ik het losse programma LegendSVG geschreven dat elders op deze site kan worden gedownload. Pak het ZIP-bestand ergens uit en dubbelklik op LegendSVG.exe.

Met dit programma kan een legenda in SVG-formaat worden gemaakt die in de Print Composer van QGIS aan de kaart kan worden toegevoegd. Voor afmetingen gebruikt dit programma punten. Een punt is 1/72 inch en een inch is 2,54 cm. Afmetingen in millimeters (S) kunnen met de formule 72 x S / 25,4 in punten worden omgerekend.

Selecteer allereerst rechtsboven het juiste diagramtype (‘Bar chart’). De staafhoogte en de bijbehorende maximale waarde die je hebt genoteerd kun je invullen bij ‘Object size’ en ‘Maximal value’. Bij ‘Categories’ stel je het aantal staven in op 3. Omdat de staven een vaste breedte van 5 mm hebben hoef je ‘Bar width’ niet te veranderen. Verder kun je nu alle teksten aanpassen die in de legenda komen. Voor de manieren waarop je de kleuren kunt instellen verwijs ik naar de helptekst van het programma. De hoogte van de legenda wordt automatisch bepaald op basis van de ingevoerde gegevens. Dat gebeurt (nog) niet met de legendabreedte. Heb je alles ingesteld, klik dan op ‘Build SVG code’. Je ziet dan een boel codes verschijnen. Een SVG-bestand is eigenlijk een gewoon tekstbestand. Sla nu het resultaat op met de knop ‘Save to file’. Kies zelf een bestandsnaam. De bestandsextensie moet ‘svg’ blijven. Met de knop ‘Show measures’ kun je zien wat de afmetingen in millimeters zijn geworden. Noteer deze afmetingen, want je hebt ze verderop nodig in QGIS.

Voordat je de legenda in QGIS combineert met de kaart, kun je het resultaat bekijken met Inkscape. Met dit programma kun je de legenda eventueel nog aanpassen. Je zou er zelfs voor kunnen kiezen de hele afwerking van de kaart met Inkscape te doen, of met een ander grafisch programma. Dat wordt hier verder echter niet uitgelegd.

Kaartopmaak

Open een nieuwe Print Composer (‘Print layouter’) via het bestandsmenu. Zorg dat de kaart wordt weergegeven en voeg een titel toe. De legenda kan nu worden toegevoegd met de knop ‘Add image’ (‘Afbeelding invoegen’). Het kan ook via het Layout-menu. Klik nu op de plek waar de legenda moet komen. Er verschijnt een wit vlakje. Selecteer dit en stel rechts op het tabblad ‘Item’ (‘Onderdeel’) eerst de juiste afmetingen in (dat doet QGIS helaas niet automatisch). Open daarna het legendabestand met de knop met de drie punten naast het invoervak ‘Load’ (‘Laden’). Als het goed is verschijnt nu de legenda.

Nu kan het lijken alsof er iets fout is gegaan. In de huidige stabiele versie van QGIS (1.7.4) wijkt de weergave van de staven op de kaart in de Composer af van de weergave in het kaartvenster. Sla je echter vanuit de Composer de kaart op met ‘Export as image’ (‘Als afbeelding exporteren’) of als ‘Export as SVG’ (‘Exporteren naar SVG’) dan kloppen de afmetingen van de staven op de kaart wel weer met de afmetingen in de legenda.

Wil je de kaart liever in PDF-formaat, dan werkt dat momenteel niet goed als je ‘Export as PDF’ (‘Exporteren naar PDF’) gebruikt. Het werkt wel goed als je de kaart print naar een virtuele printer zoals bijv. PDF Creator.

Posted in qgis | Tagged | Leave a comment

Meerdere objecten / features tegelijk aanpassen / editten

Soms wordt je door een vraag bekend gemaakt met een functie in QGIS die je niet kent.
Iemand had een BAG-uitsnede van panden, en wilde per huis een aantal velden kunnen invullen. MAAR soms wilde hij dat per huizenblok doen, gewoon omdat dat blok allemaal van hetzelfde type was, en hij dus niet 6 keer dezelfde waarde of vinkje wilde invullen.

Na een vraag op de QGIS-User mailinglijst kwam al gauw het verlossende antwoord: “natuurlijk kan dat….”. Hieronder een korte demonstratie hiervan.


Continue reading

Posted in qgis | Leave a comment

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!

Totdat je in de details van het gegevensmodel van TOP10NL duikt. Dan blijkt het ontwerpen van zo’n kleurenschema toch best complex. Het luistert behoorlijk nauw welke laag je boven welke andere laag plaatst in de kaartlagenboom. Om nog maar te zwijgen van het überhaupt bevolken van die kaartlagenboom! “Even GML importeren…?” dat pakte dus anders uit. Het bestellen ging supervlot: 3 januari besteld, nog dezelfde dag geleverd via een downloadlink op WeTransfer. complimenten! Maar de GML bestanden die Kadaster aanbiedt hebben de nare eigenschap dat sommige objectklassen uit meervoudige datatypen bestaan. Dus het objecttype “Wegdeel” in de GML bevat zowel punten, lijnen als vlakken. De GML import module in QGIS, conform de GDAL specs, snapt dat niet:

When reading a feature, the driver will by default only take into account the last recognized GML geometry found (in case they are multiples) in the GML subtree describing the feature.

en zet dan maar “Unknown” in de geometrie-kolom in het lijstje van mogelijk te importeren kaartlagen:

Dat gaat dus inderdaad niet goed. Op sommige kaartbladen worden de objecten van het objecttype “Wegdeel” als een verzameling puntjes weergegeven, soms als lijntjes. QGIS snapt echter niet, dat er feitelijk drie kaartlagen aangemaakt moeten worden: wegdeel_punt, wegdeel_lijn en wegdeel_vlak. Een ander nadeel is, dat de GML die wél goed wordt ingelezen (zoals terrein_vlak), behoorlijk traag verwerkt wordt ten opzicht van, bijvoorbeeld, ESRI Shape bestanden.

Nu bleek ik gelukkig niet de enige te zijn die tegen deze zaken was aangelopen. Onder de noemer “NLExtract” hebben enthousiaste geesten inmiddels een set scripts gereed om de GML te converteren naar een PostGIS database. En uiteraard kan QGIS ook netjes verbinding maken met een PostGIS database. Met behulp van een technisch ingestoken vriend en wat trial’n'error lukte de conversie naar PostGIS. Wie schetst mijn vreugde, als ik de volgende mogelijk te importeren kaartlagen zie in QGIS:

Tot mijn niet geringe verbazing performt deze (landelijk dekkende!) PostGIS database (10Gb uitgepakt) ontzettend snel in QGIS. Het renderen duurt even, afhankelijk van het zoom-niveau. Om zo het land te verkennen is wel erg luxe. Voor een basisbeeld zijn overigens niet alle kaartlagen even relevant. Ik heb de volgende lagen geïmporteerd uit de PostGIS database voor mijn kleurenschema (in die volgorde):

  1. waterdeel_vlak
  2. terrein_vlak
  3. isohoogte_lijn
  4. hoogteverschillz_lijn
  5. hoogteverschilhz_lijn
  6. waterdeel_lijn
  7. wegdeel_vlak (t.b.v. omlijning)
  8. wegdeel_hartlijn (t.b.v. tunnels en bospaden)
  9. wegdeel_vlak (t.b.v. kleuring typeweg)
  10. wegdeel_vlak (t.b.v. kleuring verkeersgebruik)
  11. wegdeel_vlak (t.b.v. kleuring verhardingstype)
  12. spoorbaandeel_lijn
  13. gebouw_vlak
  14. gebouw_vlak (t.b.v. kassen en torens)
  15. inrichtingselement_lijn
  16. inrichtingselement_punt
  17. geografischgebied_punt

De gemeentegrenzen haal ik uit de TopGrenzen, die ook bij het Kadaster zijn op te vragen als ESRI Shape bestand.

Tja, denn geht’s los. Waterdeel, terrein en hoogte(verschil) waren tamelijk snel ingesteld (waarbij het wel handig is om het Gegevensmodel TOP10NL er bij te houden). QGIS biedt een schat aan instelmogelijkheden: per vlak kun je niet alleen de kleur van het vlak instellen, maar ook de dikte en kleur van de omranding. Je kunt ook kiezen of de vlakken met of zonder anti-aliasing (rafeligheid) getekend worden. Wel een snelle PC aanschaffen… Hier een voorbeeldje van het opmaken van terrein_vlak en waterdeel_vlak.

Het opmaken van wegen was (en is) een wat grotere uitdaging. De TOP10NL biedt erg veel informatie per wegdeel. Het is dus mogelijk om een wegbeeld te tonen met verharde en onverharde wegen, met busbanen, fietspaden, wandelpromenades, parkeerplaatsen, naast de “standaard” typering van straat, lokale weg, regionale weg, hoofdweg, en autosnelweg. Met wat puzzelen kom je al een heel eind zonder voor elk wegtype de “wegdeel_vlak” als nieuwe kaartlaag te moeten inladen. Ook tunnels zijn te doen door in het SQL “WHERE” gedeelte de filter ‘”Hoogteniveau” = 0′ op te nemen en de wegdeel_hartlijn-laag wel (vaag) te tonen. Het wordt pas spannend bij de omlijning van de wegen. Want ik wil graag een omlijning om het wegbeeld als geheel, maar ook tussen autowegen en fietspaden, maar dan weer niet op kruisingen. Voor een omlijning van het gehele wegbeeld zet ik een “wegdeel_vlak” laag ónder de gekleurde wegenlaag, met transparante vulling en donkere lijn. En dan flink goochelen met het SQL “Where” filter. Een eigenaardigheid die ik daarbij tegenkwam was dat die omlijning aanvankelijk om àlle wegdelen zichtbaar was. In theorie sluiten de wegdelen naadloos aan, maar QGIS rendert dat (door afrondingscalculatie?) toch niet helemaal aansluitend. Dus heb ik de opvulling van ieder gekleurd wegdeel ietsiepietsie moeten uitbreiden. Het resultaat is zichtbaar op de volgende voorbeelden.

Almere. Klik op de link hieronder voor een grote versie op de OSGeo galerie.

OSGeo wiki link Galerie: Almere

Naarden-Vesting. Klik op de link hieronder voor een grote versie op de OSGeo galerie.

OSGeo wiki link Galerie: Naarden

Omgeving Wijchen. Klik op de link hieronder voor een grote versie op de OSGeo galerie.

OSGeo wiki link Galerie: Wijchen

Omgeving Zeist. Klik op de link hieronder voor een grote versie op de OSGeo galerie.

OSGeo wiki link Galerie: Zeist

Het kan natuurlijk altijd beter. Waar ik nog naar op zoek ben, is een manier om ongelijkvloerse kruisingen van wegdelen van hetzelfde type aan te geven met “viaduct” lijntjes. Dus een snelweg die een snelweg kruist voorzien van een dubbele lijn zodat je ziet welke snelweg over welke snelweg gaat. Ik houd me aanbevolen voor de magic tip…

Een erg aardige bijkomstigheid die opvalt als je de nieuwe (2011) release vergelijkt met de ESRI Shape bestanden uit 2009: de dataset groeit echt in kwaliteit, zie illustratie hieronder. Met name de gebouwcontouren zijn aanmerkelijk beter. Uiteraard is de volgende stap om in plaats van de gebouwcontouren de BAG pandcontouren te gebruiken. Scheelt Kadaster ook weer flink wat werk in het actualiseren van de dataset. Deze “verversingsfrequentie” is nu iedere twee jaar, met de ambitie om naar jaarlijks te gaan.


De kleurenschema’s komen (als .qml bestanden) vrij beschikbaar via www.nlextract.nl. De naamgeving is zoveel mogelijk gelijkgetrokken met de namen van de TOP10NL kaartlagen. Ik heb ook geprobeerd ze als SLD bestanden te exporteren, maar ik heb nog geen plugin gevonden die alle features in SLD kan modelleren en exporteren. Ik houd me aanbevolen voor tips.

Een tekstinstructie voor het configureren van de kaartlagen vind je hier.

Vragen of tips over het opmaken van de TOP10NL? Neem gerust contact op. Zie ook de Galerij.

Posted in qgis | Tagged , , , , | 3 Comments

Invoerformulieren gebruiken in QGIS

QGIS heeft zogenaamde ‘invoerformulieren’ (forms) om het aanpassen van de attribuutwaarden van een object te vergemakkelijken. Dit artikel gaat over het gebruik van die formulieren. We gaan uit van een BAG-extract met alleen de pand-omtrekken en voegen zelf de attribuutkolommen toe.

We beginnen met een shapefile met een aantal panden erin. Er zijn geen verder attribuutgegevens aanwezig. Met behulp van de Python Plugin ‘Table Manager’ van Borys Jurgiel is het eenvoudig om kolommen toe te voegen aan een shape bestand. Gewoon de naam en het type van de kolom aangeven. Eventueel kan ook de kolomvolgorde worden aangepast:

Op deze manier hebben we een shape file gemaakt met een aantal kolommen om ons fictieve ‘zonnepanelen’-onderzoek te kunnen doen. We willen per huis weten of een bewoner geinteresseerd is in zonnepanelen, en zo ja meteen opnemen wat voor type dak het huis heeft, wat het type en de zichtrichting is van het dak en zo nog wat gegevens.

Natuurlijk kun je nu de attribuuttabel openen en handmatig de waarden gaan aanpassen in deze Excel-achtige tabel:

Maar QGIS heeft ook ‘invoer’-formulieren. Hiermee kun je door op een object te klikken een eigen invoerformulier krijgen voor dat object.

Begin met het aanvinken van de mogelijkheid daartoe in de Settings/Opties dialoog. Kies het ‘Map tools’ tabje en vink het vinkje aan met ‘Open feature form, if a single feature is identified’.

Om de huizen-kaartlaag aan te gaan passen: maak deze kaartlaag in de Legenda aktief, en start het aanpassen door te klikken op het potloodje of door in het ‘Layer’-menu ‘Toggle editing’ te selecteren. Selecteer nu de infotool (blauwe cirkel met i-tje erin), en klik op een pand. Omdat je in de aanpas/edit-modus zit, zal je nu niet de info krijgen van het pand, maar zal er een ‘invoerformulier’ verschijnen voor het aangeklikte object:

Standaard geeft QGIS je dan voor elk attribuut een tekstregel als invoerveld. QGIS zorgt er bijvoorbeeld wel al voor dat je niet een tekst-string kunt invoeren in een kolom die als numeriek is gedefineerd.

Maar nog mooier is natuurlijk als je op een ja/nee vraag gewoon iets kunt aanvinken. Bij een datumveld een kalendertje te zien krijgt, of een keuzemenu als je bijvoorbeeld uit 4 verschillende mogelijkheden moet kiezen.

Om dat in te stellen vraag je van de laag de eigenschappen op, en kies je de tab ‘Velden/Fields’. Je ziet hierin de namen en typen van alle attribuutvelden, EN de mogelijkheid om het type invoerveld te wijzigen.

In onderstaande screendump zorg ik bijvoorbeeld dat de FID kolom helemaal niet te zien is (Hidden), dat ik voor het invoeren van een naam gewoon tekst kan invoeren, en voor het invoeren van de datum een kalender krijg. Bij wens komt een vinkje/checkbox en voor het daktype krijg ik een ‘Value map’. Dat is een keuzemenu waarbij ik kan kiezen uit welke waarden ik kan kiezen: zelf de mogelijkheden geven, of alleen al aanwezige mogelijkheden of… kijk maar bij de mogelijkheden.

Wanneer je nu een invoerformulier oproept, zal het er zo uitzien:

Handiger toch? En het kan nog mooier, Nathan Woodrow heeft al eens geschreven over ‘Custom feature forms with Python logic’. Daarmee kun je het formulier nog intelligenter maken: bijvoorbeeld checks invoeren die een waarde check doen op basis van een database query, of het laten verschijnen of verdwijnen van een aantal velden op basis van het aanvinken van een waarden of …

Hierover wil ik later nog eens een artikel schrijven.

Posted in qgis | 2 Comments

Legenda maken met LegendSVG

QGIS maakt geen bruikbare legenda voor kaarten met taartdiagrammen of cirkels met een variabele omvang. Daarom heb ik een programma geschreven waarmee een legenda kan worden gemaakt in Scalable Vector Graphics-formaat (SVG). In de QGIS composer kan het resultaat als afbeelding aan de kaart worden toegevoegd. Het kan eventueel eerst worden bewerkt met een SVG-editor, zoals Inkscape.

Download hier het programma:
LegendSVG (Windows)

Posted in qgis | Tagged | 1 Comment

QGIS als GeoZET-Viewer

De GeoZET-Viewer is bedoeld als online kaartapplicatie op Overheid.nl die alle bekendmakingen van overheden op de kaart zet. Hoewel de GeoZET-Viewer nog niet op Overheid.nl line is geïmplementeerd, zijn de onderliggende WFS-diensten dat wel. En QGIS kan goed omgaan met die WFS diensten. Hoe de BRT-Achtergrondkaart in QGIS wordt getoond is beschreven in het artikel WMS-C lagen van PDOK in QGIS.

Download hier het projectbestand (.qgs) voor QGIS:

http://www.qgis.nl/geozet.qgs

Open dit project in QGIS en je zult zoiets zien:

Geozet bekendmaking met info

De onderliggende WFS diensten zelf zijn te bereiken via:

http://geodata.nationaalgeoregister.nl/pdok/wfs

Als het goed is, is het project te openen in alle recente QGIS versies. Als er problemen zijn, laat dit dan alsjeblieft even weten door middel van het reactieformulier onderaan het artikel met vermelding van besturingssysteem en QGIS-versie.

Zoals je kunt zien in het QGIS screenshot, zijn er 5 lagen te bekijken. Ze hebben namen als ‘pdok:wijk_clr_cte_totalen’, maar in de praktijk zijn het de totalen van het aantal bekendmakingen op: provincie-, gemeente- en wijkniveau. Daarnaast is er een laag voor de individuele bekendmakingen (met de echte informatie én een doorklikmogelijkheid naar de gemeentelijke website) en een laag voor de ‘vlak-bekendmakingen’. Dit zijn bekendmakingen die niet puntgebonden zijn (bijvoorbeeld grotere bestemmingsplannen), of die op basis van de locatiegegevens niet aan een adrespunt te verbinden waren.

In de GeoZET-Viewer zijn de lagen ook schaalafhankelijk te zien, dus de aantallen op provincie niveau zijn niet tegelijk te zien met de aantallen op gemeenteniveau. In het QGIS project is dit ook zo gedaan. Elk bolletje is een standaard puntsymbool in ‘rijkshuisstijl oranje’ met het aantal afgebeeld als label.

Aantal bekendmakingen per gemeente

Op provincie-niveau is in het project gebruik gemaakt van de mogelijkheid om een taartdiagram per punt te maken (zie ook Taartdiagrammen van Sake Wagenaar). Je ziet dus de verdeling naar soort bekendmaking:

  • geel = wonen
  • groen = natuur
  • wit = maatschappij
  • blauw = overheid
  • rose = rechtspraak
  • grijs = verkeer
  • rood = consument

Taartdiagrammen

Een extraatje voor Linux-gebruikers: als je inzoomt tot het niveau van de ‘individuele bekendmakingen ‘ en die laag actief maakt (zoals in screendumpje boven), dan geeft klikkend op de i-tool je niet alleen de attribuutinformatie, maar ook een aantal ‘acties’. Klik dat niveau open, en klik dan op het tandwieltje met ‘open in Firefox’. Firefox zal dan openen met de URL uit de attribuutinformatie: je schiet dus zo uit QGIS naar de gemeentelijke websites! Dit zou ook moeten werken onder Windows, maar mijn poging daartoe is tot nu toe gestrand in een foutmelding dat MS Internet Explorer de URL niet kan openen.

Het mooie van open data is, dat er door het gebruik ook foutjes kunnen worden opgespoort. In onderstaande screendump van de bekendmakingen op vlak-niveau viel het me namelijk op, dat Vlieland wel erg veel vlakgerichte bekendmakingen zou hebben. Maar met de i-tool klikken op de bekendmaking toont, dat blijkbaar het adres in de verkeerde velden is terechtgekomen, waardoor de geocodering van deze bekendmakingen is misgegaan. Hopelijk is er bij de gemeente Vlieland ook iemand met QGIS!

Vlielandbekendmakingen allemaal vlakken?

Posted in qgis | 5 Comments

WMS-C lagen van PDOK in QGIS

UPDATE: in tegenstelling tot de eerste tekst van dit artikel, is het heel eenvoudig om de lagen in QGIS te gebruiken, zie tekst onder UPDATE midden in het artikel.

De BRT (Basisregistratie Topografie) is een van de zogenaamde basisregistraties die door het programma Publieke Dienstverlening op de Kaart (PDOK) via overheidsinstellingen aan het publiek beschikbaar worden gemaakt. Vanaf 23 januari 2012 zullen een aantal van deze kaartlagen voor het publiek vrijelijk te gebruiken zijn.

De BRT wordt onderhouden door het Kadaster . De BRT-Achtergrondkaart is ontworpen door Webmapper op basis van de TOP10NL en Top250vector in combinatie met gegevens van het CBS en OpenStreetMap en wordt onder andere gebruikt als ondergrond voor de GeoZET-Viewer (Geografische Zoek- en Toondienst).

Hoewel de GeoZET-Viewer nu nog niet publiek is (maar die ik hier wel kan bekijken), zijn een aantal van de onderliggende services wel al publiek toegankelijk. Dat wil zeggen voor overheden en diensten die daarvoor toestemming hebben om die services voor hun websites te gebruiken. De websites van gemeenten, provincies en andere overheden zijn allemaal ‘gewhitelist’ om gebruik te kunnen maken van deze services.

De kaartservices van PDOK zijn allemaal gemaakt op Open Source tools: de tile caches zijn door GeoServer gegenereerd uit een PostGIS database en worden uitgeserveerd door GeoWebCache via Open Standaard protocollen: WMS, WFS en WMS-C (een apart artikeltje over alle verschillende acroniemen is denk ik ook wel op zijn plaats…).

Het mooie van QGIS is, dat deze al die protocollen spreekt, en je dus die gegevens kunt gebruiken in QGIS (mits dus achter een IP-adres wat gewhitelist is (overheden) tot na 23 januari 2012 dan is alles ‘vrij’).

UPDATE !

In tegenstelling tot wat hieronder staat, is het veel eenvoudiger om de PDOK laten in QGIS te gebruiken. In plaats van de capabilities XML te gebruiken van www.qgis.nl, kun je kortweg onderstaande URL gebruiken. GeoWebCache zorgt dan netjes voor de voor WMS-C benodigde TileSet informatie:

http://geodata.nationaalgeoregister.nl/wmsc?tiled=true

Klik op de knop ‘Verbinden’ om de beschikbare lagen op te halen en de volgende lagen zullen getoond worden

EINDE UPDATE !

Uitgaande van de WMS die draait voor de GeoZET-Viewer kun je op basis van de WMS-requests die gedaan worden zelf een GetCapabilities request van maken:

http://geodata.nationaalgeoregister.nl/wmsc?LAYERS=brtachtergrondkaart&FORMAT=image%2Fpng8&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetCapabilities

Het blijkt dat dat een heel simpel capabilities document is, waarin ook staat dat de services NIET als normale WMS zijn te gebruiken, dus alleen als WMS-C. Echter de daarvoor benodigde ‘TileSet’-informatie staat NIET in het capabilies document.

MAAR… in dat document staan natuurlijk netjes alle online resources en wetende wat het schema-extent en schema-origin zijn, kunnen het capabilitiesdocument zelf uitbreiden, met de voor WMS-C benodigde ‘TileSet’-onderdelen:

<TileSet>
<SRS>EPSG:28992</SRS>
<BoundingBox SRS="EPSG:28992" minx="-285401.92" miny="22598.08"
maxx="595401.9199999999" maxy="903401.9199999999"/>
<Resolutions>3440.64 1720.32 860.16 430.08 215.04 107.52 53.76
26.88 13.44 6.72 3.36 1.68 0.84 0.42 0.21</Resolutions>
<Width>256</Width>
<Height>256</Height>
<Format>image/png</Format>
<Layers>brtachtergrondkaart</Layers>
<Styles/>
</TileSet>

Als we dat invoegen in het bestaande capabilities XML document, en dan de XML (die de originele URL‘s gewoon bevat) lokaal op een server zetten (en/of een kopie op http://www.qgis.nl/pdokwmsc.xml)… dan ziet QGIS opeens tilesets erin staan, EN kan ze dus ook prachtig afbeelden (zie screendump…) en de tiles cachen:

Het meeste QGIS werk om WMS-C te kunnen gebruiken is (mede)gefinancieerd door de Franse topografische dienst, de Institut national de l’information géographique et forestière (IGN), zie bijvoorbeeld Accessing WMS-C layers in QuantumGIS en Advanced WMS-C use.

Zelf de kaartlaag gebruiken als mooie ondergrond?

Start QGIS en maak een project aan. Stel in de projectinstellingen de projectie in op ‘Amersfoort / RD New’ (EPSG:28992 voor ingewijden).

Maak een nieuwe WMS verbinding aan via ‘Kaartlagen / WMS-kaartlaag toevoegen’ met een willekeurige naam, maar met de volgende URL:

http://www.qgis.nl/pdokwmsc.xml

Klik op de knop ‘Verbinden’ om de beschikbare lagen op te halen en de volgende lagen zullen getoond worden

Direct zal er op de maximale extent worden uitgezoomed

Activeer eventueel de ‘Tileschaal’ door via ‘Beeld / Panelen / Tile schaal’ deze te activeren (op de screendumps zie je deze Tileschaal helemaal rechts.

Wanneer je een combinatie van lagen bovenop de WMS-C laag legt, is het wel opvallend dat de BRT-Achtergrondkaart soms NIET scherp wordt afgebeeld:

Het blijkt dat de ‘Tileschalen’ worden gebruikt waneer de WMS-C laag geselecteerd is in de legenda.

Nu dus even afwachten wat er precies na 23 januari 2012 gaat gebeuren: geruchten zijn er dat er meer kaartlagen beschikbaar zullen zijn, en hopelijk worden de services ook zo ingericht dat de capabilities documenten voldoen aan de WMS-C-standaard, zodat we zonder deze kleine ‘aanpassing’ gebruik kunnen maken van deze services.

Posted in qgis | 10 Comments

Taartdiagrammen

Inleiding

Taartdiagrammen hebben als voordeel boven proportionele symbolen en ingekleurde gebieden dat de onderlinge verhoudingen tussen verschillende attributen in één kaart zichtbaar kan worden gemaakt. Ze zijn meestal minder geschikt voor shapefiles die uit veel gebieden bestaan. Een kaart van heel Nederland wordt dan al vrij snel onoverzichtelijk. Als wordt ingezoomd op een deel van het land geldt dit bezwaar minder.

Er zijn twee tabbladen in het venster ‘Layer properties’ waarop taartdiagrammen kunnen worden ingesteld: ‘Diagrams’ en ‘Layout’. De tweede optie is alleen aanwezig als de betreffende plugin is geïnstalleerd en geactiveerd.  De eerste optie is echter het meest geavanceerd.  Daarom wordt gebruik van het tabblad ‘Diagrams’ aangeraden.

Voorbeeld

Eerst moet ‘Display diagrams’ worden aangekruist en het diagramtype worden ingesteld (‘Pie chart’). De omvang van de diagrammen is ingesteld op een vaste grootte van 20 milimeter. In het onderste deel van het scherm zijn drie leeftijdscategorieën toegevoegd en van een kleur voorzien. Dit kan door in het uitklapmenu ‘Attributes’ steeds een veld te kiezen en daarna rechts op de plus-knop te klikken. Door dubbelklikken op een van de toegevoegde categorieën kan de kleur worden aangepast. Verder is het aan te raden om in het vak ‘Position’ bij ‘Placement’ te kiezen voor ‘OverPoint’. De diagrammen worden dan precies boven de punten gecentreerd waaruit deze laag bestaat.

Instellingen voor taartdiagram op tabblad Diagrams

Het resultaat van de instellingen hierboven is te zien op de volgende afbeelding. Helaas maakt QGIS niet automatisch een legenda waaruit de betekenis van de kleuren duidelijk wordt (zoals bij ingekleurde gebieden wel wordt gedaan).

Kaart met leeftijdsopbouw bevolking in de vorm van taartdiagrammen

Aanvullende tips

  • Kies voor de gebieden een achtergrondkleur die goed contrasteert met de kleuren die in de taartdiagrammen worden gebruikt.
  • Het is mogelijk de taartdiagrammen op basis van een attribuut in grootte te laten variëren. In het voorbeeld uit dit artikel kan bijvoorbeeld de bevolkingsomvang hiervoor worden gebruikt. De kaart bevat dan weliswaar meer informatie, maar is wel moeilijker te interpreteren. Dat geldt zeker als de waarde van het gebruikte attribuut sterk uiteenloopt.
  • De grootte van de diagrammen kan ook worden opgegeven in kaarteenheden (bijv. 25000 meter) in plaats van in milimeters. In het voorbeeld hierboven blijven de cirkels steeds even groot, ook als de kaart door uitzoomen kleiner wordt.
  • In het begin is het verwarrend dat bij het aan- of uitzetten van de laag met diagrammen deze ineens verdwenen lijken te zijn. Ze worden niet automatisch opnieuw getekend (waarschijnlijk om rekenkracht te besparen). Als op de ‘Refresh’-knop wordt gedrukt verschijnen de diagrammen weer.

23-7-2011

Posted in qgis | Tagged | 2 Comments

Data importeren

Inleiding

Dit artikel illustreert het gebruik binnen QGIS van statistische gegevens uit tekstbestanden. Het programma kan met veel verschillende bestandsformaten overweg. Ik beperk me hier tot het CSV-formaat, omdat dat het meest universele formaat is voor het importeren en exporteren van data. Eerst wordt uitgelegd hoe een CSV-bestand als laag kan worden toegevoegd. Daarna worden enkele voorbeelden gegeven hoe die gegevens grafisch kunnen worden weergegeven. Dit gebeurt aan de hand van een provinciekaart van Nederland en een tekstbestand met cijfers per provincie.

Nieuwe laag op basis van csv-bestand

Het importeren van gegevens via een csv-bestand werkt het eenvoudigst als dat bestand al x- en y-coördinaten bevat. Importeren zonder coördinaten is wel mogelijk, maar vergt meer handelingen. Het voorbeeldbestand bevat provincienummers, provincienamen en cijfers over de omvang en leeftijdsopbouw van de bevolking. De laatste twee kolommen bevatten de x- en y-coördinaten volgens het RD-stelsel. De statistische gegevens zijn afkomstig van het Centraal Bureau voor de Statistiek (http://statline.cbs.nl). De coördinaten zijn het resultaat van de procedure die in het vorige artikel is beschreven (Middelpunten verplaatsen).

Importbestand met gegevens over provincies in Kladblok

Voeg in een nieuw project eerst de provinciekaart toe als vectorlaag. Daarna kunnen de provinciegegevens worden toegevoegd via ‘Layer / Add delimited text layer’). Nadat het bestand is geselecteerd, moet het juiste scheidingsteken worden geselecteerd. In dit geval een puntkomma (‘semicolon’). Het effect is te zien aan het voorbeeld onderaan het venster. Verder moet worden aangegeven in welke kolommen de x- en y-coördinaten staan. Vaak kan QGIS dit al vrij goed raden. De naam van de laag wordt automatisch ingevuld, maar kan zonodig nog worden aangepast.

Dialoogvenster Add delimited text layer

Het resultaat is te zien in de volgende twee figuren. De kaart bevat nu als onderste laag de gebiedsgrenzen en als bovenste laag de punten uit het tekstbestand. Aan de symbolen in de inhoudsopgave is te zien dat de lagen verschillende soorten geometrische gegevens bevatten, namelijk gebieden  en punten.

Provinciekaart na toevoeging van gegevens uit het csv-bestand

Gegevenstabel van de nieuwe laag gebaseerd op het csv-bestand

Gegevens csv-laag op kaart weergeven

De geïmporteerde gegevens kunnen nu worden gebruikt om thematische kaarten te maken. In dit stadium kan dat alleen via het uiterlijk van de punten en in de vorm van proportionele symbolen, taart- en staafdiagrammen. De cijfers zitten in een andere laag dan de gebiedsgrenzen. Ze kunnen daarom nog niet meteen worden gebruikt om gebieden in te kleuren. Alle mogelijkheden om de cijfers grafisch weer te geven zijn te vinden In het venster ‘Layer properties’, verspreid over drie tabbladen (Style, Diagrams, Overlay). Hierna worden twee presentatievormen getoond.

Voorbeeld 1: variabele symbolen
De bevolkingsomvang per provincie kan bijvoorbeeld met in grootte variërende symbolen worden weergegeven. Dat kan op verschillende manieren. De volgende kaart is gemaakt via de knop ‘Old symbology’ op het tabblad ‘Style’ van het venster ‘Layer properties’. Meer uitleg volgt in een nieuw artikel.

Gebruik van variabele symbolen om bevolkingsomvang weer te geven

Voorbeeld 2: taartdiagrammen
De leeftijdsopbouw van de bevolking kan goed worden weergegeven met taartdiagrammen. Deze optie is te vinden op het tabblad ‘Diagrams’. Uitleg hierover volgt in een volgend artikel (7 Taartdiagrammen). De volgende figuur laat  een voorbeeld van zo’n kaart zien.

Gebruik van taartdiagrammen om leeftijdsopbouw weer te geven

Voor beide voorbeelden geldt dat de laag met provinciegrenzen alleen maar als ondergrond fungeert. De data komen immers uit een andere laag.

23-7-2011

Lees verder:
Taartdiagrammen

Posted in qgis | Tagged | Leave a comment

Middelpunten verplaatsen

Inleiding

Om labels, symbolen of diagrammen op de gewenste plek binnen gebieden weer te kunnen geven, is er soms behoefte aan een kaartlaag met middelpunten van gebieden. Hier wordt gedemonstreerd hoe zo’n kaartlaag in QGIS kan worden gemaakt en bewerkt. De Nederlandse provincies worden daarbij als voorbeeld gebruikt.

Gemiddelde coördinaten

Open de shapefile waarvoor middelpunten moeten worden berekend en maak deze zichtbaar. QGIS bevat een functie waarmee van elk gebied het gemiddelde wordt berekend van de coördinaten waaruit het bestaat. Via de menubalk is deze functie te bereiken via Vector / Analysis tools / Mean coordinate(s). Zorg dat de juiste vectorlaag is geselecteerd (in dit geval de provinciekaart) en selecteer als uniek ID-veld het provincienummer. Het wegingsveld mag leeg blijven. Kies tenslotte een nieuwe naam voor het outputbestand en klik op OK.

Het dialoogvenster ‘Mean coordinates’

Bevestig dat de nieuwe laag aan de inhoudsopgave moet worden toegevoegd en sluit het dialoogvenster. Als de nieuwe laag is geactiveerd worden de gemiddelde coördinaten als punten getoond. Zorg dat ook de provinciegrenzen als onderlaag zichtbaar blijven.

De gegevenstabel direct na berekening gemiddelde coördinaten

Inspectie van de gegevenstabel van de nieuwe laag laat zien dat deze nu de gemiddelde x- en y-coördinaten van elke provincie bevat. Deze kunnen later nog van nut zijn. De kolom UID geeft het provincienummer weer dat hiervoor als identificatieveld is opgegeven. Dit nummer kan later worden gebruikt om data aan de punten te koppelen.

Punten verplaatsen

De ligging van de punten in de nieuwe laag kunnen nu waar nodig worden verschoven naar een gunstiger plek binnen het gebied. Dit kan voor de zekerheid het beste gebeuren op een kopie van de nieuwe laag. Klik hiervoor links met de rechtermuisknop op de laag en selecteer ‘Save as …’. Het bestandstype moet op ‘ESRI-shapefile’ staan. Voeg deze nieuwe laag aan het project toe en de bewerking kan beginnen. Daarvoor moet wel de werkbalk ‘Digitizing’ zichtbaar worden gemaakt. Dit gaat het snelst door met de rechtermuisknop op de menubalk te klikken. Eerst zijn de meeste knoppen op de werkbalk uitgeschakeld. Pas als op het potloodsymbool is geklikt kan de laag worden bewerkt. Verschuiven van punten kan na het indrukken van de knop met vier driehoekjes (‘Move features’). Slecht geplaatste punten kunnen nu naar de gewenste plek worden gesleept. Het is mogelijk om tussentijds het resultaat op te slaan. Als je klaar bent klik je opnieuw op het potloodsymbool.

Als de lagen met gemeentegrenzen, oorspronkelijke en verschoven middelpunten alle drie zijn aangevinkt, zijn begin- en eindsituatie met elkaar te vergelijken.

Weergave van de oorspronkelijke en verschoven middelpunten

Wat verder?

De laag met verbeterde middelpunten kan later op verschillende manieren worden gebruikt. Er kunnen data aan worden gekoppeld die vervolgens met symbolen, taart- of staafdiagrammen worden weergegeven. De middelpunten kunnen ook worden geëxporteerd. Als er dan bijv. vanuit Excel een tekstbestand moet worden aangemaakt met data per provincie, om te gebruiken in QGIS, dan is het erg handig om de x- en y-coördinaten daar standaard in op te nemen. Het voordeel daarvan blijkt uit het volgende artikel.

20-7-2011

Lees verder:
Data importeren

Posted in qgis | Tagged | Leave a comment