ArcGIS属性表排序

背景:现有一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()即可:
ArcGIS属性表排序
情况二: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

运行结果如下所示:
ArcGIS属性表排序

上一篇:C++创建对象的两种方法


下一篇:【力扣日记】448 找到所有数组中消失的数字