Proportionele symbolen

Inleiding

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.

Instellingen voor proportionele symbolen

Instellingen voor proportionele symbolen

Instellingen

Open de ‘Layer properties’ van de laag die de gegevens bevat die je wilt weergeven. In dit voorbeeld is dat de gemeentekaart van Nederland. Op het tabblad ‘Overlay’ staan alle benodigde opties (mocht dit tabblad ontbreken, dan moet eerst de plugin ‘Diagram overlay’ nog worden geactiveerd via ‘Manage plugins’ in het Plugin-menu). Die worden pas beschikbaar nadat linksboven ‘Display diagrams’ is aangekruist. Er kan gekozen tussen ‘pie charts’, ‘bar charts’ en ‘proportional SVG symbols’. Hier gaat het om de derde optie. Selecteer een symbool. Geef bij ‘Classification attribute’ aan welk attribuut je weer wilt geven. In dit geval AANT_INW. Er is op dit moment maar een classificatietype beschikbaar: linair schalen. Nu moet worden ingesteld hoe groot het grootste symbool moet worden. Daarvoor moet eerst de maximale waarde van AANT_INW worden berekend. Tenslotte moet de maximale omvang van het symbool worden opgegeven (bijv. in milimeters). Klik nu op ‘Apply’ of ‘OK’. Om de kaart te zien.

Kaart met symbolen, lineair geschaald het inwonertal

Kaart met symbolen, lineair geschaald het inwonertal

Niet fraai aan dit kaartbeeld is dat de randen van de cirkels dikker worden naarmate de weergegeven waarde hoger is.

Nadeel van lineair schalen

Het nadeel van lineaire schaling is dat er een extreem verschil ontstaat tussen de grootste en de kleinste gemeenten. De indruk die een cirkel maakt op de kaartlezer wordt sterker bepaald door de oppervlakte dan door de diameter van een cirkel. Bij lineaire schaling levert een tweemaal zo grote waarde een tweemaal zo grote diameter op, maar een viermaal zo groot oppervlak. Beter zou zijn om de symbolen te schalen op basis van de vierkantswortel van de attribuutwaarde. Een tweemaal zo hoge waarde levert dan een tweemaal zo groot oppervlak op.

Helaas is deze mogelijkheid niet standaard aanwezig. Met de ‘field calculator’ is dit met een omweg wel te realiseren. Dit kan het beste gedaan worden met een kopie van de oorspronkelijke shapefile, omdat het bestand door deze werkwijze wordt veranderd. Maak een extra kolom aan, bijv. AANT_INW2 en geef deze met de formule sgrt(AANT_INW) een waarde. Deze nieuwe kolom kan dan op het tabblad Overlay (Layer properties) als bron worden gebruikt voor het schalen van de symbolen.

Kaart met symbolen geschaald o.b.v. de vierkantswortel uit het inwonertal

Kaart met symbolen geschaald o.b.v. de vierkantswortel uit het inwonertal

Vreemd geplaatste symbolen

Waar binnen een gemeente het symbool precies komt te staan, wordt automatisch bepaald door de software. Die plaatsing is niet altijd even gelukkig. Dat hangt samen met de vorm van de gemeente (symmetrie) en of deze uit losse stukken bestaat (zoals bijv. Amsterdam). Soms staan symbolen teveel aan de rand van een gemeente of zelfs buiten de gemeente. Dit speelt niet alleen bij proportionele SVG-symbolen, maar ook bij staafdiagrammen en taartdiagrammen.

In shapefiles met polygonen worden geen middelpunten (‘centroids’) opgeslagen. Dit is op te lossen door een extra laag met middelpunten toe te voegen en daar de diagrammen op te baseren. Bij het maken van een shapefile met middelpunten zijn nogal wat andere technieken nodig. Hoe een laag kan worden gemaakt met middelpunten en hoe die middelpunten kunnen worden verschoven wordt beschreven in een apart artikel (Middelpunten verplaatsen). Hoe puntgegevens kunnen worden gevisualiseerd komt later aan bod.

20-7-2011

Lees verder:
Gebieden samenvoegen

Opmerking

