Практически все инструменты имеют параметры, и вы задаете их значения в диалоговом окне или внутри скрипта. При запуске инструмента значения параметров отправляются в исходный код инструмента. Инструмент считывает эти значения и продолжает работу.
Более подробно о параметрах см. Понятие параметров инструмента-скрипта.
Параметры инструмента-скрипта могут быть установлены при создании нового инструмента-скрипта. Кроме того для добавления, удаления и изменения параметров инструмента-скрипта служит диалоговое окно Свойства. Для того чтобы открыть свойства инструмента-скрипта, щелкните правой кнопкой мыши инструмент-скрипт, выберите Свойства, а затем перейдите на вкладку Параметры.
Для добавления нового параметра щелкните первую пустую ячейку под столбцом Надпись и введите имя параметра. Это имя будет отображаться на диалоговом окне инструмента, и оно может содержать пробелы. Под столбцом Имя будет создано имя параметра по умолчанию на основе Надписи, но при необходимости оно может быть изменено. Имя параметра требуется для синтаксиса Python и будет проверено (включая удаление пробелов).
После ввода отображаемого имени параметра выберите для него тип данных, щелкнув ячейку в столбце Тип данных, как показано ниже.
Если вам требуется создать параметр, который принимает множество значений, отметьте опцию Многозначный. Если вам требуется создать составной тип данных, то есть параметр, который принимает различные типы данных, то вы можете отметить опцию множественных типов данных.
Для каждого параметра можно установить дополнительные свойства, как показано ранее и описано ниже.
Свойство | Описание |
---|---|
Доступны значения Обязательный, Необязательный и Производный. Derived означает, что пользователь инструмента не вводит значения параметра. Производные типы всегда являются выходными параметрами. | |
Варианты: Входное или Выходное. Если тип параметра – производный, его направление всегда будет выходным. | |
Параметры могут быть сгруппированы а различные категории. | |
Если в качестве значений параметра необходимо вводить только определенные значения или типы наборов данных, то можно задать фильтр. Существует шесть типов фильтров, а какой тип фильтра можно выбрать зависит от типа данных параметра. | |
Это свойство применимо к производным выходным параметрам, а также к типам данных с входным параметром. Для производных выходных параметров свойство Dependency может указывать на параметр, содержащий определение выходных данных. Для входных параметров свойство Зависимость указывает на параметр, содержащий информацию, необходимую для ввода данных. | |
Значение по умолчанию для параметра. Когда тип данных параметра является либо набором пространственных данных, либо набором записей, параметр По умолчанию используется для задания схемы параметров. | |
Если значение параметра по умолчанию подставляется из параметров среды, это свойство должно содержать имя нужного параметра среды. | |
Это свойство применимо только к выходным параметрам. Его значение – местоположение файла слоя (.lyrx), содержащего символы для отображения выходных данных. |
Тип
Для свойства Тип имеется три варианта:
- Значение параметра Обязательный вводит пользователь. Инструмент не может быть запущен в работу, пока пользователь не задаст значение параметра.
- Дополнительный параметр не требует от пользователя обязательного ввода значения.
- Производный параметр может быть только выходным (см. свойство Направление). Производный выходной параметр не отображается в диалоговом окне инструмента.
Существует пять следующих способов использования производных выходных параметров:
- Выходной параметр совпадает с входным, например, как в инструменте Вычислить поле. Вычислить поле изменяет значение определенного поля во входной таблице – он не создает новой таблицы и не изменяет схему входных данных. Другие примеры инструментов, где выходные данные совпадают с входными, можно найти в Наборе инструментов Редактирование.
- Инструмент изменяет схему входных данных, например, Добавить поле. Добавить поле добавляет поле во входную таблицу – он не создает новой выходной таблицы.
- Инструмент формирует выходные данные, используя информацию в других параметрах, например, инструмент Создать класс пространственных объектов. С помощью инструмента Создать класс пространственных объектов, можно задать рабочую область и имя нового класса объектов, после чего будет создан класс пространственных объектов.
- Инструмент возвращает скалярное значение, в отличие от набора данных Посчитать строки, например, длинное целое (число записей). Всегда, когда инструмент дает на выходе скалярное значение, выходные данные имеют тип Производный.
- Инструмент будет создавать данные в известном местоположении. Например, может существовать скрипт, который обновляет существующую таблицу в известной рабочей области. Пользователь не должен указывать таблицу в диалоговом окне или в скрипте.
Примечание:
Если инструмент-скрипт имеет производные выходные данные, следует задать значение производного выходного параметра в скрипте при помощи функции SetParameterAsText или SetParameter.
Выходные значения вместо данных
Вышеприведенные примеры иллюстрируют получение производных наборов данных. Тем не менее, некоторые скрипты имеют не выходные данные, а выходные значения, например инструмент Посчитать строки, который получает на выходе целое число типа Long, равное числу строк в таблице. Использование выходных значений вместо данных встречается довольно часто. Могут потребоваться и собственные скрипты, выполняющие анализ нескольких наборов данных, связанных отношением, и выдающие результат в виде нескольких чисел или вовсе в виде одного логического значения, указывающего на успешное или неуспешное прохождение проверки.
Выходные параметры, содержащие типы данных, соответствующие значениям (например, типы Long или Boolean), всегда являются производными, а не обязательными.
Направление
В данном свойстве определяется, представляет ли параметр входные данные для инструмента или выходные.
Если тип параметра – производный, то направление параметра автоматически задается как выходное.
Все инструменты-скрипты должны иметь выходные параметры, чтобы они могли использоваться в приложении ModelBuilder. Основной принцип ModelBuilder – соединение выходных данных одних инструментов с входными данными других, и если инструмент-скрипт не имеет выходного параметра, он не очень пригоден для построения модели. Выходными данными может быть набор данных, который вводится в качестве значения параметра, производные выходные данные, для которых местоположение и/или имя определяются в скрипте, или производное значение, которое рассчитывается или определяется. В крайнем случае, выходным параметром может быть логическая переменная, указывающая на успешное (или нет) завершение работы инструмента.
Категория
Параметры могут быть сгруппированы в различные категории, чтобы минимизировать размер диалогового окна инструмента, или в связанные с группой параметры, которые будут редко использоваться. Вы также можете ввести новое имя категории или выбрать его из списка, если вы установили категорию для других параметров. Несколько инструментов дополнительного модуля Дополнительный модуль ArcGIS Network Analyst используют категории как показано ниже.
Категории всегда идут после параметров, не помещенных в категорию. Не помещайте необходимые параметры в категории, поскольку в таком случае их не будет видно в диалоговом окне инструмента.
Многозначные
Если необходимо, чтобы параметр работал со списком значений, а не с одним значением, установите для свойства Многозначность значение Да.
Пример элемента управления multivalue описан ниже.
Множественные значения могут быть получены в виде списка с использованием функции arcpy.GetParameter() и перебраны с использованием цикла for. Иначе, множественные значения можно получить как строку значений разделённых точкой с запятой с использованием функции arcpy.GetParameterAsText(). Для разбиения строки с разделителями применяется метод Python split(), проиллюстрированный в примере кода ниже.
import arcpy
road_types = arcpy.GetParameterAsText(0)
road_list = road_types.split(";")
# Process each road type
for road_type in road_list:
# road_type contains an individual road type string (ex: "Interstates")
arcpy.AddMessage("Processing: {}".format(road_type))
По умолчанию
Значению по умолчанию будет присваиваться содержимое параметра, когда открыто диалоговое окно инструмента скрипта. Это же значение будет использовано, если для параметра в скрипте вводится #. Если не задано значение свойства По умолчанию, то при открытии диалогового окна скрипта значение параметра будет пустым. Если вы укажете для этого свойства какое-либо значение, то свойство Параметра среды будет деактивировано. Для активации свойства Параметр среды следует очистить свойство По умолчанию.
Схема
Если тип данных входного параметра – Набор объектов или Набор записей, необходимо указать местоположение схемы, определяющей поля и тип геометрии вводимых пространственных объектов. Схема может быть либо классом пространственных объектов, либо таблицей, либо файлом слоя (.lyrx).
Типы Набор объектов и Набор записей позволяют выполнять ввод данных интерактивно. Набор объектов позволяет пользователю скрипта интерактивно создавать пространственные объекты в ArcMap, щелкая на карте. Набор записей позволяет пользователю интерактивно создавать строки в сетке таблицы.
Параметры среды
Можно установить значение параметра по умолчанию равным значению параметра среды, щелкнув правой кнопкой на соответствующей ячейке под Параметры среды и выбрав имя нужного параметра среды.
Фильтр
Если в качестве значений параметра необходимо вводить только определенные значения или типы наборов данных, то можно задать фильтр. Щелкните соответствующую ячейку под Фильтр и выберите подходящий тип фильтра из ниспадающего списка. Откроется диалоговое окно, в котором следует указать значения для выбранного фильтра. Существует шесть типов фильтров, а какой тип фильтра можно выбрать зависит от типа данных параметра.
Как правило, можно выбрать только один тип фильтра. Два варианта имеется только для типов данных Long и Double – это Список значений и Диапазон.
Кроме того, фильтры можно настраивать программным способом с использованием Python, настроив класс ToolValidator инструмента скрипта.
Единицы площади
Фильтр площадных единиц задает следующие возможные их типы: Квадратные дюймы, Квадратные футы, Квадратные ярды, Акры, Квадратные мили, Квадратные миллиметры, Квадратные сантиметры, Квадратные дециметры, Квадратные метры, Сотки, Гектары, Квадратные километры и Неизвестно.
Тип объекта
В данном фильтре выберите одно или несколько значений фильтра. Входные классы объектов будут сравниваться со значениями, установленными в фильтре. Например, если в фильтре установлен только тип Point, то в качестве значений параметра пользователь сможет вводить только классы точечных пространственных объектов.
Фильтр типов объектов задает их доступные виды: Точка, Мультиточка, Полигон, Полилиния, Аннотация и Измерение. В фильтре можно задать несколько значений.
Поле
В фильтре полей задаются допустимые типы полей: Короткое целое, Длинное целое, С плавающей точкой, Двойной точности, Текст, Дата, OID, Геометрия, Blob, Растр, GUID, GlobalID и XML. В фильтре можно задать несколько значений.
Файл
Фильтр файлов содержит список допустимых суффиксов файлов, таких как txt (простой текстовый файл) и csv (значения, разделенные запятыми). Можно использовать любое расширение. Совсем не обязательно, чтобы приложение ArcGIS распознавало расширение. Расширение может иметь любую длину и не должно содержать точек. Несколько суффиксов разделяются точками с запятой.
Линейные единицы измерения
Фильтр линейных единиц задает следующие их типы: Дюймы, Точки, Футы, Ярды, Мили, Морские мили, Миллиметры, Сантиметры, Метры, Километры, Десятичные градусы, Дециметры, Градусы и Неизвестно. В фильтре можно задать несколько значений.
Интервал
Для параметров с типом данных Long и Double может быть установлен фильтр диапазона. У фильтров диапазона два значения: минимум и максимум. Диапазон является инклюзивным, то есть в него входят минимальное и максимальное значения.
Единицы времени
Фильтр единиц времени задает следующие типы: Миллисекунды, Секунды, Минуты, Часы, Дни, Недели, Месяцы, Годы, Десятилетия, Столетия и Неизвестно. В фильтре можно задать несколько значений.
Режим передвижения Тип единицы измерения
Этот фильтр может быть использован для задания допустимых типов режимов передвижения, основанных на единицах измерения атрибута импеданса режима передвижения. Допускаются опции Время, Расстояние и Другое. По умолчанию разрешаются все три типа.
Список значений
Фильтр списка значений оптимален при определении набора ключевых слов. Многие инструменты уже имеют предопределенный набор ключевых слов, например параметр Тип поля для инструмента Добавить поле или параметр Соединить атрибуты для многих инструментов в Группе инструментов наложения.
Фильтр списка значений может использоваться для данных типа Long и Double. Для этих типов вводятся допустимые числовые значения.
Если необходимо, чтобы пользователь имел возможность выбрать более одного значения, установите для свойства Многозначность значение Да.
Фильтр списка значений может использоваться для типа данных Boolean. Для типа данных Boolean список значений содержит два значения: истина и ложь. Истинное значение (true) всегда идет в списке первым. Эти значения используются в командной строке при установке значения. См., например, ключевые слова Добавить поле и {NULLABLE | NON_NULLABLE}, которые используются для свойства IsNullable.
Рабочая область
В фильтре рабочей области указываются типы допустимых рабочих областей на входе. К этим трем значениям относятся следующие:
- Файловая система - системная папка, которая используется для хранения шейп-файлов, покрытий ArcInfo, таблиц INFO и сеток
- Локальная база данных - файловая или персональная база геоданных
- Удаленная база данных - подключение к многопользовательской базе данных
Может быть задано более одного значения.
Зависимость
Свойство Зависимость имеет два назначения:
- Для производного выходного параметра свойству Зависимость присваивается входной параметр, который будет изменен инструментом. Дополнительную информацию о производных данных и свойстве Зависимость см. в обсуждении свойства Тип выше.
- Для входных параметров свойство Зависимость содержит имена других параметров, используемых типом данных. Например, для входного параметра с типом данных поле, свойство Зависимость указывает на имя параметра таблицы, содержащего поля.
Задать Зависимость можно только для определенных входных параметров, как проиллюстрировано в таблице ниже.
Тип входных данных | Типы данных Получено из | Описание |
---|---|---|
Поле или выражение SQL | Таблица | Таблица, содержащая поля |
Элемент INFO или выражение INFO | Таблица INFO | Таблица INFO, содержащая элементы |
Класс объектов покрытия | Покрытие | Покрытие, содержащее объекты |
Единицы площади и длины | GeoDataset | Географический набор данных, используемый для определения единиц по умолчанию |
Система координат | Рабочая область | Рабочая область, используемая для определения системы координат по умолчанию |
Настройки иерархии Network Analyst | Набор сетевых данных | Набор сетевых данных, содержащий информацию об иерархии |
Таблица геостатистических значений | Геостатистический слой | Слой анализа, содержащий таблицы |
Режим сетевого передвижения | Источник сетевых данных, Набор сетевых данных, Слой набора сетевых данных | Список режимов передвижения |
Символы
Если на выходе инструмента возвращается набор классов пространственных объектов, растр, TIN или слой, то вы можете указать расположение файла слоя (.lyrx) в свойстве Символы. Когда ваш инструмент выполняется и результат выводится на экран, он будет отображаться с использованием символов, определённых в файле слоя символов.
Внимание:
Файл слоя считывается каждый раз при запуске инструмента. Если файл слоя не удается обнаружить (так как он был перемещен или удален), будут использоваться условные обозначения по умолчанию.