Maximum-Likelihood-Klassifizierung (Spatial Analyst)
Zusammenfassung
Führt eine Maximum-Likelihood-Klassifizierung für eine Menge von Raster-Bändern aus und erstellt ein klassifiziertes Raster als Ausgabe.
Weitere Informationen über die Funktionsweise von "Maximum-Likelihood-Klassifizierung"
Verwendung
-
Alle mit den Werkzeugen Signaturen erstellen, Signaturen bearbeiten oder Iso-Cluster erstellten Signaturdateien sind gültige Eingaben für die Eingabe-Signaturdatei. Diese haben die Erweiterung .gsg.
-
Standardmäßig werden alle Zellen im Ausgabe-Raster klassifiziert. Dabei wird bei jeder Klasse die gleiche Wahrscheinlichkeitsgewichtung an die Signatur angehängt.
-
Die Eingabe-A-Priori-Wahrscheinlichkeitsdatei muss eine ASCII-Datei sein, die aus zwei Spalten besteht. Die Werte in der linken Spalte stellen Klassen-IDs dar. Die Werte in der rechten Spalte stellen die A-Priori-Wahrscheinlichkeiten für die jeweiligen Klassen dar. Gültige Werte für Klassen-A-Priori-Wahrscheinlichkeiten müssen größer oder gleich 0 sein. Wenn eine Wahrscheinlichkeit von 0 angegeben wird, wird die Klasse auf dem Ausgabe-Raster nicht angezeigt. Die Summe der angegebenen A-Priori-Wahrscheinlichkeiten muss kleiner oder gleich 1 sein. Das Format der Datei lautet wie folgt:
1 .3 2 .1 4 .0 5 .15 7 .05 8 .2
Die in der Datei weggelassenen Klassen erhalten die durchschnittliche A-Priori-Wahrscheinlichkeit des verbleibenden Teiles des Wertes 1. Im obigen Beispiel werden alle Klassen von 1 bis 8 in der Signaturdatei dargestellt. Die A-Priori-Wahrscheinlichkeiten der Klassen 3 und 6 fehlen in der Eingabe-A-Priori-Wahrscheinlichkeitsdatei. Da die Summe aller Wahrscheinlichkeiten, die in der oben erwähnten Datei angegeben wurden, gleich 0,8 ist, wird der verbleibende Teil der Wahrscheinlichkeit (0,2) durch die Anzahl der nicht angegebenen Klassen (2) dividiert. Daher wird den Klassen 3 und 6 jeweils eine Wahrscheinlichkeit von 0,1 zugewiesen.
-
Eine angegebene Ausschlussfraktion, die zwischen zwei beliebigen gültigen Werten liegt, wird dem nächsthöheren gültigen Wert zugewiesen. Beispielsweise wird 0,02 zu 0,025.
-
Es gibt eine direkte Beziehung zwischen der Anzahl der nicht klassifizierten Zellen im Ausgabe-Raster, die sich aus der Ausschlussfraktion ergibt, und der Anzahl der Zellen, die durch die Summe der Konfidenzniveaus dargestellt werden, die kleiner sind als der betreffende für die Ausschlussfraktion eingegebene Wert.
-
Wenn die Eingabe ein Layer ist, der aus einem Multiband-Raster mit mehr als drei Bändern erstellt wurde, berücksichtigt der Vorgang alle mit dem Quellen-Dataset verknüpften Bänder und nicht nur die drei vom Layer geladenen (symbolisierten) Bänder.
Sie haben verschiedene Möglichkeiten, eine Teilmenge von Bändern eines Multiband-Rasters als Eingabe für das Werkzeug festzulegen.
- Wechseln Sie bei Verwendung des Werkzeugdialogfeldes in das Multiband-Raster, indem Sie die Schaltfläche "Durchsuchen" neben dem Eintrag Eingabe-Raster-Bänder verwenden. Öffnen Sie das Raster, und wählen Sie die gewünschten Bänder aus.
- Wenn es sich bei dem Multiband-Raster um einen Layer im Inhaltsverzeichnis handelt, können Sie mit dem Werkzeug Raster-Layer erstellen einen neuen Multiband-Layer erstellen, der nur die gewünschten Bänder enthält.
- Sie können auch mithilfe der Option Bänder zusammensetzen ein neues Dataset erstellen, das nur die gewünschten Bänder enthält, und dieses als Eingabe für das Werkzeug verwenden.
- In Python können die gewünschten Bänder direkt als Liste im Werkzeugparameter festgelegt werden.
Ist der Klassenname in der Signaturdatei nicht mit der Klassen-ID identisch, wird der Attributtabelle des Ausgabe-Rasters ein zusätzliches Feld mit der Bezeichnung CLASSNAME hinzugefügt. Jede Klasse in der Ausgabe-Tabelle CLASSNAME enthält den mit der Klasse verknüpften Klassennamen. Wenn es sich beispielsweise bei den Namen der Klassen in der Signaturdatei um beschreibende Zeichenketten handelt (z. B. Nadelbäume, Wasser und Urbanbereich), werden diese Namen in das Feld CLASSNAME übertragen.
-
Die Erweiterung für eine Eingabe-A-Priori-Wahrscheinlichkeitsdatei lautet .txt.
Syntax
Parameter | Erläuterung | Datentyp |
in_raster_bands [in_raster_band,...] |
Die Eingabe-Raster-Bänder. | Raster Layer |
in_signature_file |
Die Eingabe-Signaturdatei, deren Klassensignaturen vom Maximum-Likelihood-Klassifikator verwendet werden. Die Erweiterung .gsg ist erforderlich. | File |
reject_fraction (optional) |
Anteil der Zellen, die aufgrund der niedrigsten Wahrscheinlichkeit richtiger Zuweisungen nicht klassifiziert werden. Der Standardwert beträgt 0,0; daher wird jede Zelle klassifiziert. Folgende 14 Einträge sind gültig: 0,0, 0,005; 0,01; 0,025; 0,05; 0,1; 0,25; 0,5; 0,75; 0,9; 0,95; 0,975; 0,99 und 0,995. | String |
a_priori_probabilities (optional) | Gibt an, wie A-Priori-Wahrscheinlichkeiten bestimmt werden.
| String |
in_a_priori_file (optional) | Eine Textdatei, die A-Priori-Wahrscheinlichkeiten für die Eingabe-Signaturklassen enthält. Eine Eingabe für die A-Priori-Wahrscheinlichkeitsdatei ist nur erforderlich, wenn die Option "FILE" verwendet wird. Die Erweiterung für die A-Priori-Datei kann .txt oder .asc lauten. | File |
out_confidence_raster (optional) |
Dataset für das Ausgabe-Konfidenz-Raster, das die Sicherheit der Klassifizierung in 14 Konfidenzniveaus anzeigt, wobei die niedrigsten Werte die höchste Zuverlässigkeit darstellen. | Raster Dataset |
Rückgabewert
Name | Erläuterung | Datentyp |
out_classified_raster |
Das klassifizierte Ausgabe-Raster. | Raster |
Codebeispiel
In diesem Beispiel wird ein klassifiziertes Ausgabe-Raster mit fünf Klassen erstellt, die aus einer Eingabe-Signaturdatei und einem Multiband-Raster abgeleitet wurden.
import arcpy from arcpy import env from arcpy.sa import * env.workspace = "C:/sapyexamples/data" mlcOut = MLClassify("redlands", "c:/sapyexamples/data/wedit5.gsg", "0.0", "EQUAL", "", "c:/sapyexamples/output/redmlcconf") mlcOut.save("c:/sapyexamples/output/redmlc")
In diesem Beispiel wird ein klassifiziertes Ausgabe-Raster mit fünf Klassen erstellt, die aus einer Eingabe-Signaturdatei und einem Multiband-Raster abgeleitet wurden.
# Name: MLClassify_Ex_02.py # Description: Performs a maximum likelihood classification on a set of # raster bands. # Requirements: Spatial Analyst Extension # Import system modules import arcpy from arcpy import env from arcpy.sa import * # Set environment settings env.workspace = "C:/sapyexamples/data" # Set local variables inRaster = "redlands" sigFile = "c:/sapyexamples/data/wedit5.gsg" probThreshold = "0.0" aPrioriWeight = "EQUAL" aPrioriFile = "" outConfidence = "c:/sapyexamples/output/redconfmlc" # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute mlcOut = MLClassify(inRaster, sigFile, probThreshold, aPrioriWeight, aPrioriFile, outConfidence) # Save the output mlcOut.save("c:/sapyexamples/output/redmlc02")