函数的基本语句:con(条件(语句),真(语句),假(语句))
若“真(语句)”或“假(语句)”存在缺失,则对应栅格单元的值赋值为空(NoData)。
三处语句均可以是表达式,布尔语句,值,嵌套条件语句,具体运用可根据实际需要灵活组合。
一、简单用法:
Con(in_conditional_raster, true_raster, {false_raster})
案例1:con(IsNull(raster),0,raster)
上述式子的意思是:栅格“raster“中有空值的地方赋值为0,无空值的地方仍然是原来栅格的值。下图是一个例子。
案例2:con(raster== -999,0,raster)
上述式子的意思是:栅格“raster“中等于-999的地方赋值为0,不等于-999的地方保持原来的值。
案例3:con(raster== 10,0)
上述式子的意思是:栅格“raster“中小于10的地方赋值为0,其他地方不输出任何值。
二、多条件应用:
如:Con(InRas1 < 5, Sin(InRas1), Con(InRas1 < 20, Cos(InRas1), Con(InRas1 > 50, 100, 0)))
植入布尔运算:
如:Con((InRas1 > 5) & (InRas1 < 10), 5, 100)
三、多图层、多条件、多语句应用:
多条件:
如:Con(InRas1 > 23, 5, Con(InRas1 > 20, 12, Con((InRas1 > 2) & (InRas1 < 17), Sin(InRas1), 100)))
多图层:
如:Con(InRas1 + InRas2 > 7, Sin(InRas1), Cos(InRas2))
如:Con(InRas1 < 9, InRas1 * InRas2 + Tan(InRas3), Cos(InRas1))
四、补充“栅格计算器“工具
Nodata+value = Nodata
即为:多个图层叠加,其中如果有一个图层的值为Nodata,则计算结果也是Nodata。