使用反馈循环

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

创建反馈循环

通过将某个流程的输出变量连接到其输入变量可创建反馈循环。要创建此连接,单击输出变量并按住鼠标键,将指针移动至输入变量,然后当指针位于输入变量之上时松开鼠标键。当输出连接到输入时,模型会自动创建一条蓝色反馈连接器虚线。每次工具进行迭代时,输出变量将用作下次迭代的输入。

由于每次迭代时模型都生成一个输出数据集,因此确保每次迭代所生成的输出名称唯一十分重要,这样才能避免将之前的迭代输出覆盖。要将唯一名称分配给每次迭代输出,请在输出路径后追加行内变量替换,如下例所示。

使用反馈循环创建多个缓冲区圆环

以下示例模型显示如何使用缓冲区工具和反馈循环来以迭代方式创建多环缓冲区。

使用反馈循环
缓冲工具和反馈循环一起使用。

  1. 要运行反馈循环特定次数,请使用 For 工具。输入起始值终止值以及增量的相应值。

    例如,要让模型迭代 4 次,可将起始的起始值设置为 1,结束的终止值设置为 4,而间隔的增量设置为 1。

  2. For 工具的输出设置为下一工具的前提条件

    这可确保在执行下一工具前迭代次数即已可用。

  3. 要避免覆盖每次迭代的输出,在输出名称后追加 %Value% 行内变量。

    运行模型时,%Value% 会替换为来自 For 工具的输出的数字。

  4. 缓冲区的输出作为反馈连接到输入变量,这样上一个缓冲的输出将用作下一个迭代的输入。
  5. 缓冲区的输出连接到收集值工具。
  6. 要通过地理处理窗格运行含有反馈循环的模型,请将模型的最终输出连接到收集值工具。将收集值的输出设置为模型参数,以便将反馈输出添加到地图。
  7. 运行模型。