栅格计算器小知识集锦

http://blog.sina.com.cn/s/blog_7e88bdd80100u9gv.htmlhtml

 

1.栅格计算器中,表达式中的图层名要用[]括起来,运算符先后都要加空格,否则会出错。函数

2.Con命令工具

命令使用方法有两种lua

一是使用栅格计算工具(Spatial Analyst/Raster Calculator),输入栅格表达式后执行栅格计算(Evaluate)(下图)。htm

 

 

表达式输入方法为:con(条件, 条件为真时的值,条件为假时的值)blog

具体如con(isnull([dem]),0,[dem])或con( [dem] == 0,0,[dem])等。get

若是要执行多个条件语句,则在每一个con语句结束时用分号(;)隔开。it

二是直接调用ArcToolbox下的con工具(Spatial Analyst Tools/Conditional/Con)。与ArcToolbox中的其余工具相似,定义好相关参数后便可执行该命令。此外,在ArcToolbox中该工具名称上单击右键能够进行批处理(Batch)。io

3.Nibbl命令ast

    命令使用方法有两种:

一是使用栅格计算工具(Spatial Analyst/Raster Calculator),输入栅格表达式后执行栅格计算(Evaluate)。

表达式输入方法为:nibble(mask图层, 原始数据)

具体如nibble ([dem_Nodata]),[dem])等。

二是直接调用ArcToolbox下的Nibble工具(Spatial Analyst Tools/Generalization/Nibble)。与ArcToolbox中的其余工具相似,定义好相关参数后便可执行该命令。此外,在ArcToolbox中该工具名称上单击右键能够进行批处理(Batch)。



 

须要注意的是:一般咱们认为输入图层应该为原始图层,mask图层应为通过处理的图层,但在不少状况下,这种作法得不到咱们想要的结果,把图层顺序调整一下,就能获得咱们想要的结果。至于缘由,本人目前也不是很清楚,若是遇到问题,能够试着这样去处理。

4.DEM无值区或零值区替换

对于像元值是整型的DEM,用Con命令和Nibble命令相结合的方法便可实现。

对于像元值是浮点型的DEM,在Con命令的基础上,配合使用focalmean函数便可实现。

focalmean函数的表达式输入方法以下:

focalmean (原始数据,邻域形状 ,邻域大小)

具体如focalmean([dem],rectangle,5,5)等。

Con命令和focalmean函数配合使用时,在栅格计算工具(Spatial Analyst/Raster Calculator)中,输入以下栅格表达式:

con(isnull([dem]), focalmean([dem],rectangle,5,5),[dem])



 

实际应用中,根据数据状况,应适当修改focalmean中邻域的形状和大小。

相关文章
相关标签/搜索