天天看點

Arcpy ERROR 999999: 執行函數時出錯解決方法

最近用Arcpy處理遙感影像,很有可能昨天代碼還能正常運作,今天再打開就是999999,一般都是記憶體問題,如果你嘗試了修改路徑(輸出路徑不能有中文、不能太長)等種種花裡胡哨的操作後還是無法解決,可以試試以下方法:

1. 縮小待處理栅格(裁剪、重分類……)

比如将栅格裁剪為幾部分,或者降低分辨率,最終目的都是讓栅格所占空間盡可能小(最好不要超過2G)。

Arcpy ERROR 999999: 執行函數時出錯解決方法

當你的栅格可以盡可能縮小分辨率的前提下(比如,用30m分辨率的landsat-8影像裁剪更高精度的夜間燈光資料,後續對影像進行分類隻需要30m精度的分辨率即可),這種方法比較推薦,因為程式運作起來會快很多,快速提高效率!

2. 修改可執行檔案,讓程式能處理超過2GB的位元組(高階技巧)

原理見:GIS Geek: Set 32bit Executable LARGEADDRESSAWARE Flag to True

需要工具:Visual Studio 2010

步驟:

  1. 打開VS2010指令提示

    檔案路徑打開: All Programs > Microsoft Visual Studio 2010 > Visual Studio Tools > Visual Studio Command Prompt (2010)

    或者打開指令提示符 (cmd.exe):

    “C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat” x86

    Arcpy ERROR 999999: 執行函數時出錯解決方法
  2. 輸入

    editbin /LARGEADDRESSAWARE “C:\Python26\ArcGIS10.0\python.exe”

    (注:路徑換為你的ArcGIS Python 安裝的路徑)

    Arcpy ERROR 999999: 執行函數時出錯解決方法
  3. 檢視

    dumpbin /headers “C:\Python26\ArcGIS10.0\python.exe” | more

    應該可以看到"…Application can handle large (>2GB) addresses…"的提示

    Arcpy ERROR 999999: 執行函數時出錯解決方法

解決999999的更多方法可見:Death, Taxes and the Esri ArcGIS 999999 Error: How to Fix It