检测光谱变化

使用多波段影像进行变化检测的基础是逐个像素计算光谱差值。

通过比较多波段影像数据,可以识别光谱响应发生变化的区域,通常是在一段时间内。 在 ArcGIS AllSource 中,您可以使用各种方法来比较多波段图像。

内容窗格中选择多波段栅格时,光谱变化方法可用。

计算变化栅格函数可即时计算两个栅格图层之间的差异。 仅处理可见范围内的像素,如果缩小到超出输入数据的源分辨率,则像素将重新采样为更大尺寸以加快处理速度。 这是一种计算变化的方法,用于快速可视化和评估变化。 对于更复杂的工作流,可以将此函数与其他栅格函数结合使用。

计算变化栅格地理处理工具计算两个栅格数据集之间的差异,并生成一个包含变化信息的新栅格数据集。 对于更复杂的工作流,可以将此工具与其他工具结合使用。

变化检测向导将工具与函数相结合,引导您完成类别变化检测、像素值变化检测、光谱变化检测或时间序列变化检测的执行过程。 您可以比较两个栅格数据集或多维栅格数据集中的两个时间片。

变化检测向导

可从分析选项卡栅格组中的变化检测下拉按钮启动“变化检测”向导。 如果您不在 2D 地图场景中使用,该按钮将不可用。

配置窗格

变化检测向导中的第一个窗格是配置窗格,您可以在其中设置变化检测方法值。 要比较多波段数据集,请将变化检测方法设置为光谱变化

参数描述

由栅格转出

计算中要使用的第一个栅格。 要评估从时间 1(较早)到时间 2(较晚)的变化,请在此处输入时间 1 栅格。

转为栅格

计算中要使用的第二个栅格。 要评估从时间 1(较早)到时间 2(较晚)的变化,请在此处输入时间 2 栅格。

要比较多维数据集中的两个时间片,请输入多维栅格作为起始栅格参数。 配置窗格将使用下表中的参数进行更新。

参数描述

变量

要分析的变量。

尺寸

用于比较时间片的维度字段。

起始时间片

计算中要使用的第一个时间片。 要评估从时间 1(较早)到时间 2(较晚)的变化,请在此处输入时间 1 时间片。

终止时间片

计算中要使用的第二个时间片。 要评估从时间 1(较早)到时间 2(较晚)的变化,请在此处输入时间 2 时间片。

处理范围

输出的处理范围。

X 跳跃因子

x 跳跃因子,用于计算统计数据和变化栅格的直方图。

Y 跳跃因子

y 跳跃因子,用于计算统计数据和变化栅格的直方图。

光谱差值窗格

光谱差值窗格可用于指定如何比较输入的多波段影像,并指定要计算的变化信息的类型。

参数描述

差异类型

计算中使用的差异方法。

  • 光谱欧氏距离—两个多波段栅格之间的距离,其中,将每个像素的光谱视为一个矢量。 值越大表示图像之间的变化越大。 这是默认设置。
  • 光谱角度差值—两个多波段栅格之间的角度,其中,将每个像素的光谱视为一个矢量。 角度越大表示图像之间的变化越大。
  • 变化最大的波段—两个多波段栅格之间每个像素中变化最大的波段。

像元大小类型

  • 第一个 - 使用输入栅格的第一个像元大小。
  • 最小值 - 使用所有输入栅格中的最小像元大小。
  • 最大值 - 使用所有输入栅格中的最大像元大小。 这是默认设置。
  • 平均值 - 使用所有输入栅格的平均像元大小。
  • 最后一个 - 使用输入栅格的最后一个像元大小。

范围类型

  • 第一个 - 使用第一个输入栅格的范围来确定处理范围。

  • 交集 - 使用叠置像素的范围来确定处理范围。 这是默认设置。
  • 并集 - 使用所有栅格的范围来确定处理范围。
  • 最后一个 - 使用最后一个输入栅格的范围来确定处理范围。

单击预览,使用您指定的选项将预览图层添加到地图。 您可以修改选项,然后单击更新预览以使用新选项刷新预览图层。

注:

预览图层使用栅格函数生成。 缩小到超出源分辨率时,栅格函数将使用重采样像素大小来处理数据。 为确保预览在最终结果以您希望的方式显示,请缩放到数据的源分辨率。 右键单击预览图层,然后单击缩放至源分辨率

“差异分类”窗格

借助差异分类窗格,您可以实时探索地图中的像素光谱差异,并使用该信息对结果进行分类。

探索差异部分占据差异分类窗格的上半部分。

探索差异部分和交互式直方图
显示差异值直方图以及用于可视化变化的交互式控点。 打开此窗格后,默认情况下,系统会将 Preview_Mask 图层添加到地图中。 当您将最小值和最大值直方图控点拖动到直方图中的不同值处时,最小值和最大值之间的像素值会显示在地图上的 Preview_Mask 图层中。 所有其他像素值均会被掩膜且不可见。 如果地图中的所有其他图层均已关闭,可能更容易查看这些值。 您还可以修改 Preview_Mask 图层的符号系统。

