ee.Algorithms.TemporalSegmentation.C2c

Un'implementazione dell'algoritmo Composite 2 Change (C2C). Questo algoritmo segmenta una serie temporale utilizzando un adattamento lineare a tratti con il numero minimo di segmenti necessari per adattare i dati all'interno dell'errore quadratico medio (RMSE) massimo specificato. Per ogni banda di input, l'algoritmo restituisce le seguenti bande di output:
  • changeDate (Array[Double]): le date in cui vengono rilevate le modifiche. Il formato della data è determinato dall'argomento dateFormat.
  • value (Array[Double]): il valore della banda in ogni changeDate.
  • magnitude (Array[Double]): la differenza tra i valori prima e dopo una data di modifica. La prima magnitudo è sempre NaN.
  • duration (Array[Double]): la durata del segmento precedente alla data di modifica. La prima durata è sempre NaN.
  • rate (Array[Double]): il tasso di variazione dei dati precedenti alla data di modifica. Il primo tasso è sempre NaN.
Se includePostMetrics è true, le seguenti variabili vengono incluse per banda.
  • postMagnitude (Array[Double]): la differenza assoluta tra il valore all'inizio del segmento successivo e il valore alla data di modifica. L'ultima postMagnitude è sempre NaN.
  • postDuration (Array[Double]): la durata del segmento successivo alla data di modifica. L'ultima postDuration è sempre NaN.
  • postRate (Array[Double]): il tasso di variazione dei dati successivi alla data di modifica. L'ultimo postRate è sempre NaN.
Se includeRegrowth è true, le seguenti variabili vengono incluse per banda.
  • indexRegrowth (Array[Double]): la differenza tra il valore alla data di modifica e il valore cinque punti dati dopo.
  • recoveryIndicator (Array[Double]): il rapporto tra indexRegrowth e magnitude.
  • regrowth60 (Array[Double]): la differenza di tempo tra la data di modifica e il punto dati in cui il valore della serie è il 60% del valore precedente al disturbo.
  • regrowth80 (Array[Double]): la differenza di tempo tra la data di modifica e il punto dati in cui il valore della serie è l'80% del valore precedente al disturbo.
  • regrowth100 (Array[Double]): la differenza di tempo tra la data di modifica e il punto dati in cui il valore della serie è il 100% del valore precedente al disturbo.
Per ulteriori dettagli sull'algoritmo originale, consulta Hermosilla et al. (2015) https://doi.org/10.1016/j.rse.2014.11.005. L'implementazione dell'algoritmo è disponibile su GitHub: https://github.com/saveriofrancini/C2C-GEE Ringraziamenti: FORWARDS e NextGenCarbon.

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

Questo algoritmo è in anteprima ed è soggetto a modifiche.

UtilizzoRestituisce
ee.Algorithms.TemporalSegmentation.C2c(collection, dateFormat, maxErrorList, spikesToleranceList, spikeRemovalMagnitudeList, maxError, maxSegments, infill, spikesTolerance, spikeRemovalMagnitude, includePostMetrics, includeRegrowth, interpolateRegrowth, useRelativeRegrowth, negativeMagnitudeOnly)Immagine
ArgomentoTipoDettagli
collectionImageCollectionRaccolta di immagini su cui eseguire C2C.
dateFormatNumero intero, valore predefinito: 0La rappresentazione del tempo da utilizzare durante l'adattamento: 0 = giorni juliani, 1 = anni frazionari, 2 = tempo Unix in millisecondi. Le ore di inizio, fine e interruzione di ogni segmento temporale verranno codificate in questo modo.
maxErrorListElenco, valore predefinito: {}Elenco dei valori di errore massimo (RMSE) da utilizzare per ogni banda. Se non viene fornito, il valore maxError verrà utilizzato per tutte le bande.
spikesToleranceListElenco, valore predefinito: {}Elenco dei valori di tolleranza dei picchi da utilizzare per ogni banda. Un valore pari a 1 indica che non viene rimossa alcuna punta. Se non viene fornito, il valore spikesTolerance verrà utilizzato per tutte le bande.
spikeRemovalMagnitudeListElenco, valore predefinito: {}Elenco dei valori di magnitudo di rimozione dei picchi da utilizzare per ogni banda. I picchi con una magnitudo superiore a questo valore vengono rimossi. Se non viene fornito, il valore spikeRemovalMagnitude verrà utilizzato per tutte le bande.
maxErrorValore mobile, valore predefinito: 0,075RMSE massimo consentito dell'adattamento lineare a tratti; controlla la sensibilità della segmentazione.
maxSegmentsNumero intero, valore predefinito: 6Numero massimo di segmenti consentiti nella traiettoria adattata.
infillValore booleano, valore predefinito: trueConsente di riempire i vuoti all'interno della serie temporale per supportare un adattamento stabile in presenza di valori mancanti (ovvero valori uguali a 0).
spikesToleranceValore mobile, valore predefinito: 0,85Controlla la tolleranza dei picchi nella serie temporale. L'intervallo di valori va da 0 a 1. Un valore pari a 1 indica che non viene rimossa alcuna punta, mentre i valori inferiori sono più aggressivi.
spikeRemovalMagnitudeValore mobile, valore predefinito: 0,1Soglia di magnitudo di rimozione dei picchi. I picchi con una magnitudo (differenza assoluta dalla media dei vicini) superiore a questo valore vengono rimossi.
includePostMetricsValore booleano, valore predefinito: trueRestituisce i descrittori post-modifica (postMagnitude, postDuration, postRate).
includeRegrowthValore booleano, valore predefinito: falseRestituisce le metriche di ripristino/ricrescita (indexRegrowth, recoveryIndicator, regrowth60/80/100).
interpolateRegrowthValore booleano, valore predefinito: trueInterpolare linearmente la serie temporale utilizzando le modifiche rilevate prima di calcolare le metriche di ricrescita.
useRelativeRegrowthValore booleano, valore predefinito: falseCalcola le soglie di ricrescita in termini relativi alle condizioni precedenti al disturbo.
negativeMagnitudeOnlyValore booleano, valore predefinito: falseConserva solo i punti di interruzione associati a modifiche negative (filtraggio direzionale).