最近用Arcpy處理遙感影像,很有可能昨天代碼還能正常運作,今天再打開就是999999,一般都是記憶體問題,如果你嘗試了修改路徑(輸出路徑不能有中文、不能太長)等種種花裡胡哨的操作後還是無法解決,可以試試以下方法:
1. 縮小待處理栅格(裁剪、重分類……)
比如将栅格裁剪為幾部分,或者降低分辨率,最終目的都是讓栅格所占空間盡可能小(最好不要超過2G)。

當你的栅格可以盡可能縮小分辨率的前提下(比如,用30m分辨率的landsat-8影像裁剪更高精度的夜間燈光資料,後續對影像進行分類隻需要30m精度的分辨率即可),這種方法比較推薦,因為程式運作起來會快很多,快速提高效率!
2. 修改可執行檔案,讓程式能處理超過2GB的位元組(高階技巧)
原理見:GIS Geek: Set 32bit Executable LARGEADDRESSAWARE Flag to True
需要工具:Visual Studio 2010
步驟:
-
打開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: 執行函數時出錯解決方法 -
輸入
editbin /LARGEADDRESSAWARE “C:\Python26\ArcGIS10.0\python.exe”
(注:路徑換為你的ArcGIS Python 安裝的路徑)
Arcpy ERROR 999999: 執行函數時出錯解決方法 -
檢視
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