ArcGIS Pro基础:【按顺序编号】工具实现属性字段的编号自动赋值

本文介绍了ArcGIS中内置的自动顺序编号工具,无需编写代码即可对选定字段进行按名称格式(如AAA#)自动编号,操作简便,适合快速处理图斑的顺序需求。

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

本次介绍一个字段的自动排序编号赋值工具,基于arcgis 的字段计算器工具也可以实现类似功能,但是需要自己写一段代码实现,

相对而言不是很方便。

如下所示,该工具就是【编辑】下的【属性】下的【按顺序编号】工具。

在这里插入图片描述
其操作方法是:

点击该工具之后,先选中图斑,然后在1处的字段里选择需要处理的字段,1表示名称,也就是处理名称字段,2表示格式,这里选择的

是AAA#格式,#表示可以替代的数字,当然了,你也可以根据需要设置成其他格式,具体可以自己尝试一下,3表示起始值,也就是#表示的

起始值,4表示递增值,顾名思义,就是间隔区间,5表示确定此操作,6表示可以操作指向的顺序,这里选择的是直线。

在这里插入图片描述
如下所示,框线内就是输出结果,可以发现已完成自动编号。

在这里插入图片描述

<think>嗯,用户想在ArcGIS属性表中添加一个从1开始的唯一编号自动生成唯一ID。首先,我需要回忆一下ArcGIS中处理字段的方法。记得ArcGIS默认有一个ObjectID字段,但是用户可能希望自定义一个从1开始的连续ID,而且即使删除记录,这个ID也不会重复或者出现断号的情况。不过根据引用[1],ArcGIS的默认ID如果删除了要素,原始ID就不会再用了,新的ID会接着最大的号继续排。所以用户可能需要一个不受删除影响的字段。 接下来,用户需要的是从1开始自动生成的唯一ID,并且即使有删除操作,这个ID也能保持连续。可能需要手动创建一个字段,然后通过计算来生成这个编号。这时候应该用字段计算器,可能需要使用Python脚本或者Arcade表达式。 在字段计算器中,可能要用到行号或者某种递增的方式。比如,在计算时按顺序给每一行赋予一个递增的数字。但问题是,如果数据没有排序,行号可能不按用户想要的顺序排列。因此,可能需要先对数据进行排序,或者在计算时使用排序后的结果。 另外,引用[3]提到用CHAR_LENGTH来查询字段长度,这可能和计算字段有关联,但这里主要是生成ID。所以可能需要用Python的全局变量或者某种方法来累加数字。 步骤大概是这样的:首先添加一个长整型字段,然后使用字段计算器,选择Python解析器,用类似全局变量的方式累计赋值。或者使用排序后的数据,按顺序赋值。不过需要注意,每次计算都要保证编号的正确性,可能需要先对数据按某个字段排序,然后计算行号+1。 不过根据引用[1],如果用户自己设置标识码,可能会有断号的情况。所以可能需要使用字段计算器中的代码来生成连续的ID,不管是否有删除操作。例如,使用一个表达式,根据记录的创建顺序或者其他方式来生成。 总结可能的步骤:添加字段,使用字段计算器,用Python脚本生成从1开始的连续编号,可能需要先对数据进行排序以确保顺序正确。或者使用arcade的表达式,如$record,但可能需要调整起始值。 需要验证一下具体的代码,比如在Python解析器中,是否可以使用累加的方法,或者是否有内置的函数可以生成行号。例如,使用!FID! +1,但FID可能不连续,所以不能直接使用。因此,可能需要排序后重新编号,这时候可以用排序工具,然后计算新字段为排序后的行号。 或者,如果用户不介意每次添加新要素后手动更新ID,可以运行计算脚本来重新生成连续的ID。但这样不太自动化。有没有更好的方法呢? 可能还需要考虑数据版本和编辑会话的问题,确保在编辑过程中能够正确保存这些编号。最终,可能需要结合排序和字段计算器实现用户的需求。</think>在ArcGIS中为属性表添加从1开始的唯一连续编号,可以通过以下步骤实现: ### 方法一:使用字段计算器(Python脚本) 1. **添加新字段** - 打开属性表 → 表选项 → 添加字段 - 设置字段名(如`NewID`),类型选择**长整型** 2. **计算连续编号** - 右键点击`NewID`字段字段计算器 - 解析器选择**Python** - 勾选**显示代码块**,输入以下代码: ```python rec = 0 def autoID(): global rec rec += 1 return rec ``` - 下方表达式框输入:`autoID()` - 点击确定后编号将按记录顺序生成$1,2,3,...$ > *注意:此方法要求数据按所需顺序排列,建议先通过[排序工具](https://pro.arcgis.com/zh-cn/pro-app/latest/tool-reference/data-management/sort.htm)对数据进行排序[^2]。* --- ### 方法二:使用Arcade表达式(Pro版本) 1. 添加新字段后,在字段计算器中选择**Arcade** 2. 输入表达式: ```javascript var $record = 0; return $record + 1 ``` - 系统会自动生成基于当前视图的记录编号 --- ### 方法三:创建要素时自动生成 1. 在文件地理数据库中使用**数据库序列** - 通过SQL语句创建序列: ```sql CREATE SEQUENCE myseq START WITH 1 INCREMENT BY 1 ``` - 在字段计算器中使用`NEXT VALUE FOR myseq` --- ### 注意事项 1. 删除记录会导致后续新增记录的编号不连续(如删除ID=5的记录后,新记录会从当前最大ID+1开始)[^1] 2. 如需永久固定编号,建议导出数据为新图层 3. 在版本化编辑时,编号生成可能延迟到协调版本后
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值