ee.Algorithms.TemporalSegmentation.C2c

Implementacja algorytmu Composite 2 Change (C2C). Ten algorytm segmentuje ciąg czasowy za pomocą dopasowania liniowego odcinkami z minimalną liczbą segmentów potrzebną do dopasowania danych w ramach podanego maksymalnego średniego błędu kwadratowego (RMSE). W przypadku każdego pasma wejściowego algorytm zwraca te pasma wyjściowe:
  • changeDate (Array[Double]): daty, w których wykryto zmiany. Format daty jest określany przez argument dateFormat.
  • value (Array[Double]): wartość przedziału w każdym dniu zmiany.
  • magnitude (Array[Double]): różnica między wartościami przed datą zmiany i po niej. Pierwsza wielkość jest zawsze wartością NaN.
  • duration (Array[Double]): czas trwania segmentu poprzedzającego datę zmiany. Pierwszy czas trwania to zawsze NaN.
  • rate (Array[Double]): tempo zmian danych poprzedzających datę zmiany. Pierwsza stawka to zawsze NaN.
Jeśli wartość parametru includePostMetrics to „true”, dla każdego pasma uwzględniane są te zmienne:
  • postMagnitude (Array[Double]): bezwzględna różnica między wartością na początku następnego segmentu a wartością w dniu zmiany. Ostatnia wartość postMagnitude to zawsze NaN.
  • postDuration (Array[Double]): czas trwania segmentu po dacie zmiany. Ostatnia wartość postDuration to zawsze NaN.
  • postRate (Array[Double]): tempo zmian danych po dacie zmiany. Ostatnia wartość postRate to zawsze NaN.
Jeśli wartość parametru includeRegrowth to „true”, dla każdego pasma uwzględniane są te zmienne:
  • indexRegrowth (Array[Double]): różnica między wartością w dniu zmiany a wartością 5 punktów danych później.
  • recoveryIndicator (Array[Double]): stosunek wartości indexRegrowth do wartości magnitude.
  • regrowth60 (Array[Double]): różnica czasu między datą zmiany a punktem danych, w którym wartość serii wynosi 60% wartości sprzed zakłócenia.
  • regrowth80 (Array[Double]): różnica czasu między datą zmiany a punktem danych, w którym wartość serii wynosi 80% wartości sprzed zakłócenia.
  • regrowth100 (Array[Double]): różnica czasu między datą zmiany a punktem danych, w którym wartość serii wynosi 100% wartości sprzed zakłócenia.
 Więcej informacji o oryginalnym algorytmie znajdziesz w artykule Hermosilla i wsp. (2015) https://doi.org/10.1016/j.rse.2014.11.005. Implementację algorytmu znajdziesz na GitHubie: https://github.com/saveriofrancini/C2C-GEE. Podziękowania: FORWARDS i NextGenCarbon.

Cytat: Txomin Hermosilla, Michael A. Wulder, Joanne C. White, Nicholas C. Coops, Daniel Coelho, Giovanni Ciatto, Noel Gorelick i Saverio Francini. W trakcie przygotowania. Łączenie obrazów, wykrywanie zmian w ciągach czasowych i metryki czasowe: implementacja algorytmu Composite2Change (C2C) w Google Earth Engine.

Ten algorytm jest w wersji podglądowej i może ulec zmianie.

WykorzystanieZwroty
ee.Algorithms.TemporalSegmentation.C2c(collection, dateFormat, maxErrorList, spikesToleranceList, spikeRemovalMagnitudeList, maxError, maxSegments, infill, spikesTolerance, spikeRemovalMagnitude, includePostMetrics, includeRegrowth, interpolateRegrowth, useRelativeRegrowth, negativeMagnitudeOnly)Obraz
ArgumentTypSzczegóły
collectionImageCollectionKolekcja obrazów, na których ma być uruchomiony model C2C.
dateFormatLiczba całkowita, domyślnie: 0Reprezentacja czasu, która ma być używana podczas dopasowywania: 0 = dni juliańskie, 1 = ułamkowe lata, 2 = czas systemu UNIX w milisekundach. W ten sposób będą kodowane czasy rozpoczęcia, zakończenia i przerwy dla każdego segmentu czasowego.
maxErrorListLista, domyślna: {}Lista wartości maksymalnego błędu (RMSE), które mają być używane w przypadku każdego pasma. Jeśli nie podasz tej wartości, zostanie ona użyta w przypadku wszystkich pasm.
spikesToleranceListLista, domyślna: {}Lista wartości tolerancji skoków, które mają być używane w przypadku każdego pasma. Wartość 1 oznacza brak usuwania skoków. Jeśli nie podasz tej wartości, w przypadku wszystkich pasm zostanie użyta wartość spikesTolerance.
spikeRemovalMagnitudeListLista, domyślna: {}Lista wartości wielkości usuwania skoków, które mają być używane w przypadku każdego pasma. Skoki o wartości powyżej tej wartości są usuwane. Jeśli nie podasz tego atrybutu, wartość spikeRemovalMagnitude zostanie użyta w przypadku wszystkich pasm.
maxErrorLiczba zmiennoprzecinkowa, domyślnie: 0,075Maksymalny dopuszczalny błąd RMSE dopasowania odcinkowo liniowego; kontroluje czułość segmentacji.
maxSegmentsLiczba całkowita, domyślnie: 6Maksymalna liczba segmentów dozwolonych w dopasowanej trajektorii.
infillWartość logiczna, domyślnie: trueUmożliwia wypełnianie luk w ciągu czasowym, aby zapewnić stabilne dopasowanie w przypadku brakujących wartości (czyli wartości równe 0).
spikesToleranceLiczba zmiennoprzecinkowa, domyślnie: 0,85Określa tolerancję skoków w serii czasowej. Ma zakres od 0 do 1. Wartość 1 oznacza brak usuwania skoków, a niższe wartości są bardziej agresywne.
spikeRemovalMagnitudeLiczba zmiennoprzecinkowa, domyślnie: 0,1Próg wielkości usuwania skoków. Skoki o wartości (bezwzględna różnica od średniej sąsiadów) powyżej tej wartości są usuwane.
includePostMetricsWartość logiczna, domyślnie: trueZwraca deskryptory po zmianie (postMagnitude, postDuration, postRate).
includeRegrowthWartość logiczna, domyślnie: falseZwraca wskaźniki odzyskiwania/odbudowy (indexRegrowth, recoveryIndicator, regrowth60/80/100).
interpolateRegrowthWartość logiczna, domyślnie: truePrzed obliczeniem wskaźników ponownego wzrostu przeprowadź liniową interpolację szeregu czasowego za pomocą wykrytych zmian.
useRelativeRegrowthWartość logiczna, domyślnie: falseOblicza progi odrastania w odniesieniu do warunków sprzed zaburzenia.
negativeMagnitudeOnlyWartość logiczna, domyślnie: falseZachowuje tylko punkty przerwania powiązane z ujemnymi zmianami (filtrowanie kierunkowe).