Многие инструменты геообработки используют входные параметры, которые допускают несколько значений. Любой параметр, являющийся многозначным (допускает несколько значений какого-либо типа данных) или таблицей значений (тип данных параметра, объединяющий два или более типов данных в табличной структуре), допускает несколько значений.
Многозначные параметры и параметры таблицы значений могут быть заданы следующим образом:
- Список - значения являются элементом в списке.
- Строка - значения разделяются точками с запятой.
- Объект 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')