Analyze Changes Using LandTrendr (Analyser les modifications avec l’algorithme LandTrendr) (Image Analyst)

Disponible avec une licence Image Analyst.

Résumé

Évalue les modifications dans les valeurs de pixel au fil du temps à l’aide de la détection basée sur Landsat des tendances dans les méthodes de perturbation et de restauration (LandTrendr) et génère un raster d’analyse des changements contenant les résultats du modèle.

En savoir plus sur le fonctionnement de LandTrendr

Utilisation

  • L’algorithme LandTrendr constitue une méthode d’identification des changements en valeurs de pixel au fil du temps. Développé pour une série chronologique d’imagerie Landsat multicanal, il sert à détecter les changements et à classer la couverture terrestre avant et après la modification. Vous pouvez utiliser cet outil avec des images issues des capteurs pris en charge, et pour détecter des changements sur des rasters monocanal. Par exemple, cet outil peut servir à détecter des changements dans une série temporelle de rasters NDVI, afin d’identifier les événements liés à la déforestation.

  • L’algorithme LandTrendr extrait la trajectoire de la série temporelle pour chaque pixel au fil du temps, en utilisant la valeur de pixel d’un seul canal ou index spectral. La trajectoire est ensuite découpée en segments, afin de capturer et modéliser les périodes sans changement, avec changement et de récupération après changement.

  • Cet outil a pour sortie des informations de modèle dans un raster d’analyse des changements dans lequel chaque pixel stocke un ensemble d’informations de modèle décrivant l’historique du pixel au fil du temps. Le raster d’analyse des changements est un raster multidimensionnel dans lequel chaque tranche est un raster multicanal composé des coefficients de modèle, de l’erreur quadratique moyenne (EQM) et des changements observés. Il peut être entré dans l’outil Détecter les changements à l’aide du raster d’analyse des changements, ce qui génère un raster contenant des informations sur les changements pour chaque pixel.

    Chaque année de l’analyse est représentée par une tranche.
  • Cet outil a pour but d’extraire les modifications dans une entité observée, de façon à ce que l’imagerie multidimensionnelle idéale en entrée capture une observation constante dans le temps sans inclure d’interférence atmosphérique ou de capteur, de nuages ou d’ombres de nuages. Il est préférable d'utiliser des données normalisées et pouvant être masquées à l'aide d'un canal d'assurance qualité (QA), tels que les produits de réflexion de surface de la collection Landsat 1 avec un masque de nuages.

  • L’outil effectue l’analyse sur une image par an, et le nombre de tranches annuelles doit être au moins égal à la valeur du paramètre Minimum Number of Observations (Nombre minimal d’observations). Il est recommandé de disposer d’au moins six années de données.

    Si vous disposez de données mensuelles, hebdomadaires ou quotidiennes, nous vous recommandons de sélectionner plusieurs images pour chaque année (si possible à la même saison), de supprimer les nuages et leur ombre, puis d’associer ces images pour générer une image unique qui capture bien l’observation. Si des données mensuelles, hebdomadaires ou quotidiennes sont fournies comme raster multidimensionnel en entrée, l’outil identifie une tranche pour l’analyse, en fonction de la date la plus proche à celle du paramètre Snapping Date (Date de capture).

  • Il faut souvent un peu de temps pour qu’une entité dans un paysage récupère après un changement temporaire comme un feu de forêt ou une invasion d’insectes. Pour contrôler le taux de récupération reconnu par le modèle, définissez le paramètre Recovery Threshold (Seuil de récupération). Le taux de récupération d’un segment ne peut pas être plus rapide que la valeur 1/seuil de récupération.

  • La récupération après un changement dans le paysage peut se faire dans le sens positif ou négatif. Par exemple, lorsqu’un paysage subit une déforestation, une série temporelle de valeurs d’index de végétation montre une chute des valeurs d’index, et la récupération se traduit par une augmentation progressive des valeurs d’index de végétation, soit une tendance de récupération positive. Spécifiez le sens de la tendance de récupération à l’aide du paramètre Recovery Has Increasing Trend (La tendance de récupération augmente).

  • Pour explorer les changements calculés dans le raster d’analyse des changements en sortie, créez un diagramme de profil temporel. Générez des graphiques pour plusieurs emplacements dans le raster d’analyse des changements à l’aide du canal Fitted Value (Valeur ajustée) ou Slope (Pente) pour voir où des changements se sont produits. Vous pouvez faire glisser le pointeur sur les points du graphique pour identifier la date du changement.

  • L’exécution de cet outil peut prendre longtemps et le stockage des résultats peut nécessiter une grande quantité d’espace disque. Pour réduire le temps de traitement et la quantité d’espace de stockage requis, nous vous recommandons de procéder comme suit :

    • Désactivez l’environnement Pyramid (Pyramide). Décochez la case Build Pyramids (Construire des pyramides) dans la fenêtre Environment (Environnement) ou définissez l’environnement sur NONE dans Python.
    • Définissez l’environnement Compression sur LERC et le paramètre Max error (Erreur max.) sur 0,000001.
    • Si vous pensez que vous allez exécuter l’outil Detect Change Using Change Analysis Raster (Détecter les changements à l’aide d’un raster d’analyse des changements) sur la sortie de cet outil, générez une transposition multidimensionnelle sur le résultat.

  • Cet outil crée un jeu de données raster multidimensionnelles au format CRF (Cloud Raster Format). Actuellement, aucun autre format en sortie n’est pris en charge.

