Geoverarbeitungsskripte für Kartendokumentverwaltung und -ausgabe

Einführung in das Geoverarbeitungsmodul "arcpy.mapping"

Das Modul arcpy.mapping ist eine Python-Skriptbibliothek, die es Ihnen ermöglicht, ArcMap-Kartendokumente (.mxd) und -Layer-Dateien (.lyr) zu öffnen und zu bearbeiten. Geoverarbeitungsskripte, die arcpy.mapping verwenden, können Kartendokumente und Layer öffnen, den Inhalt abfragen und ändern und das geänderte Dokument drucken, exportieren oder speichern.

Die Funktionen in einem arcpy.mapping-Skript sind eng an die Aktionen angelehnt, die in der ArcMap-Anwendung ausgeführt werden. Sehen wir uns den folgenden einfachen ArcMap-Workflow an:

  1. Öffnen Sie das Kartendokument unter C:\GIS\TownCenter_2009.mxd.
  2. Suchen Sie nach allen Layout-Textelementen mit dem Text GIS Services Division 2009, und ändern Sie diesen in GIS Services Division 2010.
  3. Exportieren Sie das aktualisierte Karten-Layout im PDF-Format.

Ein arcpy.mapping-Skript drückt diese Schritte wie folgt aus:

Dieses einfache Skript zum Suchen und Ersetzen ändert die Zahl "2009" in "2010" und exportiert das Layout dann in eine PDF-Datei.

mxd = arcpy.mapping.MapDocument(r"C:\GIS\TownCenter_2009.mxd")
for textElement in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
  if textElement.text == "GIS Services Division 2009":
    textElement.text = "GIS Services Division 2010"
arcpy.mapping.ExportToPDF(mxd, r"C:\GIS\TownCenterUpdate_2010.pdf")
del mxd

Das Geoverarbeitungsmodul arcpy.mapping ist für Benutzer gedacht, die einen ArcMap-Workflow automatisieren möchten. Dies sieht zwar wie ein Programmierschritt aus und basiert auf der leistungsstarken Programmiersprache Python, aber Sie müssen kein GIS-Software-Entwickler sein, um arcpy.mapping-Skripte erstellen zu können. Das Ziel von arcpy.mapping besteht darin, häufig anfallende Schritte zu automatisieren, damit Sie sich auf die wichtige kreative und analytische Arbeit konzentrieren können.

Zweck von arcpy.mapping und typische Skriptszenarios

Das Modul arcpy.mapping wurde erstellt, um Workflows für die Verwaltung und Ausgabe (Drucken und Exportieren) von Karten zu automatisieren. Bei den bereitgestellten Funktionen liegt der Schwerpunkt auf dem Ändern vorhandener Karten-Layer und Layout-Elemente, und es handelt sich nicht um ein vollständiges Kartenkompilierungssystem. Die interaktive und grafische ArcMap-Umgebung ist das empfohlene System zum Erstellen neuer Kartendokumente und von Karten-Layern und -Layouts. Bei richtiger Anwendung können Sie mit den Bearbeitungsfunktionen für Layer und Layout-Elemente von arcpy.mapping Kartenprodukte auch "on-the-fly" erstellen. Das erfolgreiche Arbeiten mit diesen Workflows erfordert eine sorgfältige Kartenerstellung, um die Bestandteile vorzubereiten, die vom arcpy.mapping-Skript verwendet werden. Wenn arcpy.mapping und ArcMap also zusammen richtig eingesetzt werden, handelt es sich durchaus um ein automatisiertes Kartenproduktionssystem.

Es ist am einfachsten, die Funktionen von arcpy.mapping zu verstehen, wenn einige mögliche Szenarios beschrieben werden. Im Folgenden sind einige der vielen Szenarios aufgeführt, die für das arcpy.mapping-Skript möglich sind:

Geoverarbeitung, arcpy.mapping und das Erweitern der ArcMap-Anwendung

Das Modul arcpy.mapping ist Teil der Geoverarbeitungsumgebung. Daher kann das Skript arcpy.mapping jedes der in ArcGIS verfügbaren Geoverarbeitungswerkzeuge verwenden, und jedes mit arcpy.mapping geschriebene Skript kann in ein Geoverarbeitungsskriptwerkzeug für ArcToolbox und ModelBuilder umgewandelt werden.

Als Teil der Geoverarbeitungsumgebung ist arcpy.mapping mehr als Werkzeug für die Stapelverarbeitung gedacht, nicht so sehr als Umgebung zum Anpassen der ArcMap-Anwendung. Da Sie mit arcpy.mapping ein eigenes Verarbeitungssystem für Karten erstellen können, kann dies als Möglichkeit zum Erweitern von ArcMap um neue Werkzeuge angesehen werden. Aber die Geoverarbeitung ermöglicht keine vollständige Anpassung der ArcMap-Benutzeroberfläche, und über arcpy.mapping kann nicht auf den vollständigen Satz der ArcMap-Objekte und -Funktionen zugegriffen werden.

Das ArcObjects-SDK ermöglicht den Zugriff auf den vollständigen Satz von Objekten und Funktionen. Das ArcObjects-SDK und die Geoverarbeitung ergänzen einander und schließen sich nicht gegenseitig aus. Allgemein ausgedrückt: Durch ArcObjects wird ArcGIS um ein neues Verhalten erweitert, während mit der Geoverarbeitung Tasks automatisiert werden können. Mithilfe von ArcObjects können Sie neue Benutzeroberflächen erstellen, Feature-Classes benutzerdefinierte Verhalten hinzufügen und einen speziellen kartografischen Renderer erstellen. Die Geoverarbeitung automatisiert die Tasks innerhalb der Grenzen einer gut geführten Umgebung.

Verwenden und Bereitstellen von Skripten

Skripte, die arcpy.mapping verwenden, können genauso wie alle anderen Geoverarbeitungsskripte bereitgestellt und ausgeführt werden. Welche Ausführung des Skripts Sie auswählen, hängt davon ab, wie und wann Sie es ausführen möchten:

Vollständige Listen von arcpy.mapping-Klassen und -Funktionen finden Sie in den folgenden Abschnitten:


7/10/2012