在迭代中使用反馈

在模型构建器中,一个流程的输出可以用作先前流程的输入。这种现象称为反馈,因为输出将反馈给先前流程作为输入。

共有两种设置反馈循环的方法:

  1. 通过变量属性
  2. 使用连接工具

在下面的示例模型中,在每次模型进行迭代时,缓冲区的输出将反馈回缓冲区作为输入。

设置反馈循环

通过变量属性

步骤:
  1. 选择并右键单击输入变量。
  2. 常规选项卡上,从反馈变量下拉列表中选择要用作反馈的变量。

    将创建一条从输出变量指向输入变量的蓝色虚线,即反馈连接线。每次工具进行迭代时,输出变量将用作下次迭代的输入。

使用连接工具

步骤:
  1. 在模型构建器中单击“连接”工具 添加连接
  2. 单击要用作反馈的输出并单击输入。

    模型即会知道输出正与输入进行连接并将自动创建一条蓝色虚线样式的反馈连接线。每次工具进行迭代时,输出变量将用作下次迭代的输入。

  3. 由于每次迭代时模型都生成一个输出数据集,因此确保每次迭代所生成的输出名称唯一十分重要,这样才能避免将之前的迭代输出覆盖。可通过在输出路径后追加 %n% 来为每次迭代输出指定唯一名称,它将插入一个与迭代次数对应的系统变量(输出路径将显示为 c:\data\output%n%.shp)。

限制模型迭代次数

必须设置模型的迭代次数,否则模型将进入一个永不停止的反馈循环。请参见以下示例:

步骤:
  1. 要将模型的反馈迭代次数限制为某个值,请使用 For 迭代器。
  2. 若要在模型中多次运行反馈循环,则输入合适的来自值到值以及按值。例如,要将模型的反馈循环迭代次数设置为 4,可将起始的来自值设置为 0,结束的到值设置为 3,而间隔的按值设置为 1。
  3. 要避免覆盖每次迭代的输出,可在工具输出名称后追加系统变量 %n% 来为每次迭代输出指定唯一名称。模型运行时,将在输出名称的末尾追加迭代次数 0、1、2、3。
  4. 连接工具或流程输出以将其作为输入反馈。
  5. 运行模型。
使用反馈循环

反馈应用示例

模型构建器中的反馈可用于模拟活火山,将随着时间的推移对活火山中新的熔岩流级别进行建模。要查看此应用示例,请转到地理处理资源中心并从“模型和脚本”工具库中下载火山反馈循环示例 - 案例研究

旧版本旧版本:

如果未在“模型和脚本”工具库中找到火山反馈循环示例 - 案例研究,可使用以下链接:火山反馈循环示例 - 案例研究


7/10/2012