Mit der Image Analyst-Lizenz verfügbar.
Mit der Spatial Analyst-Lizenz verfügbar.
Mit Map Algebra können Sie mithilfe von Algebra auf Operatoren, Funktionen und Klassen zugreifen. In seiner einfachsten Form wird ein Ausgabe-Raster links von einem Gleichheitszeichen (=) angegeben und die Werkzeuge, Operatoren und ihre Parameter rechts davon. Beispiel:
from arcpy.ia import *
elevationPlus100 = Plus("inelevation", 100)
Die obige Anweisung fügt einem Höhen-Dataset 100 Einheiten hinzu und erstellt zur Speicherung der Ergebnisse ein Raster-Objekt namens elevationPlus100.
Mit Map Algebra können einfache Anweisungen ausgeführt werden, die Leistungsfähigkeit der Sprache wird jedoch beim Erstellen komplexer Anweisungen und Modelle deutlich. Da Map Algebra in Python integriert worden ist, stehen alle Funktionen von Python und ArcPy und ihren Erweiterungen (Module, Klassen, Funktionen und Eigenschaften) zur Verfügung.
Es ist ganz einfach, mit Map Algebra schnell effizient zu arbeiten, und mit zunehmenden Anforderungen können Sie viele Aspekte der Sprache erkunden. Der folgende kurze Überblick veranschaulicht die wesentlichen ersten Schritte.
Die Grundlagen des Ausführens von Map Algebra
Es gibt drei Verwendungsmöglichkeiten für Map Algebra:
- Das Werkzeug Raster berechnen
- Das Python-Fenster
- Ihre bevorzugte IDE (Integrated Development Environment, integrierte Entwicklungsumgebung) für Python
Raster berechnen
Mit dem Werkzeug Raster berechnen werden Map Algebra-Ausdrücke ausgeführt. Das Werkzeug verfügt über eine benutzerfreundliche Benutzeroberfläche für die Berechnung, auf der die meisten Map Algebra-Anweisungen durch einfaches Klicken auf Schaltflächen erstellt werden können. Raster berechnen kann als eigenständiges Werkzeug verwendet werden, es kann jedoch auch in ModelBuilder verwendet werden. Infolgedessen kann die Leistungsfähigkeit von Map Algebra in ModelBuilder integriert werden.
Im obigen Ausdruck werden drei Raster kombiniert, indem das zweite mit dem dritten Raster multipliziert und deren Ergebnis zum ersten Raster addiert wird. Beachten Sie, dass Operatoren eine festgelegte Rangordnung aufweisen.
Das Werkzeug Raster berechnen ist nicht dazu vorgesehen, andere Image Analyst- oder Spatial Analyst-Werkzeuge zu ersetzen. Verwenden Sie die anderen Werkzeuge weiterhin für die entsprechenden Berechnungen. Verwenden Sie beispielsweise das Werkzeug Gewichtete Summe, um mehrere gewichtete Raster zu überlagern. Das Werkzeug Raster berechnen ist zum Ausführen einzeiliger algebraischer Anweisungen bestimmt.
Da es sich bei Raster berechnen um ein Geoverarbeitungswerkzeug handelt, kann es wie alle Werkzeuge in ModelBuilder integriert werden. Weitere Informationen finden Sie in den folgenden Themen:
Python-Fenster
Das Python-Fenster ist ein effizienter und benutzerfreundlicher Ort, um Geoverarbeitungswerkzeuge und Python-Funktionen aus ArcGIS heraus zu verwenden. Bei den über dieses Fenster ausgeführten Python-Befehlen kann es sich um einzelne Code-Zeilen oder um komplexe Codeblöcke mit Logik handeln. Das Python-Fenster bietet außerdem die Möglichkeit, durch die Verwendung von benutzerdefinierten oder externen Python-Modulen und -Bibliotheken auf zusätzliche Funktionen zuzugreifen.
Zum Starten des Python-Fensters klicken Sie auf der Registerkarte Analyse in der Gruppe Geoverarbeitung oder auf der Registerkarte Ansicht in der Gruppe Fenster auf die Schaltfläche Python .
In der Anweisungssequenz oben werden das ArcPy-Site-Paket, die Geoverarbeitungsumgebungen und die Image Analyst-Module importiert; der Workspace wird festgelegt; und das Werkzeug Raster klassifizieren wird ausgeführt. Wenn ein Zeilenumbruch am Ende einer Anweisung eingegeben wird, wird diese Anweisung sofort ausgeführt.
Zu den Features des Python-Fensters gehören integrierte automatische Vervollständigung von Zeilen, die Verwendung von Variablen sowie Zugriff auf die Funktionen von Python und ArcPy.
Integrierte Entwicklungsumgebung für Python
Obwohl die Anzahl der Anweisungen, die in das Python-Fenster in ArcGIS Pro eingegeben werden können, nicht begrenzt ist, kann das Erstellen komplexerer Modelle umständlich sein. Sie können auf die Werkzeuge, Operatoren, Funktionen und Klassen der Image Analyst-Module auch von Ihrer bevorzugten integrierten Entwicklungsumgebung, wie z. B. PythonWin, aus zugreifen. Starten Sie die bevorzugte IDE, und geben Sie die gewünschten Anweisungen ein.
Im folgenden Skript werden ArcPy, die Geoverarbeitungsumgebungen und das Image Analyst-Modul importiert; die Variablen werden festgelegt; die Erweiterung wird ausgecheckt; das Werkzeug Raster klassifizieren wird ausgeführt; und die Ausgabe wird gespeichert.
# Name: Image Classification
# Description:
# Requirements: Image Analyst Extension
# Import system modules
import arcpy
from arcpy import env
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inRaster = "Landsat8_Redlands.tif"
classification_file = "LandCover.ecd"
# Execute Classify Raster
outLandCover = ClassifyRaster(inRaster, classification_file)
# Save the output
outLandCover.save("C:/data/Landcover.tif")
Wie bei dem Python-Fenster bietet eine IDE Zugriff auf allen verfügbaren Python- und ArcPy-Funktionen.
Arbeiten mit Operatoren
Von Map Algebra wird eine Reihe von Operatoren (z. B. +, - und *) unterstützt. In Python gibt es dieselben Operatoren, für Map Algebra sind sie jedoch verändert, damit sie Raster-Objekte anders verarbeiten. Im Folgenden werden z. B. zwei Zahlen zu einer Variable addiert:
# set outVar to 14 using the Python + operator
outVar = 5 + 9
Um zu kennzeichnen, dass die Anweisung für Raster gelten soll (das heißt, dass der Map Algebra-Operator verwendet werden soll), muss das Dataset als Raster verarbeitet werden. Im folgenden Beispiel wird der Map Algebra-Operator + verwendet, um zwei Raster zu addieren:
outRas = Raster("inras1") + Raster("inras2")
Operatoren können eine Mischung aus Rastern und Zahlen verarbeiten. Im Folgenden wird z. B. zu allen Zellen im Eingabe-Raster der konstante Wert 8 addiert:
outRas = Raster("inras1") + 8
Erstellen von komplexen Ausdrücken
Werkzeuge und Operatoren können zu einer einzelnen Anweisung verknüpft werden. Im folgenden Beispiel werden in jedem Ausdruck mehrere Werkzeuge und Operatoren ausgeführt:
outRas = Slope("indem" * 2) / 57
outdist = EucDistance(ExtractByAttributes("inras", "Value > 105"))
Klammern können dazu verwendet werden, die Reihenfolge der Verarbeitung zu steuern. Betrachten Sie die folgenden beiden Beispiele, in denen dieselben Operatoren verwendet werden, die jedoch aufgrund der Verwendung von Klammern unterschiedliche Ergebnisse haben:
outRas1 = (Raster("inras1") + Raster("inras2")) / Raster("inras3")
und
outRas2 = Raster("inras1") + Raster("inras2") / Raster("inras3")
In der ersten Anweisung wird inras1 zu inras2 addiert, und das Ergebnis wird durch inras3 dividiert. Ohne die Klammern, wie bei der zweiten Anweisung, würde inras2 durch inras3 dividiert, und das Ergebnis würde zu inras1 addiert.
Vorschläge zum Ausführen von Map Algebra-Anweisungen
In allen Map Algebra-Beispielen unten wird ein Raster-Objekt ausgegeben. Das Raster-Objekt verweist auf ein temporäres Raster-Dataset, das am Ende der ArcGIS-Sitzung entfernt wird, wenn es nicht ausdrücklich gespeichert wird. Um das temporäre Dataset dauerhaft zu speichern, wird die save-Methode für das Raster-Objekt aufgerufen (weitere Informationen finden Sie in den beiden Beispielen unten).
Ein Beispiel, in dem die Workspace-Umgebung veranschaulicht wird:
import arcpy
from arcpy import env
from arcpy.ia import *
env.workspace = "C:/data"
outLandCover = ClassifyRaster("Landsat8_Redlands", "LandCover.ecd")
outLandCover.save("RedlandsLandcover")
In der Anweisung oben wird der Workspace festgelegt, daher wird RedlandsLandcover in C:/data gespeichert.
Weiterführende Informationen
Ausführliche Informationen zu ArcPy finden Sie in diesen Themen:
Weitere Informationen zur Geoverarbeitung in Python finden Sie in folgenden Themen: