批量更新字段 (数据管理)

摘要

根据定义表中定义的模式转换表或要素类中的字段,并创建新表或要素类。

您可以使用此工具执行以下操作:

  • 添加新字段。
  • 更新现有字段。
  • 重新排序字段。
  • 更改字段类型。
  • 更改字段属性。
  • 分配或更新字段别名。
  • 使用 Python,基于现有字段计算字段值。
  • 移除字段。

使用情况

  • 输入表可为要素类或表。 此工具输出具有更新模式的新要素类或表。

  • 输出表模式更改由输出模式定义表参数定义。

    以下是定义表的示例:

    定义表的示例

    如果输出模式定义表参数值包括上述字段名称,如上述示例中所示,将自动填充对应的参数值:

    • Target field
    • Source field
    • Type
    • Decimals/Length
    • Alias
    • Script

  • 此工具使用定义表的脚本字段提供的现有字段计算新字段。

    定义表中的 Script 字段的示例值为 !TOTPOP!/!AREA!,将使用该值计算 Population Density 字段。 必须在字段名称两边添加惊叹号。

  • 此工具可以创建依赖于其他字段计算的附加字段。 例如,使用 Bev_Per_Capita 字段计算 Bev_Index 字段,在运行工具时也会进行该计算。

  • 对于多行 Python 计算,需使用脚本文件参数。 要使用脚本文件,需创建一个包含 Python 函数的文件,并在定义表中引用这些函数。

    以下是用于名为 Bev_Per_Capita 的目标字段的脚本代码示例:

    • 输出模式定义表参数值中名为 Script 的字段,其值为 Bev_Per_Capita(!Bev_Total!, !TOTPOP!)
    • 脚本文件参数值包含以下函数:
      
      def Bev_Per_Capita(Bev_Total, TOTPOP):
          return Bev_Total / TOTPOP

    以下示例显示了运行该工具前后的属性表:

    批量更新字段工具示例

参数

标注说明数据类型
输入表

输入表或要素类。

Table View
输出表

包含更新字段的输出表或要素类。

Table
输出模式定义表

包含字段定义和计算的表,将用于创建输出。

Table View
脚本文件
(可选)

存储多行 Python 函数的 Python 文件,用于为输出表参数字段执行计算。

File
输出字段名称
(可选)

定义表中包含输出表目标字段名称的字段名称。

Field
源字段名称
(可选)

定义表中包含输入表源字段名称的字段名称。

Field
输出字段类型
(可选)

输出表的数据类型由输出模式定义表参数值中的字段定义。 该字段应为文本类型。

输出表的数据类型由 field_definition_table 中的字段定义。 该字段应为文本类型。

支持以下值:

  • BigInteger - 64 位整型
  • Blob - 二进制大对象
  • Date - 日期
  • DateOnly - 仅日期
  • Double - 双精度浮点数
  • GlobalID - 全局 ID
  • GUID - 全局唯一标识符
  • Integer(或 Long)- 32 位整型
  • Raster - 栅格
  • Float(或 Single)- 单精度浮点数
  • Short(或 SmallInteger)- 16 位整型
  • Text(或 String)- 字符串
  • TimeOnly - 仅时间
  • TimestampOffset - 时间戳偏移
Field
输出字段小数位数或长度
(可选)

定义表中用于定义输出字段小数位数或长度的字段名称。

Field
输出字段别名
(可选)

定义表中用于定义输出表字段别名的字段名称。

Field
输出字段脚本
(可选)

定义表中用于定义输出字段计算的字段名称。

Field

arcpy.management.BatchUpdateFields(in_table, out_table, field_definition_table, {script_file}, {output_field_name}, {source_field_name}, {output_field_type}, {output_field_decimals_or_length}, {output_field_alias}, {output_field_script})
名称说明数据类型
in_table

输入表或要素类。

Table View
out_table

包含更新字段的输出表或要素类。

Table
field_definition_table

包含字段定义和计算的表,将用于创建输出。

Table View
script_file
(可选)

存储多行 Python 函数的 Python 文件,用于为 out_table 参数字段执行计算。

File
output_field_name
(可选)

定义表中包含输出表目标字段名称的字段名称。

Field
source_field_name
(可选)

定义表中包含输入表源字段名称的字段名称。

Field
output_field_type
(可选)

输出表的数据类型由输出模式定义表参数值中的字段定义。 该字段应为文本类型。

输出表的数据类型由 field_definition_table 中的字段定义。 该字段应为文本类型。

支持以下值:

  • BigInteger - 64 位整型
  • Blob - 二进制大对象
  • Date - 日期
  • DateOnly - 仅日期
  • Double - 双精度浮点数
  • GlobalID - 全局 ID
  • GUID - 全局唯一标识符
  • Integer(或 Long)- 32 位整型
  • Raster - 栅格
  • Float(或 Single)- 单精度浮点数
  • Short(或 SmallInteger)- 16 位整型
  • Text(或 String)- 字符串
  • TimeOnly - 仅时间
  • TimestampOffset - 时间戳偏移
Field
output_field_decimals_or_length
(可选)

定义表中用于定义输出字段小数位数或长度的字段名称。

Field
output_field_alias
(可选)

定义表中用于定义输出表字段别名的字段名称。

Field
output_field_script
(可选)

定义表中用于定义输出字段计算的字段名称。

Field

代码示例

BatchUpdateFields 示例(独立脚本)

以下 Python 窗口演示了如何在独立脚本中使用 BatchUpdateFields 函数。

import arcpy
arcpy.management.BatchUpdateFields(
    "zip_codes", "MyProject.gdb\zip_codes_BatchUpdateFields",
    "DATA_TRANSFORMATION.csv", r"C:\BatchUpdate\script.py", "TARGET",
    "SOURCE", "DATATYPE", "DECIMALS", "ALIAS", "SCRIPT")

相关主题