Raster mit Spektren klassifizieren (Image Analyst)

Mit der Image Analyst-Lizenz verfügbar.

Mit der Spatial Analyst-Lizenz verfügbar.

Zusammenfassung

Klassifiziert ein Multiband-Raster-Dataset mit Spektralabgleichsverfahren. Die Eingabe-Spektraldaten können als Point-Feature-Class oder als .json-Datei bereitgestellt werden.

Verwendung

  • Wenn die .json-Eingabedatei Spektralwerte enthält, die als Prozent der Oberflächenreflexion angegeben sind, muss das Raster-Dataset mit einem sensorspezifischen Skalierungsfaktor erneut skaliert werden. Zum Beispiel können Oberflächenreflexionsprodukte, die mit Sammlung 2, Level-2 von Landsat 8 oder 9 erfasst wurden, mit dem folgenden Ausdruck auf einen Wert zwischen 0 und 1 neu skaliert werden: Raster*0.0000275+(-0.2).

  • Nach der Anwendung von Skalierungs- und Versatzfaktoren können sich insbesondere bei dunklen Features wie Wasser negative Werte ergeben. Solche negativen Pixelwerte müssen vor der Verwendung der SID-Klassifizierungsmethode zunächst maskiert werden.

  • Die Reihenfolge des klassifizierten Ausgabe-Rasters entspricht der Reihenfolge des Eingabe-Spektralprofils.

  • Im Folgenden sehen Sie ein Beispiel für ein Spektralprofil, das in Form einer .json-Datei bereitgestellt wird:

    
    {
      "EsriEndmemberDefinitionFile" : 0,
      "FileVersion" : 1,
      "NumberOfEndmembers" : 4,
      "NumberOfBands" : 7,
      "Endmembers" : [	
        {
          "EndmemberID" : 1,
          "EndmemberName" : "basalt",
          "SpectralProfile" : [
                0.076036952,
    			                       0.08137,
    			                       0.09371,
    			                       0.10768,
    			                       0.11076,
    			                       0.11424,
    			                       0.09824
              ]
        }, 
        {
          "EndmemberID" : 2,
          "EndmemberName" : "quartz",
          "SpectralProfile" : [
                              0.75812,
                              0.77608,
                              0.80143,
                              0.81418,
                              0.82648,
                              0.85234,
                              0.86170
              ]
        },
        {
          "EndmemberID" : 3,
          "EndmemberName" : "salt deposits",
          "SpectralProfile" : [
                              0.53381,
                              0.59598,
                              0.70402,
                              0.79024,
                              0.86628,
                              0.89397,
                              0.89507
              ]
        },
        {
          "EndmemberID" : 4,
          "EndmemberName" : "limestone",
          "SpectralProfile" : [
                              0.15477,
                              0.16733,
                              0.19435,
                              0.21431,
                              0.24765,
                              0.32578,
                              0.32451
              ]
        }
      ]        
    }
  • Für die Punkt-Features sind folgende Felder erforderlich:

    • 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.
  • Eine Esri Classifier Definition-Ausgabedatei (.ecd) kann als Eingabe für das Werkzeug Raster klassifizieren verwendet werden).

Parameter

BeschriftungErläuterungDatentyp
Eingabe-Raster

Das Eingabe-Multiband-Raster.

Mosaic Layer; Raster Layer; Image Service; String; Raster Dataset; Mosaic Dataset
Spektren oder Punkte

Die Spektralinformationen der verschiedenen Pixelklassen.

Die Spektralinformationen können als Punkt-Features, als Trainingsgebiet-Feature-Class, die im Bereich Trainingsgebiet-Manager generiert wurde, oder als .json-Datei, die die Spektralprofile der Klasse enthält, bereitgestellt werden.

Feature Layer; File; String
Methode

Gibt die für den spektralen Abgleich verwendete Methode an.

  • Spektralwinkel-MapperBei der Berechnung des Vektorwinkels zwischen dem Eingabemultiband-Raster und dem Referenzspektrum werden die Spektren jedes Pixels als Vektor behandelt. Die Werte der Winkel werden in Radiant angegeben.
  • Divergenz der SpektralinformationenDie Divergenz der Spektralinformationen zwischen dem Eingabemultiband-Raster und den Referenzspektren werden berechnet. Anschließend wird anhand der Divergenz zwischen den wahrscheinlichen Verteilungen der Pixel und den Referenzspektren ein Zahlenwert für jedes Pixel berechnet. Werte in Radiant.
String
Schwellenwerte
(optional)

Der Schwellenwert für den spektralen Abgleich. Pixelwerte, die diesen Wert überschreiten, werden als undefiniert klassifiziert. Hierbei kann es sich um einen einzelnen Wert handeln, der auf alle Spektralklassen angewendet wird, oder eine durch Leerzeichen getrennte Werteliste für jede Klasse.

String
Ausgabe-Punktzahl-Raster
(optional)

