Spatial Analyst

Klassen können zum Erstellen von Objekten verwendet werden, die häufig als Instanz bezeichnet werden. Nach deren Instanziierung des Objekts können die Eigenschaften und Methoden verwendet werden. Spatial Analyst-Klassen, wie zum Beispiel Neighborhood- oder Remap-Klassen werden häufig als Verknüpfungen zu vollständigen Geoverarbeitungswerkzeug-Parametern verwendet, die andernfalls eine kompliziertere Zeichenfolgeentsprechung hätten.

Die Erstellung und Verwaltung von Parametern über Klassen anstatt über Zeichenfolgen ist wesentlich einfacher. Mögliche Vorteile der Verwendung von Klassen für Parameter sind Folgende:

Weitere Informationen zum Verwenden von Spatial Analyst-Klassen in Map Algebra finden Sie unter:

Erstellen von KlassenAnfragen von KlassenÄndern von Argumenten in KlassenVerwendung von Klassen in Python

Im Folgenden sind Beispiele für Anwendungen aufgeführt, die einfach mit Klassen implementiert werden können:

Verwenden von Spatial Analyst-Klassen

Für einige Spatial Analyst-Geoverarbeitungswerkzeug-Parameter wird ein Klassenobjekt als Eingabe verwendet. Üblicherweise werden Parameter als einfache Zeichenfolgen, Dataset-Namen, Pfade, Schlüsselwörter, Feldnamen, Toleranzen und Domänennamen definiert. Einige Parameter sind komplexer und definieren eine Serie von Eigenschaften oder Werten. Anstatt zum Definieren dieser Parameter lange, komplizierte Textzeichenfolgen zu verwenden (wie z. B. Neighborhoods oder Remap-Tabellen), können Sie Klassen nutzen. Wenn Sie die Eingabeanforderungen für einen Klassenkonstruktor kennen, können Sie einfacher Klassenobjekte erstellen, abfragen, ändern und speichern.

Dabei handelt es sich um verschiedene Eingabetypen, die als Argumente für Spatial Analyst-Klassen verwendet werden:

Für die Lesbarkeit wird empfohlen, dass für die Klasse eine Variable angegeben und die Variable im Werkzeug verwendet wird. Zum Beispiel:

Neighborhood = NbrRectangle(5, 5, "MAP")
outRas = FocalStatistics("inRas", Neighborhood, "MEAN")

Sollten Sie das bevorzugen, kann die Klasse jedoch auch im Werkzeugparameter definiert werden.

outRas = FocalStatistics("inRas", NbrRectangle(5, 5, "MAP"), "MEAN")

Mit einer festen Anzahl von Eingaben erstellte Klassen

Einige Klassen werden mit einer festen Anzahl einfacher Maßstäbe oder Zeichenfolgenargumente konstruiert. Gehen Sie zum Beispiel zur Erstellung einer kreisförmigen Nachbarschaft mit einem Radius von fünf Karteneinheiten folgendermaßen vor:

Neighborhood = NbrCircle(5, "MAP")
outRas = FocalStatistics("inRas", Neighborhood, "MAXIMUM")

Jede dieser Klassen verfügt über eine vorab festgelegte Position für die Eingabeargumente. Diese Klassen können basierend auf dem Werkzeugparameter, den sie referenzieren, zu Gruppen zusammengefasst werden:

Mit Python-Listen erstellte Klassen

Einige Klassen sind komplexer, wie zum Beispiel TopoBoundary-, TopoLake- und TopoStream-Klassen. Diese erfordern eine Reihe von Eingaben und werden für Parameter im Topo zu Raster-Werkzeug verwendet. Die Serie der Eingaben wird in einer Python-Liste definiert, und die Anzahl der Eingaben in einer Liste ist von der Situation abhängig (anders ausgedrückt, die Anzahl der für die Analyse erforderlichen Eingaben).

So ist für die TopoBoundary-Klassenkonstruktoren beispielsweise eine Liste mit einer oder mehreren inFeature-Eingaben erforderlich. Die als inFeatures identifizierte Liste wird eine Eigenschaft des resultierenden Objekts. Zur Abfrage oder Bearbeitung von Elementen in der Liste inFeatures behandeln Sie jedes als Eingabe in der Liste (siehe Abfragen von Klassen).

inBoundary = TopoBoundary(["inBound1.shp", "inBound2.shp"])

Mit Listen innerhalb von Listen erstellte Klassen

Mit anderen Werkzeugen wird mit der spezifischen Situation festgelegt, wie viele Eingaben in einen Parameter erfolgen. Dieser Eingabeparametertyp wird aus einer mit Listen in einer Liste erstellten Klasse generiert. Es sind drei Werkzeuggruppen vorhanden, deren Klassen aus Listen in Listen erstellt werden:

Für die Remap-Klassen ist beispielsweise eine Tabelle als Eingabe erforderlich. Die Tabelle wird mit einer Liste von Datensätzen gestaltet, die die zu klassifizierenden Werte startValue, endValue und newValue festlegen. Eine Tabelle wird eine Eigenschaft des resultierenden Objekts. Behandeln Sie zur Abfrage oder Bearbeitung der Tabelleneingaben diese als Elementen in Listen innerhalb der Liste (siehe Abfragen von Klassen).

# Usage: RemapRange([[startValue, endValue, newValue],...])
myRemapRange = RemapRange([[-3, -1.75, 1], [-1.75, -0.5, 2], [-0.5, 0.75, 3], 
                           [0.75, 2, 4], [2, 3.25, 5], [3.25, 4.5, 6],
                           [4.5, 5.75, 7], [5.75, 7, 8]])
outReclassRR = Reclassify("inRas", "VALUE", myRemapRange)

Mit einer Reihe von Klassen innerhalb einer liste erstellte Klassen

Einige Werkzeuge verwenden Klassenparameter, für die eine Reihe von Klassen als Eingabe angegeben werden muss. Die Klassen sind in einer Liste zusammengestellt. Mit den Werkzeugen, die eine Reihe von Klassen in einer Liste erfordern (unter anderem Nach Punkten extrahieren und Nach Rechteck extrahieren, werden generell Daten mit einer angegebenen Geometrie extrahiert.

Verwandte Themen

9/11/2013