三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

测绘日常:ArcGIS 字段计算器实现固定前缀 + 10 位补零 BSM 自动编号

测绘日常:ArcGIS 字段计算器实现固定前缀 + 10 位补零 BSM 自动编号

大家好,我是小妖,做数据库、土地确权、国土空间监测,土地变更调查入库中,BSM是必不可缺的重要一环,怎么快速补全标识码呢?

BSM 标识码规范拿年度变更来说:行政区 6 位编码 + 10 位顺序流水号,手工编号极易重号、缺号。这里呢,我就分享一段ArcGIS 字段计算器标准 Python 脚本,一键批量生成规范 BSM,供大家交流探讨。

具体操作如下:

一、前置条件

1.BSM 字段类型设:文本(字符型,长度≥16)

2.图层开启编辑状态,右键 BSM→字段计算器,勾选【显示代码块】,编程语言选:Python。

二、完整粘贴代码

预代码块(代码框内填入)

代码块:

rec = 0

def autoIncrement():

global rec

pStart = 1 # 起始值

pInterval = 1 # 间隔值

if (rec == 0):

rec = pStart

else:

rec += pInterval

return rec

下方表达式框粘贴:

python

'411104' + str(autoIncrement()).zfill(10)

三、灵活改参数

注意事项:

1. ‘411104’代表的是固定的字符,XX市为411104,可以根据需要替换;

2. zfill(10),括号内的10,代表的BSM是位数(可以自行修改位数),合计16位数。

3. 代码中 pStart = 1 # 起始值,根据需要改为5、10、100或者别的1000开始都可以;

4. pInterval = 1 # 间隔值跳号,可以是间隔2、3、5、8等都可以。

5. 更换区县代码:把'411104'替换成本地 6 位行政区代码即可;

四、内业避坑要点

1. 批量运算前备份图层 shp,防止编号出错无法撤回;

2. 分乡镇分片编号:先用【按属性选择】圈选本乡镇图斑,单独运行计算器,分区生成 BSM;

3. 字段千万别建成短整型、长整型,超长编码会丢位。

文末结束语

日常做勘测定界、三调变更,BSM 批量编号是刚需操作,收藏备用少加班。持续更新

ArcGIS10.2.2 实操干货,我是测绘打工人小妖。

路虽远,行则将至,加油!

← 返回列表