计算变化栅格 (影像分析工具)
汇总
计算两个栅格数据集之间的绝对、相对、分类或光谱差异。
用法
该工具可对两个栅格进行比较,生成包含两者之间差异的新栅格。 例如,使用此工具可以了解碳储量像素值在 2001 年至 2020 年间如何变化,或查看 2010 年至 2015 年土地覆被如何变化。
以下计算类型可用于计算变化栅格:
差异—起始栅格参数中的像素值和目标栅格参数中的像素值之间的数学差值或两者做减法。
\(Output \space = \space (To \space Raster) \space - \space (From \space Raster)\)
相对差异—像素值的差异(考虑被比较值的数量)。
\(Output \space = \space (To \space Raster \space - \space From \space Raster) \space / \space max(To \space Raster, \space From \space Raster)\)
类别差异—两个类别或主题栅格之间的差异,输出显示两个栅格之间发生的每一种类转变。
光谱欧氏距离—两个多波段栅格之间的欧氏距离,其中每个像素被视为一个矢量。 值越大表示图像之间的变化越大。
光谱角度差—两个多波段栅格之间的光谱角度,其中每个像素被视为一个矢量。 角度越大表示图像之间的变化越大。
变化最大的波段—在两个多波段栅格之间,每个像素上变化贡献最大的波段。
类别差异计算类型的输出是一个带属性表的栅格数据集。 该表包含过渡类型(例如,从森林到城市)、每种过渡类型中包括的像素数以及每种过渡类型的估算面积。 面积的计算方式是像素大小乘以每种过渡类型的像素数。 单位与输入栅格数据的线性单位相匹配。
在计算两个分类栅格之间的差异时,可将分析限制为特定的类。 例如,要可视化城市发展,可在起始类列表中包括所有类,而在目标类列表中仅包括城市类。 结果将包含所有有助于城市类别的过渡。
如果输入栅格包含不同的像元大小或范围,则可以在像元大小和输出范围环境设置中分别指定像元大小和范围。
当计算变化方法参数设置为类别差异时,起始栅格和目标栅格参数必须均具有包含 Value 或 ClassValue 字段的关联栅格属性表。 相应类值的类名用于输出类传输名称。 该工具使用标准字段类名称 CLASS_NAME 或 CLASSNAME。 如果这些字段名称不存在,您可以使用起始栅格的类名称字段和目标栅格的类名称字段参数来对其进行定义。
参数
|
标注
|
说明
|
数据类型
|
|
起始栅格
|
待分析的初始栅格或较早栅格。
|
Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; String
|
|
目标栅格
|
待分析的最终栅格或较晚栅格。 将要与初始栅格进行比较的栅格。
|
Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; String
|
|
计算变化方法
(可选)
|
指定要在两个栅格之间执行的计算类型。
差异—将计算栅格中像素值之间的数学差或减法。 这是默认设置。
相对差异—将在考虑被比较值数量的同时,计算像素值的差异。
类别差异—将计算两个类别或主题栅格之间的差异。 输出包含在两个栅格之间发生的类过渡。
光谱欧氏距离—将计算两个多波段栅格的像素值之间的欧氏距离。
光谱角度差—将计算两个多波段栅格的像素值之间的光谱角度。 输出以弧度为单位。
变化最大的波段—将计算两个多波段栅格之间每个像素中变化最大的波段。
|
String
|
|
起始类
(可选)
|
将包括在计算中的起始栅格参数中的类名称列表。 如果未提供任何类,将包括所有类。
当计算变化方法参数设置为类别差异时,此参数处于活动状态。
|
String
|
|
目标类
(可选)
|
将包括在计算中的目标栅格参数中的类名称列表。 如果未提供任何类,将包括所有类。
当计算变化方法参数设置为类别差异时,此参数处于活动状态。
|
String
|
|
过滤方法
(可选)
|
指定要在输出栅格中分类的像素。 当计算变化方法参数设置为类别差异时,此参数处于活动状态。
仅变化像素—仅类别更改的像素在输出中分类。 类别未更改的像素被归类为名为“无变化”的类。
仅不变像素—仅类别未更改的像素在输出中分类。 类别更改的像素被归类为名为“无变化”的类。
所有像素—所有像素将在输出中分类。 这是默认设置。
|
String
|
|
过渡类颜色
(可选)
|
指定用于符号化输出类的颜色。 当像素由一种类类型变为另一种类类型时,输出像素颜色将代表初始类类型、最终类类型或两者的混合。
当计算变化方法参数设置为类别差异时,此参数处于活动状态。
|
String
|
|
起始栅格的类名称字段
(可选)
|
用于在起始栅格参数值中存储类名称的字段。 该工具将自动搜索要使用的 ClassName 字段或 Class_Name 字段。
如果输入不包含这些标准字段名称,请使用此参数。
|
Field
|
|
目标栅格的类名称字段
(可选)
|
用于在目标栅格参数值中存储类名称的字段。 该工具将自动搜索要使用的 ClassName 字段或 Class_Name 字段。
如果输入不包含这些标准字段名称,请使用此参数。
|
Field
|
返回值
|
标注
|
说明
|
数据类型
|
|
输出栅格
|
输出变换栅格数据集。
|
Raster
|
ComputeChangeRaster(from_raster, to_raster, {compute_change_method}, {from_classes}, {to_classes}, {filter_method}, {define_transition_colors}, {from_classname_field}, {to_classname_field})
|
名称
|
说明
|
数据类型
|
|
from_raster
|
待分析的初始栅格或较早栅格。
|
Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; String
|
|
to_raster
|
待分析的最终栅格或较晚栅格。 将要与初始栅格进行比较的栅格。
|
Raster Dataset; Raster Layer; Mosaic Dataset; Mosaic Layer; Image Service; String
|
|
compute_change_method
(可选)
|
指定要在两个栅格之间执行的计算类型。
DIFFERENCE—将计算栅格中像素值之间的数学差或减法。 这是默认设置。
RELATIVE_DIFFERENCE—将在考虑被比较值数量的同时,计算像素值的差异。
CATEGORICAL_DIFFERENCE—将计算两个类别或主题栅格之间的差异。 输出包含在两个栅格之间发生的类过渡。
SPECTRAL_EUCLIDEAN_DISTANCE—将计算两个多波段栅格的像素值之间的欧氏距离。
SPECTRAL_ANGLE_DIFFERENCE—将计算两个多波段栅格的像素值之间的光谱角度。 输出以弧度为单位。
BAND_WITH_MOST_CHANGE—将计算两个多波段栅格之间每个像素中变化最大的波段。
|
String
|
|
from_classes
[from_classes,...]
(可选)
|
将包括在计算中的 from_raster 参数中的类名称列表。 如果未提供任何类,将包括所有类。
当 compute_change_method 参数设置为 CATEGORICAL_DIFFERENCE 时,此参数处于启用状态。
|
String
|
|
to_classes
[to_classes,...]
(可选)
|
将包括在计算中的 to_raster 参数中的类名称列表。 如果未提供任何类,将包括所有类。
当 compute_change_method 参数设置为 CATEGORICAL_DIFFERENCE 时,此参数处于启用状态。
|
String
|
|
filter_method
(可选)
|
指定要在输出栅格中分类的像素。 当 compute_change_method 参数设置为 CATEGORICAL_DIFFERENCE 时,此参数处于启用状态。
|
String
|
|
define_transition_colors
(可选)
|
指定用于符号化输出类的颜色。 当像素由一种类类型变为另一种类类型时,输出像素颜色将代表初始类类型、最终类类型或两者的混合。
当 compute_change_method 参数设置为 CATEGORICAL_DIFFERENCE 时,此参数处于启用状态。
AVERAGE—输出类的颜色为起始(初始)类和目标(最终)类颜色的平均值。 这是默认设置。
FROM_COLOR—输出类的颜色与起始(初始)类的颜色匹配。
TO_COLOR—输出类的颜色与目标(最终)类的颜色匹配。
|
String
|
|
from_classname_field
(可选)
|
用于在 from_raster 参数值中存储类名称的字段。 该工具将自动搜索要使用的 ClassName 字段或 Class_Name 字段。
如果输入不包含这些标准字段名称,请使用此参数。
|
Field
|
|
to_classname_field
(可选)
|
用于在 to_raster 参数值中存储类名称的字段。 该工具将自动搜索要使用的 ClassName 字段或 Class_Name 字段。
如果输入不包含这些标准字段名称,请使用此参数。
|
Field
|
返回值
|
名称
|
说明
|
数据类型
|
|
out_raster_dataset
|
输出变换栅格数据集。
|
Raster
|
代码示例
ComputeChangeRaster 示例 1(Python 窗口)
本示例计算 2000 年至 2020 年间 NDVI 像素值的差异。
# Import system modules
import arcpy
from arcpy.ia import *
NDVIchange = arcpy.ia.ComputeChangeRaster(
"NDVI_2000.tif", "NDVI_2020.tif", "DIFFERENCE")
NDVIchange.save("C:/Data/NDVI_2000_2020.tif")
ComputeChangeRaster 示例 2(独立脚本)
本示例计算 2000 年至 2020 年间 NDVI 像素值的相对差异。
# Import system modules
import arcpy
from arcpy.ia import *
# Define input parameters
FromRaster = "C:/Data/NDVI_2000.tif"
ToRaster = "C:/Data/NDVI_2020.tif"
ChangeType = "RELATIVE_DIFFERENCE"
# Run - calculate the relative difference in NDVI from 2000 to 2020
NDVIrelativeChange = arcpy.ia.ComputeChangeRaster(
FromRaster, ToRaster, ChangeType)
# Save output
NDVIrelativeChange.save("C:/Data/Relative_NDVI_2000_2020.tif")
ComputeChangeRaster 示例 3(独立脚本)
本示例计算 2000 年至 2020 年间的土地覆被变化,仅提取从 Forest、Agriculture、Water 或 Barren 类更改为 Urban 类的像素。
# Import system modules
import arcpy
from arcpy.ia import *
LandcoverChange = arcpy.ia.ComputeChangeRaster(
"Landcover_2000.tif", "Landcover_2020.tif", "CATEGORICAL_DIFFERENCE",
"'Forest';'Agriculture';'Water';'Barren'", "'Urban'",
"CHANGED_PIXELS_ONLY", "AVERAGE")
# Save output
LandcoverChange.save("C:/Data/Landcover_2000_2020.tif")
环境
像元对齐, 像元大小, 压缩, 当前工作空间, 范围, 地理变换, NoData, 输出配置关键字, 输出坐标系, 并行处理因子, 金字塔, 栅格统计, 重采样方法, 临时工作空间, 捕捉栅格, 切片大小
许可信息
- 基本: 需要 Image Analyst
- 标准: 需要 Image Analyst
- 高级: 需要 Image Analyst