标注 | 说明 | 数据类型 |
输入表 | 输入表或要素类。 | Table View;Raster Layer |
表名 | 要创建的表视图的名称。 | Table View ;Raster Layer |
表达式 (可选) | 用于选择记录子集的 SQL 表达式。 | SQL Expression |
输出工作空间 (可选) | 用于验证字段名的输入工作空间。如果输入是地理数据库表,而输出工作空间是 dBASE 表,则字段名可能会被截断,这是由于 dBASE 字段名最多只能具有十个字符。 | Workspace |
字段信息 (可选) | 指定输入表中的哪些字段在输出表视图中可见 | Field Info |
摘要
根据输入表或要素类创建表视图。由于此工具创建的表视图是临时性的,如果不保存文档,该图层将在会话结束后消失。
使用情况
此工具通常用于创建包含所选属性或字段集的表视图。
如果使用了 SQL 表达式但却没有返回任何内容,则输出为空。
在后续工具中将采用字段信息控件中定义的字段名。但是,如果此工具是模型中的最后一个工具,则将从磁盘的源数据中获取字段名。要保留字段名,必须使用复制行或复制要素工具将新图层写出到新数据。
字段名将通过指定输入工作空间来进行验证。因此,如果输入是地理数据库要素类,而输出工作空间是文件夹,则字段名可能会被截断,这是由于 shapefile 属性的名称最多只能具有十个字符。
通过使用字段信息控件的可见属性,可使字段的子集在新图层中不可用。控件中的第二列提供了一个复选框,用于指定字段在新图层中是可见还是隐藏。默认情况下选中该项。取消选中该复选框以隐藏该字段。如果新建的图层是后续处理过程或工具的输入,则不能在工作流中使用隐藏的字段。如果将输出保存到磁盘,则只有列出的可见字段将显示在新数据中。
字段信息控件中的分割策略选项不适用于此工具。
参数
arcpy.management.MakeTableView(in_table, out_view, {where_clause}, {workspace}, {field_info})
名称 | 说明 | 数据类型 |
in_table | 输入表或要素类。 | Table View;Raster Layer |
out_view | 要创建的表视图的名称。 | Table View ;Raster Layer |
where_clause (可选) | 用于选择要素子集的 SQL 表达式。有关 SQL 语法的详细信息,请参阅帮助主题在 ArcGIS 中使用的查询表达式的 SQL 参考。 | SQL Expression |
workspace (可选) | 用于验证字段名的输入工作空间。如果输入是地理数据库表,而输出工作空间是 dBASE 表,则字段名可能会被截断,这是由于 dBASE 字段名最多只能具有十个字符。 | Workspace |
field_info (可选) | 指定输入表中的哪些字段在输出表视图中可见 | Field Info |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 MakeTableView 函数。
import arcpy
arcpy.MakeTableView_management("C:/data/input/crimefrequency.dbf", "crimefreq_tview")
以下独立脚本演示了如何使用带有 FieldInfo 对象的 MakeTableView 过滤输出中的字段。
# Name: MakeTableView_Example2.py
# Description: Uses a FieldInfo object to select a subset of fields and renaming one field's name.
# Import system modules
import arcpy
# Set data path
intable = "C:/data/tables.gdb/crimefreq"
# Get the fields from the input
fields= arcpy.ListFields(intable)
# Create a fieldinfo object
fieldinfo = arcpy.FieldInfo()
# Iterate through the fields and set them to fieldinfo
for field in fields:
if field.name == "FREQUENCY":
fieldinfo.addField(field.name, "NEWFREQ", "VISIBLE", "")
elif field.name == "CRIME_CAT":
fieldinfo.addField(field.name, field.name, "HIDDEN", "")
elif field.name == "BEAT":
fieldinfo.addField(field.name, field.name, "VISIBLE", "")
# The created crime_view layer will have fields as set in fieldinfo object
arcpy.MakeTableView_management(intable, "crime_view", "", "", fieldinfo)
# To persist the layer on disk make a copy of the view
arcpy.CopyRows_management("crime_view", "C:/temp/newfreq.dbf")
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是