Установить параметры инструмента-скрипта

Практически все инструменты имеют параметры, и вы устанавливаете их значения на панели Геообработка или в скрипте. При запуске инструмента значения параметра отправляются в исходный код инструмента. Инструмент считывает эти значения и обрабатывает их соответствующим образом.

Более подробно о параметрах см. Понятие параметров инструмента-скрипта.

Параметры инструмента-скрипта могут быть установлены, когда вы создаете инструмент-скрипт. Кроме того для добавления, удаления и изменения параметров инструмента-скрипта служит диалоговое окно Свойства. Для того чтобы открыть свойства инструмента-скрипта, щелкните правой кнопкой мыши инструмент-скрипт, выберите Свойства, а затем перейдите на вкладку Параметры.

Для добавления параметра щелкните первую пустую ячейку в столбце Надпись и введите имя параметра. Это имя будет отображаться на панели Геообработка и может содержать пробелы. В столбце Имя будет создано имя параметра по умолчанию на основе значения Надписи, но оно может быть изменено. Имя параметра требуется для синтаксиса Python и будет проверено (включая удаление пробелов).

Создание параметра

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

Определение типа данных для параметра

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

Для каждого параметра вы можете установить дополнительные свойства, как показано выше и описано ниже.

СвойствоОписание

Тип

Возможные варианты: Обязательный, Дополнительный, Производный. Производный означает, что пользователь инструмента не вводит значения параметра. Производные типы всегда являются выходными параметрами.

Направление

Возможные варианты: Входное или Выходное. Если для свойства Тип установлено значение Производный, направление всегда равно Выходное.

Категория

Параметры могут быть сгруппированы а различные категории.

Фильтр

Если в качестве значений параметра необходимо вводить только определенные значения или типы наборов данных, то можно задать фильтр. Существует шесть типов фильтров, и доступные типы зависят от типа данных параметра.

Зависимость

Это свойство применимо к производным выходным параметрам, а также к типам данных с входным параметром. Для производных выходных параметров это свойство может указывать на параметр, содержащий определение выходных данных. Для входных параметров установите его на параметр, содержащий информацию, необходимую для входных данных.

По умолчанию

Значение по умолчанию для параметра. Когда тип данных параметра является либо набором пространственных данных, либо набором записей, это свойство используется для определения схемы параметров.

Среда

Если значение параметра по умолчанию подставляется из параметров среды, это свойство должно содержать имя нужного параметра среды.

Символы

Это свойство применимо только к выходным параметрам. Его значение - местоположение файла слоя (.lyrx), содержащего символы для отображения выходных данных.

Свойства параметра

Тип

Установите для свойства Тип одну из следующих опций:

  • Требуется - параметр должен иметь значение для запуска инструмента.
  • Дополнительно – для параметра не обязательно вводить значение.
  • Производные - используйте производные параметры для следующих случаев:
    • Выходные данные совпадают с входными. Например, инструмент Вычислить поле обновляет значения поля во входной таблице. Он не создает таблицу и не изменяет схему входных данных.
    • Инструмент изменяет схему входных данных. Например, инструмент Добавить поле добавляет поле во входную таблицу.
    • Инструмент выводит скалярное значение, такое как число, строка или логическое значение. Например, инструмент Посчитать строки возвращает производное целочисленное значение.
    • Инструмент создает выходные данные из значений других параметров. Например, инструмент Создать класс пространственных объектов возвращает путь производного класса пространственных объектов, созданный на основе других параметров, имеющих значения пути и имени.
    • Инструмент создает данные в известном местоположении. Например, у вас есть скрипт, который создает класс пространственных объектов в известной рабочей области. Ни класс пространственных объектов, ни рабочая область не являются опциями параметра.
Примечание:

Когда инструмент обновляет набор данных или слой, инструмент должен иметь производный выходной параметр с установленной зависимостью параметра от входного параметра. Это сделано для того, чтобы многопоточная фоновая геообработка в ArcGIS Pro определяла, какие слои карты следует отключать во время обработки для защиты от ошибок блокировки данных, а также повторно подключаться после обработки и обновлять с помощью обновленных свойств, таких как выборки и объединения.

Примечание:

