Использование цикла обратной связи

При работе в ModelBuilder вы можете использовать выходные данные процесса в качестве входных для предыдущего процесса. Такие действия называются обратной связью, поскольку выходные данные подаются на вход предыдущего процесса.

Создание цикла обратной связи

Можно создать цикл обратной связи, соединив выходную переменную одного процесса со входной переменной того же процесса. Чтобы сделать такое соединение, щелкните и удерживайте клавишу мыши на выходной переменной, переместите курсор к входной переменной и отпустите клавишу мыши, когда курсор окажется над входной переменной. Модель автоматически создаст синюю пунктирную линию соединителя обратной связи, когда выход соединится со входом. На каждой итерации выходная переменная будет использована в качестве входной для следующей итерации.

Поскольку модель создает на каждой итерации один выходной набор данных, необходимо, чтобы выходные имена были уникальными: в этом случае выходные данные предыдущей итерации не будут перезаписаны. Чтобы присвоить уникальные имена выходным наборам данных, получаемым на каждой итерации, можно добавить к выходному пути подстановку встроенной переменной, как показано в примере ниже.

Использование цикла обратной связи для создания нескольких буферных областей

В примере модели ниже показано, как использовать инструмент Буфер и цикл обратной связи для создания нескольких буферов.

Использование цикла обратной связи
Инструмент Буфер и цикл обратной связи используются вместе.

  1. Чтобы запустить цикл обратной связи указанное количество раз, используйте инструмент Для. Введите соответствующее значение в поля От значения, До значения и По значению.

    Например, чтобы выполнить 4 цикла итераций модели, установите для параметра От значения 1, для параметра До значения 4, и задайте значение интервала По значению, равное 1.

  2. Задайте выходное значение инструмента Для как предварительное условие для следующего инструмента.

    Благодаря этому количество итераций для следующего инструмента уже будет задано.

  3. Во избежание перезаписи выходного значения после каждой итерации, добавьте после выходного имени линейную переменную %Value%.

    При работе модели, %Value% будет замещаться числом из выходного Значения инструмента Для.

  4. Соедините выход Буфер со Входной переменной в виде обратной связи, чтобы предыдущие выходные данные буфера использовались как входные при следующем проходе.
  5. Соедините выходные данные Буфер с инструментом Собрать значения.
  6. Чтобы запустить модель с циклом обратной связи с панели Геообработка, соедините финальные выходные данные модели с инструментом Собрать значения. Сделайте выходные данные из Собрать значения параметром модели, чтобы выходные данные обратной связи были добавлены на карту.
  7. Запустите модель.