Ik vond later een betere optie terug voor het maken van kaarten met proportionele symbolen. Die optie zit sinds versie 1.7 van QGIS verstopt onder de knop ‘Old symbology’ op het tabblad ‘Style’ van de ‘Layer properties’.

Top10Vector stijlen in QGIS

Regelink Ecologie en Landschap gebruikte QGIS al voor het maken van de kaartjes in hun rapporten. De benodigde data daarvoor kregen ze van het Kadaster, via een abbonnement.

Er werd (de nog oude) Top10Vector uitgeleverd, voor een demo van zulke data zie de Kadaster site. De uitlevering bestaat uit 5 ESRI-Shapebestanden:

  • top010vlakken_poly
  • top010huizen_poly
  • top010lijnen_line
  • top010symline_line
  • top010sympoint_point

Het Kadaster heeft voor verschillende desktop GIS-pakketten stijl-bestanden beschikbaar, maar voor QGIS (nog) niet.

Webmapper hebben met behulp van QGIS’ ‘new symbology’ en ‘style-rules’ een eenvoudige visualisatie gemaakt die lijkt op de klassieke Top10Vector kaarten. Voor deze eerste versie zijn vooral de vlakken en lijnen voorzien van een stijl (o.a. omdat vooral deze van belang zijn voor kleine projectkaartjes). Wanneer er behoefte aan is kunnen we de stijlen uitbreiden voor punten.

De huidige versie van de stijlbestanden (.qml-betanden ) kunt u hier voor eigen gebruik downloaden. Na het uitpakken vind u voor elk kadaster bestand een stijlbestand, verder zitten er in zip een mapje met enkel SVG-symbolen. Om QGIS hiervan gebruikt te kunnen laten maken dient u in Extra/Opties het pad naar het mapje met SVG-symbolen aan te geven (zie screendump hieronder).

Er staat een eenvoudige demo met de demodata van het Kadaster.

Gebieden inkleuren

In het artikel Vectorlaag toevoegen is getoond hoe een vectorlaag kan worden toegevoegd, op basis van een shapefile met de Nederlandse gemeenten. De gemeenten kunnen worden ingekleurd op basis van een attribuut, zoals de bevolkingsdichtheid. Klik  dubbel op de laag en ga naar het tabblad ‘Style’. Linksboven kun je zien dat de stijl nu op ‘Single symbol’ is ingesteld. Dat betekent in dit geval dat alle gemeenten dezelfde kleur hebben. Verander dit in ‘Graduated’ en er verschijnen nieuwe opties op het tabblad. Je kunt nu kiezen welk attribuut je wilt weergeven, met welke onderverdeling en welke kleuren.

Om te beginnen laat je QGIS automatisch een aantal zaken instellen. Gebruik daarbij de volgende instellingen:

Column: BEV_DICHTH
Classes: 5
Mode: equal interval
Color ramp: geel-rood

Je kunt zelf kleurovergangen definiëren door bij ‘Color ramp’ te kiezen voor ‘New color ramp …’. Het kan ook via het menu ‘Settings’ met ‘Style manager’.’

Als je nu op de knop ‘Classify’ klikt, zie je een onderverdeling met bijbehorende kleuren en labels verschijnen. Om te zien welke effect deze instelling op de kaart hebben, klik je op de knop ‘Apply’. Om de kaart goed te kunnen zien, moet je het venster ‘Layer properties’ wellicht iets opzij schuiven.

Automatische gegenereerde categorieën en kleuren

]

 

 

 

 

Een automatische indeling geeft zelden meteen het gewenste resultaat. Door dubbelklikken op kleur, indeling of label, kun je de kaart optimaliseren. Gebruik als klassegrenzen bijv. 200, 300, 500 en 1000.  Let op dat er geen gaten in de indeling zitten, want dan vallen er letterlijk gaten in de kaart. Omdat de laatste twee kleuren moeilijk van elkaar zijn te onderscheiden is het aan te raden de laatste kleur wat donkerder te maken.

Kaart van bevolkingsdichtheid per gemeente

Andere interessante attributen uit deze shapefile om dit kaarttype mee te oefenen:

  • percentage eenpersoonshuishoudens (P_EENP_HH);
  • percentage 0- tot 14-jarigen (P_00_14_JR);
  • percentage 65-plussers (P_65_EO_JR).

