最近看到群里有同学提问,怎样给属性表中的字段按顺序进行编号,今天就给大家介绍一下方法~
目录
01 直接使用FID或OID字段
如果数据是shapefile格式,系统自带FID字段,一般从0开始,可以自行添加新字段,使新字段=FID+1,就可以从1开始编号。
如果数据是GDB格式,系统自带OBJECTID字段,从1开始,直接使用,或添加新字段,使新字段=OBJECTID。
02 FID或OID非顺序排列
如果你的OBJECTID并不是按顺序编号,如图:
只需要重新导出一下,OBJECTID字段就会自动从1开始编号。
直接使用该字段,或添加新字段均可。
03 使用Python语句进行排序
如果你的OBJECTID并不是按顺序编号,如图:
也可以使用Python语句进行自动排序。
解析程序:
Python
表达式:
autoIncrement()
代码块:
rec=0
def autoIncrement():
global rec
pStart = 1 #从1开始,可自行调整
pInterval = 1 #间隔为1,可自行调整
if (rec == 0):
rec = pStart
else:
rec = rec + pInterval
return rec
注意写代码时前面要加空格,符合Python代码的规则:
注意:此方法实际是按照FID或OID顺序进行编号的,如果按照某字段排序后进行编号,需要使用排序工具。
04 按照某字段排序后编号
如果需要按照某字段进行排序,比如长度,首先使用排序工具:
结果表中的OID字段就是按照长度进行排序并编号的。
后续可按照前面介绍的1、2、3种方法添加新字段后进行编号。
05 编号前自动填充为多位数
如果需要将编号设为更美观的相同位数,比如001,002,字段需要为文本型字段。
添加文本型字段,右键字段计算器:
代码:str( !OBJECTID!).zfill(3)
使用.zfill()函数定义需要的位数,结果如下:
关于属性表排序相关的小技巧就介绍到这里吧~~~
欢迎大家关注培训中心公众号:higispx
我们将持续不断地更新更多技术文章!