關鍵字: #GIS #QGIS #格式轉換 #GPKG2SHP #SHP #GPKG #QPackage
筆者在產製GIS相關圖資時習慣採用GPKG格式將相關的圖層進行打包整理,但不幸的是GIS界的商業龍頭ArcGIS並不直接支援GPKG格式(?QGIS已經支援ESRI GeoDatabase好幾年了..),同時業界最流通的空間資訊格式還是SHP為主,最近工作上有需要將大量的GPKG圖層轉換成獨立的SHP進行保存,這篇就提供我目前常使用的三種方法。
[QGIS教學系列GPKG轉換SHP的批次處理方法
文章目錄
GPKG與SHP的相關介紹可以參考下列文章
以下教學將以QGIS作為示範,主要提供三種批次轉換的方法,包含採用QGIS的外掛程式、GDAL命令行轉換以及Python調用GDAL命令
1.安裝QGIS-QPackage外掛
步驟一:安裝QPackage外掛
要使用QPackage套件,我們首先需要在QGIS中安裝它。我們可以在QGIS的選單中選擇「外掛程式」->「管理和安裝外掛程式」,然後在搜尋框中輸入「QPackage」,找到該外掛程式並點擊「安裝外掛程式」按鈕。安裝完成後,我們可以在QGIS的工具列中看到一個新的圖示,代表ORS套件。
步驟二:開啟QPackage
要使用QPackage套件,我們只需要點擊頁面上新增的圖示即可,在彈出的視窗中預設會將所有Vector圖層進行勾選,我們可以手動選擇要輸出的圖層以及要輸出路徑還有指定相關的CRS,最後點選「Copy the layers」即可批次輸出成SHP檔案
點擊輸出後,我們來確認目的資料夾是否全部轉換完成(轉換過程中容易卡當,請不要任意點擊QGIS視窗)
2.採用GDAL-OGR2OGR命令
第二個方法是直接採用GDAL內建的命令行工具,對於GDAL的相關介紹可以參考下列文章。
要使用GDAL指令,我們可以採用QGIS安裝時自帶的終端機「OSGeo4W Shell」,一般來說可以從「開始」列直接搜尋,或是會在桌面上看到捷近資料夾
接著我們直接打開「OSGeo4W Shell」,其介面就像一般的命令提示字元一樣。
接著我們輸入以下指令調用OGR2OGR工具,(過程中由於我測試的檔案有些資料欄名稱不符特定規定,因此被重新命名)
ogr2ogr -f "ESRI Shapefile" output_folder input.gpkg ##其中 -f 表示 [-f format_name] 用來指定輸出格式,後面則是依序表示 輸出資料夾 輸入檔案
3.採用QGIS內建工具箱批次功能(例如Drop_field)
第三個方法是採用QGIS任意功能的批次處理,該方法彈性較大,而且可以自由組裝中間處理的工具,但缺點就是速度慢很多,對於批次處理功能介紹可以參考以下文章
在上小節提到了GDAL輸出SHP格式對欄名稱有特定規範,實際上QGIS對這一塊特別寬鬆,欄名可以包含「空格、標點符號等」,但對於ArcGIS來說就會讀取錯誤,如果有中間處理的需求則可以採用QGIS內建的批次功能逐步轉換,例如我可以採用「Drop fields」將一些不需要的欄位進行剃除,再重新轉換成SHP進行輸出。
接下來批次輸出的名稱可以讀取「Input layer」作為變數,將副檔名轉換成.shp,即可完成轉換(詳細批次功能介紹參考上面的文章)
結語
今天的分享就到這裡了,最後筆者還是要讚揚一下QGIS的自由性,喜歡我的分享的話可以訂閱我的YT頻道以及FB專頁會分享更多有趣的應用