使用Arcpy时发生"RuntimeError: ERROR 999998: Unexpected Error"错误备注

1.错误说明

使用Arcpy处理tif间乘机操作后将结果保存的tif时出错,但前几次运行正常,运行几次后出现错误。错误具体如下:

Traceback (most recent call last):
File "E:/WorkSpace/Python/Arcpy/test.py", line 9, in <module>
finalResults.save("E:/WorkSpace/Python/data/first.tif")
RuntimeError: ERROR 999998: Unexpected Error.

2.完整代码

import arcpy
from arcpy import env
from arcpy.sa import *

env.workspace = "E:/WorkSpace/Python/data/"
inRaster1 = "raster1.tif"  # float
inRaster2 = "raster2.tif"  # float
outTimes = Times(inRaster1 ,inRaster2) 
outTimes.save("E:/WorkSpace/Python/data/first.tif")

3.原因分析

因前几次运行正常,但几次后出现此错误,表明代码应该没有问题,错误应该时其他方面的,查询后隐约看到有人说为内存问题,感觉有道理。查后得,Arcpy内存相关代码,插入,无效,如下:

import arcpy
from arcpy import env
from arcpy.sa import *


arcpy.ClearWorkspaceCache_management()
arcpy.Delete_management("in_memory")

env.workspace = "E:/WorkSpace/Python/data/"
inRaster1 = "raster1.tif"  # float
inRaster2 = "raster2.tif"  # float
outTimes = Times(inRaster1 ,inRaster2) 
outTimes.save("E:/WorkSpace/Python/data/first.tif")

无奈之下,重启电脑,再运行,保存正常。故应该还是内存问题,估计代码位置或者内存处理代码不对,将重启作为一劣质解决办法。

但在后续实验过程中,调整代码位置,分别在指明工作空间后和代码结束后插入清理工作空间的代码,可发挥一定作用。如若不行,再重启。

import arcpy
from arcpy import env
from arcpy.sa import *

env.workspace = "E:/WorkSpace/Python/data/"
arcpy.ClearWorkspaceCache_management()  # 在指明工作空间后使用
arcpy.Delete_management("in_memory")
inRaster1
= "raster1.tif" # float inRaster2 = "raster2.tif" # float outTimes = Times(inRaster1 ,inRaster2) outTimes.save("E:/WorkSpace/Python/data/first.tif")
arcpy.ClearWorkspaceCache_management()
# 在代码结束后使用 arcpy.Delete_management("in_memory")

如各位看客有所启发,欢迎留言,不胜感激。

原文地址:https://www.cnblogs.com/waterbbro/p/14535570.html