Понимание синтаксиса инструментов

В разделе синтаксиса справочной страницы инструмента содержатся сведения для каждого параметра инструмента. В нем также содержится синтаксис для использования инструмента в Python.

ПодсказкаПодсказка:

Простым способом создания кода Python, который выполняет определенный инструмент, является использование окна Результаты (Results) следующим образом.

  1. Воспользуйтесь диалоговым окном инструмента для выполнения инструмента.
  2. После выполнения инструмента откройте окно Результаты (Results).
  3. Щёлкните правой кнопкой мыши на результате и выберите пункт Скопировать как Python Snippet (Copy As Python Snippet).
  4. В коде Python вставьте скопированную строку.

Подпись инструмента

Первая строка под заголовком синтаксиса содержит подпись инструмента.

Имя и псевдоним инструмента

В окне Python имя инструмента используется вместо подписи инструмента.

  • Подпись инструмента отображается в верхней части диалогового окна инструмента или в окне Каталог (Catalog).
  • В Python псевдоним панели инструментов следует после имени инструмента, разделенный подчеркиванием. Например, в Python инструмент Симметричная разность (Symmetrical Difference) идентифицируется как SymDiff_analysis.

Необязательные параметры

Параметры инструмента могут быть либо обязательными, либо необязательными. Необязательные параметры заключены в фигурные скобки ({}), обязательные параметры – нет.

Тип параметра (Parameter Type)

Символ (Symbol)

Значение (Meaning)

Обязательно (Required)

Требуемый параметр (Required parameter). Эти типы параметров в команде всегда находятся первыми. Вы должны ввести значение для требующегося параметра.

Дополнительно (Optional)

{ }

Опциональный параметр (Optional parameter). Необязательные параметры всегда идут после обязательных. Если вы не ввели значения для опционального параметра, в этом случае будет рассчитано и использовано значение по умолчанию. Значение по умолчанию параметра можно найти в разделе Справка инструмента.

Типы параметров (Parameter types)

Имена необязательных параметров могут быть полезными как меню быстрого доступа в Python. Вместо того, чтобы пропускать другие неиспользуемые необязательные параметры с пустым набором кавычек ("") или знаком решетки ("#"), параметр можно четко настроить с помощью его имени.

# Use the parameter name to bypass unused optional arguments
arcpy.AddField_management("c:/data/streets.shp", "Address", "TEXT", field_length=120)

Таблица параметров

После подписи инструмента идет таблица параметров с тремя столбцами: Параметр (Parameter), Объяснение (Explanation) и Тип данных (Data Type). Строки в таблице параметров всегда находятся в порядке параметров (аналогично подписи инструмента).

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

Столбец Параметр (Parameter)

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

Оформление

Описание

Простой список

Простой список. Простые списки известны как параметры с несколькими значениями.

Таблица значений

Список списков. Типом данных является Таблица значений (Value Table). Только встроенные инструменты и инструменты из набора Python могут иметь параметры с типом данных Таблица значений (Value Table).

Простой список

Простой список содержит список отдельных значений. В примере выше параметр Расстояния (Distances) имеет двойной тип данных (показан в столбце Тип данных (Data Type)). Этот список можно выразить с помощью одного из перечисленных ниже методов.

# Method 1: A list of numbers
dist = [10.0, 20.0, 30.0]

# Method 2: A list of strings
dist = ["10.0", "20.0", "30.0"]

# Method 3: String representation of a list
dist = "10.0; 20.0; 30.0"

Таблицы значений – список списков

Типом данных списка списков является Таблица значений (Value Table). В примере выше параметр in_features является списком списков, в котором отдельный список содержит путь к набору данных объектов или слою и дополнительному разряду целого числа. Этот параметр можно выразить с помощью одного из перечисленных ниже методов.

# Method 1: A list of lists
inFeatures = [["counties", 2],["parcels", 1],["state"]]

# Method 2: A list of strings
inFeatures = ["counties 2", "parcels 1", "state"]

# Method 3: String representation, each list separated by a semicolon
inFeatures = "counties 2; parcels 1; state"
ПодсказкаПодсказка:

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

  1. Воспользуйтесь диалоговым окном инструмента для выполнения инструмента.
  2. После выполнения инструмента откройте окно Результаты (Results).
  3. Щёлкните правой кнопкой мыши результат и выберите пункт Скопировать как Python Snippet (Copy As Python Snippet).
  4. В коде Python вставьте скопированную строку.

Столбец Объяснение (Explanation)

В ячейках данного столбца содержится информация о том, для чего используется параметр и как его можно настроить, включая опции ключевых слов. В большинстве случаев это объяснение аналогично объяснению в справке боковой панели (side-panel help) для инструмента. В некоторых случаях объяснение параметра может слегка отличаться от объяснения в справке боковой панели. Например, в диалоговом окне инструмента будет установлена опция для параметра Булевы (Boolean) (значение true/false), но описание в синтаксисе будет содержать две строки ключевого слова — одну для состояния true и одну для состояния false.

Ключевые слова являются строками. Они всегда заключены в кавычки при вызове инструмента. Например, инструмент AddField имеет ключевые слова для типа поля:

# Add field idField with data type of long
arcpy.AddField_management("Parks", "idField", "LONG", field_is_nullable="NULLABLE", field_is_required="NON_REQUIRED")

Тип данных

Каждый параметр инструмента имеет связанный тип данных (data type). Некоторые простые типы данных: строка (любой набор букв и цифр), булево (значение true или false) и длинное целое число (целочисленное значение от -2,147,483,648 до 2,147,483,647). В дополнение к этим простым типам данных существуют десятки других типов данных, специально построенных для данных, загруженных в ArcGIS, такие как Система координат и Экстент.

Использование объектов написания скриптов

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

Некоторые параметры труднее задать с использованием простых строк; это комплексные параметры, для которых необходимо задать много свойств. Вместо того, чтобы задавать длинные, сложные текстовые строки, определяющие эти параметры, можно использовать классы (например, SpatialReference, ValueTable и Point). Документация для каждого инструмента содержит пример создания скриптов для задания и применения каждого параметра инструмента.

В следующем примере создается объект SpatialReference, который затем используется для задания выходной системы координат нового класса пространственного объекта, создаваемого с использованием инструмента CreateFeatureClass.

import arcpy

inputWorkspace = "c:/temp"
outputName =  "rivers.shp"

prjFile = "c:/projections/North America Equidistant Conic.prj"
spatialRef = arcpy.SpatialReference(prjFile)

# Run CreateFeatureclass using the spatial reference object
#
arcpy.CreateFeatureclass_management(inputWorkspace, outputName, "POLYLINE", 
                                    "", "", "", spatialRef)

Во многих рабочих потоках геообработки может потребоваться запустить определенную операцию, используя информацию о координатах и геометрии, при этом не желая проходить процесс создания нового (временного) класса пространственных объектов, отображения класса пространственных объектов с помощью курсоров, использования класса пространственных объектов, и последующего удаления временного класса пространственных объектов. Чтобы упростить геообработку, вместо этого можно использовать в качестве входных и выходных данных объекты геометрии. Объекты геометрии можно создавать с нуля, используя классы Геометрия (Geometry), Мультиточка (Multipoint), PointGeometry, Полигон (Polygon) или Полилиния (Polyline) classes.

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

9/11/2013