Краткое описание
Вы создадите модель с моделью внутри, такие модели также называют вложенными. Модель пройдет по нескольким классам объектов, спроецирует их, а затем выполнит их слияние с одним классом объектов.
Вложенные модели используются, когда для части модели нет необходимости запускать ее несколько раз. Если итератор добавлен в модель, все инструменты в модели будут повторяться для каждого значения в итераторе. В данном примере итератор будет применен к инструменту Проецировать для каждого класса объектов, но запускать несколько раз инструмент Слияние не имеет смысла, поскольку он за один запуск берет все спроецированные классы вместе и создает один общий класс объектов. Поэтому инструмент Слияние добавляется к основной модели, которая запускается один раз и вызывает вложенную модель, которая запускается несколько раз.
Предварительные условия
Если вы только начинаете работать с ModelBuilder, изучите следующие разделы:
Открытие проекта
Скачайте проект для упражнения. Проект включает входные данные, выходную базу геоданных и готовую модель.
- Откройте обзорную страницу Работа с моделью внутри модели.
- Щелкните Скачать в правой части страницы.
- Щелкните правой кнопкой мыши на загруженном файле ModelWithinModel.zip и извлеките его в подходящую папку, например, C:\Temp.
- В извлеченной папке ModelWithinModel дважды щелкните на файле проекта ArcGIS Pro, ModelWithinModel.aprx.
- Изучите данные на панели Каталог и при необходимости нажмите вкладку Проект. Перейдите к Папки > ModelWithinModel.
База геоданных ToolData.gdb содержит три класса объектов, которые будут использоваться в качестве входных данных модели.
Результаты работы модели будут записываться в базу геоданных ScratchCommon.gdb.
Добавление инструментов
Вы создадите модель в наборе инструментов MyProjectTools. Чтобы добавить инструмент в модель, выполните следующие шаги:
- На панели Каталог щелкните вкладку Проект. Перейдите к Папки > ModelWithinModel > MyProjectTools.
- Щелкните правой кнопкой MyProjectTools и затем Новый. Выберите Модель, чтобы создать и открыть модель.
- На ленте щелкните вкладку ModelBuilder. В группе Модель щелкните Свойства. В диалоговом окне Свойства инструментов введите ProjectMainModel для Имени и Project Main-Model для Надписи.
- На ленте над вкладкой ModelBuilder в группе Модель щелкните кнопку Сохранить , чтобы сохранить изменения.
- Создайте другую модель с Именем ProjectSubModel и Надписью Project Sub-Model.
- В модели Project Sub-Model добавьте инструмент Итерировать классы объектов.
- На ленте щелкните вкладку ModelBuilder.
- В группе Вставить щелкните Итераторы.
- В списке Итераторы щелкните Итерировать классы объектов.
Инструмент Итерировать классы объектов будет добавлен в модель Project Sub-Model. Пока итератор недоступен, потому что для него не заданы значения параметров.
- Добавьте инструмент Собрать значения.
- На ленте щелкните вкладку ModelBuilder.
- В группе Вставить щелкните Утилиты .
- В списке Утилиты щелкните инструмент Собрать значения.
Инструмент Собрать значения будет добавлен в модель Project Sub-Model.
- Добавить инструмент Проецировать.
- Щелкните в модели и введите Проецировать, чтобы открыть диалоговое окно Добавить инструменты в модель.
- Найдите инструмент Проецировать.
- Дважды щелкните инструмент Проецировать, чтобы добавить его в модель.
Настройка параметров и соединение инструментов
После добавления инструментов в модель необходимо настроить параметры для каждого из них.
- Дважды щелкните итератор Итерировать классы объектов, чтобы открыть его диалоговое окно.
- Для параметра Рабочая область или набор данных объектов перейдите к базе геоданных ToolData.gdb.
- Примите значения по умолчанию для всех остальных параметров и щелкните OK.
Рабочая область добавляется в модель в виде переменной (темно-синий овал) и меняет цвет итератора, указывая на то, что необходимые параметры были указаны и он готов к запуску.
Подсказка:
- Щелкните правой кнопкой результат работы итератора и выберите Переименовать. Введите в качестве имени Feature Class.
- Дважды щелкните инструмент Проецировать, чтобы открыть его диалоговое окно.
- Для значения Входной набор данных или класс объектов выберите из раскрывающегося списка Feature Class.
- Для параметра Выходной набор данных или класс объектов перейдите к <Your Project Location>\ScratchCommon.gdb и введите %Name%_Projected.
- Для параметра Выходная система координат выберите Projected Coordinate System > State Plane > NAD 1983 (Meters) > NAD 1983 StatePlane Oregon North FIPS 3601 (Meters).
- Сохраните для всех остальных параметров значения по умолчанию и нажмите OK, чтобы закрыть диалоговое окно инструмента Проецировать.
Внимание:
Если у ваших входных классов объектов разные системы координат, то добавленное географическое преобразование может некорректно применяться к некоторым наборам данных. Вы должны проверить, какие системы координат используются во входных данных и какой метод географического преобразования к ним применяется. Используйте в таком случае параметр итератора Подстановочный символ, чтобы выборочно использовать нужные классы объектов.
- Наведите указатель мыши на выходную переменную (зеленый овал) инструмента Проецировать. Щелкните и перетащите соединительную линию к инструменту Собрать значения. Отпустите кнопку мыши и нажмите Ввести значение во всплывающем меню.
Инструмент Собрать значения является вспомогательным инструментом для сбора выходных значений каждой итерации в единый набор выходных данных с разными значениями.
- Щелкните правой кнопкой входную переменную итератора и выберите Параметр.
Рядом с ней появится буква P, которая укажет на то, что переменная является параметром модели.
- Аналогичным образом создайте параметр модели из результатов работы инструмента Собрать значения.
- Для выравнивания элементов модели щелкните кнопку Автокомпоновка на вкладке ModelBuilder и затем кнопку Вписать в окно , чтобы компоновка модели максимально вписалась в размер окна на экране.
- Нажмите кнопку Сохранить на вкладке ModelBuilder, чтобы сохранить модель и закройте модель Project Sub-Model.
- В модели Project Main-Model найдите инструмент Слияние и добавьте его в модель.
- На панели Каталога перейдите к только что созданной модели Project Sub-Model. Перетащите модель Project Sub-Model в модель Project Main-Model.
Вложенная модель будет добавлена в основную модель. Параметры подмодели будут добавлены в основную модель как переменные (темно-синий овал для ToolData.gdb и зеленый овал для Output Values).
- Наведите указатель мыши на итоговую переменную Project Sub-Model Output Values (зеленый овал). Щелкните и перетащите соединительную линию к инструменту Слияние. Отпустите кнопку мыши и нажмите Входные наборы данных во всплывающем меню.
При этом появится соединение между подмоделью и инструментом Слияние.
- Дважды щелкните инструмент Слияние, чтобы открыть его диалоговое окно. Для параметра Выходной набор данных перейдите к базе геоданных <Your Project Location>\ScratchCommon.gdb и введите ProjectedFC_Merge. Оставьте значение по умолчанию для параметра Сопоставить поля и нажмите OK, чтобы закрыть диалоговое окно.
Рекомендуется переименовывать входные и выходные переменные на более значащие термины вместо того, чтобы использовать значения по умолчанию.
- Переименуйте результат работы инструмента Слияние в Merged Feature Class. Переименуйте другие переменные модели, как это показано в итоговой модели.
Запуск модели
Вы проверите и запустите модель. Вы изучите результаты в ScratchCommon.gdb и подтвердите, что все классы объектов в папке были слиты в один после проецирования.
- Щелкните правой кнопкой мыши на результате работы инструмента Слияние и щелкните Добавить к изображению.
Результаты добавляются на карту.
- Щелкните кнопку Сохранить на вкладке ModelBuilder чтобы сохранить модель.
- Щелкните кнопку Запуск на вкладке Project Main-Model чтобы запустить модель.
Модель запустит вложенную модель и пройдет по всем классам объектов, спроецирует их и создаст результат в базе геоданных ScratchCommon.gdb. Инструмент Собрать значения собирает результаты работы подмодели и передает эти наборы данных в параметр Входные наборы данных инструмента Слияние. Инструмент Слияние запускается только один раз и выдает объединенный результат.
- Закройте модель и ArcGIS Pro.