获得 Image Analyst 许可后可用。
使用方法
连续变化检测和分类 (CCDC) 算法是一种用于识别像素值随时间变化的方法。它最初是针对多波段 Landsat 影像的时间序列开发的,用于检测变化以及对在变化发生之前和之后的土地覆盖进行分类。该工具适用于来自支持的传感器的图像,也可用于检测单波段栅格中的变化。例如,该工具可用于检测 NDVI 栅格时间序列中的变化,以识别森林砍伐事件。
输入多维栅格必须至少包含 12 个剖切片,且跨度至少为 1 年。
建议在运行此工具之前使用 QA 波段除去云和云阴影掩膜。
要探索在输出变化分析栅格中算得的变化,创建时间分布图。为变化分析栅格中的各个位置生成图,以查看变化发生的时间。对于已变化像素,该图将在像素值随时间的谐波回归模型转换为新模型的模型中显示中断,表示发生了变化。可将指针悬停在图中的点上,以识别模型的变化日期。
输出变化分析栅格是多维栅格,其中每个剖切片是一个多波段栅格,由时间序列模型系数、均方根误差 (RMSE) 和观测的变化组成。输出中的剖切片数量与输入中的剖切片数量匹配。可将其用作使用变化分析栅格检测变化工具的输入,该工具会生成一个包含每个像素的变化信息的栅格。
输出变化分析栅格也可以用于分类。运行此工具生成变化分析栅格。然后,创建具有时间字段的训练样本,以指出样本表示土地覆盖的时间。接下来,运行训练工具生成分类器定义文件 (.ecd)。最后,使用 .ecd 文件和变化分析栅格作为输入运行分类栅格工具,以生成多维分类栅格。
用于时间掩膜的波段参数指定用于云、云阴影和雪掩膜的波段。由于云阴影和雪在短波红外 (SWIR) 波段显得非常暗,而云和雪在绿色波段显得非常亮,因此建议掩膜 SWIR 和绿色波段的波段索引。
更新拟合频率(以年为单位)参数定义使用新观测值更新时间序列模型的频率。频繁更新模型可能会导致高昂的计算成本,可能会使收益将至最低。例如,如果多维栅格中每年有 365 个剖切片或清晰的观测值,并且更新频率是针对每个观测值的,则与每年更新一次相比,该处理的计算成本将高出 365 倍,但准确性可能并不会提高。
该工具可能需要很长时间才能运行,并且需要大量磁盘空间来存储结果。为缩短处理时间并减少存储空间量,建议执行以下步骤:
此工具可生成采用云栅格格式 (CRF) 的多维栅格数据集。目前尚不支持其他输出格式。
语法
AnalyzeChangesUsingCCDC(in_multidimensional_raster, {bands}, {tmask_bands}, {chi_squared_threshold}, {min_anomaly_observations}, {update_frequency})
参数 | 说明 | 数据类型 |
in_multidimensional_raster | 输入多维栅格数据集。 | Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service |
bands [bands,...] (可选) | 用于变化检测的波段 ID。如果未提供波段 ID,则将使用输入栅格数据集中的所有波段。 | Long |
tmask_bands [tmask_bands,...] (可选) | 要在时间掩膜 (Tmask) 中使用的波段 ID。建议使用绿色波段和 SWIR 波段。如果未提供波段 ID,则不会进行任何掩膜。 | Long |
chi_squared_threshold (可选) | 卡方统计变化概率阈值。如果观测值算得的变化概率高于此阈值,则将其标记为异常,即潜在的变化事件。默认值为 0.99。 | Double |
min_anomaly_observations (可选) | 在事件被视为变化之前必须进行的最小连续异常观测次数。像素必须针对指定数量的连续时间片标记为异常,然后才能将其视为真正的变化。默认值为 6。 | Long |
update_frequency (可选) | 使用新观测值更新时间序列模型的频率(以年为单位)。默认值为 1。 | Double |
返回值
名称 | 说明 | 数据类型 |
out_ccdc_result | 输出云栅格格式 (CRF) 多维栅格数据集。 包含来自 CCDC 分析的模型信息的输出变化分析栅格。 | Raster |
代码示例
本示例对 30 年的每月 NDVI 栅格执行连续变化检测。变化检测中仅使用一个波段,卡方概率阈值为 0.90。
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
changeAnalysisRaster = arcpy.ia.AnalyzeChangesUsingCCDC(
"Monthly_NDVI_30_years.crf", [0], [], 0.90, 6, 1);
# Save output
changeAnalysisRaster.save(r"C:\data\NDVI_ChangeAnalysis.crf")
本示例对 Landsat 7 影像的时间序列执行连续变化检测,其中波段 3 和 7(在 2 和 6 处索引)用于雪、云和云阴影掩膜。
# Import system modules
import arcpy
from arcpy.ia import *
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")
# Define input parameters
in_multidimensional = r"C:\data\Landsat_time_series.crf"
change_bands = [0,1,2,3,4,5,6]
tmask_bands = [2,6]
chi_sq_threshold = 0.99
min_consecutive_observations = 3
update_frequency = 1
# Execute
changeAnalysisRaster = arcpy.ia.AnalyzeChangesUsingCCDC(
in_multidimensional, change_bands, tmask_bands, chi_sq_threshold,
min_consecutive_observations, update_frequency)
# Save output
changeAnalysisRaster.save(r"C:\data\Landsat_ChangeAnalysis.crf")
许可信息
- Basic: 需要 Image Analyst
- Standard: 需要 Image Analyst
- Advanced: 需要 Image Analyst