ValueTable (arcpy)

Резюме

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

Обсуждение

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

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

Синтаксис

ValueTable ({columns})
ПараметрОбъяснениеТип данных
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)
ПараметрОбъяснениеТип данных
value

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

Object
exportToString ()
Возвращено значение
Тип данныхОбъяснение
String

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

getRow (row)
ПараметрОбъяснениеТип данных
row

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

Integer
Возвращено значение
Тип данныхОбъяснение
String

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

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

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

Integer
column

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

Integer
Возвращено значение
Тип данныхОбъяснение
String

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

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

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

Integer
column

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

Integer
Возвращено значение
Тип данныхОбъяснение
String

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

loadFromString (string)
ПараметрОбъяснениеТип данных
string

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

String
removeRow (row)
ПараметрОбъяснениеТип данных
row

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

Integer
setColumns (number_of_columns)
ПараметрОбъяснениеТип данных
number_of_columns

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

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

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

Integer
value

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

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

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

Integer
column

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

Integer
value

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

Object

Пример кода

Пример использования ValueTable

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

import arcpy
from arcpy import env

# Set the workspace. List all of the feature classes in the dataset
#
env.workspace = "C:/Data/Landbase.gdb/Wetlands"
fcs = arcpy.ListFeatureClasses()

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

# Iterate through the list of feature classes
#
for fc in fcs:
    # Update the value table with a rank of 2 for each record, except    
    #   for BigBog
    #
    if fc.lower() <> "bigbog":
       vtab.addRow(fc + " 2")
    else:
       vtab.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
#
vtab.addRow("C:/Data/Landbase.gdb/land_use 2")
arcpy.Union_analysis(vtab, "C:/Data/Landbase.gdb/wetlands_use")
ValueTable, пример 2

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

import arcpy
from arcpy import env
import os

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

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

# Set the values of the table with the contents of the first argument
#
vtab.loadFromString(arcpy.GetParameterAsText(0))
x = 1

# Loop through the list of inputs
#
while x < vtab.rowCount:
    # Validate the output name for the new workspace
    #
    name = vtab.getRow(x)
    out_name = arcpy.ValidateTablename(os.path.basename(name))

    # Copy the features to the new workspace
    #
    arcpy.CopyFeatures_management(name, out_name)
    x += 1

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

9/10/2013