ValueTable

Сводка

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

Описание

Значение аргумента setRow разделяется пробелами. Любое значение в аргументе значения, которое содержит пробелы, необходимо заключить в кавычки. В следующем примере в таблицу значений с двумя столбцами добавляются класс объектов и значение индекса:

value_table.setRow(0, "'c:/temp/land use.shp' 2")

Синтаксис

 ValueTable  ({columns})
ParameterОбъяснениеТип данных
columns

Число столбцов.

(Значение по умолчанию — 1)

Integer

Свойства

ВладениеОбъяснениеТип данных
columnCount
(только чтение)

Число столбцов.

Integer
rowCount
(только чтение)

Число строк.

Integer

Обзор метода

МетодОбъяснение
addRow (value)

Добавляет строку в таблицу значений.

Значение аргумента addRow разделяется пробелами. Любое значение в аргументе значения, которое содержит пробелы, необходимо заключить в кавычки. В следующем примере в таблицу значений с двумя столбцами добавляются класс объектов и значение индекса:

vtab.addRow("'c:/temp/land use.shp' 2")

exportToString ()

Экспортирует объект в его строковое представление.

getRow (row)

Получает строку из таблицы значений.

getTrueValue (row, column)

Получает значение из данного столбца и строки.

getValue (row, column)

Получает значение из данного столбца и строки.

loadFromString (string)

Восстановление объекта с помощью его строкового представления. Метод exportToString может использоваться для создания строкового представления.

removeRow (row)

Удаляет строку из таблицы значений.

setColumns (number_of_columns)

Устанавливает количество столбцов в таблице значений.

setRow (row, value)

Обновляет заданную строку в таблице значений.

Значение аргумента setRow разделяется пробелами. Любое значение в аргументе значения, которое содержит пробелы, необходимо заключить в кавычки. В следующем примере в таблицу значений с двумя столбцами добавляются класс объектов и значение индекса:

vtab.setRow(0, "'c:/temp/land use.shp' 2")
setValue (row, column, value)

Обновляет значение заданной строки и столбца.

Методы

addRow (value)
ParameterОбъяснениеТип данных
value

Добавляемая строка.

Object
exportToString ()
Значение отраженного сигнала
Тип данныхОбъяснение
String

Строковое представление объекта.

getRow (row)
ParameterОбъяснениеТип данных
row

Значение индекса строки.

Integer
Значение отраженного сигнала
Тип данныхОбъяснение
String

Строка из таблицы значений.

getTrueValue (row, column)
ParameterОбъяснениеТип данных
row

Значение индекса строки.

Integer
column

Значение индекса столбца.

Integer
Значение отраженного сигнала
Тип данныхОбъяснение
String

Значение данного столбца и строки.

getValue (row, column)
ParameterОбъяснениеТип данных
row

Значение индекса строки.

Integer
column

Значение индекса столбца.

Integer
Значение отраженного сигнала
Тип данныхОбъяснение
String

Значение данного столбца и строки.

loadFromString (string)
ParameterОбъяснениеТип данных
string

Строковое представление объекта.

String
removeRow (row)
ParameterОбъяснениеТип данных
row

Значение индекса строки, которая будет удалена.

Integer
setColumns (number_of_columns)
ParameterОбъяснениеТип данных
number_of_columns

Число столбцов изображения для таблицы значений.

Integer
setRow (row, value)
ParameterОбъяснениеТип данных
row

Значение индекса строки, которая будет обновлена.

Integer
value

Значение для обновления данной строки.

Object
setValue (row, column, value)
ParameterОбъяснениеТип данных
row

Индекс строки.

Integer
column

Индекс столбца

Integer
value

Значение для обновления данной строки и столбца.

Object

Пример кода

Пример ValueTable

Используйте ValueTable для размещения имен и рангов классов пространственных объектов для инструмента Объединение (Union).

import arcpy

# Set the workspace. List all of the feature classes in the dataset
arcpy.env.workspace = "c:/data/landbase.gdb/Wetlands"
feature_classes = arcpy.ListFeatureClasses()

# Create the value table for the Analysis Union tool with 2 columns
value_table = arcpy.ValueTable(2)

# Iterate through the list of feature classes
for fc in feature_classes:
    # Update the value table with a rank of 2 for each record, except
    #   for BigBog
    if fc.lower() != "bigbog":
        value_table.addRow(fc + " 2")
    else:
        value_table.addRow(fc + " 1")

# Union the wetlands feature classes with the land use feature class to create
#   a single feature class with all of the wetlands and land use data
value_table.addRow("c:/data/landbase.gdb/land_use 2")
arcpy.Union_analysis(value_table, "c:/data/landbase.gdb/wetlands_use")
Пример ValueTable 2

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

import os
import arcpy

# Set the output workspace
arcpy.env.workspace = arcpy.GetParameterAsText(1)

# Create a value table with 2 columns
value_table = arcpy.ValueTable(2)

# Set the values of the table with the contents of the first argument
value_table.loadFromString(arcpy.GetParameterAsText(0))

# Loop through the list of inputs
for i in range(0, value_table.rowCount):
    # Validate the output name for the new workspace
    name = value_table.getRow(i)
    out_name = arcpy.ValidateTableName(os.path.basename(name))

    # Copy the features to the new workspace
    arcpy.CopyFeatures_management(name, out_name)