操作方法

如何在 ArcGIS Pro 中标识重复值或唯一值

Last Published: July 28, 2020

摘要

属性表通常包含具有公共值和唯一值的字段。 因此,有时需要对重复值进行标识以在图层之间创建组,或标识唯一值以隔离要素。

过程

要标识重复值有以下四种不同的方法:

使用“查找相同项”工具

查找相同项工具将创建一个新的独立表。 该工具标识要素的 ObjectID 并创建两列,一列包含所选要素的 ObjectID 值,另一列包含数字用以标记相同或唯一要素的数字。 相同的记录具有相同的 FEAT_SEQ 值,而不同的记录具有顺序值。 FEAT_SEQ 值与输入记录的 ID 没有关系。 有关详细信息,请参阅 ArcGIS Pro:查找相同项(数据管理)

使用“计算字段”函数

isDuplicate() Python 解析器函数可以通过分配特定值来填充新字段,从而将值标识为重复或者唯一。 例如,唯一值和首次出现的多个值均填充为 0,所有重复值都标记为 1。 以下步骤介绍了为此目的如何应用函数:

  1. 整型或整型数据类型创建一个新字段。 有关详细信息,请参阅 ArcGIS Pro:将数据添加到现有表
  2. 右键单击新建字段的标题,并选择计算字段
  3. 计算字段窗格中,确保选择了正确的参数,并且表达式类型设置为 Python 3
计算字段参数的图像
  1. 在表达式文本框中,插入以下脚本:
isDuplicate(!Field_Name_To_Verify!)
  1. 代码块文本框中,插入以下脚本:
uniqueList = [] def isDuplicate(inValue): if inValue in uniqueList: return 1 else: uniqueList.append(inValue) return 0

使用独立的 Python 脚本

该脚本将创建一个新字段,并使用重复值的数字填充该字段。

  1. 导入所需的模块。
import arcpy
  1. 指定所需的工作空间、要素、输入字段和输出字段参数。
arcpy.env.workspace=r"D:\test.gdb" infeature="sample_feature" field_in="sample_field" field_out="COUNT_"+field_in arcpy.AddField_management(infeature,field_out,"SHORT")
  1. 创建一个包含所选字段中所有值的列表。
lista=[] cursor1=arcpy.SearchCursor(infeature) for row in cursor1: i=row.getValue(field_in) lista.append(i) del cursor1, row
  1. 使用重复值的数字填充输出字段。
cursor2=arcpy.UpdateCursor(infeature) for row in cursor2: i=row.getValue(field_in) occ=lista.count(i) row.setValue(field_out,occ) cursor2.updateRow(row) del cursor2, row print ("Done.")

以下为完整代码:

import arcpy arcpy.env.workspace=r"D:\test.gdb" infeature="sample_feature" field_in="sample_field" field_out="COUNT_"+field_in arcpy.AddField_management(infeature,field_out,"SHORT") lista=[] cursor1=arcpy.SearchCursor(infeature) for row in cursor1: i=row.getValue(field_in) lista.append(i) del cursor1, row cursor2=arcpy.UpdateCursor(infeature) for row in cursor2: i=row.getValue(field_in) occ=lista.count(i) row.setValue(field_out,occ) cursor2.updateRow(row) del cursor2, row print ("Done.")

使用汇总统计数据工具,并连接表

  1. 运行汇总统计数据工具。
  2. 指定输入图层(具有相同要素或记录的目标图层)和输出表
  3. 对于统计数据字段,指定数值唯一的 ID 字段。 如果是 shapefile,请选择 FID 字段;如果是要素类,请选择 OBJECTID 字段。 在以下示例中,“Pads_DB_PadNumText”是数值唯一的字段。 对于统计类型选择最小值
  4. 选择所需字段,并比较字段中的值以在案例分组字段中找到相同的记录。
  5. 运行该工具以创建新的表。
汇总统计数据工具的图像。
  1. 右键单击目标图层,然后单击连接和关联 > 添加连接
  2. 选择输入连接字段作为所需字段。
  3. 对于连接表,选择在步骤 5 中创建的表。
  4. 指定输出连接字段,然后运行该工具。 连接表中的所需字段和频率字段提供了有关重复记录的信息。 如果选择数值唯一字段来连接表,则输出连接表仅显示唯一记录。
“添加连接”窗格的图像。

文章 ID: 000023355

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

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

下载 Esri 支持应用程序

相关信息

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

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项