ArcGIS中ObjectID,FID和OID字段有什麼區別?

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 中的任何一條記錄相匹配。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章