19-7-2011

Lees verder:
Proportionele symbolen

Vectorlaag toevoegen

Een shapefile openen

Op deze pagina wordt het gebruik van de kaart van Nederlandse gemeenten beschreven, zoals die door het CBS wordt aangeboden (zie Kaartbestanden). Pak dit ZIP-bestand uit in een aparte map. Je ziet dan een serie bestanden met de naam gem_2010_gn1. Samen vormen deze bestanden de ‘shapefile’ waarmee de gemeentekaart van Nederland kan worden getekend. Deze shapefile bevat ook diverse gegevens over de gemeenten (‘attributen’). Open in QGIS het bestand gem_2010_gn1.shp met ‘Layer / Add vector layer …’ (of de betreffende knop op een van de werkbalken bovenin het scherm). Zorg ervoor dat in het dialoogvenster het bestandstype op ‘ESRI shapefiles‘ staat ingesteld. Dat vergemakkelijkt de selectie van het juiste bestand. De tekenset (‘Encoding’) moet in dit geval worden ingesteld op ISO8859-1. Anders worden diacritische tekens, zoals letters met dakjes of accenten, niet goed weergegeven.

Na het openen van het bestand zie je links in het paneel ‘Layers’ dat er een laag is toegevoegd. Deze wordt echter nog niet in het kaartgebied weergegeven. Daarvoor moet je eerst het selectievakje aankruisen. Wordt de laag dan nog niet getekend, klik dan met de rechtermuisknop op de laag en selecteer ‘Zoom to layer extent‘.

Attributen bekijken

Om te zien welke gegevens de shapefile bevat over de Nederlandse gemeenten kun je met de rechtermuisknop op de laag klikken en vervolgens op ‘Open attribute table‘ (of via de knop op een van de werkbalken). Sluit de tabel weer voor de volgende actie.

19-7-2011

Lees verder:
Gebieden inkleuren

Pff.. opslaan als dbf: general input/output error

Ooit een Excel bestand ontvangen, om bijvoorbeeld een shape-bestand van te maken? En gedacht: even als dbf/Dbase4 opslaan in OpenOffice/LibreOffice, want dat wordt door alle OpenSource gis-applicaties wel gelezen…

Een tijdje terug had ik altijd onderstaande foutmelding als ik probeerde een dbf op te slaan in Debian or Ubuntu: “Error saving the document: General Error. General input/output error”

In eerste instantie dacht ik altijd dat het een oude Open/LibreOffice bug moest zijn. Die misschien niet meer zou worden gefixed omdat tenslotte ‘niemand’ meer dbf bestanden gebruikt…

Maar fout! De foutmelding onstaat gewoon doordat je NIET de libreoffice-base / openoffice-base package hebt geinstalleerd in Ubuntu!
Blijkbaar wordt deze niet standaard geinstalleerd waneer je libre/openoffice installeert. Maar even:

sudo apt-get install libreoffice-base

En je kunt WEL dbf’s opslaan!

zie ook https://bugs.launchpad.net/ubuntu/+source/openoffice.org/+bug/502462

Groet…

 

Kaartbestanden en hulpinformatie

Kaarten Nederland

CBS – Wijk- en buurtkaart 2011 (shapefiles van gemeenten, wijken en buurten):
http://www.cbs.nl/nl-NL/menu/themas/dossiers/nederland-regionaal/publicaties/geografische-data/archief/2012/2012-wijk-en-buurtkaart-2011-art.htm

CBS – Bevolkingskernen 2006:
http://www.cbs.nl/nl-NL/menu/themas/dossiers/nederland-regionaal/publicaties/geografische-data/archief/2010/2010-bevolkingskernen-in-nederland-2006.htm

De CBS-kaarten zijn generalisaties van uitgebreidere kaarten van het Kadaster. Ze maken gebruik van Rijksdriehoekcoördinaten (RD). Met QGIS kunnen kaarten zonodig naar andere coördinatenstelsels worden omgezet.

