先看下目录
一、 ArcGlS中栅格计算器简介
栅格计算器位置及界面布局
二、 ArcGIS棚格计算器中Con()函数的使用
(一) Con()函数的用法
(二) ArcGIS 案例操作
三、 ArcGIS栅格计算器中Pick()函数的使用
(一) Pick()函数的用法
(二) ArcGIS 案例操作
一、ArcGlS中栅格计算器简介
栅格计算是栅格数数据空间分析中数据处理和分析中最为常用的方法,应用非常广泛,能够解决各种类型的问题,尤其重要的是,它是建立复杂的应用数学模型的基本模块。ArcGIS提供了非常友好的图形化栅格计算器,利用栅格计算器,不仅可以方便的完成基于数学运算符的栅格运算,以及基于数学函数的栅格运算,而且它还支持直接调用ArcGIS自带的栅格数据空间分析函数,并且可以方便的实现多条语句的同时输入和运行。
栅格计算器位置及界面布局
Spatial Analyst tools → Map Algebra → Raster Calculator
栅格计算器界面如图,主题包括五部分:
1. ArcGIS加载的栅格;
2. 运算符号;
3. 相关计算函数;
4. 输入表达式框;
5. 输出路径。
栅格计算器的运算对象是栅格,可以把他看作一个“数字”对象。
二、ArcGIS棚格计算器中Con()函数的使用
(一)Con()函数的用法
Con函数是比较重要,用的比较多的函数,因为我们经常会遇到条件分支语句。其表达式如下:
1. Con(A,B,C)
包括三个元,A为条件语句;B为条件语句为真时执行的操作;C为条件语句为假时执行的操作。若“真(语句)”或“假(语句)”存在缺失,则对应栅格单元的值赋值为空(NoData)。三处语句均可以是表达式、布尔语句、值、嵌套条件语句,具体运用可根据实际需要灵活组合。
类似于if-else语句。
1.Con(in_conditional_raster,in_true_raster_or_constant,{in_false_raster_or_constant},{where_clause})
其中:in_conditional_raster表示输入栅格,可以是整型或浮点型;in_true_raster_or_constant其值作为输出像元值的输入,可为整型或浮点型栅格,或为常数值;in_false_raster_or_constant其值作为输出像元值的输入,可为整型或浮点型栅格,或为常数值;where_clause决定输入像元为真或假的逻辑表达式,表达式遵循SQL表达式的一般格式。where_clause 的一个示例为"VALUE > 100"。
当然,还可以嵌套操作,即实现:if-elseif-else。
1. Con(A,B,Con(C,D,E))
相当于
1. if A:
2. B
3. elif C:
4. D
5. else:
6. E
(二)ArcGIS 案例操作
下图为从某地图网站获取的实时交通状况,存在RGB三个波段,看以看到主要包括三种拥堵状况,红色代表十分拥堵,黄色代表一般拥堵,绿色代表不拥堵。将其转为一个波段,分别用1,2,3数值代表不拥堵、一般拥堵和十分拥堵。
通过识别发现,红色对应的三个波段值为:R-G-B 239-1-1;黄色对应的三个波段值为:R-G-B 255-234-1319;绿色对应的三个波段值为:R-G-B 3-234-179
红色:
黄色:
绿色:
则用栅格计算器进行处理的表达式为:
Con(("Band_1_CompositeBands.tif" == 3) & ("Band_2_CompositeBands.tif" == 234) & ("Band_3_CompositeBands.tif" == 179),1,Con(("Band_1_CompositeBands.tif" == 255) & ("Band_2_CompositeBands.tif" == 234) & ("Band_3_CompositeBands.tif" == 131),2,Con(("Band_1_CompositeBands.tif" ==239 ) & ("Band_2_CompositeBands.tif" == 1) & ("Band_3_CompositeBands.tif" == 1),3,0)))
结果如图:
三、ArcGIS栅格计算器中Pick()函数的使用
(一)Pick()函数的用法
含义:位置栅格数据的值用于确定要从输入栅格列表中的哪一个栅格获取输出像元值。
1. Pick(in_position_raster,in_rasters_or_constants)
其中:in_position_raster用于输出值的栅格位置的输入栅格,输入可以是整型,也可以是浮点型栅格;in_rasters_or_constants表示将从中选择输出值的输入的列表,输入可以是整型栅格或浮点型栅格,也可使用数字作为输入。
(二)ArcGIS 案例操作
下图是对某地数字高程模型进行重分类后的影像,一共分为了五级。
在栅格计算器中输入如下公式:
1. Pick("DEM_Reclass",[1,2,3])
得到如下结果:
经过对比我们发现,该公式是把原图层的1,2,3色块区域提取出来。
而4,5色块区域则显示为无数据。
这个公式也是很简单的对吧,我们接下来是这提取一下4和5色块区域。
那我们接下来就在栅格计算器中输入如下公式试一下:
1. Pick("DEM_Reclass",[4,5])
得到如下结果:
再次经过对比我们发现,新生成的图层并不是把原图层的4,5色块区域提取出来,而是将原图层的1,2色块区域提取出来并赋值为4和5。
之前我们说过,除了可以使用数字进行输出意外,还可以使用栅格进行输出,如下图所示为所选地区的两张数字高程模型。
我们来看一下在栅格计算器中输入如下公式是什么效果:
1. Pick("DEM_Reclass",[“DEM1”])
经过对比我们发现结果为原图层与该地区数字高程模型在原图层1色块区域取了一个交集。
来源:GIS前沿
树谷资料库资源大全(1月6日更新)