ObjectID,FID和OID字段的区别

本文详细介绍了在使用ArcGIS Desktop编辑数据时,不同类型的表(如shapefiles、geodatabases和独立表格)中ObjectID字段的处理方式及数据转换导致的ObjectID重写现象。特别关注了ObjectID在Join或Relate操作中的注意事项。

ArcGIS Desktop 需要独立的表和属性表都有一个ObjectID字段,这个字段中包含一个唯一的,长整型的数值来指定每一条记录。这个ID是由ESRI的软件来管理的,是不能够手动更改的。

在Shapefiles, geodatabase feature classes, 和独立的表格中ObjectID的处理方式不同。
---在一个shapefile中, 'FID'字段包含ObjectID,并且值从零开始。
---在一个geodatabase feature class 或者geodatabase中的独立的表格中,  'OBJECTID' 字段包含ObjectID, 值从1开始。

---在一个独立的dBase 表格中, 'OID' 字段包含ObjectID, 值从零开始。

在使用ArcGIS Desktop编辑数据的时候,不同的ObjectID字段的功能不一样:
---如果一个shapefile中的一条记录被删除了, FID会重新编号,这样这个值会从0开始按顺序逐渐增大。编号之间没有间隔。

---如果一个 geodatabase feature class 或者一个 geodatabase table中的一条记录被删除了, OBJECTID不会重新编号, 并且列表中的间隔会保存。
---如果一个dBase表格中的一条记录被删除了,OID会从0开始重新编号。编号之间没有间隔。

数据转换导致ObjectID被重写。
---当一个geodatabase feature class被导出或者转换成shapefile的格式,或者当一个geodatabase 表格被导出成dBase格式, 输出shapefile或者表格中的记录将被从0开始按顺序重新编号。

---当一个geodatabase feature class被导出或者转换到一个新的 geodatabase feature class, 或者当一个geodatabase table 被导出或者转换到一个新geodatabase table, 输出的feature class 或者table中的记录将被从1开始按顺序重新编号。

在选择字段用来Join或者Relate表格的时候,需要注意这些特点。如果一个 shapefile要使用FID 和 OBJECTID 来Join到一个feature class, 由于feature class 没有一条记录是OBJECTID = 0,所以shapefile的FID = 0的记录将不会与feature class 中的任何一条记录相匹配。

 

转自:http://www.sharpgis.com/forum-viewthread-tid-4605-page-1.html

I:\arcgispro工具箱\自制工具箱.atbx\PLCT 参数 布局名称 问题图斑占地示意图 索引图层 陇把镇\原始数据\问题图斑属性结构表 排除图层 输出文件夹 C:\Users\Administrator\Desktop\新建文件夹 输出前缀 文件名字段 TBBH 输出格式 JPEG 比例尺 300 DPI 150 消息 开始时间: 2025年11月26日 10:47:26 [2025-11-26 10:47:26] INFO: 脚本开始执行 [2025-11-26 10:47:26] INFO: 使用地图框: 地图框 [2025-11-26 10:47:26] INFO: 尝试查找索引图层: 陇把镇\原始数据\问题图斑属性结构表 [2025-11-26 10:47:26] ERROR: 查找图层失败: The attribute ‘dataSource’ is not supported on this instance of Layer. [2025-11-26 10:47:26] WARNING: 无法通过名称找到图层,尝试替代方法… [2025-11-26 10:47:26] INFO: 找到索引图层: 问题图斑属性结构表 (数据源: I:\占耕建房\矢量结构\问题图斑属性结构表.shp) [2025-11-26 10:47:26] INFO: OID字段: FID [2025-11-26 10:47:26] INFO: 使用名称字段: TBBH [2025-11-26 10:47:26] INFO: 开始获取索引要素… [2025-11-26 10:47:26] ERROR: OID字段FID’ 不存在于索引图层中 [2025-11-26 10:47:26] ERROR: 没有找到有效的索引要素 [2025-11-26 10:47:26] INFO: 诊断索引图层问题… [2025-11-26 10:47:26] INFO: 图层包含 -1 个要素 [2025-11-26 10:47:26] INFO: 无效几何要素数量: 0 [2025-11-26 10:47:26] INFO: 名称字段空值数量: 0 [2025-11-26 10:47:26] INFO: 脚本执行结束 脚本 批量按地图系列(空间)出图,隐藏索引要素外的要素 失败… 执行(PLCT)失败。 运行 失败,结束时间: 2025年11月26日 10:47:26 (历时: 0.37 秒) ERROR: OID字段FID’ 不存在于索引图层中这里可以多增加查找关于id类的比如objectid,或者用户自定义选择索引字段,感觉用户选择索引字段可靠一点
最新发布
11-27
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值