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公众号

ArcGIS中ObjectID,FID和OID字段区别相关推荐

  1. 在ArcGIS中批量删除属性表字段

    在ArcGIS中,当我们在删除属性表字段时,如果在属性表内直接右键点击删除,一次只能删除一个字段(如图一). 这样的话效率非常低,本文介绍一个批量删除属性表字段的方法,那就是ArcToolbox中的[ ...

  2. ArcGIS中QueryTask,FindTask,IndentifyTask 之间的区别

    QueryTask:         查询的是featurelayer,可进行空间或者属性查询,也就是地图服务后面加上图层索引,他的地址是这样的,http://10.200.223.191:6080/ ...

  3. Arcgis中投影和定义投影的区别

    今天在项目开发过程中需要对数据进行一次投影转换,习惯性的打开Data management tools->Projections andtransfomations进行定义投影,然而却导致了地图 ...

  4. ArcGIS中各种合并要素(Union、Merge、Append、Dissolve)的异同点分析

    本文转载自CSDN博主「Sylvenas」的原创文章 原文链接:[https://blog.csdn.net/Mello_/article/details/41276909] 本文在原文基础上补充了部 ...

  5. ArcGIS中各种合并要素(Union、Merge、Append、Dissolve)的异同点分析 转载

    标签: arcgis 杂谈 分类: GIS ArcGIS中将两个要素类合并成一个要素有Union.Dissolve.Append.Merge等,在Arctoolbox中均有相应工具,但功能上有所不同: ...

  6. ArcGIS中进行shp矢量文件和EXCEL进行字段连接Field Join关联遇到:提示没有OID字段问题。(地理国情监测)解决步骤

    ArcGIS中进行shp矢量文件和EXCEL进行字段连接Field Join关联遇到:提示没有OID字段问题.(地理国情监测)解决步骤: (1)将你的excel表先通过excel转表工具,转化成表就生 ...

  7. 创建shap文件的属性字段类型区别_在ArcGIS中为Shapefile属性表增加字段

    摘要: 属性描述了要素的相关特性,并存储于表中.在创建新的属性表或是向已有的属性表中增加字段的时候,必须指明数据类型和字段属性,比如精度(Precision)或长度(Length).数据类型的选择和相 ...

  8. arcgis中字段的说明

    创建要素类和表时,请为各字段选择数据类型.可用的类型包括多种数字类型.文本类型.日期类型.二进制大对象 (BLOB) 或全局唯一标识符 (GUID).选择正确的数据类型可以正确存储数据,并且便于分析. ...

  9. #ArcGis中如何对属性表中的字段进行顺序赋值??

    #ArcGis中如何对属性表中的字段进行顺序赋值?? 如题,昨天有小伙伴在公号私信里问我"如何在ArcGis中对属性表中的字段进行顺序赋值??"这个问题如果会一点python编程, ...

  10. arcgis用python字段自动编号,arcgis中字段自动编号的两种方法

    <arcgis中字段自动编号的两种方法>由会员分享,可在线阅读,更多相关<arcgis中字段自动编号的两种方法(4页珍藏版)>请在人人文库网上搜索. 1.精选文档关于ARCGI ...

最新文章

  1. 破4!《我想进大厂》之Java基础夺命连环16问
  2. python对文件的读操作有哪些方法-Python中文件的读取和写入操作
  3. 2019 好笔友-见字如面
  4. 自动关闭模态框_Dialog 弹出框
  5. 降采样处理 resample函数
  6. librtmp分析(发送数据包处理)
  7. leetcode105 前序中序遍历序列构造二叉树
  8. python关键词大全_Python 批量获取Baidu关键词的排名并入库
  9. dan.php,shenlingdan.php
  10. 小程序上传服务器图片压缩,微信小程序压缩图片并上传到服务器(拿去即用)...
  11. 解决centos6.5不能识别NTFS格式的移动硬盘或U盘问题
  12. UVA665 LA5658 False coin【暴力】
  13. PyTorch学习笔记(一):PyTorch环境安装
  14. maven 下载不到jar包时候,更改阿里源
  15. 从无线安全到内网渗透[1]
  16. MIKE水动力笔记5_建立水动力模型
  17. iPhone 抓包工具Charles使用
  18. 伦敦艺术大学创意计算机学院,伦敦艺术大学专业详细设置
  19. nginx修改主目录、主页
  20. infinity新标签页失效

热门文章

  1. 透过年报看区块链股的含金量:无一披露此业务营收 近5成停留在研究
  2. 如何查看steam游戏销量_如何查看您在Steam游戏上花费的金钱和时间
  3. js调用原生android应用的方法
  4. “校内网”将不存在,“校内网”更名为“人人网”
  5. 人脸识别功能实现的原理介绍与算法介绍
  6. 室内GPS定位初露峥嵘
  7. 设置cmd命令提示符窗口界面语言为英文
  8. java实现图片的预览_Java实现图片裁剪预览功能
  9. @uncheck_jQuery Check / Uncheck复选框
  10. XTU OJ 1395