Ввод многозначных параметров

Многие инструменты геообработки используют входные параметры, которые допускают несколько значений. Любой параметр, являющийся многозначным (допускает несколько значений какого-либо типа данных) или таблицей значений (тип данных параметра, объединяющий два или более типов данных в табличной структуре), допускает несколько значений.

Многозначные параметры и параметры таблицы значений могут быть заданы следующим образом:

  • Список - значения являются элементом в списке.
  • Строка - значения разделяются точками с запятой.
  • Объект ValueTable - значения сохраняются в виртуальной таблице из строк и столбцов.

На справочной странице инструмента на вкладке Python многозначные параметры и параметры таблицы значений будут отображаться в квадратных скобках ([]) под именем соответствующего параметра. Например, инструмент Удалить поле использует многозначный параметр поля, и использование этого параметра отображается как [drop_field, ...]. Инструмент Объединение использует параметр Таблицы значений, который работает только с входными наборами данных со значением ранга. Использование его параметров отображается как [[in_features, {rank}], ...].

В виде списка

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

Функция DeleteField использует список для параметра drop_field.

import arcpy 

arcpy.env.workspace = 'C:/base/county.gdb'
arcpy.management.DeleteField('roads', ['STREET_NAM', 'LABEL', 'CLASS'])

Функция Union использует список для параметра таблицы значений in_features.

import arcpy

arcpy.env.workspace = 'C:/base/data/gdb' 
arcpy.analysis.Union([['counties', 2],['parcels', 1]], 'state_landinfo')

В виде строки

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

Функция DeleteField использует строку для многозначного параметра drop_field.

import arcpy 

arcpy.env.workspace = 'C:/base/county.gdb'
arcpy.management.DeleteField('roads', 'STREET_NAM;LABEL;CLASS')

Функция Union использует строку для параметра таблицы значений in_features.

import arcpy 

arcpy.env.workspace = 'C:/base/data/gdb' 
arcpy.analysis.Union('counties 2;parcels 1', 'state_landinfo')

В виде таблицы значений

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

Функция DeleteField использует объект ValueTable для многозначного параметра drop_field.

import arcpy 

arcpy.env.workspace = 'C:/base/county.gdb'

value_table = arcpy.ValueTable()
value_table.addRow('STREET_NAM')
value_table.addRow('LABEL')
value_table.addRow('CLASS')

arcpy.management.DeleteField('roads', value_table)

Функция Union использует объект ValueTable для параметра таблицы значений in_features.

import arcpy 

arcpy.env.workspace = 'C:/base/data/gdb' 

value_table = arcpy.ValueTable(2)
value_table.addRow(['counties', 2])
value_table.addRow(['parcels', 1])

arcpy.analysis.Union(value_table, 'state_landinfo')