Dit artikel demonstreert het weergeven van stromen op een kaart. Dat gebeurt aan de hand van gegevens over woon-werkrelaties tussen COROP-gebieden van het CBS (zie Statline). Hierbij maak ik gebruik van de FlowMapper-plugin.
Voorbereiding
Nadat deze plugin op de gebruikelijke manier is geïnstalleerd, is de handleiding te vinden in de map C:\Users\{gebruiker}\.qgis2\python\plugins\FlowMapper2_documentation. Er zijn drie tekstbestanden nodig met resp. de coördinaten van de knooppunten, de namen van de knooppunten en de stroomgegevens. Drie punten zijn van belang die niet in de handleiding worden vermeld. Ten eerste werkt de plugin niet goed met getallen met decimalen. Dat is op te lossen door de getallen bijv. met 1.000 te vermenigvuldigen en vervolgens af te ronden. Ten tweede mogen als scheidingstekens behalve spaties ook tabs worden gebruikt. Dat laatste is vooral handig bij het plakken van gegevens in een tekstbestand vanuit Excel. Ten derde kunnen de namen van de knooppunten beter geen spaties bevatten. Die worden namelijk ook in dit geval als scheidingstekens gezien. Vervang deze bijvoorbeeld door underscores.
Shapefiles genereren met FlowMapper
De volgende stap bestaat uit het aanmaken van twee shapefiles, met knooppunten en lijnen. Selecteer via het Plugin-menu “FlowMapper” / “Generate flow lines and nodes”. Je kunt nu de bestanden en de overige specificaties opgeven.
Het eerste deel van de opties gaat over de te genereren shapefiles. Let hierbij goed op het soort coördinaten. Kies “Cartesian” als je RD-coördinaten gebruikt. Het tweede deel betreft instellingen voor de weergave van de stromen op basis van de gemaakte shapefiles. De opmaak van lijnen en knooppunten kun je echter ook met QGIS doen. Bovendien is vaak nog wel nabewerking nodig, zoals het beperken van het aantal weergegeven lijnen. Daarover gaat de volgende paragraaf.
Minder lijnen door gebruik filter
Als je de shapefiles met stromen en knooppunten opent in een nieuw project, levert dat een enorme wirwar aan lijnen op. In dit voorbeeld met 40 regio’s gaat het om 1.600 lijnen.
Het aantal weergegeven lijnen kan worden beperkt door een filter te gebruiken. Klik in het venster met lagen met de rechtermuisknoop op de laag met lijnen en selecteer de optie “Filter…”. Je kunt nu filteren op de omvang van de stromen, op de regio van oorsprong of bestemming. De volgende afbeelding toont een combinatie hiervan.
Het resultaat hiervan is dat alleen stromen van en naar de geselecteerde regio, groter dan de opgegeven waarde, worden getoond.
Opmaak lijnen, markers en labels
Als hiervoor in de FlowMapper-plugin is gekozen voor “Net” of “Gross”, is de opmaak van de lijnen vrij eenvoudig. De uitdaging is groter als de shapefile stromen in twee richtingen bevat. Dan is het van belang om goed te kunnen zien welke lijnen, markeringen en labels bij welke stroomrichting horen. Hierna volgen vier schermvoorbeelden. Het eerste laat zien hoe de lijnen ten opzichte van elkaar kunnen worden verschoven. De volgende twee tonen hoe markeringen kunnen worden toegevoegd, op de juiste plek en met de juiste richting. De vierde schermafdruk demonstreert de positionering van de labels.
Resultaat
De volgende twee kaarten laten het resultaat zien van de hierboven getoonde instellingen.
nice !
Fraai, ik deed dit tot nu handmatig, dit gaat een stuk soepeler!
Bij het downloaden van deze plug-in krijg ik de reactie:
Plug-in werkt niet. Python meldt: No module named ogr.
Wat kan ik hieraan doen?
Dat heeft wellicht te maken met de QGIS-versie die je gebruikt. Misschien kan de maker van de plugin je verder helpen. Zie: http://95.9.195.180/.
De maker van de plugin gaf aan dat de FlowMapper wel in versie 2.4 werkt en dat klopt! Blijkbaar een bug in versie 2.6.1.
Ik krijg een foutmelding bij het inlezen van de COROP-middelpunten coördinaten.txt file. Heeft dit te maken met de komma in de (eerste) X-coördinaat van Oost-Groningen: 264101,2969?
Er is een fout opgetreden bij het uitvoeren van Python code:
Traceback (most recent call last):
File “C:/Users/Gerlof Rienstra/.qgis2/python/plugins\FlowMapper\flowmapper.py”, line 2656, in run
flowpyv07.shapefilemaker(FlowType,CreateShpNodes,IncludeNodeNames,str(SaveDirectory), str(SaveShpName),str(SaveShpNameNodes),str(InputMatrixName),str(InputNodesName),str(InputNodeNamesName),str(combotext))
File “C:/Users/Gerlof Rienstra/.qgis2/python/plugins\FlowMapper\flowpyv07.py”, line 72, in shapefilemaker
onevalue2 = float(separatestrings2[ptcolumns])
ValueError: invalid literal for float(): 264101,2969