之前我们讲解过ArcGIS棚格计算器中Con()、lsNull()、SetNull()和lsNull()函数。今天我们来讲解Diff()函数和InList()函数使用。
目录
一、 ArcGlS中栅格计算器简介
栅格计算器位置及界面布局
二、ArcGIS栅格计算器中Diff()函数的使用
(一) Diff()函数的用法
(二) ArcGIS 案例操作
三、ArcGIS栅格计算器中InList()函数的使用
(一) InList()函数的用法
(二) ArcGIS 案例操作
一、ArcGlS中栅格计算器简介
栅格计算是栅格数数据空间分析中数据处理和分析中最为常用的方法,应用非常广泛,能够解决各种类型的问题,尤其重要的是,它是建立复杂的应用数学模型的基本模块。ArcGIS提供了非常友好的图形化栅格计算器,利用栅格计算器,不仅可以方便的完成基于数学运算符的栅格运算,以及基于数学函数的栅格运算,而且它还支持直接调用ArcGIS自带的栅格数据空间分析函数,并且可以方便的实现多条语句的同时输入和运行。
栅格计算器位置及界面布局
Spatial Analyst tools → Map Algebra → Raster Calculator
栅格计算器界面如图,主题包括五部分:
1. ArcGIS加载的栅格;
2. 运算符号;
3. 相关计算函数;
4. 输入表达式框;
5. 输出路径。
栅格计算器的运算对象是栅格,可以把他看作一个“数字”对象。
二、ArcGIS栅格计算器中Diff()函数的使用
(一)Diff()函数的用法
以逐个像元比较的方式,确定第一个输入的哪些值与第二个输入的值在逻辑上不同。如果两个输入的值不同,则使用第一个输入的值作为输出。如果两个输入的值相同,则输出为0。借此我们就可以通过该函数来判断两张栅格影像有哪些不一样的地方。
1. Diff(in_raster_or_constant1,in_raster_or_constant2)
其中:in_raster_or_constant1该输入将与第二个输入相比较,假如已为其他参数指定栅格,则可将数字用作此参数的输入。为了能够为两个输入指定数字,像元大小和范围必须先在环境中进行设置;in_raster_or_constant2该输入将与第一个输入相比较,假如已为其他参数指定栅格,则可将数字用作此参数的输入。为了能够为两个输入指定数字,像元大小和范围必须先在环境中进行设置。
(二)ArcGIS 案例操作
我们拿2020年(左)和2018年(右)贵州省的土地利用遥感监测数据来举例。
我们在栅格计算器中输入如下函数:
1. Diff("guizhou_2018","guizhou_2020")
得到如下结果:
我们可以看到2018年和2020年贵州省土地利用的变化是很少的,只有零星的几处。
利用识别工具我们知道2018年和2020年不相同的栅格,被赋值为2018年那一期的像元值。
三、ArcGIS栅格计算器中InList()函数的使用
(一)InList()函数的用法
含义:逐个像元来确定第一个输入栅格中的哪些值同样包含在该组的其他输入栅格中。对于每个像元,只要在其他输入栅格之一中找到第一个输入栅格的值,则将该值分配给输出栅格。如果没有找到,则输出像元将为NoData。
1. InList(in_raster_or_constant,in_raster_or_constants)
其中:in_raster_or_constant要在输入列表中查找的值所属的输入栅格,假如已为其他参数指定栅格,则可将数字用作此参数的输入。为了能够为两个输入指定数字,像元大小和范围必须先在环境中进行设置。in_raster_or_constants将在其中查找第一个输入的像元值的输入栅格列表,假如已为其他参数指定栅格,则可将数字用作此参数的输入。为了能够为两个输入指定数字,像元大小和范围必须先在环境中进行设置。
(二)ArcGIS 案例操作
下面这个图层是贵州省DEM重分类之后的一个数据,其图层名称为:Reclass_DEM_Clip。
我们设置好分析环境之后,在栅格计算器中输入如下公式:
1. InList("Reclass_DEM_Clip",[1,3,5])
得到结果如下:
通过对比我们可以知道:该函数可以让我们较为方便的从栅格影像中把不连贯的部分提取出来,该函数和Pick()函数非常的相像,但也有很大的不同,相对来说,InList()函数在栅格的提取方面比Pick()函数使用起来更灵活一些。