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:
- Öffnen Sie das Kartendokument unter C:\GIS\TownCenter_2009.mxd.
- Suchen Sie nach allen Layout-Textelementen mit dem Text GIS Services Division 2009, und ändern Sie diesen in GIS Services Division 2010.
- 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:
- Erstellen Sie eine Liste mit Karten, deren Layer auf eine bestimmte Datenquelle verweisen.
- Aktualisieren oder reparieren Sie die Datenquellenverknüpfungen für alle Layer in einem Kartendokument.
- Erstellen Sie einen Bericht mit Informationen, die in Dokumenten enthalten sind, z. B. Layer, Datenquellen und Layer-Typ.
- Speichern Sie eine Gruppe von Kartendokumenten unter einer älteren ArcGIS-Version, um die Verteilung an andere Benutzer zu ermöglichen.
- Öffnen und analysieren Sie den Inhalt von Kartendokumenten, und aktualisieren Sie die Dokumentmetadaten (z. B. Schlüsselwörter, Zusammenfassung) basierend auf der Inhaltsanalyse. Die Kartendokument-Metadaten können dann im ArcGIS-Suchdienstprogramm und unter ArcGIS.com ermittelt und indiziert werden.
- Erstellen Sie geographische Daten per Stapelverarbeitung, indem Sie Befehle zum Exportieren von Karten verwenden, z. B. eine Reihe von GeoTIFF-Bildern, die auf einer Liste mit Features der Karte basieren.
- Erstellen Sie verschiedene PDF-Kartensammlungen:
- Eine thematische Kartensammlung mit Titelseite, mehreren Kartenseiten und einer beliebigen Anzahl von weiteren Seiten mit zusätzlichen Informationen wie tabellarischen Berichten und Kontaktlisten
- Eine Referenzkartensammlung, die auf einer Kartenserie basiert
Weitere Informationen finden Sie im Thema Erstellen von Kartensammlungen mit ArcGIS.
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:
- Ein Exportskript für Kartensammlungen kann auch als Skriptwerkzeug eingesetzt werden. Sie können das Skript so schreiben, dass über Eingaben die einzubeziehenden Kartendokumente und ein Speicherort für den Export der Ausgabedatei definiert werden. Die Toolbox-Benutzeroberfläche eignet sich gut zum interaktiven Definieren der Eingaben.
- Ein Skript, das jeden Morgen zu einem festgelegten Zeitpunkt eine Karte druckt, ist ein gutes Beispiel für die Ausführung als geplanter Task in Windows.
- Ein Skript, das defekte Datenquellenverknüpfungen auflistet, kann z. B. über das Python-Fenster von ArcMap ausgeführt werden. Darin können Sie gedruckte Meldungen von einem Skript auf einfache Weise anzeigen und eine Entscheidung zum nächsten geeigneten Schritt treffen.
Vollständige Listen von arcpy.mapping-Klassen und -Funktionen finden Sie in den folgenden Abschnitten: