QGIS資料格式介紹-SHP

[QGIS教學系列]常用的GIS資料交換格式系列{2}-ESRI Shapefile

#GIS #地理資料格式 #JSON #GeoJSON #SHP #GPKG

[QGIS教學系列]常用的GIS資料交換格式系列{2}-ESRI Shapefile

這個系列會介紹常見的GIS資料存儲交換格式,今天要分享的主角ESRI Shapefile(SHP)
Shapefile(.shp)是一種常用的地理資訊系統(GIS)文件格式,用於儲存地理空間數據。它是由ESRI(Environmental Systems Research Institute)所開發和推廣的,雖然SHP格式相當古老並且屬於多檔案組成但目前仍舊為GIS行業中的標準格式之一。

***本文將介紹Shapefile的基本概念、檔案組成、優點和缺點,以及常見的檔案錯誤。***

對於常見的空間資訊格式介紹可以參考以下影片

1.什麼是SHP格式?

Shapefile(.shp)是由ESRI(Environmental Systems Research Institute)所開發和推廣的地理數據格式,目前為GIS行業的標準之一。該格式用於儲存地理實體的幾何圖形和屬性數據。Shapefile可以表示各種地理圖徵,如建築物、河流、道路等,並且支持不同的幾何圖形類型(點、線、面)和數據類型。

Shapefile的文件包含多個文件,這些文件組合在一起形成了一個完整的Shapefile數據集。一個基本的Shapefile數據集通常由三個文件組成:

  1. .shp文件:它是Shapefile的核心文件,用於存儲實際的幾何圖形(點、線、面等)的坐標屬性數據。這些幾何圖形可以表示地理圖徵,如建築物、河流、道路等。每個幾何圖形都有一個唯一的識別編號,稱為記錄(record)。
  2. .shx文件:這是Shapefile的索引文件,用於加速對.shp文件中幾何圖形的查詢和檢索。它包含了幾何圖形的位置和大小信息,可以通過這些信息快速定位特定的幾何圖形。
  3. .dbf文件:這是Shapefile的屬性表文件,以dBase格式存儲。它包含了與每個幾何圖形相關聯的屬性數據,例如名稱、類型、面積、人口等。這些屬性可以用於對幾何圖形進行標記和分析(.dbf檔案可以用excel進行屬性資料查看,但隨意進行修改會造成讀取錯誤)

除了上述的主要文件外,Shapefile還有許多輔助文件,以下簡略介紹幾個附加文件

  1. .prj文件:prj文件是Shapefile用來描述坐標投影的附加檔案,用於定義地理坐標系統和投影方式,以確保數據在空間上的準確性和一致性
  2. .sbn文件:sbn檔案是Shapefile的二進制格式空間索引檔案之一,這個檔案的主要作用是加速對Shapefile中幾何圖形的空間查詢,如點在多邊形內、線和面的相交等。
  3. .sbx文件:sbx檔案是Shapefile的二進制格式空間索引檔案之二,與.sbn檔案類似也用於加速對Shapefile中幾何圖形的空間查詢。不同之處在於.sbx檔案的結構和內容不同於.sbn檔案,它使用了一種不同的索引結構,以提供更高效的查詢性能。
  4. .qix文件:qix檔案為QIX檔案是由QGIS(Quantum GIS)使用的一種空間索引檔案格式,可以從QGIS->toolbox->Create spatial index ,進行產生
QGIS教學 SHapefile
.prj格式,可以用notepad++等文本編輯器去查看裡面包含的CRS系統資訊

相較於.qix檔案.sbn和.sbx檔案是Shapefile格式中的附加檔案,用於支持Shapefile的空間索引功能。它們是Shapefile格式特有的檔案,而不是QGIS特定的。目的都是為了讓Shapefile中幾何圖形的空間查詢加速

2.SHP格式的優點以及缺點

以下簡述SHP的優點以及缺點:

