Démixage spectral linéaire (Spatial Analyst)

Disponible avec une licence Image Analyst.

Disponible avec une licence Spatial Analyst.

Synthèse

Effectue une classification inférieure au pixel et calcule l’abondance fractionnelle de différents types d’occupation du sol pour certains pixels.

Illustration de l’outil Linear Spectral Unmixing (Démixage spectral linéaire)

Utilisation

  • Cet outil calcule la couverture fractionnelle pour des pixels contenant plusieurs types d’occupation du sol. Il génère un raster multicanal dans lequel chaque canal correspond à l’abondance fractionnelle d’une classe d’occupation du sol. Par exemple, vous pouvez l’utiliser pour procéder à la classification des occupations du sol sur une image multispectrale afin d’identifier la végétation photosynthétique, le sol nu, la végétation morte ou non photosynthétique.

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

  • Le nombre de classes ne doit pas dépasser le nombre de canaux du raster en entrée. Par exemple, vous ne pouvez pas extraire des informations sur plus de 8 classes à partir d’un raster à 8 canaux.

  • L’exemple suivant illustre un profil spectral fourni sous forme d’un fichier .json :

    
    {
      "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
              ]
        }
      ]        
    }
  • Les fichiers de définition de classificateur (.ecd) générés par l’outil Préparer le classificateur de vraisemblance maximale constituent pour l’instant la seule sortie de classificateur prise en charge.

  • Les entités surfaciques exigent les noms de champ 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
  • Lors du calcul de l’abondance fractionnelle de chaque classe d’occupation du sol, la solution peut inclure des fractions ou des coefficients négatifs. Si cela se produit, examinez les échantillons d’entraînement qui se trouvent dans le profil spectral en entrée pour s’assurer qu’ils représentent fidèlement chaque classe. S’ils sont corrects, sélectionnez Non-negative (Non négatif) pour Output Value Option (Option de valeur en sortie).

Paramètres

ÉtiquetteExplicationType de données
Raster en entrée

Jeu de données raster en entrée.

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; File; Image Service
Profil spectral ou entités d’entraînement en entrée

Informations spectrales pour les différentes classes d’occupation du sol.

Il peut être fourni sous forme d’entités surfaciques, d’une classe d’entités d’échantillons d’entraînement générée à partir de la fenêtre Training Samples Manager (Gestionnaire d’échantillons d’entraînement), d’un fichier de définition de classificateur (.ecd) généré via l’outil Train Maximum Likelihood Classifier (Préparer le classificateur de vraisemblance maximale) ou d’un fichier JSON (.json) qui contient les profils spectraux de classe.

File; Feature Layer; String
Option de valeur en sortie
(Facultatif)

Indique comment les valeurs de pixel en sortie sont définies.

  • Somme égale à unLes valeurs de classe pour chaque pixel sont fournies au format décimal, la somme de toutes les classes étant égale à 1. Exemple : Classe1 = 0,16 ; Classe2 = 0,24 ; Classe3 = 0,60.
  • Non négatifIl n’y aura pas de valeurs négatives en sortie.
String

Valeur renvoyée

ÉtiquetteExplicationType de données
Raster en sortie

Jeu de données d'un raster multicanal en sortie.

Raster

LinearSpectralUnmixing(in_raster, in_spectral_profile_file, {value_option})
NomExplicationType de données
in_raster

Jeu de données raster en entrée.

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; File; Image Service
in_spectral_profile_file

Informations spectrales pour les différentes classes d’occupation du sol.

Il peut être fourni sous forme d’entités surfaciques, d’un fichier de définition de classificateur (.ecd) généré via l’outil Train Maximum Likelihood Classifier (Préparer le classificateur de vraisemblance maximale) ou d’un fichier JSON (.json) qui contient les profils spectraux de classe.

File; Feature Layer; String
value_option
[value_option,...]
(Facultatif)

Indique comment les valeurs de pixel en sortie sont définies.

  • SUM_TO_ONELes valeurs de classe pour chaque pixel sont fournies au format décimal, la somme de toutes les classes étant égale à 1. Exemple : Classe1 = 0,16 ; Classe2 = 0,24 ; Classe3 = 0,60.
  • NON_NEGATIVEIl n’y aura pas de valeurs négatives en sortie.
String

Valeur renvoyée

NomExplicationType de données
out_raster

Jeu de données d'un raster multicanal en sortie.

Raster

Exemple de code

Exemple 1 d’utilisation de la fonction LinearSpectralUnmixing (fenêtre Python)

Cet exemple calcule l’abondance fractionnelle des classes à partir d’un fichier de définition de classificateur (.ecd) et génère un raster multicanal.

# 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")
Exemple 2 d’utilisation de la fonction LinearSpectralUnmixing (script autonome)

Cet exemple calcule l’abondance fractionnelle des classes à partir d’un fichier de définition de classificateur (.ecd) et génère un raster multicanal.

# 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")
Exemple 3 d’utilisation de la fonction LinearSpectralUnmixing (script autonome)

Cet exemple calcule l’abondance fractionnelle des classes à partir d’une classe d’entités d’échantillon d’entraînement (.ecd) et génère un raster multicanal.

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

Informations de licence

  • Basic: Nécessite Spatial Analyst ou Image Analyst
  • Standard: Nécessite Spatial Analyst ou Image Analyst
  • Advanced: Nécessite Spatial Analyst ou Image Analyst

Rubriques connexes