使用 CCDC 分析变化 (Image Analyst)

获得 Image Analyst 许可后可用。

描述

使用连续变化检测和分类 (CCDC) 方法评估像素值随时间的变化,并生成包含模型结果的变化分析栅格。

了解有关使用 CCDC 分析变化工作原理的详细信息

使用方法

  • 连续变化检测和分类 (CCDC) 算法是一种用于识别像素值随时间变化的方法。它最初是针对多波段 Landsat 影像的时间序列开发的,用于检测变化以及对在变化发生之前和之后的土地覆盖进行分类。该工具适用于来自支持的传感器的图像,也可用于检测单波段栅格中的变化。例如,该工具可用于检测 NDVI 栅格时间序列中的变化,以识别森林砍伐事件。

  • 该工具的输出是变化分析栅格中的模型信息,其中每个像素都将存储一组描述该像素随时间变化的历史记录的模型信息。变化分析栅格是多维栅格,其中每个剖切片是一个多波段栅格,由模型系数、均方根误差 (RMSE) 和观测的变化组成。可将其用作使用变化分析栅格检测变化工具的输入,该工具会生成一个包含每个像素的变化信息的栅格。

    输出中的剖切片数量与输入中的剖切片数量匹配。

  • 输入多维栅格必须至少包含 12 个剖切片,且跨度至少为 1 年。

  • 该工具的目的是提取观测要素中的变化,因此理想的输入多维影像应在整个时间内捕获一致的观测结果,并且不应包括大气或传感器干扰、云或云阴影。最佳做法是使用已归一化的数据,并且可以使用 QA 波段进行掩膜,例如包含云掩膜的 Landsat Collection 1 表面反射率产品。

  • 要探索在输出变化分析栅格中算得的变化,请创建时间分布图。为变化分析栅格中的各个位置生成图,以查看变化发生的时间。对于已变化像素,该图将在像素值随时间的拟合回归模型转换为新模型处显示中断,表示发生了变化。可将指针悬停在图中的点上,以识别模型的变化日期。

  • 输出变化分析栅格也可以用于分类。运行此工具生成变化分析栅格。然后,创建具有时间字段的训练样本,以指出样本表示土地覆盖的时间。接下来,运行训练工具生成分类器定义文件 (.ecd)。最后,使用 .ecd 文件和变化分析栅格作为输入运行分类栅格工具,以生成多维分类栅格。

  • 用于时间掩膜的波段参数指定用于云、云阴影和雪掩膜的波段。由于云阴影和雪在短波红外 (SWIR) 波段显得非常暗,而云和雪在绿色波段显得非常亮,因此建议掩膜 SWIR 和绿色波段的波段索引。

  • 更新拟合频率(以年为单位)参数定义使用新观测值更新时间序列模型的频率。频繁更新模型可能会导致高昂的计算成本,可能会使收益将至最低。例如,如果多维栅格中每年有 365 个剖切片或清晰的观测值,并且更新频率是针对每个观测值的,则与每年更新一次相比,该处理的计算成本将高出 365 倍,但准确性可能并不会提高。

  • 该工具可能需要很长时间才能运行,并且需要大量磁盘空间来存储结果。为缩短处理时间并减少存储空间量,建议执行以下步骤:

    • 关闭金字塔环境。取消选中环境窗格中的构建金字塔框或在 Python 中将环境设置为 NONE
    • 压缩环境设置为 LERC 并将最大误差设置为 0.000001。
    • 如果您希望在此工具的输出上运行使用变化分析检测变化多次,建议您在结果上构建多维转置。

  • 此工具可生成采用云栅格格式 (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

代码示例

AnalyzeChangesUsingCCDC 示例 1(Python 窗口)

本示例对 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")
AnalyzeChangesUsingCCDC 示例 2(独立脚本)

本示例对 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

相关主题