Краткий экскурс по созданию инструментов с помощью ModelBuilder

Проиллюстрированный ниже сценарий для данной модели заключается в том, что вы собираете данные для конкретной изучаемой территории, представленной в StudyArea, и вам требуется вырезать некоторые наборы данных в изучаемую территорию. Для каждого набора данных, который вы будете вырезать, вам нужно будет добавить поле с именем STATUS и рассчитать значение этого поля к исходному значению, равному 1. В действительности, вы можете захотеть добавить несколько полей и вычислить их значения, но для данного простого сценария все, что вам требуется, это - поле STATUS.

Даная модель выполняет операции вырезания, добавления поля и вычисления его значения, но данные, которые вам необходимо собрать, находятся в разных документах карт и в разных базах геоданных. Технологический процесс, с которым вы столкнетесь, подразумевает, что каждый раз, когда вы захотите запустить данную модель, вам нужно будет открыть эту модель в ModelBuilder и изменить входные данные, которые надо Вырезать (Clip) с Почва (Soils) на другой набор данных.

Пример модели

Чем открывать ModelBuilder каждый раз, когда вы захотите обработать свой набор данных, не лучше ли было, если бы вы могли запускать эту модель с помощью диалогового окна инструмента этой модели, задавая имя для набора входных данных методом перетаскивания слоя или набора данных в это диалоговое окно, так, как вы это делаете с системными инструментами? Однако, когда вы откроете диалоговое окно этого инструмента, вы увидите в нем Параметры для данного инструмента не заданы (This tool has no parameters), как показано ниже, таким образом у вас не будет возможности для ввода набора данных, которые вы хотите обработать.

Диалоговое окно инструмента ModelBuilder

Другой нюанс с данной моделью заключается в том, что ее нельзя использовать в другой модели. Ниже иллюстрируется добавление инструмента в новую модель с целью соединения выходных данных модели с инструментом Идентичность (Identity) . Соединение невозможно, потому что инструмент Вырезать в область изучения и добавить поле (Clip to study area and add field) не имеет выходных данных, которые могли бы быть соединены с инструментом Идентичность (Identity) .

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

Решение – в создании параметров модели

В перечисленных выше ситуациях решение вопроса – в создании параметров модели. Для того, чтобы создать параметр модели, щелкните правой кнопкой мыши на переменной модели и выберите Параметр модели (Model Parameter). На представленном ниже рисунке созданы параметры модели Почвы (Soils) и Почвы_Clip (3) . Параметры модели показаны с буквой P рядом с переменной.

Модель с переменными параметра модели

Теперь, когда открыто диалоговое окно модели, вы можете изменить параметр Почвы (Soils) на что-нибудь другое, такое как набор данных или слой растительности. Вы также можете переименовать набор выходных данных. Как только вы щелкните OK, инструмент будет запущен с заданными вами данными.

Диалоговое окно инструмента с параметрами

Обратите внимание на то, что переменная модели StudyAreaне была преобразована в параметр. Поскольку область изучения изменяется, преобразовывать ее в параметр необходимости нет.

Более подробноБолее подробно:
В данной модели, переменная Область изучения (StudyArea) содержит скорее набор данных (D:\EastValley\Data\collect.gdb\studyarea) , чем имя слоя. Если бы переменная StudyArea содержала имя слоя, то инструмент не был бы выполнен в фоне, и вы должны были бы отключить фоновую обработку, как описано в разделе Обработка на переднем плане и фоновая обработка.

Изменение названий параметров

С диалоговым окном этого инструмента существует одна проблема—названия параметров недостаточно описательны; вместо названий параметров Почвы (Soils) и Soils_Clip (3), вы можете захотеть что-либо более описательное, например Входные объекты (Input Features) и Класс выходных объектов (Output Feature Class). Чтобы изменить названия параметров в диалоговом окне инструмента, вы должны переименовать переменные в ModelBuilder, как показано ниже.

Модель с переименованными параметрами

Теперь, когда вы откроете диалоговое окно данного инструмента, названия параметров будут иметь смысл.

Диалоговое окно инструмента с переименованными параметрами

Как сделать параметры чистыми

Наконец, обратите внимание, что параметры в диалоговом окне инструмента заполнены значениями, в приведенном примере Почвы (Soils) и E:\10DocModels\PortlandSmall.gdb\Soils_Clip. Если вы откроете инструмент в ArcMap и слоя с именем Почвы в нем не будет, диалоговое окно будет отображать наличие ошибки (X красного цвета), потому что слоя Почвы не существует. Это не проблема — вы всегда можете выбрать другой слой или перейти к другому набору данных—вы можете избавиться от ненужного сообщения об ошибке, очистив переменные в модели, как проиллюстрировано ниже. Данная модель больше не будет запускаться в ModelBuilder, но ее можно будет запустить из диалогового окна ее инструмента.

Модель с пустыми переменными

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

Диалоговое окно инструмента, не содержащее никаких параметров.

Использование инструмента модели в другой модели

Теперь, когда модель имеет параметры, вы можете добавить ее в ModelBuilder и соединить ее выходные данные с входными данным инструмента Идентичность (Identity), как показано ниже.

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

Краткое изложение

Здесь описывается, когда и как нужно создавать параметры модели. Параметры модели появятся в диалоговом окне инструмента. Имя переменной модели станет названием параметра в диалоговом окне инструмента. Вам не требуется делать каждую переменную модели параметром модели; в приведенном выше примере переменная StudyArea не является параметром модели, потому что ее никогда не надо изменять.

Использование параметров модели позволит вам превратить вашу модель в полезный инструмент—вы можете использовать этот инструмент с различными данными, добавлять его в другие модели, а также использовать в скриптах. Со временем вы создадите свою собственную библиотеку полезных инструментов и будете использовать их в ситуациях, которых вы никак не ожидали во время построения модели в первый раз. Вы можете разбить большой комплекс моделей на более мелкие (и потому легче управляемые) модели, в которых выходные данные одного инструмента являлись бы входными данными другого инструмента.

Более подробную информацию о построении моделей см. в разделе Создание инструментов в ModelBuilder.

5/10/2014