您好我有非常小的python经验,我不知道为什么我会收到此类错误。我试图使用与初始env.workspace不同的工作区中的栅格执行栅格到多边形的转换。这可能吗?如何在raster2 Listasters()中出现无数据错误?
reclassify命令工作正常,并在定义的文件夹中创建输出,但栅格到多边形工具是发出错误的信号。
感谢我的帮助,我需要尽快完成这项工作。
这是错误:
Traceback (most recent call last):
File "C:\Users\mkelly\Documents\Namibia\Raster_Water\Script_try2.py", line 30, in <module>
for raster2 in arcpy.ListRasters():
TypeError: 'NoneType' object is not iterable
以下是代码:
# Import arcpy module
import arcpy
from arcpy import env
arcpy.env.overwriteOutput = True
# Check out any necessary licenses
arcpy.CheckOutExtension("3D")
#Set the workplace
arcpy.env.workspace = r"C:\Users\mkelly\Documents\Namibia\Raster_Water\1993"
#for all files in 1993, reclassify to water only rasters
for raster in arcpy.ListRasters():
folder = r"C:\Users\mkelly\Documents\Namibia\Raster_Water\1993\Reclass" + "\\"
outraster = folder + raster
arcpy.Reclassify_3d(raster, "Value", "1 1", outraster, "NODATA")
#Can I set up a new env workspace to get reclassified rasters from "Reclass" folder?
arcpy.env.workspace = r"C:Users\mkelly\Documents\Namibia\Raster_Water\1993\Reclass"
#for all files in 1993\Reclass, perform RastertoPolygon
for raster2 in arcpy.ListRasters():
folder2 = r"C:\Users\mkelly\Documents\Namibia\Raster_Water\1993\Polygons" + "\\"
outraster2 = folder2 + raster2
arcpy.RasterToPolygon_conversion(raster2, outraster2, "NO_SIMPLIFY", "VALUE")
print "end Processing..."`
提前致谢任何可以提供指导或建议的人!
答案 0 :(得分:0)
arcpy.ListRasters()
没有采取任何强制性参数,请参阅help page。你确定Reclass文件夹中有任何栅格吗?它们是否由Reclassify_3d
成功创建?我的猜测是outraster
因为在路径中组合单反斜杠而没有很好地理解outraster = os.path.join(folder, raster)
。而是在脚本的开头写下import os
和raster2
。
此外,脚本在创建多边形时会遇到问题,因为arcpy.Describe(raster).baseName
可能类似于raster.tiff或raster.jpg。您正在使用它来命名输出shapefile。如果您的栅格有扩展名,则应使用例如.shp
。在任何情况下,添加\
,因为您将输出保存在文件夹中。
修改强>
第二个工作区中存在拼写错误,您在r"C:Users\mkelly\Documents\Namibia\Raster_Water\1993\Reclass"
中的C之后忘记了'.tiff'
。
工作区错误,因此您的栅格列表为空。
你的栅格是什么格式的?扩展名(例如'.shp'
)将在输出shapefile的名称中使用,因此您必须将其删除。这就是我的意思。修剪&#39;。你应该添加{{1}}。