ArcGIS里函数的使用比较方便工作和学习:
round()函数可以实现取几位数的功能,下面以取整数为例进行演示:
取整公示:round(字段/整数,0)*整数=字段。
如下所示,先打开数据,然后打开属性表,找到【选择】工具下的【按属性选择】,选择要操作的【图层】;
咱们就取【OBJECTID】字段的“所有偶数”,在输入框里输入以下公式:【round( [OBJECTID] /2,0)*2= [OBJECTID]】
其中,round表示四舍五入取位数,0表示取整数。
右侧高亮表示被选中的该字段所有偶数。
也可以找到【OBJECTID】是4的整倍数的所有结果,
只需要把【2】换成【4】即可,也就是【round( [OBJECTID] /4,0)*4= [OBJECTID]】,如下图所示为处理结果。
换个字段【BSGC】,取其所有为100整数倍的值,
同样的操作,输入【round( [BSGC] /100,0)*100= [BSGC]】,结果如下:
这里介绍另外一个方法:int函数,这个也是取整的,具体用法如下:
只需要输入公式:【int( [BSGC] /100) *100= [BSGC]】,一样可以得到同样的结果,比round函数少了一个【,0】。
PS:有的人说int函数只能在MDB数据库的数据中使用,round可以在shp和GDB数据库,但是我试验了一下,没有区别呢,都可以成功,是不是ArcGIS版本的问题。
结果如下所示:
补充一下avg函数,也就是取平均值函数的使用方法:
如果我们需要选取大于某个字段平均值的需求:
可以使用此函数。
我们先演示一种比较传统简单的办法 :
如下,先知道【BSGC】,通过右键,统计其平均值,记录下平均值为【2236.503444】.
打开【按属性选择】,输入如下的公式,共筛选出大于平均值的数据2919条。
第二种方法,使用avg求平均值函数,输入以下公式:【[BSGC] >(select avg( [BSGC] )from 等高线)】,共筛选出大于平均值的数据2919条,与第一种方法的结果一致。但是显然这种方法的比较复杂。