Итерирование, также называемое циклами и пакетной обработкой, означает повторение процесса вновь и вновь – то есть некоторую автоматизацию работы. Итерация важна, поскольку автоматизация повторяющихся задач способствует уменьшению времени и усилий, необходимых для выполнения задач. Итерация в ModelBuilder позволяет выполнять процесс снова и снова, используя в каждой итерации другие параметры или данные. ModelBuilder также обеспечивает гибкость итерирования, так как модель целиком или отдельный инструмент инструмент или процесс могут быть выполнены несколько раз.
- Продолжительность видео: 2:02
- Это видео было создано с помощью ArcGIS Pro 3.0.
Примечание:
- Для каждой модели можно использовать только один итератор. Если в модели уже имеется итератор, опции для добавления еще одного итератора будут отключены.
- Если в модель добавлен итератор, все инструменты модели будут повторяться для каждого значения в итераторе. Если вы не хотите запускать каждый инструмент в модели для каждого значения итерации, создайте подмодель/модель в пределах модели/вложенной модели, которая содержит только итератор, и добавьте ее как инструмент модели в основную модель.
- Чтобы дать уникальное имя выходным данным инструмента, подключенного к итератору, используйте замену встроенной переменной.
В ModelBuilder есть ряд итераторов, которые можно применять для итерирования различных значений, наборов данных и рабочих областей.
Итератор | Описание |
---|---|
Выполняет итерации с начального до конечного значения данной переменной. | |
Выполняет итерации по разным типам наборов данных в рабочей области. | |
Выполняет итерации для классов пространственных объектов в рабочей области или в наборе классов объектов. | |
Выполняет итерации над объектами в классе пространственных объектов. | |
Выполняет итерации для каждого значения в поле. | |
Выполняет итерацию полей в таблице. | |
Выполняет итерации над файлами в папке. | |
Выполняет итерацию слоев на карте. | |
Выполняет итерации для списка значений. | |
Выполняет итерации растров в рабочей области. | |
Выполняет итерации для строк в таблице. | |
Выполняет итерации для таблиц в рабочей области. | |
Выполняет итерацию по времени в поле даты. | |
Выполняет итерации с рабочими областями в папке. | |
Выполняет итерации до тех пор, пока условие не станет истинным или ложным. |
Добавление и применение итератора
Чтобы добавить итератор в модель, щелкните ModelBuilder > Вставка > Итератор и выберите из списка итераторов.
Дважды щелкните элемент итератора для просмотра и изменения его свойств. Ниже показан и описан широко применяемый итератор Итерировать классы объектов.
Элемент | Описание |
---|---|
Рабочая область | Входная рабочая область (например, база геоданных) либо набор пространственных данных. |
Групповой символ | Комбинация символа * и символов поможет вам ограничить результаты. К примеру, A* означает, что будут включены только классы объектов, имеющие названия, начинающиеся с символа A. Этот пункт является необязательным. |
Тип объекта | Фильтр типа объектов, помогающий ограничить результаты. Чаще всего это Point, Line и Polygon. Этот пункт является необязательным. |
Рекурсивный | Определяет, будет ли оператор заходить в подпапки рабочей области. Этот пункт является необязательным. |
Выходной класс пространственных объектов | Выходная переменная, содержащая путь к классу объектов. Эта переменная может быть использована в качестве входной для всех инструментов геообработки, поддерживающих векторные слои или классы объектов. |
Имя | Выходная переменная, содержащая имя выходного класса объектов. Это строка. |
Инструмент Итерировать классы объектов требует Входной рабочей области (переменная Рабочая область на представленном выше изображении), в которой будут итерированы все хранящиеся там классы объектов. Три дополнительных настройки – Групповой символ, Тип объекта и Рекурсивный – используются для определения, какие классы рабочих областей будут итерированы, а также задают итерирование в подпапках рабочей области.
Инструмент Итерировать классы объектов содержит две выходные переменные: класс объектов и имя класса объектов. Переменную класса объектов можно подключить к следующему инструменту обработки, а переменную Имя использовать для замены встроенной переменной.