Краткое описание
Инструмент Итерировать выборку объектов проходит по всем объектам в классе.
В этом упражнении вы создадите модель для итерации по объектам, сгруппированным по регионам в классе объектов (штаты США) и создадите 8 классов объектов, по одному для каждой группы или региона. Значение поля (регион) используется для разбиения классов объектов, также оно будет использоваться в качестве имени для выходного класса объектов. Имена регионов включают пробелы. Например, Pacific West Region, Mid Atlantic Region и пр. Пробелы в составе названий элементов в базе геоданных недопустимы. Чтобы удалить ненужные пробелы, выходной параметр итератора Value (имя региона) будет изменен на использование в качестве встроенной переменной в инструменте Вычислить значение (%Value%). Результат работы инструмента Вычислить значение в итоге будет использоваться в качестве встроенной переменной в имени результата работы инструмента Копировать объекты (%Name%). Результат работы инструмента Копировать объекты связывается с инструментом Собрать значения, который собирает результаты каждой итерации и выдает единый результат со множеством значений.
Предварительные условия
Если вы только начинаете работать с ModelBuilder, изучите следующие разделы:
Открытие проекта
Скачайте проект для упражнения. Проект включает входную базу геоданных, выходную базу геоданных и готовую модель.
- Откройте обзорную страницу Работа с Итерировать выборку объектов.
- Щелкните Скачать в правой части страницы.
- Щелкните правой кнопкой мыши на загруженном файле IterateFeatureSelection.zip и извлеките его в подходящую папку, например, C:\Temp.
- В извлеченной папке IterateFeatureSelection дважды щелкните на файле проекта ArcGIS Pro, IterateFeatureSelection.aprx.
- Изучите данные на панели Каталог и при необходимости нажмите вкладку Проект. Перейдите к Папки > IterateFeatureSelection.
База геоданных ToolData.gdb содержит класс объектов States, который будет использоваться в качестве входных данных модели.
Результаты работы модели будут записываться в базу геоданных ScratchStates.gdb.
Добавление инструментов
Вы создадите модель в наборе инструментов MyProjectTools. Чтобы добавить инструмент в модель, выполните следующие шаги:
- На панели Каталог щелкните вкладку Проект. Перейдите к Папки > IterateFeatureSelection > MyProjectTools.
- Щелкните правой кнопкой MyProjectTools и затем Новый. Выберите Модель, чтобы создать и открыть модель.
- Добавьте инструмент Итерировать выборку объектов.
- На ленте щелкните вкладку ModelBuilder.
- В группе Вставить щелкните Итераторы.
- В списке Итераторы щелкните Итерировать выборку объектов.
Итератор Итерировать выборку объектов будет добавлен в модель. Пока итератор недоступен, потому что для него не заданы значения параметров.
- Добавьте инструмент Вычислить значение.
- На ленте щелкните вкладку ModelBuilder.
- В группе Вставить щелкните Утилиты .
- В списке Утилиты нажмите Вычислить значение.
Инструмент Вычислить значение будет добавлен в модель.
- Добавьте в модель инструмент Собрать значения, как это описано в предыдущем шаге.
- Добавьте инструмент Копировать объекты.
- Щелкните в модели и введите Копировать объекты, чтобы открыть диалоговое окно Добавить инструменты в модель.
- Найдите инструмент Копировать объекты.
- Дважды щелкните инструмент Копировать объекты, чтобы добавить его в модель.
Настройка параметров и соединение инструментов
После добавления инструментов в модель необходимо настроить параметры для каждого из них.
- Дважды щелкните итератор Итерировать выборку объектов, чтобы открыть его диалоговое окно.
- Для параметра В объектах перейдите к <Your Project Location>\IterateFeatureSelection\ToolData.gdb и выберите класс объектов States.
- Остальные параметры оставьте пустыми и щелкните OK.
Входной класс объектов добавляется в модель в виде переменной (темно-синий овал) и меняет цвет итератора, указывая на то, что необходимые параметры были указаны и он готов к запуску.
Подсказка:
Более подробно об элементах модели - Щелкните правой кнопкой на итераторе Выборка объектов и затем Создать переменную > Из параметра > Группировать по полям, чтобы добавить параметр Группировать по полю в модель в качестве переменной.
- Дважды щелкните переменную модель Группировать по полю и из ниспадающего списка выберите Region.
- Нажмите OK, чтобы закрыть диалоговое окно.
Значение поля Region будет использоваться для выбора объектов в каждой итерации.
- Щелкните дважды на элементе Вычислить значение, чтобы открыть диалоговое окно инструмента. Для параметра Выражение введите "%Value%".replace(" ","") и измените Тип данных на String.
Выражение состоит из следующих частей:
- Подстановка встроенной переменной %Value%
- Метод Python replace для удаления пробела из имени
В ходе запуска %Value%, которое представляет собой название региона в выходном параметре итератора (голубой овал), будет заменено на значение переменной, например, Pacific West Region, Mid Atlantic Region и пр.
- Нажмите кнопку ОК, чтобы закрыть диалоговое окно.
- В ModelBuilder инструменты поддерживают иерархию и запускаются только в том случае, если связанный с ними инструмент «выше по течению» запустился первым. Инструмент Вычислить значение использует в своем выражении выходной параметр Value от итератора, но он с ним не связан, поэтому не будет работать, поскольку не найдет название региона. Поэтому вам нужно, чтобы итератор сработал раньше, чем инструмент Вычислить значение, чтобы имя региона стало доступным. С этой целью вы зададите переменную Value как предварительное условие для инструмента Вычислить значение.
Наведите указатель мыши на выходную переменную Value (голубой овал) инструмента Итерировать выборку объектов. Щелкните и перетащите соединительную линию к инструменту Вычислить значение. Отпустите кнопку мыши и нажмите Предварительное условие во всплывающем меню.
- Щелкните правой кнопкой мыши переменную States (темно-синий овал) и затем Переименовать. В качестве нового имени введите Входной класс объектов. Аналогично переименуйте результат работы итератора I_States (зеленый овал) на Выбранные объекты, а результат инструмента Вычислить значение на Название.
- Наведите указатель мыши на выходную переменную Название (зеленый овал) инструмента Вычислить значение. Щелкните и перетащите соединительную линию к инструменту Копировать объекты. Отпустите кнопку мыши и нажмите Предварительное условие во всплывающем меню.
- Щелкните дважды на инструменте Копировать объекты, чтобы открыть диалоговое окно инструмента.
- Во Входных объектах из ниспадающего списка выберите Выбранные объекты.
- Для параметра Выходной класс объектов перейдите к базе геоданных <Your Project Location>\ScratchStates.gdb и введите %Название%.
Для остальных параметров оставьте настройки по умолчанию, щелкните OK, чтобы закрыть диалоговое окно инструмента Копировать объекты.
- Наведите указатель мыши на выходную переменную (зеленый овал) инструмента Копировать объекты. Щелкните и перетащите соединительную линию к инструменту Собрать значения. Отпустите кнопку мыши и нажмите Ввести значение во всплывающем меню.
- Переименуйте переменные модели, как это показано в итоговой модели.
- Для выравнивания элементов модели щелкните кнопку Автокомпоновка на вкладке ModelBuilder, а затем кнопку Вписать в окно , чтобы компоновка модели вписалась в максимальный размер окна на экране.
Запуск модели
- Щелкните правой кнопкой мыши на результате работы инструмента Собрать значения и щелкните Добавить к изображению.
Результат будет добавлен на карту.
- Щелкните кнопку Сохранить на вкладке ModelBuilder чтобы сохранить модель.
- Щелкните кнопку Запуск на вкладке ModelBuilder чтобы запустить модель.
Модель проходит по восьми группам объектов и создает восемь классов объектов в базе геоданных ScratchStates.gdb.
- Закройте модель и ArcGIS Pro.