操作方法

操作方法:在 ArcGIS Pro 的属性表中排序和创建按顺序排列的 ID 字段

Last Published: January 29, 2024

描述

在 ArcGIS Pro 的属性表中排序和创建按顺序排列的 ID 字段是一种组织数据的有效方法。 图层中的最大值和最小值,或者最重要要素和最不重要要素都将变得易于识别。

解决方案或解决方法

以下步骤将介绍如何使用以下三个不同的选项在 ArcGIS Pro 的属性表中排序和创建按顺序排列的 ID 字段:升序排序或降序排序函数、计算字段函数和 Python 脚本。

使用升序排序或降序排序函数

  1. 内容窗格中,右键单击要素图层,然后单击属性表
带有“属性表”选项的“内容”窗格的菜单。
  1. 右键单击属性表中的所需字段。
  2. 选择升序排序降序排序自定义排序。 随即创建按顺序排列的字段。
“表视图”窗格和三个排序选项。

使用“计算字段”函数

Note:
This option only generates sequential numbers for unsorted data based on the OBJECTID order. If the data is sorted, the generated numbers are not sequential.
  1. 打开所需要素的属性表。
  2. 右键单击属性表中的所需字段。
  3. 选择计算字段以打开计算字段窗口。
表视图窗格的菜单和“计算字段”选项。
  1. 计算字段窗口中,单击帮助程序类型,然后选择函数
“计算字段”窗格和“帮助程序类型”菜单。
  1. 双击序号函数。 将生成表达式代码块部分,用于创建序号,如下图所示: 完整示例代码显示在下一部分的末尾。
使用 Sequential Number() 函数配置的“计算字段”表达式部分。
  1. 单击确定。 基于 OBJECTID 字段的序号将在计算字段函数指定的字段中创建。

通过 Python 窗口使用 Python 脚本

以下步骤演示了如何使用 autoIncrement() ArcPy 函数创建序号:

  1. 打开 Python 控制台。 单击分析选项卡,单击 Python 旁边的向下箭头,然后选择 Python 窗口
“分析”选项卡和 Python 下拉菜单。
  1. 导入 ArcPy 库。
import arcpy
  1. 设置所需要素、要进行排序的字段以及要填充序号的字段。
sortFeat  = r'[Geodatabase]\[Feature]'
sortField = '[Base Field to sort]'
idField   = '[Field to populate sequential numbers]'
Note:
To create the sequential numbers in a new field, create a new field and specify the new field name in the idField segment. Refer to ArcGIS Pro: Add Field for more information on creating a new field.
  1. 定义计数器参数。
rec = 0
  1. 启动 autoIncrement() 函数。
def autoIncrement():
    global rec
    pStart    = 1
    pInterval = 1
    if (rec == 0):
        rec = pStart
    else:
        rec += pInterval
    return rec
  1. 使用序号填充字段,并删除多余的行。
rows = arcpy.UpdateCursor(sortFeat, "", "", "", sortField + " A")

for row in rows:
    row.setValue(idField, autoIncrement())
    rows.updateRow(row)

del row, rows

这是本文中使用的完整脚本。

import arcpy

sortFeat  = r'C:\Users\\Northridge.gdb\Stations' 
sortField = 'OBJECTID' 
idField   = 'Station' 
rec=0

def autoIncrement():
    global rec
    pStart    = 1 
    pInterval = 1 
    if (rec == 0): 
        rec = pStart 
    else: 
        rec += pInterval 
    return rec

rows = arcpy.UpdateCursor(sortFeat, "", "", "", sortField + " A")

for row in rows:
    row.setValue(idField, autoIncrement())
    rows.updateRow(row)

del row, rows
  1. 将光标放在表达式的末尾,然后在键盘上按两次 Enter 以运行脚本。

文章 ID: 000018847

接收通知并查找新问题或常见问题的解决方案

从我们全新的 AI 聊天机器人中获得简明答案和视频解决方案。

下载 Esri 支持应用程序

相关信息

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项
Esri Support AI Chatbot