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

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

Для

Инструмент Для выполняет итерации с начального до конечного значения данной переменной.

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

Использование For в ModelBuilder

Пока

Инструмент While выполняет итерации до тех пор, пока условие не станет истинным или ложным.

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

Использование While в ModelBuilder

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

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

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

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

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

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

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

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

Инструмент Итерировать выборку строк проходит по всем строкам в таблице.

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

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

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

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

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

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

Инструмент Итерировать поля проходит по всем полям в таблице.

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

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

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

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

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

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

Инструмент Итерировать значения поля проходит по всем значениям в поле.

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

Как использовать инструмент Итерировать значения поля

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

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

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

Инструмент Итерировать многозначные проходит по списку значений.

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

Как использовать инструмент Итерировать многозначные

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

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

Инструмент Итерировать наборы данных проходит по наборам данных в рабочей области или наборе классов объекта.

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

Как использовать инструмент Итерировать наборы данных

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

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

Инструмент Итерировать классы объектов проходит по всем классам объектов в рабочей области или наборе классов.

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

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

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

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

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

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

Инструмент Итерировать файлы проходит по всем файлам в папке.

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

Как использовать инструмент Итерировать файлы

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

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

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

Инструмент Итерировать слои проходит по всем слоям на карте.

На изображении ниже в переменной Входная карта показан список проецируемых слоев. Итерация ограничена только итерацией по точечным слоям объектов на карте. Результат работы инструмента Итерировать слои можно протестировать с помощью заданной системы координат, используя инструмент Если система координат соответствует. Если система координат слоя не соответствует заданной системе координат, значение выходной переменной False изменяется на true, а соединенный инструмент Проецировать запускается для проецирования входящего слоя в заданную систему координат.

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

Итерировать время

Инструмент Итерировать время проходит по времени в поле Дата.

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

Как использовать инструмент Итерировать время

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

Инструмент Итерировать растры проходит по всем растрам в рабочей области.

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

Как использовать инструмент Итерировать растры

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

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

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

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

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

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

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

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

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

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

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

Инструмент Итерировать рабочие области проходит по всем рабочим областям в папке.

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

Как использовать инструмент Итерировать рабочие области

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

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