一、con函数简介
con函数是ArcGIS栅格计算器中的一种逻辑函数,主要功能是根据指定的条件,从两个栅格中选择相应的像元值来创建一个新的栅格。
Con (condition, true_raster, false_raster, {where_clause})
其中,condition为条件表达式,true_raster和false_raster为两个输入的栅格,如果condition中的像元值为True,则输出结果对应true_raster中的像元值,如果为False,则输出结果对应false_raster中的像元值。
在计算过程中,condition最终应该有的结果是一个布尔类型的栅格,即像元值只有两种情况True或False,但实际上,它也可以是除Null外的任何值。condition的表达式可以采用针对单个栅格的表达式,也可以采用针对两个栅格的表达式。
二、con函数的应用场景
con函数可以广泛应用于GIS数据处理中,以下是三个应用场景的具体介绍。
1、提取需要的像元值
con函数可以从两个栅格中选择需要的像元值,常用于提取栅格数据中值满足某一条件的像元值。
Con("DEM" > 100, "DEM", 0)
上述代码含义是在DEM栅格中,选择高于100米以上的地形高度值,并将结果输出为输出栅格的像元值,其余部分输出为0。
2、多条件选择
con函数可以同时根据多个条件判断选择像元值。
Con(("DEM" > 100) & ("Slope" < 15), "DEM", 0)
上述代码中,条件表达式同时判断了DEM值高于100米且坡度小于15度的像元,选择其对应值输出为输出栅格的像元值,其余部分输出为0。
3、批量处理
con函数可以实现批量处理,根据相同的条件表达式和不同的输入栅格,按一定的处理规则输出计算结果。
Con((IsNull("Land_coverA")) & ("Land_coverB" == 3), 10, 0)
上述代码含义是选择不为Null的LandCoverB值为3的像元,输出结果对应值为10,其余部分输出为0。
三、con函数应用的注意事项
在使用con函数时,需要注意以下几点。
1、条件表达式使用引号
在条件表达式中,字符串需要使用引号将其包括起来。
Con("Land_cover" == "forest", "DEM", 0)
2、条件表达式中使用不等于符号"<>"
在条件表达式中,不等于符号需要使用"<>"来代替"
Con("Land_cover" <> "water", "DEM", 0)
3、栅格数据类型一致
在使用con函数时,需要保证输入的两个栅格数据类型一致。
4、栅格数据范围相同
在使用con函数时,需要保证输入的两个栅格数据范围相同,否则将会出现像元偏移的问题。
四、总结
con函数是ArcGIS栅格计算器中的一种逻辑函数,可以应用于很多GIS数据处理中,特别是像元值选择方面。在使用时需要注意条件表达式的正确性、数据类型的一致性,以及数据范围的相同性,以免产生不必要的错误。