Python ist die Skriptsprache für ArcGIS. Bislang stand beim Zusammenspiel zwischen Python und ArcGIS das Skripting für ArcGIS Desktop mit dem Site-Package ArcPy im Vordergrund. Python galt dabei häufig als Skript-Alternative zur grafischen Oberfläche von ModelBuilder.
Über den Einsatz von ArcPy in der Lehre hat auf GIS IQ im Januar Andreas Richter von der Beuth Hochschule in einem Blogpost berichtet. Heute möchte ich vorstellen, wie man mit Python in der ArcGIS Plattform neuerdings auch das Web-GIS skripten kann.
Mit der ArcGIS API for Python das Web-GIS skripten
Eine der wichtigsten Neuerungen der ArcGIS Plattform in diesem Jahr betrifft die ArcGIS API for Python. Im Gegensatz zu ArcPy für Desktop-GIS geht es bei der ArcGIS API for Python darum, ein Web-GIS zu skripten. In der Terminologie der ArcGIS Plattform bedeutet Web-GIS entweder ArcGIS Online oder ArcGIS Enterprise mit Portal for ArcGIS.
In den letzten Monaten sind umfangreiche Ressourcen entstanden, die den Einstieg in die ArcGIS API for Python erleichtern. Diese Ressourcen richten sich an verschiedene Zielgruppen: Entwickler, Administratoren einer ArcGIS Online Subskription, GIS-Analysten und Data Scientists, sowie Nutzer, die Content veröffentlichen wollen. Für diese unterschiedlichen Zielgruppen gibt es frei verfügbare Sample Notebooks für den Webbrowser.
Wie funktioniert ein Notebook?
Schauen wir uns mal unter den Notebooks für GIS Analysts and Data Scientists das Notebook Chennai Floods Analysis näher an. Wir erhalten lauffähigen Python-Code, den wir im Webbrowser editieren und ausführen könnten.
Dahinter steckt die Technologie von Jupyter Notebooks, die sich in den letzten Jahren als grafische Benutzeroberfläche immer größerer Beliebtheit erfreut – nicht nur für Python, sondern z.B. auch für R, Haskell, Julia und Spark. Dank Jupyter Notebooks ist der Einstieg in Skriptsprachen wie Python allgemein deutlich vereinfacht worden.
Im Beispiel zur Flut in Chennai wird zunächst in [2] das Modul arcgis.gis zum Skripten des Web-GIS geladen. In [3] wird das GIS definiert – in diesem Fall ist es www.arcgis.com, also ArcGIS Online; und durch Übergabe von Benutzername und Passwort erfolgt hier ein Login. In [4] wird eine interaktive Webkarte geladen, die auf Chennai zentriert ist und Zoomstufe 8 hat. Der Benutzer kann hier auch andere Parameter definieren und live im Browser ausführen, ohne dass dafür irgendeine Software installiert werden muss – ähnlich wie in der ArcGIS API for JavaScript Sandbox.
Es lohnt sich, das Beispiel weiter durchzuklicken: Mithilfe der Python-API werden anhand von ArcGIS Online Webdiensten Regenfälle interpoliert (siehe unten), Puffer um Flussläufe gebildet, Routen berechnet … das, was vorher nur über die grafische Benutzeroberfläche mit Klicks in ArcGIS Online möglich war. Das Schöne ist, dass man sofort das Ergebnis unter dem Code im Webbrowser erhält.
Ausblick
Die ArcGIS API for Python ist dafür da, Arbeitsabläufe im Web-GIS zu skripten. Das ist für verschiedene Zielgruppen interessant – nicht nur für GIS-Nutzer, sondern auch für Administratoren: Die Benutzerverwaltung lässt sich mit der API deutlich vereinfachen, da wichtige Funktionen von PortalPy integriert worden sind.
Auf notebooks.esri.com gibt es zahlreiche Beispiel-Notebooks (.ipynb-Dateien), die sofort lauffähig sind, editiert und heruntergeladen werden können. Somit ist ein einfacher Einstieg in Python im Webbrowser mit frei verfügbarem Quellcode gewährleistet.
ArcPy wird durch die ArcGIS API for Python nicht obsolet – ArcPy bleibt das Site-Package für das Skripting von ArcGIS Desktop (mit ArcMap und ArcGIS Pro), während sich die Python-API an Anwender von ArcGIS Online und Portal for ArcGIS richtet.
Schaut euch hierzu auch die Videoaufzeichung zum Webinar unseres Entwickler-Teams an !
Jan Wilkening
Solution Engineer Education and Research