[GIS] 用外部 Python 2 執行 QGIS Python 工具

最近同學丟了一個問題給我,說 QGIS 中合併網格資料(Raster)的功能失效,錯誤訊息是「The process crashed some time after starting successfully.」,雖然不知道是怎麼回事,不過我裝了非 QGIS 的 Python 來跑跑看相關程式。

系統需求

  • pyGDAL (Windows 中 QGIS 發佈版內建,請至安裝目錄找找)
  • Anaconda (Python 發佈版之一,方便管理套件或許多 Python 環境、版本)

步驟

安裝 Python 2 環境:

  1. 開啟 cmd.exe 或 Terminal.app。
  2. 輸入以下命令,並按「y」安裝:

    指令說明:

    1. conda create : 創立一個新的 Python 環境
    2. –name py2 :替新的環境命名,本例是 py2。
    3. numpy : 要安裝的套件。 GDAL 的預先需求為 numpy ,故於此同時安裝。
  3. 啟動 py2 環境:

    此時命令提示字元前方會多一個括號,如:
  4. 安裝 pygdal :

    他會幫你安裝所需的套件,並跟你確認,輸入 「y」確定:

    完成後即可使用 GDAL。

執行 Merge Raster 工具程式

  1. 找到 gdal_merge.py 的檔案(Windows 在 QGIS 安裝目錄下,例如:「C:\Program Files\QGIS 2.18\bin\gdal_merge.py 」)
  2. 使用 QGIS  Merge 的對話框(Raster > Miscellaneous > Merge)準備好相關指令(輸入的網格資料、輸出格式等等),按下對話框底部的小鉛筆編輯,並複製所有指令。如:(註:行末反斜線(\)為方便在網頁閱讀使用,實際上不會有!)
  3. 將「gdal_merge.bat」換成「 python gdal_merge.py  」,後面接上原本的指令:
  4. 執行結束就可以了!

後記

QGIS 雖然顯示錯誤,但是產生出的 GeoTIFF 檔仍為正常可以使用,不知道為何有問題…


請多多指教!

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料