Interaktion von AutoCAD und ArcGIS über Plugin

Letzte Woche gab es bei einem weiteren Live Training Seminar von ESRI wieder einmal eine Neuerung aus dem Hause ESRI zu bestaunen: das neue Plugin ArcGIS for AutoCAD. Bevor ich das Seminar sah, konnte ich mir nicht so richtig etwas darunter vorstellen, aber dann war ich ziemlich überrascht. Es handelt sich – sehr ungewöhnlich – um ein Plugin von ESRI für AutoCAD! Man erhält dadurch ArcGIS-Technologie in AutoCAD. Und das Erstaunlichste ist, dass das Plugin kostenlos ist.

Was kann man mit dem Plugin nun machen? Aus meiner Sicht sind die wesentlichen Pluspunkte die Folgenden:

  1. Hinzufügen von WMS-Diensten in AutoCAD
  2. Editierung von Daten in einer ArcSDE ohne ArcGIS Desktop
  3. Verbesserte Vorbereitung der CAD-Datenstrukturen für die Verarbeitung in ArcGIS

Die Leistungen des Plugins im Detail:

Zu 1.: Gerade für den Bereich der Hintergrundvisualisierung fehlen häufig geeignete Daten. Durch die Möglichkeit, WMS-Dienste einzubinden, erschließen sich weitreichende Anwendungsfelder.

Zu 2.: Leider können lokal gespeicherte Daten nicht editiert werden, weder Shapefiles noch File oder Personal Geodatabases. Nun, das ist verständlich, schließlich soll das Plugin kein Ersatz für eine vollwertige ArcGIS Lizenz sein. Die Editierung ist beschränkt auf die Features von WFS-Diensten. Dazu werden die Features zunächst auf den lokalen PC übertragen, dort editiert und dann wieder an den WFS-Server zurück geschickt. Als WFS-Server kommt natürlich ArcGIS for Server in Betracht, der die Daten aus einer ArcSDE bereitstellen kann. Aber auch die bekannten Vertreter der Open Source Community wie bspw. GeoServer sind geeignet.

Zu 3.: Das ist wirklich sehr schick: Man kann nun über das Plugin schon auf Ebene des dwg’s über die Definition von Filtern und Abfragen Featureklassen definieren, die dann als solche in ArcGIS erkannt werden. Dadurch müssen sie nicht mehr mühselig über select-by-attribute in ArcGIS voneinander separiert werden. Die bisherigen Standard-CAD-Featureklassen wie z.B. Polyline umfassen weiterhin alle Features, die über das Plugin definierten Klassen werden aber zusätzlich angezeigt. Die Filter können individuell über Layer, LineType etc. erstellt werden.

Wem diese kurze Zusammenfassung nicht ausreicht, der sollte in nächster Zeit nach der Aufzeichnung des Seminars Ausschau halten.

 

Datenmodellierung von Geodatabases mit ArcGIS Diagrammer

Für den Entwurf und Pflege der Datenmodelle von ArcGIS-Geodatenbanken ist das Werkzeug ArcGIS Diagrammer absolut zu empfehlen.  Es handelt sich dabei um ein kostenloses Zusatz-Programm, das nicht im Standardumfang von ArcGIS Desktop enthalten ist, und auf der ESRI-Webseite als Download zur Verfügung steht.

Wozu braucht man solch ein Werkzeug?

Das Problem mit fast allen Datenbanken ist, dass nach Anlage der Tabellenstruktur (das sog. Schema) nur noch neue Felder hinzugefügt oder bestehende gelöscht werden können. Ein Feld umbenennen, das Datenformat ändern, die Länge der zu speichernden Texte oder die Genauigkeit ändern, ist nicht möglich. Oftmals wird eine andere Reihenfolge gewünscht, auch das ist leider nicht möglich.

Was bietet der ArcGIS Diagrammer?

Der Diagrammer bietet eine grafische Oberfläche, bei der die einzelnen Elemente der Geodatabase (Featureklassen, FeatureDatasets, Tabellen etc.) mit all ihren Eigenschaften als Grafik dargestellt werden. Dadurch kann auch Nicht-Datenbankadministratoren auf einfache Art erläutert werden, wie die Struktur der Datenbank ist.

Mit dem Tool lassen sich Datenmodelle von Grund auf neu aufbauen oder aus bestehenden Datenbanken ableiten und anpassen. Durch einfaches Drag & Drop lassen sich bspw. neue Featureklassen im Schema erzeugen. Die Eigenschaften der vorhandenen Elemente in der Geodatabase lassen sich hier ebenso fast beliebig ändern.

Im Folgenden ist kurz der Arbeitsfluss für die Änderung des Datenmodells einer bestehenden Geodatabase beschrieben:

  1. Export eines XML-Workspace-Dokumentes aus einer bestehenden Geodatabase (mind. ArcEditor-Lizenz benötigt)
  2. Starten des ArcGIS Diagrammer und Import des XML-Dokumentes
  3. Durchführung der Änderungen am Datenmodell
  4. Veröffentlichen des geänderten Datenmodells als neue XML-Datei
  5. Erzeugung einer neuen leeren Geodatabase
  6. Import des veröffentlichten XML-Dokumentes in die neue Datenbank
  7. Migration der eigentlichen GIS-Daten in die neue Struktur, z.B. mit dem Geoverarbeitungswerkzeug „Anhängen“

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.