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 le matériau fractionnel pour des pixels contenant plusieurs types de matériau. 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.

  • Cet outil prend en charge plusieurs formes de données spectrales en entrée, comme la bibliothèque spectrale d’Esri (.esl) ou le format de bibliothèque spectrale ENVI (.sli).

  • L’outil prend en charge une ancienne forme de fichier spectral JSON en entrée. L’exemple suivant présente un fichier spectral fourni en tant que 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, spécifiez Non négatif pour Option de valeur en sortie.

  • Le nombre de bandes dans l’image en entrée et les données spectrales en entrée doivent correspondre si le spectre en entrée est un fichier .ecd, une classe d’entités d’échantillons d’entraînement ou un fichier .json.

  • Si les spectres en entrée proviennent d’un fichier de la galerie d’outils d’analyse spectrale (.esl ou .sli), le ré-échantillonnage spectral est appliqué en utilisant une méthode de calcul de la moyenne des bandes si le nombre de bandes ne correspond pas. Vous pouvez également rééchantillonner les spectres à l’aide de l’outil Rééchantillonner les spectres de bibliothèque.

  • Si les données spectrales proviennent d’une bibliothèque spectrale dans laquelle les valeurs de réflectance sont comprises entre 0 et 1, comme la bibliothèque spectrale USGS, le raster de réflectance de surface en entrée doit également contenir des valeurs comprises entre 0 et 1.

  • Si l’image en entrée n’est pas comprise entre 0 et 1, comme les images 8 bits ou 16 bits, il est recommandé de collecter la signature spectrale du matériau à l’aide de l’outil Visionneuse spectrale. Vous pouvez également cocher la case Supprimer le continuum pour normaliser les valeurs de pixel et les données de la bibliothèque de spectres en entrée.

  • Lorsque la case Supprimer le continuum est cochée, une enveloppe convexe est placée sur le sommet d’un spectre à l’aide de segments de lignes droites qui relient les maxima des spectres locaux. Le continuum est supprimé en le divisant entre le spectre réel pour chaque pixel de l’image et les spectres en entrée. Cela permet de comparer les entités d’absorption à partir d’une ligne de base commune.

Paramètres

ÉtiquetteExplicationType de données
Raster en entrée

Jeu de données raster de réflectance de surface en entrée.

Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; File; Image Service
Fichier de spectres ou entités d’entraînement

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

Le fichier peut être :

  • Un fichier de bibliothèque spectrale Esri (.esl) créé à partir de la fenêtre de navigation Bibliothèque spectrale ou de l’outil Visionneuse spectrale
  • Un fichier bibliothèque spectrale ENVI (.sli)
  • Une classe d’entités surfaciques générée à partir de la fenêtre Gestionnaire d’échantillons d’entraînement
  • Un fichier de définition de classificateur Esri (.ecd) généré par l’outil Préparer le classificateur de vraisemblance maximale
  • Un fichier .json contenant des données spectrales

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
Supprimer le continuum
(Facultatif)

Indique si les spectres sont normalisés à partir d’une image ou de données de référence

  • Activé : les spectres sont normalisés à partir d’une image ou de données de référence.
  • Désactivé : les spectres ne sont pas normalisés à partir d’une image ou de données de référence. Il s’agit de l’option par défaut.

Indique si les spectres sont normalisés à partir d’une image ou de données de référence

  • REMOVE_CONTINUUMLes spectres seront normalisés à partir d’une image ou de données de référence.
  • NO_REMOVE_CONTINUUMLes spectres ne sont pas normalisés à partir d’une image ou de données de référence. Il s’agit de l’option par défaut.
Boolean

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}, {remove_continuum})
NomExplicationType de données
in_raster

Jeu de données raster de réflectance de surface 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.

Le fichier peut être :

  • Un fichier de bibliothèque spectrale Esri (.esl) créé à partir de la fenêtre de navigation Bibliothèque spectrale ou de l’outil Visionneuse spectrale
  • Un fichier bibliothèque spectrale ENVI (.sli)
  • Une classe d’entités surfaciques générée à partir de la fenêtre Gestionnaire d’échantillons d’entraînement
  • Un fichier de définition de classificateur Esri (.ecd) généré par l’outil Préparer le classificateur de vraisemblance maximale
  • Un fichier .json contenant des données spectrales

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
remove_continuum
(Facultatif)

Indique si les spectres sont normalisés à partir d’une image ou de données de référence

  • Activé : les spectres sont normalisés à partir d’une image ou de données de référence.
  • Désactivé : les spectres ne sont pas normalisés à partir d’une image ou de données de référence. Il s’agit de l’option par défaut.

Indique si les spectres sont normalisés à partir d’une image ou de données de référence

  • REMOVE_CONTINUUMLes spectres seront normalisés à partir d’une image ou de données de référence.
  • NO_REMOVE_CONTINUUMLes spectres ne sont pas normalisés à partir d’une image ou de données de référence. Il s’agit de l’option par défaut.
Boolean

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