Lineare spektrale Entmischung (Spatial Analyst)

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.

Abbildung des Werkzeugs "Lineare spektrale Entmischung"

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 Tool 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,
      "NumberOfEndmembers" : 3,
      "NumberOfBands" : 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 im 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.

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Raster

Das Eingabe-Raster-Dataset.

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; File; Image Service
Eingabe-Trainings-Features oder -Spektralprofil

Spektralinformationen der verschiedenen Landbedeckungsklassen.

Diese Eingabe kann als Polygon-Features, als Trainingsgebiet-Feature-Class, die im Bereich Trainingsgebiet-Manager erstellt wurde, 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
Ausgabewert-Option
(optional)

Gibt an, wie die Ausgabepixelwerte definiert werden.

  • Summenwert 1Die Klassenwerte für die einzelnen Pixel werden im Dezimalformat ausgegeben, wobei die Summe aller Klassen 1 ergibt. Beispiel: Klasse 1 = 0,16; Klasse 2 = 0,24; Klasse 3 = 0,60.
  • Nicht negativEs gibt keine negativen Ausgabewerte.
String

Rückgabewert

BeschriftungErläuterungDatentyp
Ausgabe-Raster

Das Ausgabe-Multiband-Raster-Dataset.

Raster

LinearSpectralUnmixing(in_raster, in_spectral_profile_file, {value_option})
NameErläuterungDatentyp
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.

Diese Eingabe 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.

  • SUM_TO_ONEDie Klassenwerte für die einzelnen Pixel werden im Dezimalformat ausgegeben, wobei die Summe aller Klassen 1 ergibt. Beispiel: Klasse 1 = 0,16; Klasse 2 = 0,24; Klasse 3 = 0,60.
  • NON_NEGATIVEEs gibt keine negativen Ausgabewerte.
String

Rückgabewert

NameErläuterungDatentyp
out_raster

Das Ausgabe-Multiband-Raster-Dataset.

Raster

Codebeispiel

LinearSpectralUnmixing: Beispiel 1 (Python-Fenster)

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.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("SpatialAnalyst")

# 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")
LinearSpectralUnmixing – Beispiel 2 (eigenständiges Skript)

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.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("SpatialAnalyst")

# 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")
LinearSpectralUnmixing – Beispiel 3 (eigenständiges Skript)

In diesem Beispiel wird der Anteil der Klassen aus einer Trainingsgebiet-Feature-Class (.ecd) berechnet, und es wird ein Multiband-Raster generiert.

# Import system modules
import arcpy
from arcpy.sa import *

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("SpatialAnalyst")

# 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")

Lizenzinformationen

  • Basic: Erfordert Spatial Analyst oder Image Analyst
  • Standard: Erfordert Spatial Analyst oder Image Analyst
  • Advanced: Erfordert Spatial Analyst oder Image Analyst

Verwandte Themen