2012-09-14 54 views
3

尝试循环多个空间范围以创建4个不同图层的17个联合。arcgis union python error

我正在运行ArcGIS Desktop 10.0,ArcInfo(高级)。

Gridnums = range(1,18) 
for i in Gridnums: 
    #vis6class = ws + "/" + "TVvis6class_G" + str(i) 
    inList = arcpy.ListFeatureClasses("*ProcGrid_"+str(i), "") 
    print "inList: " + str(inList) 
    arcpy.Union_analysis([InList], ws + "/" + "TVvis6class_G" + str(i)) 
    print "Union completed for Grid " + str(i) 
    arcpy.AddField_management(vis6class, "Object", "TEXT", 10) 
    arcpy.AddField_management(vis6class, "Revert", "SHORT") 
    rows = arcpy.UpdateCursor(vis6class) 
    for row in rows: 
     row.Revert = 0 
     if row.Road == 1: 
      row.Object = Road 
      rows.updateRow(row) 
     elif row.Water == 1: 
      row.Object = Water 
      rows.updateRow(row) 
     elif row.Building == 1: 
      row.Object = Building 
      rows.updateRow(row) 
     else: 
      row.Object = row.Landcover 
      rows.updateRow(row) 

错误代码(不是非常有帮助):

inList: [u'Road_ProcGrid_1', u'FPs_S_ProcGrid_1', u'er_di_ProcGrid_1', u'TV_v_ProcGrid_1']

Traceback (most recent call last): File "E:\Projects\TV\01_Python\LandCover\LC_2_Vector_Tile_6class_091312.py", line 48, in arcpy.Union_analysis([InList], ws + "/" + "TVvis6class_G" + str(i)) File "C:\Program Files\ArcGIS\Desktop10.0\arcpy\arcpy\analysis.py", line 483, in Union raise e RuntimeError: Object: Error in executing tool

我知道这是编程论坛在ArcGIS中,但我已经张贴到ESRI论坛以及,有很多的意见,但很少反馈。 工具本身运行,如果我手动选择每个数据集的特定程度,所以问题必须在编码。

感谢您的任何想法。

丰富

回答

2

你有[InList]作为输入,而不是只有'inList'没有引号。

0

按照ArcGIS online help,在Union_analysis功能需要一个类作为第二个参数,当你传递一个字符串。尝试传递一个对象。