17.11. Vectorcalculator
Notitie
In deze les zullen we zien hoe we nieuwe attributen toevoegen aan een vectorlaag, gebaseerd op een rekenkundige uitdrukking, met behulp van de vectorcalculator.
We weten al hoe we de raster calculator moeten gebruiken om nieuwe lagen te maken met behulp van rekenkundige uitdrukkingen. Een soortgelijk algoritme is beschikbaar voor vectorlagen, en genereert een nieuwe laag met dezelfde attributen van de invoerlaag, plus een aanvullende met het resultaat van de ingevoerde uitdrukking. Het algoritme heet Veld calculator en heeft het volgende dialoogvenster voor parameters.
Notitie
In nieuwere versies van Processing is de interface aanzienlijk gewijzigd, hij is krachtiger en eenvoudiger te gebruiken.
Hier zijn enkele voorbeelden van het gebruik van dat algoritme.
Laten we eerst de bevolkingsdichtheid berekenen van blanke mensen in elke polygoon, wat een census weergeeft. We hebben twee velden in de attributentabel die we daarvoor kunnen gebruiken, namelijk WHITE
en SHAPE_AREA
. We moeten ze alleen delen en vermenigvuldigen met 1 miljoen (om de dichtheid per vierkante km te verkrijgen), dus we kunnen de volgende formule in het overeenkomstige veld gebruiken
( "WHITE" / "SHAPE_AREA" ) * 1000000
Het dialoogvenster voor de parameters zou moeten worden gevuld zoals hieronder weergegeven.
Dit zal een nieuw veld genereren, genaamd WHITE_DENS
Laten we nu de ratio berekenen tussen de velden MALES
en FEMALES
om een nieuw veld te maken dat aangeeft of de mannelijk bevolking numeriek domineert boven de vrouwelijke bevolking.
Voer de volgende formule in
"MALES" / "FEMALES"
Deze keer zou het venster met de parameters er zo uit moeten zien voordat op de knop OK wordt gedrukt.
In een eerdere versie zou, omdat beide velden van het type integer zijn, het resultaat worden afgebroken tot een integer. In dit geval zou de formule : 1.0 * "MALES" / "FEMALES"
moeten zijn, om aan te geven dat we een getal floating point als resultaat willen hebben.
We kunnen voorwaardelijke functies gebruiken om een nieuw veld met tekststrings male
of female
te krijgen in plaats van de waarden voor de ratio, met behulp van de volgende formule:
CASE WHEN "MALES" > "FEMALES" THEN 'male' ELSE 'female' END
Het venster voor de parameters zou er zo uit moeten zien.
Een Python veldcalculator is beschikbaar in de “Advanced Python field calculator”, waarover we hier niet in detail treden