Python Add-Ins in ArcGIS 10.1

Letztens habe ich mir das Live Training Seminar zur Erstellung von Python Add-Ins in ArcGIS 10.1 angeschaut und bin ziemlich begeistert. Durch die neue Integration von Python rückt die Sprache immer mehr in den Kern von ArcGIS und es eröffnen sich zahlreiche neue Möglichkeiten, um sich die tägliche Arbeit mit dem Programm zu erleichtern.

Die Palette reicht von simplen Aktionen nach Klick auf einen Button bis hin zu komplexen Erweiterungen, die bei bestimmten auftretenden Ereignissen ihre Funktionen ausführen. Andrew hat in seinem Blog eine gute kurze Übersicht dazu geschrieben.

Für die Integration wird der Add-In Wizard zur Verfügung gestellt. Dieser macht es einfach, das benötigte Add-In Projekt zu erstellen und in ArcGIS verfügbar zu machen. Der Wizard erstellt auch schon die grundsätzliche Dateistruktur für den Python Quellcode. Jetzt muss eigentlich „nur noch“ die Programmlogik geschrieben werden.

Womit ich noch nicht zufrieden bin, sind die eingeschränkten Möglichkeiten beim Debuggen der Skripte. Wenn sich ein ArcGIS-Nutzer mit wenig Python-Entwicklungserfahrung traut, ein Skript zu erstellen, wird er vermutlich ziemlich schnell auf Fehler treffen, die er nicht erklären und nachvollziehen kann. Hier kann der immer wiederkehrende Zyklus aus Fehlerbehebung im Code, Installieren und Testen in ArcMap recht schnell zu Frust führen, wenn keine aussagekräftigen Fehlermeldungen kommen. Es wird hier empfohlen, im Quellcode ab und zu print Befehle einzufügen. Dadurch werden zumindest deren Ausgaben im ArcGIS Python Fenster ausgegeben. Es ist zu hoffen, dass hier in Zukunft weitere Möglichkeiten hinzukommen.

Bei dem Training Seminar hatte ich noch die Frage gestellt, ob es in Zukunft wieder ein Objektmodell-Diagramm geben wird wie es in Version 9.3 noch zur Verfügung stand. Das wurde leider verneint und nur auf die Hilfe verwiesen. Schade, wirklich schade! Zumindest gibt es mittlerweile eine inoffizielle Version für das geoprocessing mit arcpy.

Jetzt bin ich allerdings erst einmal auf das nächste Release gespannt und freue mich auf den ersten Praxistest.

Geoverarbeitungsskripte mit Python-IDEs programmieren

Ein großer Vorteil für die Verwendung von Python-Skripten bei Geoverarbeitung oder sonstiger Datenverarbeitung ist die extrem schnelle Entwicklungszeit. Seit ArcGIS 10 gibt es auch die direkte Möglichkeit, im Python-Fenster von ArcMap die Befehle einzutippen.

Für die Entwicklung von Skripten außerhalb von ArcGIS sind allerdings Debug-Funktionen nötig. Welche kostenlosen Entwicklungsumgebungen (IDE’s) stehen uns hier zur Verfügung?

Die Standard-Entwicklungsumgebung für Python namens IDLE bietet bezogen auf Debugging nur wenige Funktionen. Ein paar mehr Funktionen bietet PythonWin, das einigen noch von ArcGIS 9.1 bekannt sein könnte, denn damals wurde es mit ArcGIS automatisch installiert.

Was gibt es an Alternativen? Da wäre zum Einen Eclipse: Python-Support kann hier über das Plugin PyDev integriert werden. Die Installation ist hier sehr gut beschrieben. Ist alles korrekt eingerichtet, stehen dann komfortable Entwicklertools zur Verfügung. Allerdings ist Eclipse eine wirklich mächtige aber auch komplexe Entwicklungsumgebung. Bei kleinen Skripten, wie sie typischerweise von Einsteigern geschrieben werden, bedeutet das einen hohen Einarbeitungsaufwand für ein paar Codezeilen. Viele GIS-Nutzer haben zudem keinerlei Programmiererfahrung mit Eclipse. Für einige wirkt die IDE deshalb eher abschreckend. Kurz: Erste Wahl für erfahrene Entwickler mit größeren Projekten, aber zu viel Overhead für den „ArcGIS-Gelegenheitsprogrammierer“.

Eine weitere Entwicklungsumgebung ist der PyScripter. Gegenüber Eclipse hat der PyScripter eine klare strukturierte, ansprechende und leicht zu erlernende / zu bedienende Oberfläche. Dadurch kann man sich sofort auf die eigentliche Skriptentwicklung fokussieren ohne sich um die Bedienung der IDE allzu große Gedanken zu machen. Er bietet eine große Auswahl an Funktionen: Syntaxanalyse, Codevervollständigung, Debugfunktionen und -Fenster sind nur einige. Für alle aktuellen Python-Versionen gibt es eine passende PyScripter-Version. Auch diese IDE ist – wie alle hier gelisteten – kostenlos.

Hauptfenster der PyScripter IDE
Fazit: Aus meiner Sicht kann ich wärmstens den PyScripter empfehlen. Ich nutze ihn seit ca. 1,5 Jahren, denn er hat alles was ein Entwickler (oder eine Entwicklerin) im GIS-Umfeld braucht.