摘要
值表是一种灵活的对象,可用作多值参数的输入。它仅在创建此表的地理处理对象的生存时间内存在。
说明
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 保存联合工具的要素类名称和等级。
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)