地图代数中的条件运算:
CON的语法:
Usage: (out_grid) CON (<condition>, <true_expression>, {<condition>, <true_expression>}, ...
{<condition>, <true_expression>}, {false_expression})
实例如下,将河流中NoData值变为0
con(isnull(D:\DB\河流.img),0,D:\DB\河流.img)
自动生成一个以输入栅格图像的外接边框为范围的栅格图像。如果需要赋值为0的NoData区域大于这个外接长方形,可在Single Output Map Algebra对话框Environment->General setting->Extent。
注:setnull的用法,作用是把栅格值设为NoData
Usage: (out_grid) SETNULL (<condition>, {grid | scalar | number})
setnull([raster] == 0 , [raster])
其中[raster]为要处理的栅格,后面的[raster]表示若前面条件不满足则用这个值来代替.
con函数可以嵌套,如下所示:
con ( [1991rockyIndex.img] < 1.1 , 1.0 , con ( [1991rockyIndex.img] > 1.1 & [1991rockyIndex.img] < 1.45 , 2.0 , con ( [1991rockyIndex.img] > 1.45 & [1991rockyIndex.img] < 1.75 , 3.0 , con ([1991rockyIndex.img] > 1.75 , 4.0 , [1991rockyIndex.img]))))
另一例:
outraster = con( [Extract_LUCC_GX_MCD12Q1.A2001001.Albers.500m.tif] == 0 , 1.07, con( [Extract_LUCC_GX_MCD12Q1.A2001001.Albers.500m.tif] == 1 , 5.13, con( [Extract_LUCC_GX_MCD12Q1.A2001001.Albers.500m.tif] == 2 , 5.13, con( [Extract_LUCC_GX_MCD12Q1.A2001001.Albers.500m.tif] == 3 , 5.13, con( [Extract_LUCC_GX_MCD12Q1.A2001001.Albers.500m.tif] == 4 , 5.13, con( [Extract_LUCC_GX_MCD12Q1.A2001001.Albers.500m.tif] == 5 , 4.14, con( [Extract_LUCC_GX_MCD12Q1.A2001001.Albers.500m.tif] == 6 , 6.17, con( [Extract_LUCC_GX_MCD12Q1.A2001001.Albers.500m.tif] == 7 , 5.43, con( [Extract_LUCC_GX_MCD12Q1.A2001001.Albers.500m.tif] == 8 , 5.43, con( [Extract_LUCC_GX_MCD12Q1.A2001001.Albers.500m.tif] == 9 , 1.08, con( [Extract_LUCC_GX_MCD12Q1.A2001001.Albers.500m.tif] == 10 , 1.08, con( [Extract_LUCC_GX_MCD12Q1.A2001001.Albers.500m.tif] == 11 , 1.08, 1.08))))))))))))