Ein Multiband-Raster, in dem die übereinstimmenden Ergebnisse für alle Endmitglieder gespeichert sind. Die Bandreihenfolge folgt der Reihenfolge der Klassen im Parameterwert Spektren oder Punkte. Wenn die Eingabe ein multidimensionales Raster ist, muss das Ausgabeformat CRF lauten.

Raster Dataset
Eingabe-Klassifikatordefinitions-Datei
(optional)

Die .ecd-Ausgabedatei

File

Rückgabewert

BeschriftungErläuterungDatentyp
Klassifiziertes Ausgabe-Raster

Das klassifizierte Ausgabe-Raster.

Raster

ClassifyRasterUsingSpectra(in_raster, in_spectra_file, method, {thresholds}, {out_score_raster}, {out_classifier_definition})
NameErläuterungDatentyp
in_raster

Das Eingabe-Multiband-Raster.

Mosaic Layer; Raster Layer; Image Service; String; Raster Dataset; Mosaic Dataset
in_spectra_file

Die Spektralinformationen der verschiedenen Pixelklassen.

Die Spektralinformationen können als Punkt-Features, als Trainingsgebiet-Feature-Class, die im Bereich Trainingsgebiet-Manager generiert wurde, oder als .json-Datei, die die Spektralprofile der Klasse enthält, bereitgestellt werden.

Feature Layer; File; String
method

Gibt die für den spektralen Abgleich verwendete Methode an.

  • SAMBei der Berechnung des Vektorwinkels zwischen dem Eingabemultiband-Raster und dem Referenzspektrum werden die Spektren jedes Pixels als Vektor behandelt. Die Werte der Winkel werden in Radiant angegeben.
  • SIDDie Divergenz der Spektralinformationen zwischen dem Eingabemultiband-Raster und den Referenzspektren werden berechnet. Anschließend wird anhand der Divergenz zwischen den wahrscheinlichen Verteilungen der Pixel und den Referenzspektren ein Zahlenwert für jedes Pixel berechnet. Werte in Radiant.
String
thresholds
(optional)

Der Schwellenwert für den spektralen Abgleich. Pixelwerte, die diesen Wert überschreiten, werden als undefiniert klassifiziert. Hierbei kann es sich um einen einzelnen Wert handeln, der auf alle Spektralklassen angewendet wird, oder eine durch Leerzeichen getrennte Werteliste für jede Klasse.

String
out_score_raster
(optional)

Ein Multiband-Raster, in dem die übereinstimmenden Ergebnisse für alle Endmitglieder gespeichert sind. Die Bandreihenfolge folgt der Reihenfolge der Klassen im Parameterwert in_spectra_file. Wenn die Eingabe ein multidimensionales Raster ist, muss das Ausgabeformat CRF lauten.

Raster Dataset
out_classifier_definition
(optional)

Die .ecd-Ausgabedatei

File

Rückgabewert

NameErläuterungDatentyp
out_classified_raster

Das klassifizierte Ausgabe-Raster.

Raster

Codebeispiel

ClassifyRasterUsingSpectra: Beispiel 1

In diesem Beispiel wird in einem Landsat 8-Raster eine Spektralwinkelzuordnung (Spectral Angle Mapping, SAM) durchgeführt, wobei für jede Klasse Schwellenwerte angegeben sind. Die Referenzspektren werden in einer .json-Datei bereitgestellt.

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

#Check out ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Set local variables
in_raster = "C:/Data/LandSat8_SurfaceReflectance.tif"
in_spectra_file = "C:/Data/ref_spectra.json"
method = "SAM"
thresholds = ".08 .04 .05 .07"
out_score_raster = "C:/Data/scoreSAM.crf"
out_classifier_definition = "C:/Data/SAM_classifier.ecd"

# Execute 
Classified_output = arcpy.ia.ClassifyRasterUsingSpectra(in_raster, in_spectra_file, method, thresholds, out_score_raster, out_classifier_definition)

# Save output
Classified_output.save("C:/data/Classified_output.crf")
ClassifyRasterUsingSpectra: Beispiel 2

In diesem Beispiel wird die Divergenz der Spektralinformationen (Spectral Information Divergence, SID) zwischen einem Landsat 8-Raster und den aus einer Point-Feature-Class abgeleiteten Referenzspektren berechnet.

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

#Check out ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Set local variables
in_raster = "C:/Data/LandSat8_SurfaceReflectance.tif"
in_spectra_file = "C:/Data/ref_spectra.shp"
method = "SID"
thresholds = .08
out_score_raster = "C:/Data/scoreSID.crf"
out_classifier_definition = "C:/Data/SID_classifier.ecd"

# Execute 
Classified_output = arcpy.ia.ClassifyRasterUsingSpectra(in_raster, in_spectra_file, method, thresholds, out_score_raster, out_classifier_definition)

# Save output
Classified_output.save("C:/data/Classified_output.crf")

Verwandte Themen