Syntaxe

AnalyzeChangesUsingLandTrendr(in_multidimensional_raster, {processing_band}, {snapping_date}, {max_num_segments}, {vertex_count_overshoot}, {spike_threshold}, {recovery_threshold}, {prevent_one_year_recovery}, {recovery_trend}, {min_num_observations}, {best_model_proportion}, pvalue_threshold, {output_other_bands})
ParamètreExplicationType de données
in_multidimensional_raster

Jeu de données raster multidimensionnelles en entrée.

Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; File
processing_band
(Facultatif)

Canal utilisé pour découper les trajectoires de valeur de pixel au fil du temps en segments. Sélectionnez le canal qui capture le mieux les changements sur l’entité à observer.

Si aucune valeur de canal n’est spécifiée et que l’entrée est une imagerie multicanal, le premier canal de l’image multicanal est utilisé.

String
snapping_date
(Facultatif)

Date utilisée pour sélectionner une tranche pour chaque année dans le jeu de données multidimensionnelles en entrée. La tranche dont la date est la plus proche de la date de capture sera sélectionnée. Ce paramètre est requis si le jeu de données en entrée contient des données pour des périodes inférieures aux années.

La valeur par défaut est 06-30, c’est-à-dire le 30 juin, à peu près au milieu de l’année calendaire.

String
max_num_segments
(Facultatif)

Nombre maximal de segments à associer à la série temporelle de chaque pixel. La valeur par défaut est 5.

Long
vertex_count_overshoot
(Facultatif)

Nombre de sommets supplémentaires au-delà de max_num_segments + 1 qui peut être utilisé pour ajuster le modèle pendant la phase initiale d’identification des sommets. Plus tard dans le processus de modélisation, le nombre de sommets supplémentaires sera réduit à max_num_segments + 1. La valeur par défaut est 2.

Long
spike_threshold
(Facultatif)

Seuil à utiliser pour amortir les pics ou les anomalies dans la trajectoire de valeur de pixel. Cette valeur doit être comprise entre 0 et 1, où 1 signifie qu’il n’y a pas d’amortissement. La valeur par défaut est 0,9.

Double
recovery_threshold
(Facultatif)

Valeur du seuil de récupération, en années. Si le taux de récupération d’un segment est plus rapide que la valeur 1/recovery threshold, ce segment est ignoré et n’est pas inclus dans le modèle de série temporelle. La valeur doit être comprise entre 0 et 1. La valeur par défaut est 0,25.

Double
prevent_one_year_recovery
(Facultatif)

Indique si les segments qui présentent une récupération sur un an doivent être exclus.

  • ALLOW_ONE_YEAR_RECOVERYLes segments qui présentent une récupération sur un an ne doivent pas être exclus.
  • PREVENT_ONE_YEAR_RECOVERYLes segments qui présentent une récupération sur un an doivent être exclus. Il s’agit de l’option par défaut.
Boolean
recovery_trend
(Facultatif)

Indique si la récupération présente une tendance à la hausse (positive).

  • INCREASING_TRENDLa récupération présente une tendance à la hausse. Il s’agit de l’option par défaut.
  • DECREASING_TRENDLa récupération présente une tendance à la baisse.
Boolean
min_num_observations
(Facultatif)

