最近用Arcpy处理遥感影像,很有可能昨天代码还能正常运行,今天再打开就是999999,一般都是内存问题,如果你尝试了修改路径(输出路径不能有中文、不能太长)等种种花里胡哨的操作后还是无法解决,可以试试以下方法:

1. 缩小待处理栅格(裁剪、重分类……)

比如将栅格裁剪为几部分,或者降低分辨率,最终目的都是让栅格所占空间尽可能小(最好不要超过2G)。
在ArcGIS中查看影像大小
当你的栅格可以尽可能缩小分辨率的前提下(比如,用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
    命令提示
  2. 输入
    editbin /LARGEADDRESSAWARE “C:\Python26\ArcGIS10.0\python.exe”
    (注:路径换为你的ArcGIS Python 安装的路径)
    示例
  3. 查看
    dumpbin /headers “C:\Python26\ArcGIS10.0\python.exe” | more
    应该可以看到"…Application can handle large (>2GB) addresses…"的提示
    示例

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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