Classer un raster à l’aide de spectres (Outils Image Analyst)
Résumé
Classe un jeu de données raster multibande à l’aide de techniques de correspondance spectrale. 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 mis à l’échelle en fonction d’un facteur de mise à l’é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 mis à l’échelle en 0–1 à l’aide de l’expression suivante : Raster*0.0000275+(-0.2).
Après l’application d’un facteur de mise à l’échelle et d’un facteur de décalage, des valeurs négatives peuvent apparaître, en particulier sur les entités sombres telles que l’eau. Vous devez masquer ces pixels négatifs avant d’utiliser la méthode de classification SID (Spectral Information Divergence).
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 la forme d’un fichier .json :
Informations spectrales pour les différentes classes de pixels.
Un fichier de bibliothèque spectrale (.esl) contient les signatures spectrales pour les classes, une classe d’entités ponctuelles d’échantillon d’entraînement générée depuis la fenêtre Training Samples Manager (Gestionnaire d’échantillons d’entraînement) ou un fichier .json contenant les signatures spectrales des classes.
Feature Layer; File; String
Méthode
Indique la méthode de correspondance spectrale à utiliser.
Spectral Angle Mapper—L’angle vectoriel entre le raster multibande en entrée et les spectres de référence est calculé en considérant le spectre de chaque pixel comme un vecteur. Les valeurs angulaires sont en radians.
Spectral Information Divergence—La 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 les spectres de référence. Les valeurs sont en radians.
Spectral Information Divergence and Spectral Angle Mapper—Le produit du score Divergence des informations spectrales et de la tangente du score Spectral Angle Mapper est calculé. Cette option contient une meilleure fonction de discrimination que les options SID et SAM utilisées individuellement.
Normalized Spectral Similarity—La méthode Normalized Spectral Similarity est calculée. Cette méthode calcule le score de correspondance spectrale à partir de la distance euclidienne et du score Spectral Angle Mapper. Cette option contient une fonction de discrimination élevée, mais requiert des données de référence complètes pour une exactitude optimale.
String
Seuils
(Facultatif)
Seuil à utiliser pour la correspondance spectrale. 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 multibande qui stocke les résultats de correspondance pour chaque membre final. L’ordre des bandes suit l’ordre des classes dans la valeur du paramètre Spectra or Points (Spectres ou points). Si l’entrée est un raster multidimensionnel, le format en sortie doit être CRF.
Informations spectrales pour les différentes classes de pixels.
Un fichier de bibliothèque spectrale (.esl) contient les signatures spectrales pour les classes, une classe d’entités ponctuelles d’échantillon d’entraînement générée depuis la fenêtre Training Samples Manager (Gestionnaire d’échantillons d’entraînement) ou un fichier .json contenant les signatures spectrales des classes.
Feature Layer; File; String
method
Indique la méthode de correspondance spectrale à utiliser.
SAM—L’angle vectoriel entre le raster multibande en entrée et les spectres de référence est calculé en considérant le spectre de chaque pixel comme un vecteur. Les valeurs angulaires sont en radians.
SID—La 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 les spectres de référence. Les valeurs sont en radians.
SIDSAM—Le produit du score Divergence des informations spectrales et de la tangente du score Spectral Angle Mapper est calculé. Cette option contient une meilleure fonction de discrimination que les options SID et SAM utilisées individuellement.
NS3—La méthode Normalized Spectral Similarity est calculée. Cette méthode calcule le score de correspondance spectrale à partir de la distance euclidienne et du score Spectral Angle Mapper. Cette option contient une fonction de discrimination élevée, mais requiert des données de référence complètes pour une exactitude optimale.
String
thresholds
(Facultatif)
Seuil à utiliser pour la correspondance spectrale. 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 multibande qui stocke les résultats de correspondance 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)
Fichier .ecd en sortie.
File
Valeur de retour
Nom
Explication
Type 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 la méthode Spectral Angle Mapper (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 *
# 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"
# Run
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 méthode Spectral Information Divergence (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 *
# 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"
# Run
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")