ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

创建表视图

  • 描述
  • 使用方法
  • 语法
  • 代码示例
  • 环境
  • 许可信息

描述

根据输入表或要素类创建表视图。由于此工具创建的表视图是临时性的,如果不保存文档,该图层将在会话结束后消失。

使用方法

  • 此工具通常用于创建包含所选属性或字段集的表视图。

  • ArcCatalog 不显示这些表视图,但可将其用作当前 ArcGIS 会话中其他地理处理工具的输入。一旦 ArcGIS 应用程序退出,即会删除这些表视图。

  • 在 ArcCatalog 中创建的表视图无法在 ArcMap 中使用。

  • 如果使用了 SQL 表达式但却没有返回任何内容,则输出为空。

  • 可以使用字段信息控件为字段名指定新名称。此控件的第二列列出来自输入的现有字段名。要对某字段重新命名,请单击字段名,然后输入一个新字段名。

    在后续工具中将采用字段信息控件中定义的字段名。但是,如果此工具是模型中的最后一个工具,则将从磁盘的源数据中获取字段名。要保留字段名,必须使用复制行或复制要素工具将新图层写出到新数据。

  • 字段名将通过指定输入工作空间来进行验证。因此,如果输入是地理数据库要素类,而输出工作空间是文件夹,则字段名可能会被截断,这是由于 shapefile 属性的名称最多只能具有十个字符。可以使用字段信息控件查看和更改新名称。

  • 通过使用字段信息控件的可见属性,可使字段的子集在新图层中不可用。控件的第三列提供了一个下拉选项,用于指定字段在新图层中是显示还是隐藏。默认值为 TRUE。选择 FALSE 将隐藏字段。如果新建的图层是后续处理过程或工具的输入,则不能在工作流中使用隐藏的字段。如果将输出保存到磁盘,则只有列出的可见字段将显示在新数据中。

  • 字段信息控件中的分割策略选项不适用于此工具。

语法

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

代码示例

创建表视图 (MakeTableView) 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 MakeTableView 函数。

import arcpy

arcpy.MakeTableView_management("C:/data/input/crimefrequency.dbf", "crimefreq_tview")
创建表视图 (MakeTableView) 示例 2(独立脚本)

以下独立脚本演示了如何使用带有 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: 是

相关主题

  • 图层和表视图工具集概述
  • 使用图层和表视图
  • 使用图层和表视图
  • 构建查询表达式
  • 在 ArcGIS 中使用的查询表达式的 SQL 参考

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明