Практически все инструменты имеют параметры, и вы устанавливаете их значения на панели Геообработка или в скрипте. При запуске инструмента значения параметра отправляются в исходный код инструмента. Инструмент считывает эти значения и обрабатывает их соответствующим образом.
Подробнее о параметрах инструмента-скрипта
Параметры инструмента-скрипта могут быть установлены, когда вы создаете инструмент-скрипт. Кроме того для добавления, удаления и изменения параметров инструмента-скрипта служит диалоговое окно Свойства. Для того чтобы открыть свойства инструмента-скрипта, щелкните правой кнопкой инструмент-скрипт, выберите опцию Свойства, а затем перейдите на вкладку Параметры.
Для добавления параметра щелкните первую пустую ячейку в столбце Надпись и введите имя параметра. Это имя будет отображаться на панели Геообработка и может содержать пробелы. В столбце Имя будет создано имя параметра по умолчанию на основе значения Надписи, но оно может быть изменено. Имя параметра требуется для синтаксиса Python и будет проверено (включая удаление пробелов).
После указания отображаемого имени параметра выберите для него тип данных, щелкнув ячейку в столбце Тип данных, как показано ниже.
Чтобы создать параметр, который будет принимать множество значений, отметьте опцию Многозначный. Чтобы создать параметр, который принимает разные типы данных, т.е. составной тип данных, щелкните кнопку Добавить .
Для каждого параметра вы можете установить дополнительные свойства, как показано выше и описано ниже.
Свойство | Описание |
---|---|
Возможные варианты: Обязательный, Дополнительный, Производный. Производный означает, что пользователь инструмента не вводит значения параметра. Производные типы всегда являются выходными параметрами. | |
Возможные варианты: Входное или Выходное. Если для свойства Тип установлено значение Производный, направление всегда равно Выходное. | |
Справка по каждому параметру инструмента, в том числе инструкции, информацию и допустимые типы данных или значения. Описания параметров отображаются в диалоговом окне инструмента при наведении курсора на кнопку информации рядом с подписью параметра. | |
Параметры могут быть сгруппированы а различные категории. | |
Если в качестве значений параметра необходимо вводить только определенные значения или типы наборов данных, то можно задать фильтр. Существует шесть типов фильтров, и доступные типы зависят от типа данных параметра. | |
Это свойство применимо к производным выходным параметрам, а также к типам данных с входным параметром. Для производных выходных параметров это свойство может указывать на параметр, содержащий определение выходных данных. Для входных параметров установите его на параметр, содержащий информацию, необходимую для входных данных. | |
Значение по умолчанию для параметра. Когда тип данных параметра является либо набором пространственных данных, либо набором записей, это свойство используется для определения схемы параметров. | |
Если значение параметра по умолчанию подставляется из параметров среды, это свойство должно содержать имя нужного параметра среды. | |
Это свойство применимо только к выходным параметрам. Его значение - местоположение файла слоя (.lyrx), содержащего символы для отображения выходных данных. |
Тип
Установите для свойства Тип одну из следующих опций:
- Обязательный - параметр должен содержать значение для запуска инструмента.
- Дополнительно – для параметра не обязательно вводить значение.
- Производные - используйте производные параметры для следующих случаев:
- Выходные данные совпадают с входными. Например, инструмент Вычислить поле обновляет значения поля во входной таблице. Он не создает таблицу и не изменяет схему входных данных.
- Инструмент изменяет схему входных данных. Например, инструмент Добавить поле добавляет поле во входную таблицу.
- Инструмент выводит скалярное значение, такое как число, строка или логическое значение. Например, инструмент Посчитать строки возвращает производное целочисленное значение.
- Инструмент создает выходные данные из значений других параметров. Например, инструмент Создать класс пространственных объектов возвращает путь производного класса пространственных объектов, созданный на основе других параметров, имеющих значения пути и имени.
- Инструмент создает данные в известном местоположении. Например, у вас есть скрипт, который создает класс пространственных объектов в известной рабочей области. Ни класс пространственных объектов, ни рабочая область не являются опциями параметра.
Примечание:
Когда инструмент обновляет набор данных или слой, инструмент должен иметь производный выходной параметр с установленной зависимостью параметра от входного параметра. Это сделано для того, чтобы многопоточная фоновая геообработка в ArcGIS Pro определяла, какие слои карты следует отключать во время обработки для защиты от ошибок блокировки данных, а также повторно подключаться после обработки и обновлять с помощью обновленных свойств, таких как выборки и объединения.
Примечание:
Если инструмент-скрипт имеет производные выходные данные, вам следует установить значение производного выходного параметра в скрипте при помощи функции SetParameterAsText или SetParameter.
Выходные значения вместо данных
Вышеприведенные примеры иллюстрируют получение производных наборов данных. Тем не менее, некоторые скрипты имеют не выходные данные, а выходные значения, например инструмент Посчитать строки, который получает на выходе целое число типа Long, равное числу строк в таблице. Использование выходных значений вместо данных встречается довольно часто. Вам могут потребоваться скрипты, выполняющие анализ нескольких наборов связанных данных и выдающие результат в виде нескольких чисел или в виде одного логического значения, указывающего на успешное или неуспешное прохождение проверки.
Выходные параметры, содержащие типы данных, такие как Long или Boolean, всегда используют опцию Производный, а не Обязательный.
Направление
В данном свойстве определяется, представляет ли параметр входные данные для инструмента или выходные.
Если тип параметра – производный, то направление параметра автоматически задается как выходное.
Все инструменты-скрипты должны иметь выходные параметры, чтобы они могли использоваться в приложении ModelBuilder. Основной принцип ModelBuilder - соединение выходных данных одних инструментов с входными данными других, и если инструмент-скрипт не имеет выходного параметра, он не очень пригоден в ModelBuilder. Выходными данными может быть набор данных, указанный в качестве значения параметра, производные выходные данные, для которых местоположение или имя определяются в скрипте, или производное значение, которое рассчитывается или определяется. В крайнем случае, выходным параметром может быть логическая переменная, указывающая на успешное (или нет) завершение работы инструмента.
Описание
Задайте свойство Описание для каждого параметра. Описание отобразится при наведении курсора на кнопку Информация рядом с подписью параметра.
Нажмите кнопку Изменить описание , чтобы открыть диалоговое окно Описание параметров. Используйте диалоговое окно для документирования информации о параметре. Диалоговое окно содержит основные параметры форматирования текста, такие как начертание текста (полужирный или курсив), маркеры и URL-ссылки.
Категория
Параметры могут быть сгруппированы в различные категории, чтобы минимизировать размеры панели Геообработка, или в связанные с группой параметры, которые будут редко использоваться. Вы также можете указать новое имя категории или выбрать его из списка, если вы установили категорию для других параметров. Несколько инструментов Расширение 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))
Фильтр
Если в качестве значений параметра необходимо вводить только определенные значения или типы наборов данных, то можно задать фильтр. Щелкните соответствующую ячейку под Фильтр и выберите подходящий тип фильтра из ниспадающего списка. Появится диалоговое окно, в котором вы указываете значения для фильтра. Существует 10 типов фильтров, которые описаны ниже, а доступные типы фильтров зависят от типа данных параметра.
Как правило, доступен только один тип фильтра. Два варианта имеется только для типов данных Long и Double – это Список значений и Диапазон.
Кроме того, фильтры можно настраивать программным способом с использованием Python, настроив класс ToolValidator инструмента скрипта.
Единицы площади
Фильтр площадных единиц задает следующие возможные их типы: Квадратные дюймы, Квадратные футы, Квадратные ярды, Акры, Квадратные мили, Квадратные миллиметры, Квадратные сантиметры, Квадратные дециметры, Квадратные метры, Сотки, Гектары, Квадратные километры и Неизвестно.
Тип объекта
Фильтр типов объектов задает их доступные виды: Точка, Мультиточка, Полигон, Полилиния, Аннотация и Измерение. Может быть указано более одного значения.
В данном фильтре выберите одно или несколько значений фильтра. Входные классы объектов будут сравниваться со значениями, установленными в фильтре. Например, если в фильтре указан только тип Точка, то в качестве значений параметра пользователь сможет вводить только классы точечных пространственных объектов.
Поле
Фильтр полей определяет допустимые типы полей: Short, Long, Float, Long (64-bit integer), Double, Text, Date, OID, Time only, Date only, Timestamp with offset, Geometry, Blob, Raster, GUID, GlobalID, и XML. Может быть указано более одного значения.
Файл
Фильтр файлов содержит список допустимых суффиксов файлов, таких как .txt (простой текстовый файл) и .csv (значения с разделителем запятая). Можно использовать любое расширение. Совсем не обязательно, чтобы приложение ArcGIS распознавало расширение. Расширение может иметь любую длину и не должно содержать точек. Несколько суффиксов разделяются точками с запятой.
Линейные единицы измерения
Фильтр линейных единиц задает следующие их типы: Дюймы, Точки, Футы, Ярды, Мили, Морские мили, Миллиметры, Сантиметры, Метры, Километры, Десятичные градусы, Дециметры, Градусы и Неизвестно. Может быть указано более одного значения.
Диапазон
У фильтра диапазона два значения: минимум и максимум. Диапазон является инклюзивным, то есть в него входят минимальное и максимальное значения. Параметр с типом данных Long или Double может использовать этот фильтр.
Единицы измерения времени
Фильтр единиц времени задает следующие типы: Миллисекунды, Секунды, Минуты, Часы, Дни, Недели, Месяцы, Годы, Десятилетия, Столетия и Неизвестно. Может быть указано более одного значения.
Режим передвижения Тип единицы измерения
Этот фильтр может быть использован для задания допустимых типов режимов передвижения, основанных на единицах измерения атрибута импеданса режима передвижения. Возможные варианты: Время, Расстояние и Другие. По умолчанию разрешаются все три типа.
Список значений
Этот фильтр можно использовать для указания набора ключевых слов. Многие инструменты уже имеют предопределенный набор ключевых слов, например, параметр Тип поля для инструмента Добавить поле или параметр Соединить атрибуты для многих инструментов в группе инструментов Наложение.
Фильтр Список значений может использоваться для данных с типом Long и Double. Для этих типов вводятся допустимые числовые значения.
Если необходимо, чтобы пользователь имел возможность выбрать более одного значения, установите для свойства Многозначные значение Да.
Фильтр Список значений может использоваться для данных с типом Boolean. Для данных с типом Boolean Список значений содержит два значения: истина и ложь. Истинное значение (true) первое значение в списке. Эти значения используются в командной строке при установке значения. Например, см. раздел Добавить поле и ключевые слова {NULLABLE | NON_NULLABLE}, используемые для параметра field_is_nullable.
Рабочая область
В фильтре рабочей области указываются типы допустимых рабочих областей на входе. Используются следующие значения:
- Файловая система - системная папка, которая используется для хранения шейп-файлов, покрытий ArcInfo, таблиц INFO и сеток
- Локальная база данных - файловая или персональная база геоданных
- Удаленная база данных - подключение к многопользовательской базе данных
Может быть указано более одного значения.
Зависимость
Свойство Зависимость имеет следующие назначения:
- Для производного выходного параметра свойству Зависимость присваивается входной параметр, который будет изменен инструментом. Дополнительную информацию о производных данных и фильтре Зависимость см. в разделе свойства Тип выше.
- Для входных параметров свойство Зависимость содержит имена других параметров, используемых типом данных. Например, для входного параметра с типом данных поле, свойство Зависимость указывает на имя параметра таблицы, содержащего поля.
Задать фильтр Зависимость можно только для определенных входных параметров, как проиллюстрировано в таблице ниже.
Тип данных параметра | Тип данных зависимого параметра |
---|---|
Единица площади | Географический набор данных, используемый для определения единиц измерения по умолчанию. Например, можно использовать тип данных Векторный слой, Растровый слой, Набор объектов или Набор записей. |
Поле | Таблица, содержащая поля. Например, можно использовать тип данных Вид таблицы, Векторный слой, Растровый слой, Набор объектов или Набор записей. |
Сопоставление полей | Набор полей в одной или более входных таблицах. Например, можно использовать тип данных Вид таблицы, Векторный слой, Растровый слой, Набор объектов или Набор записей. |
Таблица геостатистических значений | Таблица наборов данных и полей, используемых в инструментах Geostatistical Analyst. Используйте тип данных Геостатистический слой. |
Линейные единицы измерения | Географический набор данных, используемый для определения единиц измерения по умолчанию. Например, можно использовать тип данных Векторный слой, Растровый слой, Набор объектов или Набор записей. |
Настройки иерархии Network Analyst | Набор сетевых данных, содержащий информацию об иерархии. Используйте тип данных Набор сетевых данных. |
Режим передвижения по сети | Список режимов передвижения. Используйте тип данных Источник сетевых данных, Набор сетевых данных или Слой набора сетевых данных. |
Выражение SQL | Таблица, содержащая поля. Например, можно использовать тип данных Вид таблицы, Векторный слой, Растровый слой, Набор объектов или Набор записей. |
Для параметра таблицы значений любые столбцы полей находятся в косвенной зависимости от первого столбца данных в таблице значений. Раскрывающийся список этого параметра для любого последующего столбца поля автоматически активирует все доступные поля в этих данных.
По умолчанию
Значением по умолчанию является содержимое параметра при открытии инструмента-скрипта. Это же значение будет использовано, если для параметра в скрипте вводится #. Если не задано значение свойства По умолчанию, то при открытии инструмента значение параметра будет пустым. Если вы укажете для этого свойства какое-либо значение, то свойство Параметра среды будет деактивировано. Для активации свойства Параметр среды следует очистить свойство По умолчанию.
Схема
Типы Набор объектов и Набор записей позволяют выполнять ввод данных интерактивно. Опция Набор объектов позволяет пользователю вашего скрипта интерактивно создавать объекты, щелкая на карте. Опция Набор записей позволяет пользователю интерактивно создавать строки в сетке таблицы.
Если тип данных входного параметра указан как Набор объектов или Набор записей, укажите местоположение схемы, которая определяет поля и тип геометрии входных данных. Схема может быть классом пространственных объектов, таблицей, или файлом слоя (.lyrx). Если указан файл слоя, путь к файлу слоя будет встроен, и если диалоговое окно Свойства будет открыто повторно, в ячейке появится надпись встроенная.
Окружающая среда
Можно установить значение параметра по умолчанию равным значению параметра среды, щелкнув правой кнопкой на соответствующей ячейке под Параметры среды и выбрав имя нужного параметра среды.
Символы
Если на выходе инструмента возвращается набор классов пространственных объектов, растр, TIN или слой, то вы можете указать местоположение файла слоя (.lyrx) в свойстве Символы. Когда инструмент запущен и результат выводится на экран, он будет отображаться с использованием символов, определённых в файле слоя символов.
Внимание:
Файл слоя считывается каждый раз при запуске инструмента. Если файл слоя не удается обнаружить (так как он был перемещен или удален), будут использоваться условные обозначения по умолчанию.