Общая информация о проверке в инструментах-скриптах

Вы можете задать пользовательское поведение для диалогового окна вашего инструмента-скрипта, например, включение или отключение параметров, задание значений по умолчанию, и изменение строковых ключевых слов. С помощью добавления кода Python, вы можете сделать следующее:

Как работает проверка

Проверка выполняется в блоке кода Python, который геообработка (geoprocessing) использует, чтобы контролировать изменение диалогового окна инструмента и окна Python, основываясь на вводе данных пользователем. Системные инструменты (предоставляемые Esri) всегда содержат функциональность, позволяющую реагировать на задаваемые пользователем данные и соответственно изменять диалоговое окно инструмента, как описано выше.

Проверка

Проверка (validation) означает проверку всех параметров инструмента на корректность, и предоставление полезных сообщений, если они не корректны. Существует две части проверки:

  • Часть, осуществляемая с помощью добавления кода Python.
  • Часть, осуществляемая автоматически в ArcGIS. Эта часть проверки называется внутренняя проверка (или базовая проверка), поскольку она является базовой проверкой, выполняемой внутри ArcGIS с помощью геообработки (geoprocessing).

Что делает внутренняя проверка (internal validation):

  • Если требуется какой-нибудь параметр, то проверяет, пустой ли он (не введен ранее), и если да, то отправляет сообщение "Требуется значение" ("Value is required") в диалоговое окно инструмента (используя зеленую точку вместо красного Х).
  • Проверяет правильность типа введенного пользователем значения (например, введение растра вместо класса объектов, или текстового символа вместо числа).
  • Проверяет принадлежность фильтра. Например, если у вас есть фильтр списка значений (Value List filter), содержащий ключевые слова RED, ORANGE, и YELLOW, и вы вводите значение BLUE, вы получите сообщение об ошибке, поскольку BLUE не содержится в фильтре списка значений.
  • Проверяет существование входных наборов данных.
  • Генерирует путь, используемый по умолчанию, для выходных наборов данных.
  • Изменяет описание выходных данных на основе набора правил, содержащихся в специальном объекте Схема (Schema).
  • Проверяет существование выходных данных в настройке среды overwriteOutput. Если набор данных существует, и параметр overwriteOutput имеет значение False, выводится ошибка, в противном случае выводится предупреждение.
  • Если параметр является Типом поля данных (Field data type), то выполняется проверка на существование поля в связанной таблице.
  • Проверяет, чтобы выходной набор данных не совпадал с входным набором данных (если только выходной результат не вычисляется, как, например, в инструменте Добавить поле (Add Field)).
  • Для параметров, содержащих типы данных: линейные и единицы площади, устанавливает значения по умолчанию, взятые после обработки соответствующих значений в ArcMap (при запуске в ArcMap).
  • Если результатом является покрытие, грид или таблица INFO, проверяет имя файла на ограничение длины в 13 символов для этих наборов данных.

Внутренняя проверка не выполняет следующее (но вы можете сделать это с помощью собственного кода проверки):

  • Изменение фильтров на основе взаимодействия с другими параметрами. Например, если пользователь вводит в качестве первого параметра точечный класс объектов, и вы хотите, чтобы диалоговое окно отображало в третьем параметре RED, ORANGE и YELLOW. Если пользователь вводит полигональный класс объектов, вы хотите отображать в третьем параметре BLUE, INDIGO и VIOLET.
  • Включение/Отключение параметров.
  • Вычисление значений по умолчанию.
  • Выполнение взаимодействий любых параметров, специфических для данного инструмента.

Код, который вы добавляете, работает в соответствии с внутренней проверкой, например:

  • Вы можете установить набор правил, которые внутренняя проверка использует для изменения описания выходных наборов данных. Эти правила содержатся в объекте Схема (Schema).
  • Вы можете изменять и обновлять фильтры перед выполнением внутренней проверки. Используя пример выше, если введен точечный класс объектов, то вы изменяете фильтр на содержание значений RED, ORANGE и YELLOW Внутренняя проверка проверяет введенное пользователем значение на соответствие значениям в фильтре.

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

Связанные темы

9/10/2013