在镶嵌数据集中使用函数执行算法
此流程将介绍如何在镶嵌数据集中组合使用函数来创建 NDVI。虽然存在一个可通过应用比例和偏移来显示的 NDVI 函数,但如果您需要原始 NDVI 值(范围为 -1.0 到 1.0),则必须执行下列步骤。
您应用函数的对象将是镶嵌数据集,而不是镶嵌数据集中的各个栅格。
NDVI 的算法为:
NDVI = ((IR - R)/(IR+R))其中
IR = 红外波段
R = 红色波段
这将使“函数”选项卡的布局以下列方式呈现。
本流程将会根据各次输入和操作进行拆分。下方列出了计算算法时应遵循的顺序,但如果您已将各函数链在一起,则将从结果开始朝着输入方向执行计算(如上图所示)。
- 定义波段输入:IR 和 R
- 将二者相减:IR - R
- 将二者相加:IR + R
- 将上述两个结果相除:(IR - R) / (IR + R)
设置镶嵌数据集
您将对镶嵌数据集应用函数。因此,您需要创建一个镶嵌数据集并添加所有栅格数据。我们假定,这些数据具有相同的红外波段和红色波段。在本例中,假设红外波段为波段 1,红色波段为波段 2。
- 创建镶嵌数据集。
-
向镶嵌数据集中添加栅格数据。
请确保构建金字塔。
创建算术函数链
-
将镶嵌数据集添加至 ArcMap 显示画面中。
您可以现在添加镶嵌数据集,也可以最后添加镶嵌数据集。添加到 ArcMap 后,可以在“影像”图层中查看成果。如果您刚刚完成创建,则镶嵌数据集可能已经在 ArcMap 中打开。
- 打开目录窗口 并导航至该镶嵌数据集。
- 右键单击该镶嵌数据集,然后单击属性。
-
单击函数选项卡。
将列出仅包含一个镶嵌函数的函数链(如下所示)。默认情况下,列出该镶嵌函数是因为这属于一个镶嵌数据集并且其中的所有栅格正在被镶嵌。完成镶嵌后才能开始应用算法。
-
右键单击镶嵌函数,然后单击插入 > 算术函数。
插入函数时,会将其插入到所单击函数的上方。
这将打开栅格函数属性 对话框,可以在其中设置该函数的各个选项。
-
单击运算下拉箭头,然后单击除。
各输入将保持不变。关闭此对话框时输入的函数将添加到函数链中。
- 单击常规选项卡。
- 在函数名称文本框中输入除。
-
单击输出像素类型下拉箭头,然后单击 32 位浮点型。
该算法的输出值将介于 -1 和 1 之间。您需要指定像素类型;否则输出像素值可能与输入像素值相等(如 8 位)。
-
单击确定。
由于该算术函数需要两个输入值,因此将“除”函数添加到函数链的顶端后还会再添加一个镶嵌函数。
- 右键单击函数链中上方的镶嵌函数,然后单击插入 > 算术函数。
-
单击运算下拉箭头,然后单击减。
各输入将保持不变。关闭此对话框时输入的函数将添加到函数链中。
- 单击常规选项卡。
- 在函数名称文本框中输入减。
- 单击输出像素类型下拉箭头,然后单击 32 位浮点型。
-
单击确定。
“减”函数将被添加到“除”函数之后,同时,两个名为“镶嵌函数”的输入将被添加到“减”函数的下方。
- 右键单击位于函数链底部的“镶嵌函数”,然后单击插入 > 算术函数。
-
单击运算下拉箭头,然后单击加。
各输入将保持不变。关闭此对话框时输入的函数将添加到函数链中。
- 单击常规选项卡。
- 在函数名称文本框中输入加。
- 单击输出像素类型下拉箭头,然后单击 32 位浮点型。
-
单击确定。
“加”函数将被添加到底部,并与“减”函数处于同一级别,同时,两个名为“镶嵌函数”的输入将被添加到“加”函数之下。
定义算术函数的输入
要用于计算的函数已添加完毕;接下来,您必须对输入进行标识。这些输入指 IR 和 R 波段 - 分别指定为波段 1 和波段 2(如前文中所定义的值)。要执行此操作,请使用“提取波段”函数。
-
右键单击“减”函数下位于上方的镶嵌函数,然后单击插入 > 提取波段函数。
- 在波段 ID 文本框中输入 1。
- 单击常规选项卡。
- 在函数名称文本框中输入提取 IR。
-
单击确定。
“提取 IR”函数将被添加到函数链中,同时将“镶嵌函数”作为输入添加到该函数之下。
- 右键单击“减”函数下的另一个镶嵌函数,然后单击插入 > 提取波段函数。
- 在波段 ID 文本框中输入 2。
- 单击常规选项卡。
- 在函数名称文本框中输入提取红色。
-
单击确定。
“提取红色”函数将被添加到函数链中,同时将“镶嵌函数”作为输入添加到该函数之下。
-
请为“加”函数下的输入重复以上步骤。
最终,您将得到与本主题开头部分的函数链类似的函数链。
- 单击确定关闭镶嵌数据集属性 对话框。
添加完以上函数后,您可以预览镶嵌后的图像。由于您对镶嵌数据集的统计值进行过更改,因此可能需要重新计算,以保证输出像素为 32 位。计算时可以使用计算统计值工具。
您还可以使用“标识”工具或“像素检查器”检查像素值。