Mit der Image Analyst-Lizenz verfügbar.
Mit der Spatial Analyst-Lizenz verfügbar.
Zusammenfassung
Führt eine Subpixel-Klassifizierung durch und berechnet den Anteil verschiedener Landbedeckungstypen für einzelne Pixel.
Verwendung
Dieses Werkzeug berechnet den Anteil einzelner Pixel, die mehrere Arten von Landbedeckungen enthalten. Es erzeugt ein Multiband-Raster, in dem jedes Band dem Anteil der einzelnen Landbedeckungsklassen entspricht. Beispiel: Sie können mit diesem Werkzeug in einem Multispektralbild Landbedeckungen klassifizieren und Vegetation mit und ohne Photosyntheseaktiviät, nackte Erde und tote Pflanzen ermitteln.
Die Reihenfolge des Ausgabe-Multiband-Rasters entspricht der Reihenfolge des Eingabe-Spektralprofils.
Die Anzahl der Klassen darf nicht größer sein als die Anzahl an Bändern im Eingabe-Raster. Aus einem Beispiel: Einem Achtband-Raster können Sie Informationen zu maximal acht Klassen entnehmen.
Im Folgenden sehen Sie ein Beispiel für ein Spektralprofil, das in Form einer .json-Datei bereitgestellt wird:
{ "EsriEndmemberDefinitionFile" : 0, "FileVersion" : 1, "NumberEndmembers" : 3, "NumberBands" : 7, "Endmembers" : [ { "EndmemberID" : 1, "EndmemberName" : "urban", "SpectralProfile" : [ 88, 42, 48, 38, 86, 115, 59 ] }, { "EndmemberID" : 2, "EndmemberName" : "vegetation", "SpectralProfile" : [ 50, 21, 20, 35, 50, 110, 23 ] }, { "EndmemberID" : 3, "EndmemberName" : "water", "SpectralProfile" : [ 51, 20, 14, 9, 7, 116, 4 ] } ] }
Derzeit werden als Ausgabe des Klassifikators nur Klassifikatordefinitionsdateien (.ecd) unterstützt, die mit dem Werkzeug Maximum-Likelihood-Klassifikator trainieren generiert wurden.
Polygon-Features erfordern folgende Feldnamen:
- classname: Ein Textfeld, das den Namen der Klassenkategorie angibt.
- classvalue: Ein "Long Integer"-Feld, das den ganzzahligen Wert für die einzelnen Klassenkategorien enthält.
Bei der Berechnung des Anteils der Landbedeckungsklassen kann es vorkommen, dass die Lösung negative Koeffizienten oder Brüche enthält. Sehen Sie sich in diesem Fall die Trainingsgebiete in Ihrem Eingabe-Spektralprofil an, und vergewissern Sie sich, dass diese die einzelnen Klassen richtig darstellen. Wenn Sie keine Fehler finden, wählen Sie als Ausgabewert-Option die Option Nicht negativ aus.
Syntax
LinearSpectralUnmixing(in_raster, in_spectral_profile_file, {value_option})
Parameter | Erklärung | Datentyp |
in_raster | Das Eingabe-Raster-Dataset. | Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; File; Image Service |
in_spectral_profile_file | Spektralinformationen der verschiedenen Landbedeckungsklassen. Dieser kann als Polygon-Features, als Klassifikatordefinitionsdatei (.ecd), die mit dem Werkzeug Maximum-Likelihood-Klassifikator trainieren erzeugt wurde, oder als JSON-Datei (.json), die die Spektralprofile der Klasse enthält, bereitgestellt werden. | File; Feature Layer; String |
value_option [value_option,...] (optional) | Gibt an, wie die Ausgabepixelwerte definiert werden.
| String |
Rückgabewert
Name | Erklärung | Datentyp |
out_raster | Das Ausgabe-Multiband-Raster-Dataset. | Raster |
Codebeispiel
In diesem Beispiel wird der Anteil der Klassen aus einer Klassifikatordefinitionsdatei (.ecd) berechnet, und es wird ein Multiband-Raster generiert.
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Execute
unmixing_outputs = LinearSpectralUnmixing("C:/data/landsat7_image.crf",
"C:/data/train_maxi_likelihood_ecd_output.ecd", "SUM_TO_ONE;NON_NEGATIVE")
# Save output
unmixing_outputs.save("C:/data/unmixing_outputs.crf")
In diesem Beispiel wird der Anteil der Klassen aus einer Klassifikatordefinitionsdatei (.ecd) berechnet, und es wird ein Multiband-Raster generiert.
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Define input parameters
inFile = "C:/data/landsat7_image.crf"
json_file = "C:/data/customized_endmembers.json"
options = "SUM_TO_ONE"
# Execute
unmixing_outputs = LinearSpectralUnmixing(inFile, json_file, options)
# Save output
unmixing_outputs.save("C:/data/unmixing_outputs_using_json.crf")
In diesem Beispiel wird der Anteil der Klassen aus einer Trainingsgebiet-Feature-Class (.shp) berechnet, und es wird ein Multiband-Raster generiert.
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Define input parameters
inFile = "C:/data/landsat7_image.crf"
training_features = "C:/data/training_features.shp"
options = "SUM_TO_ONE;NON_NEGATIVE"
# Execute
unmixing_outputs = LinearSpectralUnmixing(inFile, training_features, options)
# Save output
unmixing_outputs.save("C:/data/unmixing_outputs_using_training_features.crf")
Umgebungen
Lizenzinformationen
- Basic: Erfordert Image Analyst oder Spatial Analyst
- Standard: Erfordert Image Analyst oder Spatial Analyst
- Advanced: Erfordert Image Analyst oder Spatial Analyst