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

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

Есть два способа установления обратной связи.

  1. Из свойств переменной
  2. Использование инструмента Соединить (Сonnect)

В приведенном ниже примере выходные данные инструмента Буфер (Buffer) подаются на вход инструмента Буфер (Buffer) на каждой итерации.

Установка цикла с обратной связью

Из свойств переменной

Шаги:
  1. Выберите переменную и щелкните по ней правой кнопкой мыши.
  2. В закладке Общие (General) выберите переменную, которую вы хотите использовать для обратной связи из списка Переменная обратной связи (Feedback Variable).

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

Использование инструмента Соединить (Сonnect)

Шаги:
  1. В ModelBuilder выберите инструмент Соединить (Connect). Добавить подключение (Add Connection).
  2. Щелкните по выходным данным, которые вы хотите использовать для обратной связи, а затем — по входным данным.

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

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

Ограничение числа итераций модели

Модель должна иметь определенное количество итераций, иначе она будет выполняться бесконечное число раз. См. приведенный ниже пример.

Шаги:
  1. Чтобы ограничить количество итераций в модели используйте итератор Для (For).
  2. Чтобы повторить цикл обратной связи заданное количество раз, введите соответствующие значения От значения (From Value), До значения (To Value) и По значению (By Value). Например, чтобы выполнить 4 цикла итераций модели установите для параметра От значения (From Value) значение 1, для параметра До значения (To Value) значение 4 и значение интервала равное 1 для параметра По значению (By Value).
  3. Задайте выходное значение инструмента Для (For) как предварительное условие для следующего инструмента. Благодаря этому количество итераций для следующего инструмента уже будет задано. Дополнительные сведения о настройке предварительных условий
  4. Если выходное значение параметра Для (For) использовать как предварительное условие для другого инструмента, значение параметра От значения (From Value) на момент запуска будет больше нуля. Если в качестве значения по умолчанию задан 0, после первой итерации параметр Для (For) примет значение 0, и следующий в очереди инструмент вернет следующую ошибку: Процесс не выполнен, поскольку предварительное условие ложно (The process did not execute because the precondition is false). Это произойдет потому, что значение 0 в моделях интерпретируется как ложное условие.
  5. Во избежание перезаписи выходного значения после каждой итерации, добавьте после выходного имени линейную переменную %Value%. При выполнении модели вместо переменной %Value% подставится количество 1, 2, 3, 4 и т. д. в зависимости от выходного значения параметра Значение (Value) в итераторе Для (For).
  6. Настройте инструмент таким образом, чтобы выходное значение было входным в следующем цикле как в приведенном ниже примере, где выход Буфера (Buffer) связан с переменной на Входе (Input).
  7. Также соедините выход инструмента (в примере — Результат (Output)) с инструментом Собрать значения (Collect Values).
  8. Если модель запускается с циклом обратной связи из диалогового окна инструмента, соедините финальный результат модели с инструментом Собрать значения (Collect Values) (инструментом только модели) и сделайте вывод инструмента Собрать значения (Collect Values) параметром модели. Инструмент Собрать значения (Collect Values) не создает новых выходных данных. Он передает входные данные как выходные. Следовательно, выходные данные не отображаются в диалоговом окне инструмента, когда они представляются как параметры модели. Использование выходных данных в качестве параметров модели позволяет отображать результаты в ArcMap, если установлен флажок Добавить результат операций геообработки к изображению (Add results of geoprocessing operations to display) в ниспадающем меню ArcMap Геообработка (Geoprocessing) > Опции геообработки (Geoprocessing Options).
  9. Запустите модель.
Использование цикла обратной связи
5/10/2014