優點:

  • 廣泛支持:SHP格式幾乎被所有主流的GIS軟體和工具所支持,包括ArcGIS、QGIS、GRASS GIS等,使得數據的交換和共享變得非常容易。
  • 高度可靠:SHP格式在GIS領域已經存在了很長一段時間,經過了廣泛的使用和驗證,具有良好的穩定性和可靠性。
  • 多幾何圖形類型支持:SHP格式支持多種幾何圖形類型,包括點、線、面等,可以滿足不同地理數據的表示需求。
  • 支持多屬性數據:SHP格式使用DBF(dBase)檔案來存儲屬性數據,可以將多個屬性與幾何圖形關聯起來,實現豐富的屬性描述。
  • 擴展性:SHP格式是一個開放的文件格式,可以根據需要擴展和自定義,使其適應不同的應用場景。

缺點:

  • 拓撲限制:SHP格式無法直接表示和儲存拓撲關係,如相鄰關係、拓撲錯誤等。這可能需要使用其他工具或格式來處理拓撲相關的分析和操作。
  • 不支持多幾何圖形:SHP格式不直接支持存儲多個幾何圖形,如多點、多線、多面等。在SHP格式中使用不同的記錄來表示多個幾何圖形。
  • 字段限制:SHP格式對字段(屬性)的名稱和類型有限制。例如,字段名稱的長度限制為10個字符,字段類型只能是整數、浮點數、字符等有限的類型。
  • 文件結構較複雜:SHP格式包含多個檔案(.shp、.shx、.dbf等)組成,相對於其他單一文件的數據格式,文件結構較為複雜,可能需要進行多檔案的管理和處理,同時更容易造成文件遺失以及損壞。

總結而言,SHP格式作為常用的GIS數據格式,在跨平台和廣泛支持上具有優勢。它可以表示多種幾何圖形類型和屬性數據,但在拓撲表示、多幾何圖形支持和字段靈活性方面存在一些限制,同時也限制了數據讀取速度。使用SHP格式時需要注意這些限制,並根據具體需求和情況進行選擇和處理。

3.如何在QGIS中使用SHP以及SHP的常見錯誤

在 QGIS 中,您可以使用以下步驟來使用SHP格式的數據這邊採用先前製作空氣品質地圖的資料作為示範

1.這邊以空氣品質區的範圍圖做為示範,其中可以看到除了主檔案shp外,還有許多附加檔案,但由於主要的形狀資訊儲存在此,觀察檔案的大小可以發現shp占比最大,除了第一節提到的附屬檔案外,實際上QGIS存儲SHP檔案時還會額外生產.cpg(字元編碼檔)以及.qpj(詮釋資料檔)要載入SHP檔案只要將該檔案拖曳進行QGIS頁面當中即可。

SHP格式的常見問題:

在處理Shapefile時,常見的檔案錯誤包括以下問題以及可能解決方法

  • 無效的幾何圖形:幾何圖形的坐標或形狀無效或不完整。
    ->可以使用fix geometry工具進行幾何修復
  • 拓撲錯誤:幾何圖形的拓撲關係存在錯誤,如重疊、缺失或重疊等。
    ->由於shp並不直接支援存儲拓撲關係,因此可以依靠topology checker外掛進行錯誤檢查
  • 屬性錯誤:屬性數據與幾何圖形不一致或存在格式錯誤。
    ->可能原因是.dbf檔案有所損壞導致對應.shp的圖徵時出現問題,
  • 檔案損壞:Shapefile檔案本身損壞或缺失關鍵檔案(如.shp、.shx或.dbf檔案)
    ->如缺少上述主要組成將無法正常開啟檔案,若缺少附加檔案則仍可開啟但喪失部分資訊,例如缺少.prj檔則無法自動指定坐標系統,需要自行assign projection

結語

今天的分享就到這裡了Shapefile雖然仍舊廣泛應用,但筆者實在不喜歡此格式,除了檔案保存容易缺失外,對於檔案大小以及效能都有許多限制和缺失,筆者更建議使用Geodatabase、Geopackage等基於空間資料庫設計出來的交換格式喜歡我的分享的話可以訂閱我的YT頻道以及FB專頁會分享更多有趣的應用

延伸閱讀

分享