ListRasters,TypeError:'NoneType'对象不可迭代

时间:2014-08-27 17:21:11

标签: python python-2.x arcpy

您好我有非常小的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..."`

提前致谢任何可以提供指导或建议的人!

1 个答案:

答案 0 :(得分:0)

arcpy.ListRasters()没有采取任何强制性参数,请参阅help page。你确定Reclass文件夹中有任何栅格吗?它们是否由Reclassify_3d成功创建?我的猜测是outraster因为在路径中组合单反斜杠而没有很好地理解outraster = os.path.join(folder, raster)。而是在脚本的开头写下import osraster2

此外,脚本在创建多边形时会遇到问题,因为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}}。