Примеры использования итераторов в ModelBuilder

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

Для

На рисунке ниже итератор For выполняет итерации с шагом 500 для значений от 500 до 2000. Результат работы Для используется как параметр Расстояния буфера в инструменте Буфер и в имени результатов как встроенная переменная.

Использование итератора Для в ModelBuilder

Пока

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

Использование итератора Пока в ModelBuilder

Итерировать выборки объектов

На рисунке ниже модель вычисляет, какая площадь на Восточном побережье была разрушено 100-метровой полосой пути пяти ураганов первой категории. Переменная Входные объекты (Input Feature) – это класс пространственных объектов путей прохождения пяти Атлантических ураганов со 100-метровым буфером. Переменная Входной растр (Input Raster) это карта местности.

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

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

У инструмента Итерировать выборку объектов два выходных элемента:

  • Выбранные объекты (Selected Feature) (соединены как входные объекты с инструментом Зональная статистика в таблицу (Zonal Statistics As Table).
  • Переменная Значение, которая содержит имя объекта (на основе поля группировки), используемого как встроенная переменная в выходном имени переменной Выходная таблица.

Итерировать выборку строк

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

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

Переменная Входные классы объектов (Input Feature Class) – это класс пространственных объектов, содержащий точки мест случаев вандализма. Он содержит поле Crime_Peri, которое является временем дня, когда произошел инцидент (строки Morning, Afternoon, Evening и Night). Это поле используется как группирующее поле для создания выборки, и выбранные строки используются для создания выходного эллипса стандартного отклонения.

У инструмента два выходных элемента данных:

  • Переменная Выборка строк (Row Selection) содержит выбранные строки для одного уникального преступления. Эти строки являются входными данными для инструмента Направленное распределение (Эллипс стандартного отклонения).
  • Переменная Значение (Value), которая содержит значение группирующего поля ("Morning", "Afternoon", "Evening" или "Night"). Это значение используется как встроенная переменная в выходном имени переменной Выходной эллипс стандартного отклонения.

Итерировать поля

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

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

Переменная векторного слоя Incidentsсодержит уникальные поля с числом инцидентов в день. В некоторых полях данных нет и содержатся значения null. В этом случае инструмент Итерировать поля используется для фильтрации дней с помощью подстановочного знака и поднабора в отфильтрованном списке полей. Затем каждое поле передается в выражение инструмента Выбрать в слое по атрибуту, а выбранные записи затем передаются в инструмент Вычислить поле.

У инструмента два выходных элемента данных:

  • Переменная Значение подключается в качестве входного имени поля к инструменту Выбрать в слое по атрибуту. Переменная Число хранит общее количество итерируемых полей.

Итерировать значения поля

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

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

Заметьте, что в диалоговом окне Итерировать значения поля опция Уникальные значения включена по умолчанию, чтобы выполнять итерацию для каждого уникального значения в таблице. При отключении опции Уникальные значения (Unique Values) будут выполняться итерации для каждого значения в поле и выходные значения могут повторяться, если во входном поле есть повторяющиеся значения.

У инструмента Итерировать значения поля один выходной параметр: переменная Значение, содержащая значение поля, которое используется как параметр Диапазон расстояний или пороговое расстояние инструмента Анализ кластеров и выбросов. Переменная Значение также используется для построения выходного имени файла переменной Выходной класс пространственных объектов с использованием подстановки встроенной переменной.

Итерировать многозначные

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

Использование итерации многозначных

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

Итерировать наборы данных

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

Использование итерации наборов данных

У инструмента два выходных элемента данных:

Итерировать классы объектов

На изображении ниже модель ищет плотность населения для классов объектов Blocks и Parcels переменной Входные классы объектов.

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

Итерации ограничены выбором типа полигональных объектов; следовательно, итератор работает только с классами полигональных объектов Blocks и Parcels.

У инструмента два выходных элемента данных:

  • Выходная переменная Класс объектов (Block и Parcel), соединенная с инструментом Добавить поле в качестве входных данных.
  • Переменная Имя (Block и Parcel, в этом примере), которую можно использовать как встроенную переменную %Имя% в других инструментах.

Итерировать файлы

На изображении ниже в переменной Входная папка содержится список текстовых файлов, конвертируемых в растр. Итерация ограничена групповым символом f* и расширением файла .txt, поэтому выполняться итерации будут только для текстовых файлов, начинающихся с буквы f или F.

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

У инструмента два выходных элемента данных:

  • Переменная Файл (focaldem1.txt, focaldem2.txt или focaldem3.txt) соединена как входная с инструментом ASCII в растр.
  • Переменная Имя содержит имя текстового файла (focaldem1, focaldem2 или focaldem3). Эта переменная Имя используется в выходном значении следующего инструмента как подстановочная переменная %Имя%.

Итерировать растры

На изображении ниже модель пересчитывает размер ячейки наборов данных грид и извлекает его поднабор для дальнейшего анализа.

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

Переменная Входные растры – это папка, содержащая гриды, изображения и TIFF-файлы. В этом случае итерации ограничены групповым символом A* и типом растра GRID, так что выполняются итерации только для гридов, начинающихся с буквы a или A.

У инструмента два выходных элемента данных:

  • Выходная переменная Растр (Aland, Aparcel и Aroad) соединена как входные данные с инструментом Изменить разрешение.
  • Переменная Имя, которая используется в выходном имени инструментов Изменить разрешение и Извлечь поднабор данных как встроенная переменная %Name%.

Итерировать таблицы

На изображении ниже модель транспонирует таблицы почвенно-растительного покрова каждого штата с типом покрова и суммирует статистику (как сумму площадей) для каждого класса почвенно-растительного покрова.

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

Переменная Входная рабочая область – это папка, содержащая таблицы. Итерации ограничены групповым символом L* и типом таблицы dBASE, поэтому итерации выполняются только для таблиц DBASE, начинающихся с буквы l или L.

У инструмента два выходных элемента данных:

  • Переменная Выходная таблица (Landcover_Arizona, Landcover_California и Landcover_Nevada) соединена с инструментом Сводная таблица как входные данные.
  • Переменная Имя, которая используется как встроенная переменная %Name% в выходных именах инструментов Сводная таблица и Суммарная статистика.

Итерировать рабочие области

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

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

Итерации ограничены групповым символом Ar* и типом рабочей области файловой базы геоданных, поэтому выполняются только для файловых баз геоданных с именами, начинающимися с букв Ar.

У инструмента два выходных элемента данных: