ArcGIS Blog
  • ArcGIS Online
  • ArcGIS Pro
  • ArcGIS Enterprise
  • ArcGIS Living Atlas
  • ArcGIS Developer
  • Apps
  • ArcGIS Online
  • ArcGIS Pro
  • ArcGIS Enterprise
  • ArcGIS Living Atlas
  • ArcGIS Developer
  • Apps
Schlagwörter
3D Administration Analyse Ankündigungen ArcGIS Maps SDKs arcgis pro Außendienst Big Data Bilddaten Data & Location Services Datenaufbereitung Datenmanagement Datenschutz Deep Learning Design und Planung Dictionary Styles Digital Twin Drohnen Entscheidungshilfe Event Freigabe und Zusammenarbeit GeoAI Integration IoT Lizenzierung Lösungen Machine Learning Neuerungen Patches Realtime-Analytics Schulung Sicherheit Skripting Tipps & Tricks Tutorials Virtualisierung Visualisierung
  • ArcGIS Online
  • ArcGIS Pro
  • ArcGIS Enterprise
  • ArcGIS Living Atlas
  • ArcGIS Developer
  • Apps
News
  • ArcGIS Pro

Tipps & Tricks #10: Felder berechnen mit Python

  • 5. April 2023
  • Sascha Esser
Globus mit Code
Total
0
Shares
0
0
0
0

​​Habt Ihr Euch auch schon mal gefragt, wofür das Code-Block Fenster „Feld berechnen“ ist und wie man es benutzt? Sascha Esser zeigt, wie Felder in Attributtabellen mit Python in ArcGIS Pro berechnet werden können und wie man die Ergebnisse des Code-Blocks in das Ausdruck-Feld bekommt.​

Die Werte von Feldern in Attributtabellen können neben Arcade auch mit Python berechnet und/oder geändert werden. Python, als weit verbreitete und leicht zu lernende Programmiersprache, erfreut sich seit Jahren großer Beliebtheit und ist auch in ArcGIS Pro (auch im Store erhältlich) anwendbar. So können ganze Workflows mit Python automatisiert werden. Aber auch einfachere Aufgaben, wie das Berechnen von Feldwerten lassen sich bequem mit Python lösen. Neben einfachen 1-Zeilen-Berechnungen können auch komplexere Berechnungen für Feldwerte angewendet werden. In diesem Blog-Artikel möchte ich euch zeigen, wie das genau funktioniert. 

Für einfache Berechnungen in ArcGIS Pro reicht die „Ausdruck“-Zeile im Fenster „Feld berechnen“. Hier können z. B. Werte aus bestimmten Feldern und einfache Zahlen oder Werte aus einem anderen Feld mit Operatoren verknüpft werden, um ein Ergebnis zu erhalten. Neben den Operatoren gibt es außerdem Helpers. Diese sind vorgefertigte Python-Funktionen, die eine bestimmte Aufgabe erfüllen können. So bewirkt die Funktion .upper(), dass Strings, also Texte, komplett in Großbuchstaben dargestellt werden. 

Abbildung 1: Besipiel für vorgefertigte Python-Funktionen am Beispiel der .upper-Funktion 

Im Folgenden soll anhand der Einwohnerzahl und der Feature-Geometrie die Bevölkerungsdichte für jedes PLZ-Gebiet in Deutschland ermittelt werden. Die Daten sind OSM (OpenStreetMap) und können z. B. bei Opendata-esri heruntergeladen werden.

Für die Berechnung werden die Werte der Spalte Einwohner durch die Geometriespalte Shape_Area dividiert. Zu beachten ist dabei, dass bei einem Verweis auf Daten in einer Spalte diese Spalte mit Ausrufezeichen (!) eingeklammert wird. In diesem Beispiel würde in der Ausdruckszeile also stehen:  

!einwohner! / !Shape_Area!

Für aufwendigere Berechnungen wird das Feld „Code-Block“ benutzt, das nur für Python zur Verfügung steht. Hier können nicht nur Zahlen berechnet, sondern auch Fallunterscheidungen mit if-Ausdrücken vorgenommen und Text zurückgegeben werden.

Anhand der Bevölkerungsdichte soll der Grad der Verstädterung für jedes PLZ-Gebiet in Worten zurückgegeben werden. Der Grad der Verstädterung kann laut dem Statistischen Bundesamt unterschieden werden in „dünn besiedelt“ (≤100 Einwohner/km²), „dicht besiedelt“ (≥ 500 Einwohner/km²) und „mittlere Besiedlungsdichte“ (zwischen 100 und 500 Einwohnern/km²).

Screenshot aus ArcGIS Pro zur Berechnung der Bevölkerungsdichte mit dem Feldrechner
Abbildung 2: Berechnung der Bevölkerungsdichte mit dem Feldrechner

Um den entsprechenden Eintrag zu erzeugen, muss anhand der Bevölkerungsdichte eine Fallunterscheidung für die drei angesprochenen Fälle erfolgen. Dafür müssen die Fälle im Code-Block mit if-Anweisungen unterschieden werden.

