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

摘要

用于根据定义表中定义的方案来转换表或要素类中的字段并创建新的表或要素类。

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

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

使用情况

  • 输入表可为要素类或表。 该工具将输出具有更新方案的新要素类或表。

  • 输出表的方案变更将由输出方案定义表参数进行定义。

    以下是定义表的一个示例:

    定义表的示例

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

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

    注:

    ScriptSource field 必须填充。

  • 该工具可通过在定义表中提供脚本字段来使用现有字段计算新字段。

    定义表的 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")

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题