背景:现有一shp面图层未进行编号排序
需求:按照图层内各要素面积大小进行,新建编号字段进行排序。
实现步骤:
情况一:若FID字段就是按照面积大小进行排列的,则直接使用字段计算器,bh=FID+1即可。
若是用python代码实现如下所示:
在字段计算器中选择显示代码块,解译程序选python,在预逻辑代码脚本中输入一下代码:
rec=-1
def autoIncrement():
global rec
pStart = 1 #从1开始,可修改
pInterval = 1 #依次加1,可修改
if (rec ==-1):
rec = pStart
else:
rec = rec + pInterval
return rec
在结果中输入autoIncrement()即可:
情况二:FID字段默认排序和需求的排序方式不同:
在python窗口中输入以下代码:
import arcpy
rows = arcpy.UpdateCursor("09","","","","TBMJ A")#09是图层名称;TBMJ是需要根据大小排序的面积字段;A表示升序;可修改
i=1
for row in rows:
row.BH_1=i
i=i+1
rows.updateRow(row)
del rows
del row
运行结果如下所示: