惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Recent Announcements
Recent Announcements
J
Java Code Geeks
雷峰网
雷峰网
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
腾讯CDC
博客园 - 司徒正美
B
Blog RSS Feed
博客园 - 三生石上(FineUI控件)
I
InfoQ
N
Netflix TechBlog - Medium
L
LangChain Blog
博客园_首页
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
MyScale Blog
MyScale Blog
美团技术团队
The Cloudflare Blog
爱范儿
爱范儿
Stack Overflow Blog
Stack Overflow Blog
博客园 - 聂微东
H
Help Net Security
Martin Fowler
Martin Fowler
V
Visual Studio Blog

博客园 - 迎风流泪的攻城狮,苦逼健忘的程序猿

arcmap天地图矢量注记显示效果优化 edge浏览器地址栏输入百度网址有tn后缀的解决办法 ArcGIS快速获取栅格影像边界的方法 windows第三方软件找不到映射的网络驱动器 关闭windows文件夹自动搜索 将用户文件夹(users)定向到c盘(系统盘) Excel 2003编辑和保存.bdf文件 wps使用FileDialog(msoFileDialogFolderPicker)问题解决 WPS和excel中取得列编号的方法 关于InSAR多视 一段时期内的所有哨兵精密轨道数据快捷下载方法 anydesk EXCLE查找重复字段 global mapper显示shp属性标注+属性编辑 20201231之类的八位数字设置日期格式 linux操作命令存档 赤橙黄绿蓝靛紫 金木水火钉铜砾 合并m3u8 2021牛年开年大吉 给jpg地图加上矢量行政边界 在cad中出现“代理对象不允许复制 因此写块操作被拒绝”的解决办法
【AI】 ArcGIS 字段计算器中对字段重复内容自动编号
迎风流泪的攻城狮,苦逼健忘的程序猿 · 2026-03-09 · via 博客园 - 迎风流泪的攻城狮,苦逼健忘的程序猿

在 ArcGIS 字段计算器中对字段重复内容自动编号,可通过 ‌Python 脚本结合字典计数‌ 实现。以下是推荐的通用方法,适用于 ArcMap 和 ArcGIS Pro(部分界面略有差异)。


‌核心思路‌

  • 使用全局字典记录每个字段值的出现次数。
  • 每次遇到相同值时,计数加1,并返回当前序号。
  • 支持多字段组合判重、编号补零等扩展需求。

‌操作步骤‌

  1. ‌打开属性表‌
    右键图层 → “打开属性表”。

  2. ‌添加编号字段‌
    点击表头“添加字段”,建议命名为 SerialNum(类型:短整型或长整型)。

  3. ‌启动字段计算器‌
    右键新字段 → “字段计算器”。

  4. ‌设置 Python 解析器‌
    勾选 ‌“Python”‌,并勾选 ‌“显示代码块”‌(ArcGIS Pro 中可能默认显示)。

  5. ‌输入脚本代码‌
    在 ‌“预逻辑脚本代码”‌ 区域粘贴以下任一方案:

    • ‌基础重复编号(首次为1,第二次为2,依此类推)‌

      unique_dict = {}

      def auto_number(value):

       global unique_dict

       unique_dict[value] = unique_dict.get(value, 0) + 1

       return unique_dict[value]

      • 从00001开始编码的情况

      unique_dict = {}
      def auto_number(field_value):
      global unique_dict
      unique_dict[field_value] = unique_dict.get(field_value, 0) + 1
      return "{:05d}".format(unique_dict[field_value])

    • ‌若需从0开始编号(适用于某些逻辑场景)‌

      unique_dict = {}

      def auto_number(value):

       global unique_dict

       unique_dict[value] = unique_dict.get(value, -1) + 1

       return unique_dict[value]

  6. ‌设置表达式‌
    在下方表达式框输入(假设判重字段为 TBBH):

    ⚠️ 将 TBBH 替换为你实际使用的字段名。

  7. 验证结果‌

    计算完成后,检查新字段是否按预期对重复值生成递增序号。例如:

    TBBHSerialNum
    A 1
    B 1
    A 2
    C 1
    B 2

posted on 2026-03-09 17:48  迎风流泪的攻城狮,苦逼健忘的程序猿  阅读(130)  评论()    收藏  举报