您的位置:

ArcGIS栅格计算器con函数的应用

一、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数据处理中,特别是像元值选择方面。在使用时需要注意条件表达式的正确性、数据类型的一致性,以及数据范围的相同性,以免产生不必要的错误。