Advanced Geoprocessing mit der ArcGIS Plattform

Advanced Geoprocessing mit ArcPy und Jupyter

Verfasst von
0 KommentareArtikel
Hochschule
In diesem Blogpost beschreibt Andreas Richter (Dipl.-Ing., Lehrbeauftragter an der Beuth-Hochschule Berlin, FBIII Bauingenieur und Geoinformationswesen) seine Erfahrungen zum Einsatz von Automatisierung und Skriptsprachen in der GIS Analyse und in der Hochschullehre.

Desktop und ModelBuilder

Die ArcGIS Plattform ist ein umfangreiches und vielseitiges Werkzeug zur Analyse von geografischen Daten. Die Desktop-Anwendungen ArcMap/ArcGIS Pro bieten dem geschulten Anwender die gewünschte Funktionalität, um detaillierte und anspruchsvolle Analysen durchzuführen.

Häufig kommen in solchen Analysen wiederkehrende Arbeitsschritte vor, die durch ein automatisiertes Modell übernommen werden können. Die Nutzung von ModelBuilder schafft Zuverlässigkeit, vermeidet menschliche Fehler (Unkonzentriertheit des Bearbeiters) und entlastet das Gehirn des Analysten. In der so frei gewordenen Zeit kann dieser über die nächsten Schritte seiner Analyse nachdenken.

Die automatische Analyse mit dem ModelBuilder hat aber auch Grenzen, gerade wenn es um Schleifen oder Fallunterscheidungen im Analyseprozess geht. Diese Tools stehen zwar zur Verfügung, werden aus meiner Erfahrung aber nur von wenigen Anwendern genutzt. Der Aufwand, um ein Modell fehlerfrei und zielgerichtet zum Laufen zu bringen, sollte ebenfalls nicht unterschätzt werden. Viele Desktop-Anwender prüfen daher sehr genau, ob sich der Aufwand der Automatisierung über die Zeit rechnet. Für einmalige Analysen kommt der Anwender auch ohne automatisierte Modelle aus.

Geoprocessing mit Python

Eine leistungsfähige Alternative zur Desktop-Umgebung und zu ModelBuilder ist die skriptbasierte Geoverarbeitung. Hat man die Qualitäten von ModelBuilder einmal schätzen gelernt, ist der Sprung zur vollständigen skriptbasierten Automatisierung des Arbeitsablaufs gar nicht mehr so weit. Sowohl Fallunterscheidungen als auch Schleifen können hier  ohne Probleme gemeistert werden.

Python ist eine modular aufgebaute Interpretersprache, kann zur objektorientierten Softwareentwicklung eingesetzt werden und ist in die ArcGIS Plattform voll integriert. Das Modul arcpy ist die Python- Schnittstelle zur ArcGIS Technologie, um alle Werkzeuge der ArcGIS Toolbox auch außerhalb von ArcMap/ArcGISPro in einem Script nutzen zu können.

Für Python gibt es vielfältige Entwicklungsumgebungen, die aber auf viele Anwender eher abschreckend wirken.  Mache stellen zu viel Funktionalität zur Verfügung, die auch der geschulte GIS-Anwender nicht immer benötigt.

Jupyter Notebook

Eine Arbeitsumgebung im Notebook-Stil ist für manchen Anwender vielleicht zugänglicher als Eclipse, PyCharm oder PyScripter. Jupyter Notebook ist eine immer beliebter werdende Web-Applikation, um Dokumente mit Live-Quellcode, Formeln, Tabellen, Graphiken und erklärendem Text zu erstellen.

Das Nutzungsspektrum umfasst numerische Simulationen, Signalverarbeitung, statistische Modellierung, Machine Learning, Bildverarbeitung und vieles mehr. Jupyter unterstützt derzeit über 40 Programmiersprachen, darunter auch Python und R. Hinweise zur Konfiguration von Jupyter und arcpy kann man hier finden.

Die Kombination von Jupyter und arcpy erlaubt eine elegante und effiziente Arbeitsweise sowie eine vollständige Dokumentation während des Analyseprozesses. Diagramme, Plots, Bilder, Videos, Links und Formeln können gleich an Ort und Stelle mit eingebunden werden und nehmen der Dokumentation einer GIS- Analyse den Schrecken. Sie entsteht einfach nebenbei.

Die Notebooks lassen sich ins pdf-Format exportieren oder können online veröffentlicht werden.

Jupyter Notebook an der Hochschule

Für den konkreten Einsatz in der Lehre an Hochschulen eignet sich Jupyter besonders gut. Die Studenten berichten über so gut wie keine Probleme bei der Installation. Lehrveranstaltungen, in denen Jupyter an der Beuth-Hochschule genutzt wird, sind z.B. Digitale Photogrammetrie und Bildverarbeitung, Analyse von Fernerkundungsdaten, Mathematische Geodäsie, Statistik, Rasterdatenverarbeitung im GIS und viele mehr.

Die neue ArcGIS Python API zum Scripting von WebGIS Applikationen und zur Administration von ArcGIS Online nutzt Jupyter als Grundbaustein und kann ebenfalls über Anaconda installiert werden. Browser-basierte Werkzeuge wie ArcGIS Online und Arbeitsumgebungen wie Jupyter werden zunehmend Einfluss auf die Arbeitsweisen in der GIS-Welt haben. Den konkreten Nutzen für die eigenen Arbeitsgewohnheiten muss jeder für sich selbst herausfinden.

Andreas Richter (Kontakt: andreas.richter@beuth-hochschule.de)