ArcGIS for Desktop - Tips voor Experts

Egge-Jan Pollé

Spatial Join: meerdere attribuutwaarden wegschrijven naar één kolom

Stel: je hebt een dataset met nationale parken en je wilt weten in welke gemeenten die parken liggen. Het antwoord waar je naar op zoek bent moet ongeveer deze vorm hebben:
Het nationale park De Alde Feanen ligt in 2016 in de gemeenten: Tytsjerksteradiel, Heerenveen, Leeuwarden, Smallingerland.

Hoe doe je dat? In deze blog laten we zien hoe je deze vraag kunt beantwoorden in ArcGIS for Desktop met de Spatial Join geoprocessing tool en een stukje Python.

GemeentenEnNationaleParken

Begin in het dialoogvenster Spatial Join met het invullen van de eerste twee velden:

  • Target Features: nationaleparken ← dit zijn twintig polygonen, waaronder enkele multipolygonen
  • Join Features: gemeenten2016 ← inclusief water; handig! Nationaal park de Oosterschelde bestaat immers voornamelijk uit water

Geef vervolgens de naam en de locatie op voor de Output Feature Class, bijvoorbeeld 'nationaleparken_sj' en zorg ervoor dat de Join Operation op de default waarde - JOIN_ONE_TO_ONE - blijft staan. Je wilt immers elk vlak van een nationaal park maar één keer terugkrijgen, en niet meerdere keren; dus niet voor elke overlappende gemeente een apart vlakobject.

Field Map of Join Features

En hoe zorg je er nou voor dat er meerdere gemeentenamen aan een nationaal park gekoppeld worden?
Klik in het gedeelte Field Map of Join Features met de rechtermuisknop op de kolom Gemeentenaam om het dialoogvenster Output Field Properties te openen.

  • Begin in dit dialoog met het aanpassen van de Length van de kolom, van 30 naar bijvoorbeeld 400 karakters. Waarom? Als de kolom te smal is dan passen de achter elkaar geplakte gemeentenamen er niet in en zal je analyse vastlopen op een ERROR 001156...
  • Stel vervolgens de Merge Rule in op Join en de Delimiter, het scheidingsteken, op een komma en een spatie. (Nee, die spatie is niet zichtbaar in de schermafdruk, maar hij staat er wel.)

SpatialJoinAndOutputFieldProperties

Klik op OK en bekijk de kolom Gemeentenaam in de resultaattabel:

ResultTable

En om dit resultaat in twintig mooie volzinnen uit te schrijven kun je de volgende code in het Python scherm uitvoeren:
with arcpy.da.SearchCursor("nationaleparken_sj",["naam","Gemeentenaam"]) as cursor:
 for row in cursor:
  print("Het nationale park {0} ligt in 2016 in de gemeenten: {1}.".format(row[0], row[1]))

Probeer het maar eens uit.

TAGS: ArcGIS, ESRI

Meer weten over dit onderwerp?

Plan een sparringssessie met een van ons experts
Kennishub

Ontdek meer over dit onderwerp

Herkenning ondermijnende criminaliteitOOV,Inzicht,Business Consultancy,Visie,ESRI,ArcGIS,Spatial Data Science,GIS,Innovation,Case Study

Optimalisatie van de informatieketenUtilities,GIS,ArcGIS,FME,Consultancy,Case Study

Slimme inrichting 112-meldkamerReal-time,Inzicht,ArcGIS,Geo-ICT,Meldkamer,OOV,Case Study

Bezoek Tensing tijdens de Esri GIS Conferentie 2018Nieuws,Tensing,ESRI,ArcGIS,blog

Ondermijnende criminaliteit bij kwetsbaar vastgoedArcGIS,Innovation

Over ons

Tensing maakt GIS-technologie toegankelijk en toepasbaar. Onze consultants realiseren state-of-the-art oplossingen op basis van Esri ArcGIS en Safe Software FME.

Blijf op de hoogte

Esri ArcGIS

Met Esri maken wij kaarten, stimuleren we samenwerking en analyseren we data. Zo heb jij altijd inzicht in de actuele situatie.

Safe Software FME

Met FME verbind je eenvoudig honderden applicaties, transformeer je data op eindig veel manieren en automatiseer je workflows.
© 2018 Tensing | Privacy Policy | Cookie Policy