ArcGIS中依据一列,然后在新建字段里自动连续编号

本文介绍了如何利用ArcPy库在ArcGIS中通过Shape_Area字段对特定要素类进行自动连续编号的方法,解决了依据特征ID或对象ID排序的问题,并提供了实现步骤及代码实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几天,自己在做土地项目时候,有个需求,就是想依据要Feature的shape_Area字段进行重新连续自动编号,在这里自己也学习了有时候网上说的VBA,static Icount as long   Icount=Icount+1,这个有时候不成功,后来发现网上有人说是因为这是依据你的feature的FId或者ObjectId吧,来进行排序的,这也算是解决我的疑惑。再说,现在ARcMap10.1弃用了VBA,所以自己按照网上说的,自己动手进行了实验,发现实现了我自己的需求,现在我整理一下,供大家一起学习一下。。
import arcpy
# Create update cursor for feature class 
# 第一参数是你的feature地址,最后一个是你要依据排序的字段,其他的参见arcmap的 py吧。。
rows = arcpy.UpdateCursor("C:/Users/Administrator/Desktop/15号/Export_Output.shp","","","","SHAPE_Area") 
i = 0
for row in rows:
    # 从表中的字段可以从行对象动态访问。
    i += 1
    #row.tt = i
    #BH是你想要自动连续编号的字段。注意数据类型
    row.setValue("BH", i)
    rows.updateRow(row)
    print (row.getValue("SHAPE_Area"))  

print "成功连续编号!"

### 更改 ArcGIS字段的数据类型 在 ArcGIS 中更改字段数据类型的流程较为复杂,因为直接修改现有字段的类型可能会导致数据丢失或不兼容。通常建议创建新字段并迁移数据。 #### 创建新字段并转移数据 当需要改变字段类型时,在属性表中执行如下操作: 1. 打开目标图层的属性表[^1]。 2. 停止任何正在进行的编辑会话以确保数据安全。 3. 添加一个新的字段用于存储转换后的数据,并指定所需的数据类型。 4. 使用字段计算器将旧字段中的值复制到新的字段内。 对于 Python 脚本用户来说,可以利用 `arcpy` 库来实现这一过程自动化处理: ```python import arcpy # 设置工作空间环境 arcpy.env.workspace = "path_to_your_workspace" # 定义输入要素类路径以及原字段名和新字段名 in_table = "your_feature_class" old_field = "OldFieldName" new_field = "NewFieldName" # 新建字段定义及其类型 field_type = "DOUBLE" # 或者 TEXT, LONG 等其他有效类型 try: # 如果不存在则添加新字段 if not any(f.name == new_field for f in arcpy.ListFields(in_table)): arcpy.AddField_management(in_table, new_field, field_type) # 更新游标遍历每一行记录并将数值从旧字段转移到新字段 with arcpy.da.UpdateCursor(in_table, [old_field, new_field]) as cursor: for row in cursor: try: row[1] = float(row[0]) cursor.updateRow(row) except ValueError: pass # 处理无法转换的情况 except Exception as e: print(e.message) ``` 此脚本展示了如何通过编程方式在一个地理数据库表增加一个双精度浮点数类型的列,并尝试把另一个字符串型或其他类型的列的内容转成数字形式存入其中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值