十三
第1节:通过 CCDC 了解时间分割
通过测试反射率时间序列中的结构断裂来检测像素级的光谱变化。在 Earth Engine 中,此过程称为“时间分割”,因为像素级时间序列根据唯一反射率周期进行分割。它通过将调和回归模型拟合到时间序列中的所有光谱带来实现这一点。模型拟合从时间序列的开头开始,并以“在线”方法及时向前推进以进行变化检测。这些系数用于预测未来的观测值,如果未来观测值的残差超过多次连续观测值的统计阈值,则算法会标记已发生变化。更改后,将拟合新的回归模型,并且该过程将持续到时间序列结束。
加载 CCDC 界面你将能够导航到任何位置,选择要绘制的 Landsat 光谱带或索引,然后单击地图以查看 CCDC 在你所在位置的拟合情况。点击。在本次练习中,我们将研究巴西朗多尼亚州的景观动态。我们可以使用左下角的面板输入以下坐标(纬度,经度):-9.0002,-62.7223。将在该位置添加一个点,并且地图将放大到该点。到达那里后,单击该点并等待底部的图表加载。
此示例显示第一个短波红外 (S WIR1)的 Landsat 时间序列波段(如蓝点)和时间段(如彩色线)使用 CCDC 默认参数运行。第一部分代表稳定的森林,在2006年中期突然被砍伐。该算法检测到这一变化事件并随后拟合一个新的片段,代表农业的新时间模式。随着新片段的安装,检测到其他后续模式,这些新片段可能对应于收获和再生周期或不同的作物。要研究随时间变化的动态,你可以单击图表中的点,它们对应的 Landsat 图像将根据为左侧面板中的 RGB 组合选择的可视化参数添加到地图中。目前,该面板中所做的更改不会立即生效,而是必须在单击地图之前进行设置。
特别注意每个细分市场的特点。例如,查看每个段的平均表面反射率值。明显斜坡的存在可能表明植被再生或退化等现象。每个片段中使用的谐波数量可以代表植被的季节性(自然的或由于农业实践)或景观动态(例如,季节性洪水)。
第二节运行
上面显示的工具对于理解特定点的时间动态非常有用。然而,我们可以通过首先对一组像素运行 CCDC 算法来对更大的区域进行类似的分析。Earth Engine 中的 CCDC 函数可以采用任何ImageCollection ,最好是噪声很少或没有噪声的 ImageCollection ,例如云和云阴影已被屏蔽的Landsat ImageCollection。CCDC 包含一个内部云屏蔽算法,对于漏云具有很强的鲁棒性,但数据越干净越好。为了简化流程,我们开发了一个函数库,其中包含用于生成输入数据和处理 CCDC 结果的函数。将此行代码粘贴到新脚本中:
var utils=require(
\''users/parevalo_bu/gee-ccdc-tools:ccdcUtilities/api\'');
对于当前练习,我们将获得 Landsat 4、5、7和8数据的 ImageCollection(集合2第1层),该数据已过滤云、云阴影、雾霾和辐射饱和像素。如果我们手动执行此操作,我们将检索每个卫星的每个ImageCollection ,应用相应的过滤器,然后将它们全部合并到一个ImageCollection中。相反,为了简化该过程,我们将使用函数getLandsat (包含在我们实用程序的“输入”模块中),然后将生成的ImageCollection过滤到2000年至2020年期间的一个小型研究区域。
getLandsat 函数将检索所有表面反射率波段(重命名并缩放为实际表面反射率单位)以及其他植被指数。为了简化练习,我们将仅选择要使用的表面反射带,并将以下代码添加到脚本中:
var studyRegion=ee.Geometry.Rectangle([
[-63.9533, -10.1315],
[-64.9118, -10.6813]
]);
// Define start, end dates and Landsat bands to use.
var startDate=\''2000-01-01\'';
var endDate=\''2020-01-01\'';
var bands=[\''BLUE\'', \''GREEN\'', \''RED\'', \''NIR\'', \''SWIR1\'', \''SWIR2\''];
// Retrieve all clear, Landsat 4,