Classer le raster à l’aide d’un spectre (Image Analyst)

Disponible avec une licence Image Analyst.

Disponible avec une licence Spatial Analyst.

Synthèse

Classe un jeu de données raster multicanal à l’aide de techniques d'appariement spectral. Les données spectrales en entrée peuvent être fournies sous forme de classe d’entités ponctuelles ou de fichier .json.

Utilisation

  • Si le fichier .json en entrée contient des valeurs spectrales qui sont fournies sous forme de pourcentage de réflectance de la surface, le jeu de données raster doit être remis à l’échelle avec un facteur d’échelle propre au capteur. Par exemple, les produits de réflectance de surface de niveau 2 de la collection 2 Landsat 8 et 9 peuvent être remis à l’échelle vers 0–1 à l’aide de l’expression suivante : Raster*0.0000275+(-0.2).

  • Après l’application de facteurs d’échelle et de décalage, des valeurs négatives peuvent apparaître, en particulier sur des entités sombres telles que l’eau. Ces pixels négatifs doivent être masqués avant d’utiliser la méthode de classification SID.

  • L’ordre du raster classé en sortie reflète l’ordre du profil spectral en entrée.

  • L’exemple suivant illustre un profil spectral fourni sous forme d’un fichier .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
              ]
        }
      ]        
    }
  • Les entités ponctuelles nécessitent les champs suivants :

    • classname- un champ textuel indiquant le nom de la catégorie de classe
    • classvalue- un champ d’entier long contenant la valeur entière de chaque catégorie de classe
  • Un fichier de définition de classificateur Esri en sortie (.ecd) peut être utilisé en entrée dans l’outil Classer le raster.

Paramètres

ÉtiquetteExplicationType de données
Raster en entrée

Raster multibande en entrée.

Mosaic Layer; Raster Layer; Image Service; String; Raster Dataset; Mosaic Dataset
Spectres ou points

Informations spectrales des différentes classes de pixels.

Les informations spectrales peuvent être fournies sous forme d’entités ponctuelles, d’une classe d’entités ponctuelles d’échantillons d’entraînement générée à partir de la fenêtre Gestionnaire d’échantillons d’entraînement ou d’un fichier .json contenant les profils spectraux de classe.

Feature Layer; File; String
Méthode

Indique la méthode d’appariement spectral à utiliser.

  • SAM (Spectral Angle Mapper)L’angle vectoriel entre le raster multibande en entrée et les spectres de référence est calculé, où le spectre de chaque pixel est traité comme un vecteur. Les valeurs angulaires sont en radians.
  • Divergence des informations spectralesLa divergence des informations spectrales entre le raster multibande en entrée et les spectres de référence est calculée. Un score est calculé pour chaque pixel en fonction de la divergence entre les distributions des probabilités du pixel et des spectres de référence. Les valeurs sont en radians.
String
Seuils
(Facultatif)

Seuil de l’appariement spectral. Les valeurs de pixel qui dépassent cette valeur sont classées comme non définies. Il peut s’agir d’une valeur unique appliquée à toutes les classes spectrales ou d’une liste de valeurs délimitées par des espaces pour chaque classe.

String
Raster de score en sortie
(Facultatif)

Raster multicanal qui stocke les résultats d’appariement pour chaque membre final. L’ordre des bandes suit l’ordre des classes dans la valeur du paramètre Spectres ou points. Si l’entrée est un raster multidimensionnel, le format en sortie doit être CRF.

Raster Dataset
Fichier de définition de classificateur en sortie
(Facultatif)

Le fichier .ecd en sortie.

File

Valeur renvoyée

ÉtiquetteExplicationType de données
Raster classé en sortie

Raster classé en sortie.

Raster

ClassifyRasterUsingSpectra(in_raster, in_spectra_file, method, {thresholds}, {out_score_raster}, {out_classifier_definition})
NomExplicationType de données
in_raster

Raster multibande en entrée.

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

Informations spectrales des différentes classes de pixels.

Les informations spectrales peuvent être fournies sous forme d’entités ponctuelles, d’une classe d’entités ponctuelles d’échantillons d’entraînement générée à partir de la fenêtre Gestionnaire d’échantillons d’entraînement ou d’un fichier .json contenant les profils spectraux de classe.

Feature Layer; File; String
method

Indique la méthode d’appariement spectral à utiliser.

  • SAML’angle vectoriel entre le raster multibande en entrée et les spectres de référence est calculé, où le spectre de chaque pixel est traité comme un vecteur. Les valeurs angulaires sont en radians.
  • SIDLa divergence des informations spectrales entre le raster multibande en entrée et les spectres de référence est calculée. Un score est calculé pour chaque pixel en fonction de la divergence entre les distributions des probabilités du pixel et des spectres de référence. Les valeurs sont en radians.
String
thresholds
(Facultatif)

Seuil de l’appariement spectral. Les valeurs de pixel qui dépassent cette valeur sont classées comme non définies. Il peut s’agir d’une valeur unique appliquée à toutes les classes spectrales ou d’une liste de valeurs délimitées par des espaces pour chaque classe.

String
out_score_raster
(Facultatif)

Raster multicanal qui stocke les résultats d’appariement pour chaque membre final. L’ordre des bandes suit l’ordre des classes dans la valeur du paramètre in_spectra_file. Si l’entrée est un raster multidimensionnel, le format en sortie doit être CRF.

Raster Dataset
out_classifier_definition
(Facultatif)

Le fichier .ecd en sortie.

File

Valeur renvoyée

NomExplicationType de données
out_classified_raster

Raster classé en sortie.

Raster

Exemple de code

Exemple 1 d’utilisation de la fonction ClassifyRasterUsingSpectra

Cet exemple exécute un appariement de l’angle spectral (SAM) sur un raster Landsat 8 avec des seuils spécifiés pour chaque classe. Les spectres de référence sont fournis dans un fichier .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")
Exemple 2 d’utilisation de la fonction ClassifyRasterUsingSpectra

Cet exemple calcule la divergence des informations spectrales (SID) entre des spectres de référence et un raster Landsat 8 dérivés d’une classe d’entités ponctuelles.

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

Rubriques connexes