ee.Algorithms.TemporalSegmentation.C2c

Một cách triển khai thuật toán Composite 2 Change (C2C). Thuật toán này phân đoạn chuỗi thời gian bằng cách sử dụng phương pháp khớp tuyến tính từng phần với số lượng phân đoạn tối thiểu cần thiết để khớp dữ liệu trong sai số bình phương gốc tối đa (RMSE) đã cho. Đối với mỗi dải đầu vào, thuật toán sẽ trả về các dải đầu ra sau:
  • changeDate (Mảng[Số thực]): Ngày phát hiện thấy các thay đổi. Định dạng ngày được xác định bằng đối số dateFormat.
  • value (Mảng[Số thực]): Giá trị của dải tần tại mỗi changeDate.
  • magnitude (Array[Double]): Sự khác biệt giữa các giá trị trước và sau ngày thay đổi. Độ lớn đầu tiên luôn là NaN.
  • duration (Array[Double]): Khoảng thời gian của phân đoạn trước ngày thay đổi. Thời lượng đầu tiên luôn là NaN.
  • rate (Array[Double]): Tốc độ thay đổi của dữ liệu trước ngày thay đổi. Tỷ lệ đầu tiên luôn là NaN.
Nếu includePostMetrics là true, thì các biến sau sẽ được đưa vào theo mỗi dải tần.
  • postMagnitude (Array[Double]): Mức chênh lệch tuyệt đối giữa giá trị ở đầu phân đoạn tiếp theo và giá trị tại ngày thay đổi. postMagnitude cuối cùng luôn là NaN.
  • postDuration (Array[Double]): Khoảng thời gian của phân đoạn sau ngày thay đổi. postDuration cuối cùng luôn là NaN.
  • postRate (Array[Double]): Tốc độ thay đổi của dữ liệu sau ngày thay đổi. postRate cuối cùng luôn là NaN.
Nếu includeRegrowth là true, thì các biến sau sẽ được đưa vào theo từng dải tần.
  • indexRegrowth (Array[Double]): Chênh lệch giữa giá trị tại ngày thay đổi và giá trị của 5 điểm dữ liệu sau đó.
  • recoveryIndicator (Array[Double]): Tỷ lệ giữa indexRegrowth và magnitude.
  • regrowth60 (Array[Double]): Khoảng thời gian chênh lệch giữa ngày thay đổi và điểm dữ liệu mà giá trị chuỗi bằng 60% giá trị trước khi có sự gián đoạn.
  • regrowth80 (Array[Double]): Khoảng thời gian chênh lệch giữa ngày thay đổi và điểm dữ liệu mà giá trị chuỗi bằng 80% giá trị trước khi có sự gián đoạn.
  • regrowth100 (Array[Double]): Khoảng thời gian giữa ngày thay đổi và điểm dữ liệu mà giá trị chuỗi bằng 100% giá trị trước khi có sự gián đoạn.
Xem: Hermosilla và cộng sự (2015) https://doi.org/10.1016/j.rse.2014.11.005 để biết thêm thông tin chi tiết về thuật toán ban đầu. Bạn có thể xem cách triển khai thuật toán trên GitHub: https://github.com/saveriofrancini/C2C-GEE Lời cảm ơn: FORWARDS và NextGenCarbon.

Trích dẫn: Txomin Hermosilla, Michael A. Wulder, Joanne C. White, Nicholas C. Coops, Daniel Coelho, Giovanni Ciatto, Noel Gorelick và Saverio Francini. Đang được chuẩn bị. Kết hợp hình ảnh, phát hiện thay đổi theo chuỗi thời gian và chỉ số thời gian: Triển khai thuật toán Composite2Change (C2C) trên Google Earth Engine.

Thuật toán này đang ở dạng bản xem trước và có thể thay đổi.