Nombre minimum d’observations valides nécessaire pour effectuer l’ajustement. Le nombre d’années dans le jeu de données multidimensionnelles en entrée doit être supérieur ou égal à cette valeur. La valeur par défaut est 6.

Long
best_model_proportion
(Facultatif)

Meilleure valeur de proportion de modèle. Pendant le processus de sélection du modèle, l’outil calcule la valeur p pour chaque modèle et sélectionne le modèle qui a le plus de sommets tout en conservant la valeur p la plus petite (la plus significative) en fonction de cette valeur de proportion. La valeur 1 signifie que le modèle a la valeur p la plus basse mais n’a peut-être pas un grand nombre de sommets. La valeur par défaut est 1,25.

Double
pvalue_threshold

Seuil de valeur p à sélectionner pour un modèle. Une fois les sommets détectés à l’étape initiale d’ajustement du modèle, l’outil ajuste chaque segment et calcule la valeur p pour déterminer le niveau d’importance du modèle. À l’itération suivante, le modèle diminue le nombre de segments d’un et recalcule la valeur p. Le processus continue ainsi et, si la valeur p devient inférieure à la valeur spécifiée dans ce paramètre, le modèle est sélectionné et l’outil arrête de rechercher un meilleur modèle. Si aucun modèle n’est sélectionné, l’outil sélectionne un modèle avec une valeur p inférieure à la valeur lowest p-value × best model proportion value. La valeur par défaut est 0,01.

Double
output_other_bands
(Facultatif)

Indique si les autres canaux sont inclus dans le processus de segmentation.

  • INCLUDE_OTHER_BANDSLes autres canaux sont inclus. Les informations sur la segmentation et les sommets issues du canal de segmentation initial spécifié dans le paramètre processing_band (Canal de traitement) sont également ajustées aux autres canaux des images multicanal. Les résultats du modèle incluent d’abord le canal de segmentation, puis les autres canaux.
  • EXCLUDE_OTHER_BANDSLes autres canaux ne sont pas inclus. Il s’agit de l’option par défaut.
Boolean

Valeur renvoyée

NomExplicationType de données
out_multidimensional_raster

Jeu de données raster multidimensionnelles CRF (Cloud Raster Format) en sortie.

Raster d’analyse des changements en sortie contenant les informations de modèle issues de l’analyse LandTrendr.

Raster

Exemple de code

Exemple 1 d’utilisation de AnalyzeChangesUsingLandTrendr (fenêtre Python)

Dans cet exemple, l’algorithme LandTrendr est exécuté pour détecter les changements dans une série temporelle de données NDVI.

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")


changeAnalysisRaster = arcpy.ia.AnalyzeChangesUsingLandTrendr(
	"Monthly_NDVI_30_years.crf","","",10,3,0.9,0.25, 'PREVENT_ONE_YEAR_RECOVERY', 
	'INCREASING_TREND',10,1.25,0.05, 'EXCLUDE_OTHER_BANDS')

# Save output
changeAnalysisRaster.save(r"C:\data\NDVI_ChangeAnalysis.crf")
Exemple 2 d’utilisation de l’outil AnalyzeChangesUsingLandTrendr (script autonome)

Dans cet exemple, la détection de changement est effectuée en continu sur une série temporelle d’imagerie Landsat.

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Define input parameters
in_multidimensional = r"C:\data\Landsat_time_series.crf"
processing_band = "Band_4"
snapping_date = ""
max_num_segments = 10
vertex_count_overshoot = 3
spike_threshold = 0.9
recovery_threshold = 0.25
prevent_one_year_recovery = "PREVENT_ONE_YEAR_RECOVERY"
recovery_trend = "INCREASING_TREND"
min_num_observations = 6
best_model_proportion = 1.25
pvalue_threshold = 0.01
output_other_bands = "EXCLUDE_OTHER_BANDS"

# Execute
changeAnalysisRaster = arcpy.ia.AnalyzeChangesUsingCCDC(
	in_multidimensional, processing_band, snapping_date, max_num_segments,
	vertex_count_overshoot, spike_threshold, recovery_threshold, prevent_one_year_recovery,
	recovery_trend, min_num_observations, best_model_proportion, pvalue_threshold, output_other_bands)

# Save output
changeAnalysisRaster.save(r"C:\data\Landsat_ChangeAnalysis.crf")

Informations de licence

  • Basic: Requiert Image Analyst
  • Standard: Requiert Image Analyst
  • Advanced: Requiert Image Analyst

Rubriques connexes