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“

Vorteile des ArcGIS Geodatabase-Formates

Vielen ArcGIS Einsteigern oder Umsteigern sind die Vorteile des ArcGIS-eigenen Geodatabase-Formates nicht ersichtlich. Deshalb hier meine Top 5 der Geodatabase-Vorteile:

5. Skalierbarkeit

Bei kleinen Projekten, bei denen sowohl Menge als auch Komplexität der Daten nicht besonders groß ist, können ohne Probleme die „kleinsten“ Ausbaustufen der Geodatabase verwendet werden. Sollten die Projekte irgendwann wachsen, so kann mühelos auf eine größere Geodatabase-Variante umgestellt werden. Die Daten werden dann einfach im Katalog mittels „copy & paste“ von der einen in die andere Datenbank kopiert.

4. Speicherung von Beschriftungen

Im ArcView 3.x konnten Beschriftungen und Texte nur über über Avenue-Makros in externen (Text-) Dateien gespeichert werden. In der Geodatabase können Sie automatisch oder manuell erstellte Betextungen in einer Geodatabase als sog. Annotation-Feature-Class speichern. Dann können Sie diese als normalen Layer jedem Kartendokument in ArcMap hinzufügen und wieder verwenden.

3. Rasterkataloge und Mosaic Datasets

Haben Sie Ihre Rasterdaten über die gesamte Festplatte verteilt, brauchen Sie nicht jedes einzelne Rasterbild suchen und in ArcMap als einzelnen Layer laden. Vielmehr können Sie einen Rasterkatalog oder ein Mosaic Dataset erstellen, der bzw. das auf die einzelnen Bilddateien verweist und es dadurch erlaubt, alle Bilddateien auf einmal zu laden und als einen Layer zu behandeln.

2. Validierung von Attributen und Geometrien

Durch die Verwendung von Subtypes und Attributdomänen kann eine höhere Qualität der Attribute von GIS-Daten gesichert werden. Durch die Vorgabe von Wertelisten oder Bereichen gehören Fehlerquellen wie Zahlen- und Buchstabendrehern der Vergangenheit an.
Die Verwendung von topologischen Regeln zielt auf die Qualitätssicherung der Geometrien. Nur die Geodatabase erlaubt es, ein flexibles Regelwerk für die Lage von GIS-Objekten zueinander zu modellieren.

1. Automatische Aktualisierung von Standardfeldern wie Shape_Area und Shape_Length

Im Geodatabase-Format gibt es die Standardfelder Shape_Area bzw. Shape_Length, die immer aktuelle Werte für jedes Objekt anzeigen. Das bedeutet, dass sowohl bei manuellen Editierungen als auch bei Verschneidungsoperationen, bei denen die Flächengröße bzw. Linienlänge geändert wird, die jeweiligen Felder aktualisiert werden.
Für Shapefiles muss man leider solche Felder über die Funktion „Werte berechnen“ oder „Geometrie berechnen“ jedes mal per Hand aktualisieren.

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.