Mit der Spatial Analyst-Lizenz verfügbar.
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 Neuzuordnungs-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:
- Klassen bieten Hilfe und automatische Vervollständigung für die verschiedenen Argumente der Parameter.
- Sie können die einzelnen Argumente für die Parameter aus dem resultierenden Objekt abfragen.
- Sie können problemlos einzelne Argumente der Klasse zur weiteren Analyse ändern.
Weitere Informationen zum Verwenden von Spatial Analyst-Klassen in Map Algebra finden Sie unter:
- Erstellen von Klassen
- Anfragen von Klassen
- Ändern von Argumenten in Klassen
- Verwendung von Klassen in Python
Im Folgenden sind Beispiele für Anwendungen aufgeführt, die einfach mit Klassen implementiert werden können:
- Legen Sie den Class-Typ oder einen einzelnen Argumentwert fest:
So kann beispielsweise mit der Anfrage des Eingabe-Radiustyps und der Suchentfernung festgelegt werden, welche Stromleistung in einer IDW (Inverse Distance Weighted)-Interpolation angewendet werden muss.
- Input value raster
Sie können beispielsweise einen Eingabe-Reklassifizierungswert in einem Eignungsmodell basierend auf einer öffentlichen Eingabe in einem Forum ändern, um die Auswirkung verschiedener Szenarien auf die Ausgabe ohne Neuerstellung der Neuzuordnungs-Tabelle zu ermitteln.
- So führen Sie Empfindlichkeitsanalysen durch:
Sie können beispielsweise die Werte Bis und Von in einer Neuzuordnungs-Tabelle für ein Eignungsmodell in 5-Prozent-Schritten iterativ ändern, um zu ermitteln, wie sich geringfügige Änderungen eines Eingabekriteriums auf die Ausgabe auswirken.
- So führen Sie Fehleranalysen durch:
Sie können beispielsweise ein Modell mehrfach ausführen, und dabei nach dem Zufallsprinzip Argumente für die Parameter ändern, um die mögliche Auswirkung des Fehlers und von Unsicherheiten in den Daten zu ermitteln.
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 Neuzuordnungs-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:
- Skalare
- Strings
- Python-Liste oder Liste mit Listen
- Andere Klassen
Für die Lesbarkeit wird empfohlen, dass für die Klasse eine Variable angegeben und die Variable im Werkzeug verwendet wird. 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:
- Fuzzy-Klassen
(FuzzyGaussian, FuzzyLarge, FuzzyLinear, FuzzyMSLarge, FuzzyMSSmall, FuzzyNear, FuzzySmall)
- Horizontale Faktor-Klassen
- KrigingModel-Klassen
- Neighborhood-Klassen
(NbrAnnulus, NbrCircle, NbrIrregular, NbrRectangle, NbrWedge, NbrWeight)
- Radius-Klassen
- Time-Klassen
(TimeWithinDay, TimeSpecialDays, TimeMultipleDays, TimeWholeYear)
- Transformationsfunktionsklassen
(TfExponential, TfGaussian, TfLarge, TfLinear, TfLogarithm, TfLogisticDecay, TfLogisticGrowth, TfMSLarge, TfMSSmall, TfNear, TfPower, TfSmall, TfSymmetricLinear)
- Vertikaler Faktor-Klassen
(VfBinary, VfLinear, VfSymLinear, , VfInverseLinear, VfSymInverseLinear, VfCos, VfSec, VfCosSec, VfSecCos, VfTable)
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:
- Reklassifizierungstabellen (RemapRange, RemapValue)
- Gewichtete Reklassifizierungstabellen (Überlagerung und Summe) (WOTable, WSTable)
- Topo-Klassen (eine Teilmenge) (TopoContour, TopoPointElevation, TopoSink)
Für die Neuzuordnungs-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.