Краткая информация
Таблица значений – это гибкий объект, который можно использовать в качестве входных данных для параметра с множественными значениями. Она существует только в течение срока существования создавшего ее объекта геообработки.
Обсуждение
Значение аргумента setRow разделяется пробелами. Любое значение в аргументе значения, которое содержит пробелы, необходимо заключить в кавычки. В следующем примере в таблицу значений с двумя столбцами добавляются класс объектов и значение индекса:
value_table.setRow(0, "'c:/temp/land use.shp' 2")
Синтаксис
ValueTable ({columns})
Параметр | Описание | Тип данных |
columns | Число столбцов. (Значение по умолчанию — 1) | Integer |
Свойства
Свойство | Описание | Тип данных |
columnCount (только чтение) | Число столбцов. | Integer |
rowCount (только чтение) | Число строк. | Integer |
Обзор метода
Метод | Описание |
addRow (value) | Добавляет строку в таблицу значений. |
exportToString () | Экспортирует объект в его строковое представление. |
getRow (row) | Возвращает строку из ValueTable. |
getTrueValue (row, column) | Возвращает значение из заданного столбца и строки. |
getValue (row, column) | Возвращает значение из заданного столбца и строки. |
loadFromString (string) | Восстановление и обновление объекта пространственной привязки с помощью строки WKT Метод exportToString может использоваться для экспорта строки WKT пространственной привязки.
|
removeRow (row) | Удаляет строку из объекта ValueTable. |
setColumns (number_of_columns) | Устанавливает количество столбцов в таблице значений. |
setRow (row, value) | Обновляет заданную строку в объекте ValueTable. Аргумент value разделен пробелами. Любое значение, используемое в аргументе value, содержащем пробелы, должно быть заключено в кавычки. В следующем примере объект ValueTable с двумя столбцами имеет класс пространственных объектов и добавленное значение индекса:
|
setValue (row, column, value) | Обновляет значение заданной строки и столбца. |
Методы
addRow (value)
Параметр | Описание | Тип данных |
value | Добавляемая строка. Аргумент value отделяется пробелом. Любое значение, содержащее пробелы, должно быть заключено в кавычки. В следующем примере в таблицу значений с двумя столбцами добавляются класс объектов и значение индекса:
| Object |
exportToString ()
Тип данных | Описание |
String | WKT-строковое представление объекта. |
getRow (row)
Параметр | Описание | Тип данных |
row | The row index position. | Integer |
Тип данных | Описание |
String | Строка из объекта ValueTable. |
getTrueValue (row, column)
Параметр | Описание | Тип данных |
row | The row index position. | Integer |
column | The column index position. | Integer |
Тип данных | Описание |
String | Значение из заданного столбца и строки. |
getValue (row, column)
Параметр | Описание | Тип данных |
row | The row index position. | Integer |
column | The column index position. | Integer |
Тип данных | Описание |
String | Значение из заданного столбца и строки. |
loadFromString (string)
Параметр | Описание | Тип данных |
string | The WKT string representation of the object. | String |
removeRow (row)
Параметр | Описание | Тип данных |
row | The index position of the row to remove. | Integer |
setColumns (number_of_columns)
Параметр | Описание | Тип данных |
number_of_columns | Число столбцов изображения для таблицы значений. | Integer |
setRow (row, value)
Параметр | Описание | Тип данных |
row | The index position of the row to update. | Integer |
value | The value to update in the given row. | Object |
setValue (row, column, value)
Параметр | Описание | Тип данных |
row | Индекс строки. | Integer |
column | Индекс столбца | Integer |
value | Значение для обновления данной строки и столбца. | Object |
Пример кода
Используйте 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")
Таблицу значений можно заполнить строкой с множественными значениями, переданной скрипту в виде аргумента, что позволяет легко извлечь каждую из записей. В примере ниже показано, как это сделать:
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)