Zur Vereinfachung werden zunächst die Ober- und Untergrenze, also „dünn besiedelt“ und „dicht besiedelt“, unterschieden. Dadurch kann der Zwischenraum für die „mittlere Besiedlungsdichte“ mit einer einfachen else-Anweisung abgedeckt werden. Die if-Anweisungen müssen zusätzlich noch in einer Funktion (def) eingebettet werden, damit der Rückgabewert an das Ausdruck-Feld übergeben werden kann. Der Rückgabewert wird mit return und dem Text in Anführungszeichen zurückgegeben.

def Urbanization(density): 
    if density <= 100: 
        return ”dünn besiedelt” 
    if density >= 500: 
        return ”dicht besiedelt” 
    else: 
        return “mittlere Besiedlungsdichte”
Screenshot aus ArcGIS Pro zur Berechnung des Verstädterungsgrades mit einem Python Code-Block
Abbildung 3: Berechnung des Verstädterungsgrads über Python im Feldrechner 

In der Ausdruck-Zeile wird dann die im Code-Block definierte Funktion aufgerufen. Die Angabe in der Klammer gibt die Spalte der Attributtabelle an, deren Werte an die Funktion im Code-Block übergeben werden sollen.

Urbanization(!Bevölkerungsdichte!)

Jetzt geht der Feldrechner wie gewohnt Zeile für Zeile die Attributtabelle durch und berechnet den gewünschten Wert.


Weitere Beiträge unserer Tipps & Tricks-Reihe:
Tipps & Tricks #7: Rasterdatenverwaltung
Tipps & Tricks #8: Lizenzen und Portale
Tipps & Tricks #9: Administration und User Types

Total
0
Shares
Share 0
Tweet 0
Share 0
Share 0
Related Topics
  • Datenaufbereitung
  • Skripting
  • Tipps & Tricks
  • Tutorials
Sascha Esser

Schon während meines Studiums der Geographie (M.Sc.) an der Universität zu Köln habe ich erste Erfahrungen mit GIS in den verschiedensten Disziplinen sammeln können. Seit 2022 bin ich nun bei Esri im Team Core Products in der Rolle des Product Specialist mit dem Schwerpunkt ArcGIS Pro, 3D und Network Analyst.

Voriger Artikel
Kacheln mit Icons zu Administrations-Bereichen
  • ArcGIS Enterprise
  • ArcGIS Online

Tipps & Tricks #9: Administration und User Types

  • 29. März 2023
  • Linda Klapschus
Weiterlesen
Nächster Artikel
Auszug aus dem Living Atlas zeigt Weltkarte mit Kontinenten
  • ArcGIS Living Atlas

​​Tipps & Tricks #11: Das Beste aus dem ArcGIS Living Atlas​ 

  • 12. April 2023
  • Marianne Rüegsegger
Weiterlesen
Dir könnte auch gefallen
Datenpunkte mit Verbindungen vor dunklem Hintergrund
Weiterlesen
  • ArcGIS Enterprise
  • ArcGIS Pro

ArcGIS Knowledge Neuerungen | Frühling 2023

  • Christian Hamberger
  • 31. Mai 2023
Weiterlesen
  • ArcGIS Pro

Tipps & Tricks #16: Rasterverarbeitung mit GDAL in ArcGIS Pro

  • Ralf Schüpferling
  • 17. Mai 2023
Standort-Pin auf einer faltbaren Karte
Weiterlesen
  • ArcGIS Pro

​​​Neuerungen für Enterprise-Geodatabases in ArcGIS Pro 3.1​​

  • Claudia Burkard-Klingebiel
  • 11. Mai 2023
Fiktive Figuren halten sich an den Händen
Weiterlesen
  • ArcGIS Pro

Tipps & Tricks #15: Verschneiden, Zusammenführen, Vereinigen…?

  • Sascha Esser
  • 10. Mai 2023
Jenga Steine bilden eine Treppe, die nach oben führt
Weiterlesen
  • ArcGIS Pro

Verbesserungen der Geodatabase-Replikation in ArcGIS Pro 3.1

  • Claudia Burkard-Klingebiel
  • 9. Mai 2023
Pfeil, der Neuerungen ankündigt
Weiterlesen
  • ArcGIS Pro

Neuerungen für die Geodatabase in ArcGIS Pro 3.1

  • Claudia Burkard-Klingebiel
  • 8. Mai 2023
Wetterprognose
Weiterlesen
  • ArcGIS Enterprise
  • ArcGIS Online
  • ArcGIS Pro

Tipps & Tricks #14: Einheitliche Symbolisierung von Image Services

  • Isabel Blanke
  • 3. Mai 2023
Warndreieck auf einer Landstraße
Weiterlesen
  • Apps
  • ArcGIS Online
  • ArcGIS Pro

Tipps & Tricks #12: “Your ArcGIS Subscription is Expiring”

  • Linda Klapschus
  • 19. April 2023
Early Bird Tickets für die Esri Konferenz 2023
Besuchen Sie den Esri Store von Esri Deutschland und Esri Schweiz miit ArcGIS Produkten.
ArcGIS Blog
  • Autor:innen
  • Impressum
  • Datenschutz
Alles zu ArcGIS - direkt aus erster Hand von Esri Deutschland.

Gib dein Suchwort ein und drücke Enter.