问题可能是由于计算机中缓存了上一次输入结果所导致的。可以在模型构建器中添加一个“Clear Cache”工具,确保每次运行时清除缓存。
添加一个Python脚本工具,并将以下代码添加到脚本中:
import arcpy
arcpy.ClearWorkspaceCache_management()
将这个“Clear Cache”工具加入到模型中,可在执行迭代过程前清除缓存。
例如,可以使用收集值迭代器搜索workspace中的所有.shp文件,并将文件列表传递到迭代里。在每次迭代中使用Clear Cache以便每次使用不同的值。
另一个解决办法是使用内部迭代器,它会在每次迭代中以不同的值使用工具。在此情况下,“Collect Values”工具会在迭代前执行,并将结果传递给“Iterate”工具。
例如,可以使用内部迭代器搜索workspace中的所有.shp文件,并用每个文件分别执行Buffer工具。将结果存储在输出矢量图层中。
以下是使用内部迭代器的Python代码示例:
import arcpy
arcpy.env.workspace = r"C:\Path\To\Workspace"
shp_list = arcpy.ListFeatureClasses("*.shp")
for shp in shp_list:
arcpy.Buffer_analysis(shp, r"C:\Path\To\Output" + "\\" + shp[:-4] + "_buffer.shp", "100 meters")
这样,在每个迭代中都会以不同的shp文件为输入值,保证输出结果都是不同的。