恼人的CON(转)

地图代数中的条件运算:

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))))))))))))

原文地址:https://www.cnblogs.com/yuxuetaoxp/p/1804963.html