Cách sử dụngGiá trị trả về
ee.Algorithms.TemporalSegmentation.C2c(collection, dateFormat, maxErrorList, spikesToleranceList, spikeRemovalMagnitudeList, maxError, maxSegments, infill, spikesTolerance, spikeRemovalMagnitude, includePostMetrics, includeRegrowth, interpolateRegrowth, useRelativeRegrowth, negativeMagnitudeOnly)Hình ảnh
Đối sốLoạiThông tin chi tiết
collectionImageCollectionBộ sưu tập hình ảnh để chạy C2C.
dateFormatSố nguyên, mặc định: 0Biểu thị thời gian để sử dụng trong quá trình điều chỉnh: 0 = jDays, 1 = fractional years, 2 = unix time in milliseconds. Thời gian bắt đầu, thời gian kết thúc và thời gian nghỉ của từng phân đoạn thời gian sẽ được mã hoá theo cách này.
maxErrorListDanh sách, mặc định: {}Danh sách các giá trị lỗi tối đa (RMSE) sẽ được dùng cho từng dải tần. Nếu bạn không cung cấp, giá trị maxError sẽ được dùng cho tất cả các dải tần.
spikesToleranceListDanh sách, mặc định: {}Danh sách các giá trị dung sai đột biến sẽ được dùng cho từng dải tần. Giá trị 1 cho biết không có chế độ loại bỏ đột biến. Nếu bạn không cung cấp, giá trị spikesTolerance sẽ được dùng cho tất cả các dải tần.
spikeRemovalMagnitudeListDanh sách, mặc định: {}Danh sách các giá trị độ lớn loại bỏ nhiễu đột biến sẽ được dùng cho từng dải tần. Các giá trị tăng đột biến có cường độ lớn hơn giá trị này sẽ bị xoá. Nếu không được cung cấp, giá trị spikeRemovalMagnitude sẽ được dùng cho tất cả các dải tần.
maxErrorĐộ chính xác đơn, mặc định: 0,075RMSE tối đa được phép của đường khớp tuyến tính từng phần; kiểm soát độ nhạy phân đoạn.
maxSegmentsSố nguyên, mặc định: 6Số lượng phân đoạn tối đa được phép trong quỹ đạo vừa khít.
infillBoolean, mặc định: trueCho phép điền khoảng trống trong chuỗi thời gian để hỗ trợ việc điều chỉnh ổn định khi có giá trị bị thiếu (tức là giá trị bằng 0).
spikesToleranceSố thực dấu phẩy động, mặc định: 0,85Kiểm soát dung sai của các đột biến trong chuỗi thời gian. Dao động từ 0 đến 1. Giá trị 1 cho biết không có chế độ loại bỏ đột biến, giá trị càng thấp thì chế độ này càng mạnh.
spikeRemovalMagnitudeĐộ chính xác đơn, mặc định: 0,1Ngưỡng mức độ loại bỏ đột biến. Các điểm đột biến có cường độ (chênh lệch tuyệt đối so với mức trung bình của các điểm lân cận) cao hơn giá trị này sẽ bị xoá.
includePostMetricsBoolean, mặc định: trueTrả về các giá trị mô tả sau khi thay đổi (postMagnitude, postDuration, postRate).
includeRegrowthBoolean, mặc định: falseTrả về các chỉ số phục hồi/tăng trưởng trở lại (indexRegrowth, recoveryIndicator, regrowth60/80/100).
interpolateRegrowthBoolean, mặc định: trueNội suy tuyến tính chuỗi thời gian bằng các thay đổi được phát hiện trước khi tính toán các chỉ số tăng trưởng trở lại.
useRelativeRegrowthBoolean, mặc định: falseTính toán ngưỡng tái sinh theo các điều kiện tương đối so với điều kiện trước khi xảy ra sự cố.
negativeMagnitudeOnlyBoolean, mặc định: falseChỉ giữ lại những điểm ngắt được liên kết với các thay đổi tiêu cực (lọc theo hướng).