1.RuntimeError: <exception str() failed> arcpy 保存出错
Traceback (most recent call last):
File "e:/arcjs/ArcGis_source/update/show_gis_data/the_ten_class/arcpy_code/test_03.py", line 20, in <module>
outCon_01.save("test_05")
RuntimeError: <exception str() failed>
错误找了找了好几天,真他娘的不容易。😭。
# -*- coding: UTF-8 -*-
import arcpy
from arcpy.sa import *
from arcpy import env
import pandas as pd
import numpy as np
b=[1,2,3,4,5]
a=[0.3179, 0.4006, 0.248, 0.0257,0.0078]
Raster_02=pd.Series(a,index=b)
arcpy.CheckOutExtension("Spatial")
arcpy.env.workspace =r'E:\Arcgis_code\out_put'
inRaster1=Raster('hefei_dem_re')
outCon_01=Con((inRaster1 ==-9999), 0.00,0.00)
for item in b:
outCon_02=Con((inRaster1 == item),Raster_02[item], 0.00)
outCon_01= outCon_02 + outCon_01
outCon_01.save(r'E:\Arcgis_code\out_put\test_006')
print('ok')
代码运行会报以下错误
PS E:\arcjs\ArcGis_source\update\show_gis_data\the_ten_class\arcpy_code> & E:/arcjs/arcgis_install/python27/ArcGIS10.5/python.exe e:/arcjs/ArcGis_source/update/show_gis_data/the_ten_class/arcpy_code/test_02.py
Traceback (most recent call last):
File "e:/arcjs/ArcGis_source/update/show_gis_data/the_ten_class/arcpy_code/test_02.py", line 29, in <module>
outCon_01.save(r'E:\Arcgis_code\out_put\test_008')
RuntimeError: <exception str() failed>
这个错找了好几天,生无可恋了。😭,然后改变了栅格相加的顺序。就成功了,具体原因现在还不知道。真痛苦。将代码改成以下即可。
# -*- coding: UTF-8 -*-
import arcpy
from arcpy.sa import *
from arcpy import env
import pandas as pd
import numpy as np
b=[1,2,3,4,5]
a=[0.3179, 0.4006, 0.248, 0.0257,0.0078]
Raster_02=pd.Series(a,index=b)
arcpy.CheckOutExtension("Spatial")
arcpy.env.workspace =r'E:\Arcgis_code\out_put'
inRaster1=Raster('hefei_dem_re')
outCon_01=Con((inRaster1 ==-9999), 0.00,0.00)
for item in b:
outCon_02=Con((inRaster1 == item),Raster_02[item], 0.00)
outCon_01=outCon_01 + outCon_02#变换两个变量顺序即可
outCon_01.save(r'E:\Arcgis_code\out_put\test_008')
print('ok')
代码成功运行
ok
如果还报错,可以尝试关闭代开栅格文件的其他应用,如关闭Arcgis。
尽量不要将代码封装导函数里面
如果是can`t open xxx.shp文件,就声明下工作空间。
arcpy.workplace.env