要跳过分类并保留原始像素值差异,请取消选中对值差异进行分类参数,然后单击下一步转到下一个窗格。

使用交互式直方图生成类

要使用交互式直方图生成类,请完成以下步骤:

  1. 拖动直方图中的最小值和最大值控点,直到确定分析所需的重要变化信息(例如,强烈负变化)。
  2. 单击添加新类按钮 插入下拉箭头

    系统会将在直方图中选择的最小值和最大值作为最小和最大类值添加到窗格底部的输出分类表中。

  3. 在分类输出表中,将类值(整数)添加到 Output 字段中,并将类名称添加到 Class Name 字段中。

    这些项是必需项。

  4. 指定用于符号化类的颜色。

手动生成类

要手动添加类信息,而无需使用交互式直方图,请完成以下步骤:

  1. 单击生成按钮 配色方案
  2. 生成窗格中,将最大值参数设置为要生成的类数量。

    可以为与每个唯一值相关联的类指定基本名称。 您还可以为类符号系统指定配色方案和透明度。

  3. 单击确定
  4. 在分类输出表中,为每个类输入 MinimumMaximum 差异字段值。

单击预览,使用您指定的选项将预览图层添加到地图。 您可以修改选项,然后单击更新预览以使用新选项刷新预览图层。

注:

预览图层使用栅格函数生成。 缩小到超出源分辨率时,栅格函数将使用重采样像素大小来处理数据。 为确保预览在最终结果以您希望的方式显示,请缩放到数据的源分辨率。 右键单击预览图层,然后单击缩放至源分辨率

后处理窗格

可通过后处理窗格平滑结果并生成输出。

参数描述

平滑邻域

用于平滑结果的焦点邻域的大小(以像素行和列为单位)。

  • - 不执行平滑。 这是默认设置。
  • 3 × 3 - 基于 3 像素行乘 3 像素列的邻域平滑结果。
  • 5 × 5 - 基于 5 像素行乘 5 像素列的邻域平滑结果。
  • 7 × 7 - 基于 7 像素行乘 7 像素列的邻域平滑结果。

统计数据填充方法

  • 最小值 - 计算邻域内像素的最小值。
  • 最大值 - 计算邻域内像素的最大值。
  • 均值 - 计算邻域内像素的平均值。 这是默认设置。
  • 标准差 - 计算邻域内像素的标准差值。
  • 中值 - 计算邻域内像素的中值。
  • 众数 - 计算邻域内像素的众数值或出现次数最多的值。
  • 少数 - 计算邻域内像素的少数值或出现次数最少的值。

用于重新计算像素值以获得更平滑结果的统计方法。

结果另存为

指定要生成的输出类型。

  • 栅格数据集 - 将结果另存为栅格数据集。
  • 栅格函数模板 - 将结果另存为栅格函数模板,以用于其他处理。
  • 要素类 - 将结果另存为面要素类。

输出数据集

输出数据集的名称。 此参数仅在结果另存为被设置为栅格数据集要素类时可用。 如果输出为栅格数据集,请指定文件扩展名以生成受支持格式的栅格。

对于其他平滑选项,您可以对结果使用统计栅格函数。 在向导中选择作为平滑邻域,并对输出栅格数据集使用“统计”栅格函数。

单击预览,使用您指定的选项将预览图层添加到地图。 您可以修改选项,然后单击更新预览以使用新选项刷新预览图层。

注:

预览图层使用栅格函数生成。 缩小到超出源分辨率时,栅格函数将使用重采样像素大小来处理数据。 为确保预览在最终结果以您希望的方式显示,请缩放到数据的源分辨率。 右键单击预览图层,然后单击缩放至源分辨率

计算光谱角度差值

以下示例计算两个 Landsat 8 图像之间的光谱角度差值。

  1. 将两个 Landsat 8 图像添加到地图中。
  2. 内容窗格中选择较早的影像图层后,从影像选项卡的分析组中启动变化检测向导。

    配置窗格中,将变化检测方法设置为光谱变化

  3. 起始栅格参数设置为较早的栅格图层。
  4. 目标栅格参数设置为较新的栅格图层。
  5. 单击下一步
  6. 波段差异窗格中,将差异类型设置为光谱角度差值
    1. 像元大小类型参数设置为最大,并将范围类型参数设置为交点
  7. 单击下一步
  8. 分类差异窗格中,拖动最小直方图控点,直到预览掩膜中的结果约束至您感兴趣的区域。 将最大直方图控点保留为最大正值。 单击添加新类

    这减少了结果中背景或小角度、环境变化的存在。

  9. 在分类输出表中,将 Output 字段值设置为 1,为 Class Name 字段键入合适的名称,然后使用颜色选取器选择红色。
  10. 单击下一步
  11. 后处理窗格中,将平滑邻域参数设置为 3 x 3,并将统计数据填充方法参数设置为众数
  12. 对于输出数据集参数,输入 Spectral_angle_change.tif 并单击运行
  13. 将数据集添加到地图后,单击完成关闭变化检测向导。

在本主题中
  1. 变化检测向导