Shapefile文件格式詳解(ESRI Shapefile Technical Description)

        Shapefile文件是美國環境系統研究所(ESRI)所研製的GIS文件系統格式文件,是工業標準的矢量數據文件。 Shapefile將空間特徵表中的非拓撲幾何對象和屬性信息存儲在數據集中,特徵表中的幾何對象存爲以座標點集表示的圖形文件—SHP文件,Shapefile文件並不含拓撲(Topological)數據結構。一個Shape文件包括三個文件:一個主文件(*.shp),一個索引文件(*.shx),和一個dBASE(*.dbf)表。主文件是一個直接存取,變長度記錄的文件,其中每個記錄描述構成一個地理特徵(Feature)的所有vertices座標值。在索引文件中,每條記錄包含對應主文件記錄距離主文件頭開始的偏移量,dBASE表包含SHP文件中每一個Feature的特徵屬性,表中幾何記錄和屬性數據之間的一一對應關係是基於記錄數目的ID。在dBASE文件中的屬性記錄必須和主文件中的記錄順序是相同的。圖形數據和屬性數據通過索引號建立一一對應的關係。

Shapefile中座標文件(.shp)由固定長度的文件頭和接着的變長度空間數據記錄組成。文件頭由100字節的說明信息組成的(附表 1),主要說明文件的長度、Shape類型、整個Shape圖層的範圍等等,這些信息構成了空間數據的元數據。在導入空間數據時首先要讀入文件頭獲取Shape文件的基本信息,並以此信息爲基礎建立相應的元數據表。而變長度空間數據記錄是由固定長度的記錄頭和變長度記錄內容組成,其記錄結構基本類似,每條記錄都有記錄頭和記錄內容組成(空間座標對)。記錄頭的內容包括記錄號(Record Number)和座標記錄長度(Content Length)兩個記錄項,Shapefile文件中的記錄號都是從1開始的,座標記錄長度是按16位字來衡量的。記錄內容包括目標的幾何類型(ShapeType)和具體的座標記錄(X,Y),記錄內容因要素幾何類型的不同,其具體的內容和格式都有所不同。對於具體的記錄主要包括空Shape記錄,點記錄,線記錄和多邊形記錄,具體的記錄結構如附表 2所示。

屬性文件(.dbf)用於記錄屬性信息。它是一個標準的DBF文件,也是由頭文件和實體信息兩部分構成。其中文件頭部分的長度是不定長的,它主要對DBF文件作了一些總體說明(附表 3),其中最主要的是對這個DBF文件的記錄項的信息進行了詳細的描述(附表 4),比如對每個記錄項的名稱,數據類型,長度等信息都有具體的說明。屬性文件的實體信息部分就是一條條屬性記錄,每條記錄都是由若干個記錄項構成,因此只要依次循環讀取每條記錄就可以了。

索引文件(.shx)主要包含座標文件的索引信息,文件中每個記錄包含對應的座標文件記錄距離座標文件的文件頭的偏移量。通過索引文件可以很方便地在座標文件中定位到指定目標地座標信息。索引文件也是由文件頭和實體信息兩部分構成的,其中文件頭部分是一個長度固定(100 bytes)的記錄段,其內容與座標文件的文件頭基本一致。它的實體信息以記錄爲基本單位,每一條記錄包括偏移量(Offset)和記錄段長度(Content Length)兩個記錄項。附表 5給出了具體的描述。

發佈了62 篇原創文章 · 獲贊 13 · 訪問量 80萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章