Er zijn andere kaartbestanden met Nederlandse gemeenten op internet te vinden (zie volgende rubriek). Die maken meestal gebruik van lengte- en breedtegraden (volgens het coördinatenstelsel WGS84, ook gebruikt door Google Maps en Google Earth). Vaak zijn deze kaarten minder nauwkeurig of geven ze een verouderde gemeente-indeling weer.

Topografische kaarten (raster, vector):
http://mirror.openstreetmap.nl/kadaster/
(Begin januari 2012 heeft het Kadaster gedetailleerde topografische kaarten van heel Nederland vrijgegeven. Het gaat hier om de topografische kaart 1 : 25.000 in rasterformaat (TOP25raster) en de topografische kaart 1 : 10.000 in vectorformaat (TOP10NL). Van de webserver van OpenStreetMap zijn de bestanden in resp. TIFF-TFW en GML-formaat te downloaden. Beide formaten zijn in QGIS in te lezen.)

Kaarten diverse landen

DIVA-GIS
http://www.diva-gis.org/gData
(Bestuurlijke indelingen, water, wegen, spoorwegen, hoogte, klimaat etc. van diverse landen)

Geofabrik
http://download.geofabrik.de/osm/europe/
(Kaarten afgeleid van OpenStreetMap dataset)

VDS Technologies:
http://www.vdstech.com/map_data.htm

kvdb.net / dcentralize
http://www.d-centralize.nl/projects/6pp/downloads/
(Postcodes)

Geonames
http://www.geonames.org/
(Plaatsnamen)

USA Census Bureau / TIGER
http://www2.census.gov/cgi-bin/shapefiles2009/national-files
(USA: staten, counties, plaatsen, statistische regio’s)

Hulpmiddelen

Uitleg rijksdriehoekscoördinaten:
http://nl.wikipedia.org/wiki/Rijksdriehoeksco%C3%B6rdinaten

Omzetting coördinaten tussen RD en WGS84:
http://et10.org/gc/rd.php

Toevoegen RD-coördinaten aan lijst adressen:
http://www.digischool.nl/ak/postcode/

Gemeentelijke indeling en regio-indelingen:
http://statline.cbs.nl/StatWeb/dome/default.aspx
(Nederland regionaal / Indelingen)

Vereenvoudiging shapefiles (Mapshaper):
http://mapshaper.com/test/demo.html

Catalogus van Nederlandse geo-informatie (Nationaal Georegister):
http://www.nationaalgeoregister.nl

Laatst gewijzigd, 4-3-2012

Rijksdriehoekstelsel (epsg:28992) verschuiving?

Nog steeds is de projectie informatie die wordt meegeleverd met veel Open Source GIS tools niet de juiste. Althans het is wel de juiste volgens de epsg-database op basis waarvan de proj-definities worden gemaakt, maar in de praktijk werkt een andere definitie beter.

Gebruik van de standaard proj-definities heeft bijvoorbeeld tot gevolg dat er een verschuiving optreedt bij het laden van een shape-bestand welke je over GoogleMaps wilt draperen. Dit komt door het ‘herprojecteren’ van je data van epsg:28992 naar epsg:900913 (of epsg:3857 zoals die nu officieel heet).

Martijn van Exel schreef er al een blog over

Snelle oplossing: als je nog steeds een van de volgende proj definities ziet in qgis bij ‘Amersfoort / RD new’ (je mist dus het stukje ‘+towgs84′) :


+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defsa

of

+proj=sterea +lat_0=52.156161 +lon_0=5.387639 +k=0.999908 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +no_defs

Maak dan een ‘custom’ projectie definitie aan met een van de definitie:

+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.999908 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +towgs84=565.2369,50.0087,465.658,-0.406857330322398,0.350732676542563,-1.8703473836068,4.0812 +no_defs no_defs

Voorbeeld van een qgis project, met daarin GoogleMaps en een OpenStreetMap met daarin NIET de juiste definitie:

28992verschuiving1

En nu een met daarin de juiste proj definitie gebruikt:

Opmerking: als je dit nog nooit gezien hebt, en toch de ‘verkeerde’ definitie gebruikt, dan komt dit waarschijnlijk omdat je nog nooit gebruik hebt gemaakt van de ‘on the fly projection’ van Qgis in combinatie met een andere projectie.