Если инструмент-скрипт имеет производные выходные данные, вам следует установить значение производного выходного параметра в скрипте при помощи функции SetParameterAsText или SetParameter.

Выходные значения вместо данных

Вышеприведенные примеры иллюстрируют получение производных наборов данных. Тем не менее, некоторые скрипты имеют не выходные данные, а выходные значения, например инструмент Посчитать строки, который получает на выходе целое число типа Long, равное числу строк в таблице. Использование выходных значений вместо данных встречается довольно часто. Вам могут потребоваться скрипты, выполняющие анализ нескольких наборов связанных данных и выдающие результат в виде нескольких чисел или в виде одного логического значения, указывающего на успешное или неуспешное прохождение проверки.

Выходные параметры, содержащие типы данных, такие как Long или Boolean, всегда используют опцию Производный, а не Обязательный.

Направление

В данном свойстве определяется, представляет ли параметр входные данные для инструмента или выходные.

Если тип параметра – производный, то направление параметра автоматически задается как выходное.

Все инструменты-скрипты должны иметь выходные параметры, чтобы они могли использоваться в приложении ModelBuilder. Основной принцип 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). Если указан файл слоя, путь к файлу слоя будет встроен, и если диалоговое окно Свойства будет открыто повторно, в ячейке появится надпись ... встроенная ....

Среда

Можно установить значение параметра по умолчанию равным значению параметра среды, щелкнув правой кнопкой на соответствующей ячейке под Параметры среды и выбрав имя нужного параметра среды.

Фильтр

Если в качестве значений параметра необходимо вводить только определенные значения или типы наборов данных, то можно задать фильтр. Щелкните соответствующую ячейку под Фильтр и выберите подходящий тип фильтра из ниспадающего списка. Появится диалоговое окно; здесь вы указываете значения для фильтра. Существует 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 и сеток
  • Локальная база данных - файловая или персональная база геоданных
  • Удаленная база данных - подключение к многопользовательской базе данных

Может быть указано более одного значения.

Зависимость

Свойство Зависимость имеет два назначения:

  • Для производного выходного параметра свойству Зависимость присваивается входной параметр, который будет изменен инструментом. Дополнительную информацию о производных данных и фильтре Зависимость см. в разделе свойства Тип выше.
  • Для входных параметров свойство Зависимость содержит имена других параметров, используемых типом данных. Например, для входного параметра с типом данных поле, свойство Зависимость указывает на имя параметра таблицы, содержащего поля.

Задать фильтр Зависимость можно только для определенных входных параметров, как проиллюстрировано в таблице ниже.

Тип входных данныхТипы данных Получено изОписание

Поле или выражение SQL

Таблица

Таблица, содержащая поля

Элемент INFO или выражение INFO

Таблица INFO

Таблица INFO, содержащая элементы

Класс объектов покрытияПокрытие

Покрытие, содержащее объекты

Единицы площади и длины

Набор геоданных

Географический набор данных, используемый для определения единиц по умолчанию

Система координатРабочая область

Рабочая область, используемая для определения системы координат по умолчанию

Настройки иерархии Network AnalystНабор сетевых данных

Набор сетевых данных, содержащий информацию об иерархии

Таблица геостатистических значенийГеостатистический слой

Слой анализа, содержащий таблицы

Режим передвижения по сети

Источник сетевых данных, Набор сетевых данных или Слой набора сетевых данных

Список режимов передвижения

Типы данных для свойстваЗависимость

Для параметра таблицы значений любые столбцы полей находятся в косвенной зависимости от первого столбца данных в таблице значений. Раскрывающийся список этого параметра для любого последующего столбца поля автоматически активирует все доступные поля в этих данных.

Символы

Если на выходе инструмента возвращается набор классов пространственных объектов, растр, TIN или слой, то вы можете указать местоположение файла слоя (.lyrx) в свойстве Символы. Когда инструмент запущен и результат выводится на экран, он будет отображаться с использованием символов, определённых в файле слоя символов.

Внимание:

Файл слоя считывается каждый раз при запуске инструмента. Если файл слоя не удается обнаружить (так как он был перемещен или удален), будут использоваться условные обозначения по умолчанию.

Связанные разделы