В ModelBuilder, значение или путь к набору данных переменной может быть замещено другой переменной, для этого замещающая переменная заключается в символы процента (%VariableName%). Подстановка переменных при помощи этого действия называется подстановкой встроенной переменной.
Например, если у вас есть переменная Name, имеющая значение Wilson, вы можете создать путь к набор данных C:\Data\Output.gdb\Clipped_%Name%, который будет выглядеть следующим образом: C:\Data\Output.gdb\Clipped_Wilson.
ModelBuilder поддерживает замещение встроенной переменной в следующем формате:
- Переменные модели – Любые переменные модели.
- Системные переменные - переменная %n% может использоваться в повторяющимся рабочем процессе как счетчик итераций в модели. Переменная %t% ссылается при генерации выходных данных на время в формате YYYYMMDDHHMMSS.
- Параметра среды рабочей области - чтобы упростить управление данными модели, в ModelBuilder можно использовать четыре параметра среды рабочей области (%scratchGDB%, %scratchFolder%, %workspace% и %scratchWorkspace%).
Замена переменной модели
На показанной ниже модели переменная рабочей области Рабочая область данных имеет значение C:\Data.gdb. Это местоположение рабочей области замещается встроенной переменной в параметрах инструмента Проект с помощью заключения имени переменной в символы процента. Во время работы, актуальное значение переменной, C:\Data.gdb, заменяется на %Data Workspace%.
Использование с итератором
Использование замещения переменной модели особенно важно при работе с итераторами ModelBuilder. При запуске итератора Итерировать классы объектов, он создает выходную переменную как для пути, так и для имени каждого класса объектов в рабочей области. Значение переменной Name можно использовать для создания пути к выходному Проецированному классу объектов. При выполнении инструмента %Name% заменяется именем класса объектов.
Пользовательский ввод в инструмент модели
Замена переменной модели поможет вам передавать введенные пользователем непосредственно в инструмент значения внутрь модели. К примеру, на модели, показанной ниже, Parcel ID – параметр модели, который указывается при запуске модели на панели Геообработка. Эта переменная используется в параметре Выражение инструмента Выбрать в слое по атрибуту как "Parcel" = '%Parcel ID%'. При запуске инструмента %Parcel ID% в выражении заменяется значением parcel ID (9 в приведенном ниже случае), – и будут выбраны только участки, имеющие ID, равный 9.
Примечание:
В этом примере переменная Parcel ID является строкой. Встроенные переменные, являющиеся строками, в выражении должны быть заключены в кавычки ('%string variable%'). Встроенные переменные, являющиеся числами, не требуют кавычек.Во втором примере, замещение переменной используется для передачи значений параметрам инструмента Вычислить поле. Показанная ниже модель содержит две переменные, Поле класса и Значение. Поле класса со значением класса используется как параметр Имя поля. Переменная Значение со значением Forest используется как параметр Выражение. Когда запускается инструмент Вычислить поле, поле Класс получает значение Forest, которое сохраняется в переменной Значение.
Использование с инструментом Вычислить значение
Вычислить значение – это утилита ModelBuilder, позволяющая вычислять значение на основе выражения Python и использовать это значение в модели. Можно использовать замену переменной для передачи значений из переменных модели в выражение Python Вычислить значение Python либо использовать имя выходной переменной, хранящей значение, в другом инструменте модели.
Показанная ниже модель содержит две числовых переменных: Число жителей (Number of Residents) и Отходы на человека в год (Waste Per Person Per Year). Эти переменные используются в выражении инструмента Вычислить значение путем заключения их в символы процента. При запуске инструмента Вычислить значение имена переменных будут заменены их значениями и перемножены, чтобы получить значение Общих отходов в год (Total Waste Per Year).
Замещение переменных с расширением файла
Если переменная указывает на файл с расширением, например, elevation.tif, и эта переменная должна быть включена в выходной путь другого инструмента с помощью подстановки встроенной переменной, результат будет ошибочно содержать расширение .tif в выходном имени. В таких случаях следует использовать инструмент Анализировать путь, чтобы получить значение только имени: elevation. Результатом работы инструмента Анализировать путь является переменная Имя, которую затем можно использовать как подстановку встроенной переменной для следующего инструмента.
Замена системной переменной
ModelBuilder содержит системные переменные, которые можно использовать в модели для представления итерации (%n%) и времени (%t%) текущей модели.
Переменная %n% указывает на текущую итерацию модели (первая итерация – ноль), если в модели имеется итератор. Например, итератор For используется для четырехкратного итерирования модели. Выходные данные инструмента Буфер используются для обратной связи как входные данные инструмента. Модель выполняет итерации и создает новые выходные данные для каждой итерации. %n% используется в имени выходных данных инструмента Буфер, чтобы задать новое имя выходным данным от каждой итерации.
Переменная %t% ссылается на время создания выходных данных инструмента. Например, если модель запланирована для запуска каждый день для создания архива данных, использование переменной %t% создает выходные данные с временной отметкой, показывающей дату архивации.
Среда рабочей области
Можно использовать четыре параметра среды рабочей области в ModelBuilder для упрощения управления данными в модели. Можно использовать параметра среды рабочей области в параметрах модели и запускать модели с панели Геообработка.
Параметры среды | Использование | Местоположения | Рекомендованное использование |
---|---|---|---|
%scratchGDB% | Папка проекта\scratch.gdb | Промежуточные выходные данные | |
%scratchFolder% | Папка проекта\scratch | Файловые промежуточные выходные данные | |
%workspace% | Текущая рабочая область (параметр среды) | Входные и выходные данные инструмента геообработки | |
%scratchWorkspace% | Временная рабочая область (параметр среды) | Промежуточные выходные данные |
Например, если выходные данные инструмента указаны как %scratchGDB%\CopyToScratchGDB, создается база геоданных scratch.gdb, если она еще не создана, а выходные данные CopyToScratchGDB создаются во Временной базе геоданных, заданной в параметрах среды.
В примере ниже, если выходные данные инструмента заданы как %workspace%\CopyToWorkspace, выходные данные CopyToWorkspace задаются в местоположении параметра среды Текущая рабочая область.