ee.Algorithms.TemporalSegmentation.C2c

Implémentation de l'algorithme Composite 2 Change (C2C). Cet algorithme segmente une série temporelle à l'aide d'un ajustement linéaire par morceaux avec le nombre minimal de segments requis pour ajuster les données dans l'erreur quadratique moyenne (EQM) maximale donnée. Pour chaque bande d'entrée, l'algorithme renvoie les bandes de sortie suivantes :
  • changeDate (Array[Double]) : dates auxquelles des modifications sont détectées. Le format de date est déterminé par l'argument dateFormat.
  • value (Array[Double]) : valeur de la bande à chaque changeDate.
  • magnitude (Array[Double]) : différence entre les valeurs avant et après une date de modification. La première magnitude est toujours NaN.
  • duration (Array[Double]) : durée du segment précédant la date de modification. La première durée est toujours NaN.
  • rate (Array[Double]) : taux de variation des données précédant la date de modification. Le premier taux est toujours NaN.
Si includePostMetrics est défini sur "true", les variables suivantes sont incluses par bande.
  • postMagnitude (Array[Double]) : différence absolue entre la valeur au début du segment suivant et la valeur à la date de modification. La dernière postMagnitude est toujours NaN.
  • postDuration (Array[Double]) : durée du segment suivant la date de modification. La dernière postDuration est toujours NaN.
  • postRate (Array[Double]) : taux de variation des données suivant la date de modification. Le dernier postRate est toujours NaN.
Si includeRegrowth est défini sur "true", les variables suivantes sont incluses par bande.
  • indexRegrowth (Array[Double]) : différence entre la valeur à la date de modification et la valeur cinq points de données après.
  • recoveryIndicator (Array[Double]) : rapport entre indexRegrowth et magnitude.
  • regrowth60 (Array[Double]) : différence de temps entre la date de modification et le point de données où la valeur de la série correspond à 60 % de la valeur avant la perturbation.
  • regrowth80 (Array[Double]) : différence de temps entre la date de modification et le point de données où la valeur de la série correspond à 80 % de la valeur avant la perturbation.
  • regrowth100 (Array[Double]) : différence de temps entre la date de modification et le point de données où la valeur de la série correspond à 100 % de la valeur avant la perturbation.
Pour en savoir plus sur l'algorithme d'origine, consultez Hermosilla et al. (2015) https://doi.org/10.1016/j.rse.2014.11.005. L'implémentation de l'algorithme est disponible sur GitHub : https://github.com/saveriofrancini/C2C-GEE. Remerciements : FORWARDS et NextGenCarbon.

Citation: Txomin Hermosilla, Michael A. Wulder, Joanne C. White, Nicholas C. Coops, Daniel Coelho, Giovanni Ciatto, Noel Gorelick et Saverio Francini. En préparation. Image compositing, time-series change detection and temporal metrics: Implementation of the Composite2Change (C2C) algorithm on Google Earth Engine.

Cet algorithme est en version bêta et peut être modifié.

UtilisationRenvoie
ee.Algorithms.TemporalSegmentation.C2c(collection, dateFormat, maxErrorList, spikesToleranceList, spikeRemovalMagnitudeList, maxError, maxSegments, infill, spikesTolerance, spikeRemovalMagnitude, includePostMetrics, includeRegrowth, interpolateRegrowth, useRelativeRegrowth, negativeMagnitudeOnly)Image
ArgumentTypeDétails
collectionImageCollectionCollection d'images sur lesquelles exécuter C2C.
dateFormatEntier, valeur par défaut : 0Représentation temporelle à utiliser lors de l'ajustement : 0 = jDays, 1 = années fractionnaires, 2 = heure Unix en millisecondes. Les heures de début, de fin et de pause de chaque segment temporel seront encodées de cette manière.
maxErrorListListe, valeur par défaut : {}Liste des valeurs d'erreur maximale (EQM) à utiliser pour chaque bande. Si aucune valeur n'est fournie, la valeur maxError est utilisée pour toutes les bandes.
spikesToleranceListListe, valeur par défaut : {}Liste des valeurs de tolérance des pics à utiliser pour chaque bande. La valeur 1 indique qu'aucun pic n'est supprimé. Si aucune valeur n'est fournie, la valeur spikesTolerance est utilisée pour toutes les bandes.
spikeRemovalMagnitudeListListe, valeur par défaut : {}Liste des valeurs de magnitude de suppression des pics à utiliser pour chaque bande. Les pics dont la magnitude est supérieure à cette valeur sont supprimés. Si aucune valeur n'est fournie, la valeur spikeRemovalMagnitude est utilisée pour toutes les bandes.
maxErrorFloat, valeur par défaut : 0,075EQM maximale autorisée de l'ajustement linéaire par morceaux ; contrôle la sensibilité de la segmentation.
maxSegmentsEntier, valeur par défaut : 6Nombre maximal de segments autorisés dans la trajectoire ajustée.
infillBooléen, valeur par défaut : truePermet de combler les écarts dans la série temporelle pour assurer un ajustement stable en présence de valeurs manquantes (c'est-à-dire des valeurs égales à 0).
spikesToleranceFloat, valeur par défaut : 0,85Contrôle la tolérance des pics dans la série temporelle. Plage de valeurs : de 0 à 1. La valeur 1 indique qu'aucun pic n'est supprimé, tandis que les valeurs inférieures sont plus agressives.
spikeRemovalMagnitudeFloat, valeur par défaut : 0,1Seuil de magnitude de suppression des pics. Les pics dont la magnitude (différence absolue par rapport à la moyenne des voisins) est supérieure à cette valeur sont supprimés.
includePostMetricsBooléen, valeur par défaut : trueRenvoie les descripteurs post-modification (postMagnitude, postDuration, postRate).
includeRegrowthBooléen, valeur par défaut : falseRenvoie les métriques de récupération/repousse (indexRegrowth, recoveryIndicator, regrowth60/80/100).
interpolateRegrowthBooléen, valeur par défaut : trueInterpole linéairement la série temporelle à l'aide des modifications détectées avant de calculer les métriques de repousse.
useRelativeRegrowthBooléen, valeur par défaut : falseCalcule les seuils de repousse en termes relatifs par rapport aux conditions avant la perturbation.
negativeMagnitudeOnlyBooléen, valeur par défaut : falseNe conserve que les points d'arrêt associés à des modifications négatives (filtrage directionnel).