栅格数据集没有擦除功能,现在有栅格A和栅格B,怎么求两个栅格的差集C

arcgis如何求两个栅格数据集的差集_归零

具体步骤如下:

1、首先利用栅格计算器,把栅格B中的value全部赋值为0

输入语句:"栅格B" * 0

arcgis如何求两个栅格数据集的差集_归零_02

2 建立一个面图层:在ArcCataLog中选择存放面图层的文件夹,点击右键,选择Shapefile,选择要素类型为面,点击确定,即可建立新的面状图层。

arcgis如何求两个栅格数据集的差集_归零_03

arcgis如何求两个栅格数据集的差集_arcgis_04


arcgis如何求两个栅格数据集的差集_图层_05

3 单击编辑器,选择‘开始编辑’,选中 ‘处理范围D’ 图层后确定

arcgis如何求两个栅格数据集的差集_栅格_06


arcgis如何求两个栅格数据集的差集_arcgis_07

4 单击创建要素图标,然后在处理范围中单击‘处理范围0’图层(注意,如果不点的话,下面的构造工具就不会显示出来),选择矩形,绘制一个矩形(矩形能够覆盖住栅格A的范围)

arcgis如何求两个栅格数据集的差集_arcgis_08

5 绘制的面如下图所示,绘制完成之后单击‘停止编辑‘,保存编辑内容

arcgis如何求两个栅格数据集的差集_栅格_09

6 修改‘处理范围D’图层的填充颜色和边框颜色,结果如下:

arcgis如何求两个栅格数据集的差集_图层_10

7 对‘栅格B归零’图层进行栅格计算,单击‘环境’按钮,对‘处理范围’进行设置,选择‘与图层 处理范围D 相同’,单击确定开始进行栅格计算。

输入内容:   Con(IsNull("栅格B归零"),1,"栅格B归零")

arcgis如何求两个栅格数据集的差集_栅格_11


arcgis如何求两个栅格数据集的差集_归零_12

8 计算结果如下:‘栅格B扩展数据集中,栅格B的部分value为0,其他部分value为1,这是因为我们在步骤7的计算中将空值部分全部设为1的原因。

arcgis如何求两个栅格数据集的差集_arcgis_13

9 将栅格B扩展与栅格A进行栅格乘法运算,这样‘栅格B’的部分全部都为0值,而栅格A的其它部分还为栅格A的值,如下图所示

输入内容: "栅格B扩展" * "栅格A"

arcgis如何求两个栅格数据集的差集_图层_14

10 使用栅格计算器,筛选栅格值大于0的区域,就得到最终的结果,即栅格C。

输入内容:   Con("栅格乘集">0,"栅格乘集")

arcgis如何求两个栅格数据集的差集_arcgis_15

11 完事了,最终结果如下所示: