当前位置:   article > 正文

ArcGIS中ObjectID,FID和OID字段区别_gis objectid

gis objectid

ArcGIS中ObjectID,FID和OID字段区别

当我们创建一个Shapefiles(shp), geodatabase feature classes(gdb中的要素类)或独立的dBase表(dbf)时,ArcGIS会自动为上述三种格式创建一个ID字段,这个ID是由ArcGIS来管理,是不能手动更改或删除的。它被用于指定Shapefiles, geodatabase feature classes或dBase表中的每条记录。因此这个ID是唯一的。

我们日常工作中经常会面对三种ArcGIS中的ID,分别是FID、OBJECTID和OID。他们之间的区别是什么呢?

说明一下,图中ID可以理解为属性内容,它与FID、OBJECTID和OID都没有任何关系,示例数据没有做好命名,若造成误导还请理解。

FID

  • FID存在于shapefile中,它的值从0开始。

  • 在shapefile中新增一个图形,则属性表中相应的增加一条记录,该记录的FID按顺序编号。

  • 在shapefile中删除一条记录时,FID会重新编号,编号之间保持顺序,没有间隔。

  • 如下图所示,删除了FID为2的记录,则其余FID重新编号。
    在这里插入图片描述

  • 如下图所示,对FID为1的图形进行切割后,生成了新的图形被赋值为新FID-4。

在这里插入图片描述

  • 需要注意的是,当编辑状态下,会因为某些不知道的什么原因,显示出现BUG,甚至连记录的数量都显示不正确。当出现这种情况时,我们只需要保存编辑,重新打开即可。

OBJECTID

  • OBJECTID存在于.gdb数据库中的geodatabase feature classes(要素类)或geodatabase table(表)中,它的值是从1开始。

  • 如果一个 geodatabase feature class 或者一个 geodatabase table中的一条记录被删除了, OBJECTID不会重新编号, 并且列表中的间隔会保存。

  • 如下图所示,删除了FID为3的图形后,OBJECTID并没有重新编号。
    在这里插入图片描述

  • 如下图所示,对2和4图斑进行了多次切割,新生成的图形,其OBJECTID按现有记录继续向下编号,没有占用之前删掉的OBJECTID-3。

在这里插入图片描述

  • 同样在.gdb数据中新建Table表,对表进行编辑时,OBJECTID不会重新编号, 并且列表中的间隔会保存。

在这里插入图片描述

OID

  • OID存在于独立的dBase表格中,格式为.dbf,它的值是从0开始
  • 当dBase表格中的一条记录被删除了,OID会从0开始重新编号,编号之间没有间隔。

三者之间的转换

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

  • 我们将之前OBJECTID为1/2/4/5/6/7的要素类导出为shapefile格式,查看其属性表变化如下:
    在这里插入图片描述

    可以看到导出后的shapefile新增了一个FID字段,且编号从0开始顺序编号,中间没有间隔。而其中OBJECTID则继承原要素类的OBJECTID值,并变成了一个可编辑的字段。

  • 当一个geodatabase 表格被导出成dBase格式, 输出dbf表格中的记录将被从0开始按顺序重新编号。

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

在这里插入图片描述

可以看到将geodatabase feature class导出到另一个gdb数据库中后,OBJECTID被从1开始重新编号。也就是说一组数据经过两个数据库之间的转换后,如果直接按OBJECTID进行连接将有可能不再准确对应(原geodatabase feature class进行过删减操作)。

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

  • 当一个shapefile导入或转换到geodatabase feature class中,输出的feature class中将没有FID,会出现一个OBJECTID,并从1开始重新编号。

在这里插入图片描述

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

-END-

更多内容请关注LearnGIS公众号
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/341077
推荐阅读
相关标签
  

闽ICP备14008679号