Clasificar ráster con Spectra (Image Analyst)

Disponible con licencia de Image Analyst.

Disponible con una licencia de Spatial Analyst.

Resumen

Clasificar un dataset ráster multibanda con técnicas de coincidencia espectral. Los datos espectrales de entrada se pueden proporcionar como una clase de entidad de punto o un archivo .json.

Uso

  • Si el archivo .json de entrada contiene valores espectrales proporcionados como reflectancia de superficie porcentual, se debe reescalar el dataset ráster con un factor de escala específico del sensor. Por ejemplo, los productos de reflectancia de superficie de nivel 2, colección 2 de Landsat 8 y 9 se pueden reescalar a 0–1 con esta expresión: Raster*0.0000275+(-0.2).

  • Después de aplicar factores de escala y desplazamiento, pueden generarse valores negativos, especialmente en entidades oscuras como el agua. Estos píxeles negativos deben enmascararse antes de utilizar el método de clasificación SID.

  • El orden del ráster clasificado de salida sigue el orden del perfil espectral de entrada.

  • A continuación, se muestra un ejemplo de un perfil espectral proporcionado como un archivo .json:

    
    {
      "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
              ]
        }
      ]        
    }
  • Las entidades de punto requieren los siguientes campos:

    • classname- Un campo de texto que indique el nombre de la categoría de clase
    • classvalue- Un campo de tipo entero largo que contenga el valor entero para cada categoría de clase
  • Es posible utilizar un archivo de definición de clasificador de Esri de salida (.ecd) como entrada de la herramienta Clasificar ráster.

Parámetros

EtiquetaExplicaciónTipo de datos
Ráster de entrada

El ráster multibanda de entrada.

Mosaic Layer; Raster Layer; Image Service; String; Raster Dataset; Mosaic Dataset
Espectros o puntos

La información espectral de distintas clases de píxeles.

La información espectral se puede proporcionar como entidades de puntos, una clase de entidad de puntos de muestra de entrenamiento generada desde el panel Administrador de muestras de entrenamiento o un archivo .json que contenga los perfiles de clase espectrales.

Feature Layer; File; String
Método

Especifica el método de coincidencia espectral que se utilizará.

  • Asignador de ángulo espectralEl ángulo vectorial entre el ráster multibanda de entrada y el espectro de referencia se calculará de forma que el espectro de cada píxel se trata como un vector. Los valores de ángulo están en radianes.
  • Divergencia de información espectralSe calculará la divergencia de la información espectral entre el ráster multibanda de entrada y el espectro de referencia. Se calculará una puntuación para cada píxel en función de la divergencia entre las distribuciones de probabilidad del píxel y el espectro de referencia. Los valores están en radianes.
String
Umbrales
(Opcional)

El umbral para la coincidencia espectral. Los valores de píxel que superan este valor se clasificarán como no definidos. Puede ser un valor único aplicado a todas las clases espectrales o a una lista de valores delimitada por espacios para cada clase.

String
Ráster de puntuación de salida
(Opcional)

Ráster multibanda que almacena los resultados coincidentes para cada miembro final. El orden de las bandas sigue el orden de las clases en el valor del parámetro Espectros o puntos. Si la entrada es un ráster multidimensional, el formato de salida debe ser CRF.

Raster Dataset
Archivo de definición de clasificadores de salida
(Opcional)

El archivo .ecd de salida.

File

Valor de retorno

EtiquetaExplicaciónTipo de datos
Ráster clasificado de salida

Ráster clasificado de salida.

Raster

ClassifyRasterUsingSpectra(in_raster, in_spectra_file, method, {thresholds}, {out_score_raster}, {out_classifier_definition})
NombreExplicaciónTipo de datos
in_raster

El ráster multibanda de entrada.

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

La información espectral de distintas clases de píxeles.

La información espectral se puede proporcionar como entidades de puntos, una clase de entidad de puntos de muestra de entrenamiento generada desde el panel Administrador de muestras de entrenamiento o un archivo .json que contenga los perfiles de clase espectrales.

Feature Layer; File; String
method

Especifica el método de coincidencia espectral que se utilizará.

  • SAMEl ángulo vectorial entre el ráster multibanda de entrada y el espectro de referencia se calculará de forma que el espectro de cada píxel se trata como un vector. Los valores de ángulo están en radianes.
  • SIDSe calculará la divergencia de la información espectral entre el ráster multibanda de entrada y el espectro de referencia. Se calculará una puntuación para cada píxel en función de la divergencia entre las distribuciones de probabilidad del píxel y el espectro de referencia. Los valores están en radianes.
String
thresholds
(Opcional)

El umbral para la coincidencia espectral. Los valores de píxel que superan este valor se clasificarán como no definidos. Puede ser un valor único aplicado a todas las clases espectrales o a una lista de valores delimitada por espacios para cada clase.

String
out_score_raster
(Opcional)

Ráster multibanda que almacena los resultados coincidentes para cada miembro final. El orden de las bandas sigue el orden de las clases en el valor del parámetro in_spectra_file. Si la entrada es un ráster multidimensional, el formato de salida debe ser CRF.

Raster Dataset
out_classifier_definition
(Opcional)

El archivo .ecd de salida.

File

Valor de retorno

NombreExplicaciónTipo de datos
out_classified_raster

Ráster clasificado de salida.

Raster

Muestra de código

Ejemplo 1 de ClassifyRasterUsingSpectra

Este ejemplo realiza una representación cartográfica de ángulo espectral (SAM) en un ráster Landsat 8 con umbrales especificados para cada clase. La especificación de referencia se proporciona en un archivo .json.

# 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")
Ejemplo 2 de ClassifyRasterUsingSpectra

En este ejemplo se calcula la divergencia de información espectral (SID) entre un ráster Landsat 8 y un espectro de referencia derivado de una clase de entidad de punto.

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

Temas relacionados