ArcGIS中ObjectID,FID和OID字段区别

article/2025/8/22 20:22:42

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公众号
在这里插入图片描述


http://chatgpt.dhexx.cn/article/GF7XHLGV.shtml

相关文章

圣笛数控|OID是什么?看OID在未来人类社会生活中的地位

OID定义,OID是什么? OID(Object Identifier 对象标识符),是由国际三大标准组织ISO、IEC、ITU向全球颁布并供各国共同遵守的物品身份标识标准体系,现已被208个国家和地区采用。OID作为全球新物联通识标准&a…

OID科普:OID为什么被称为元标识?

物联网的标识有很多种,包括应用标识、载体标识以及网络标识,我们常见的 IC 卡、二维码、RFID 及传感器都可归为载体标识。当需要用到不同体系下的标识符时,如何处理不同标识符之间的兼容性等问题呢?这个时候,三大国际组…

SIFT+RANSAC做图像矫正

做图像矫正时使用了一下sift算法,尽管sift确实很牛,但还是会出现一些误匹配,直接计算两张影像的单应矩阵会出现很大误差,因此可以在计算时使用RANSAC算法在单应矩 阵的约束下剔除误匹配,并计算单应矩阵,基…

opencv沿斜线切割图片

opencv沿斜线切割图片 opencv如果沿水平或者数值的线来切割图片,是很简单的。但是,如果沿着斜线,那么就不能直接进行切割了。 我的思路是,根据直线上两点来确定直线方程,然后,逐个遍历图像中元素&#xf…

mean shift 图像分割(三)

Reference: [1] Mean shift: A robust approach toward feature space analysis, PAMI, 2002 [2] mean shift,非常好的ppt ,百度文库链接 [3] Pattern Recognition and Machine Learning, Bishop, 2006,Sec 2.5 [4] Computer Vision Algorithms and App…

mean shift 图像分割(一、二、三)

MeanShift图像分割算法:大概是将复杂的背景,通过粗化提取整体信息,进而将图像分割。 接下来我想,将会抽出一部分时间,研究一下这个算法,以最终实现手势形状提取。 《Mean Shift: A Robust Approach Towar…

OpenCV在图像上画正弦曲线(c++)

写在前面:欢迎来到「湫歌」的博客。我是秋秋,一名普通的在校大学生。在学习之余,用博客来记录我学习过程中的点点滴滴,也希望我的博客能够更给同样热爱学习热爱技术的你们带来收获!希望大家多多关照,我们一…

基于mean shift的图像分割

1 mean shift算法 Mean Shift 这个概念最早是由Fukunaga 等人[1]于1975 年在一篇关于概率密度梯度函数的估计中提出来的,其最初含义正如其名,就是偏移的均值向量,在这里Mean Shift 是一个名词,它指代的是一个向量,但随着Mean Shift 理论的发展,Mean Shift 的含义也发生了变化,如…

OpenCV对图像进行切边

1、概述 案例:使用OpenCV对旋转图片及正常图片进行切边。 A:对正常图片切边的步骤 1.加载图像 2.对图像进行灰度化 3.边缘检测 4.轮廓发现 5.找出符合目标的最大外接矩形,并使用矩形的四个坐标点绘制线 6.根据找到Rect在原图上切除ROI区域 7.…

双曲正割matlab求解

,取N305,且x在区间内按照5等分取值。 matlab中对于双曲正割函数可以直接用sech求解,自己编代码的过程永远无法逃避,,因为这个有现成的,那个可能没有,遇到棘手复杂的任务,全靠现成调包…

MATLAB:图像裁切(imcrop函数)

对图像进行裁切可用imcrop函数,实现过程如下: close all; %关闭当前所有图形窗口,清空工作空间变量,清除工作空间所有变量 clear all; clc; [A,map]imread(peppers.png); %读入图像 rect[75 68 130 112]; …

matlab关于图像切割的一些总结:imcrop,getrect,ndgrid,函数

之前查看这么多人写的博客,乱七八糟的,说法不一还有些有错误,误导人。现在记下来,希望给后来人一点指引。 1.imcrop函数 这个函数是 imcrop的第一二元素代表左上角的横纵坐标,第三四元素代表矩行框的宽高 pic imre…

代码实现数学图形之常用函数,幂,对数,指数,正弦,余弦,正切,余切,反正弦,反余弦,反正切,反余切,双曲正弦,双曲余弦,双曲正切,双曲余切,正割函数,余割函数,双曲正割,双曲正割.

(1)幂函数 X的N次幂. 按 CtrlC 复制代码 按 CtrlC 复制代码 脚本代码中X,N都为变量,两个变量会生成一个二维数据,得到一个平面图形.pow_sign是一个保留正负号的pow函数,其C实现为: static float yf_pow_sign(float a, float b) {float s yf_sign(a);a ::fabsf(a);if (…

几何画板如何绘制动态正切函数图像

几何学中必学内容包括三角函数,而三角函数又包括正弦函数、余弦函数、正切函数和余切函数。在黑板上很难准确画出这些三角函数,现在有了几何画板,可以快速而准备的构造出三角函数,下面就给大家介绍在几何画板中动态绘制正切函数图…

mean shift 图像分割(二)

Reference: [1] Mean shift: A robust approach toward feature space analysis, PAMI, 2002 [2] mean shift,非常好的ppt ,百度文库链接 [3] Pattern Recognition and Machine Learning, Bishop, 2006,Sec 2.5 [4] Computer Vision Algorithms and App…

GrabCut in One Cut(基于图割算法grabcut的一次快速图像分割的OpenCV实现)----目前效果最好的图割

 One cut in grabcut(grabcut算法的非迭代实现?) 本文针对交互式图像分割中的图割算法,主要想翻译一篇英文文献。不足之处请大家指正。 这是博主近期看到的效果最好,实现最简单,运…

mean shift 图像分割 (一)

mean shift 图像分割 Reference: [1] Mean shift: A robust approach toward feature space analysis, PAMI, 2002 [2] mean shift,非常好的ppt ,百度文库链接 [3] Pattern Recognition and Machine Learning, Bishop, 2006,Sec 2.5 [4] Computer Vision…

【图像处理】图像分割之(一~四)GraphCut,GrabCut函数使用和源码解读(OpenCV)

图像分割之(一)概述 http://blog.csdn.net/zouxy09 所谓图像分割指的是根据灰度、颜色、纹理和形状等特征把图像划分成若干互不交迭的区域,并使这些特征在同一区域内呈现出相似性,而在不同区域间呈现出明显的差异性。我们先对目前…

Mac 安装使用 OpenCV 图像处理神器

大家好,我是青空。 最近在折腾图像处理相关的事情,今天就给大家分享一下,Mac 上如何安装和使用 OpenCV。 安装 方法一 使用homebrew安装 其实 Mac 上安装 OpenCV 很简单,一个命令行就能搞定。 brew install opencv等待完成即…