添加字段 (数据管理)

描述

向表或要素类表、要素图层以及带属性表的栅格添加新字段。

使用方法

  • 对于 shapefile 和 dBase 表,如果字段类型定义为字符型,则会为每条记录插入空白行。如果字段类型定义为数值型,则将为每条记录插入零。

  • 字段长度参数仅适用于文本类型的字段。如果未指定长度,则长度默认为 255。

  • 对于地理数据库,如果由字段类型定义字符或数字,则在已选择字段可为空参数的情况下会将 <null> 插入每条记录(在 Python 中为 field_is_nullable="NULLABLE" )。

  • 无法将非空字段添加到非空地理数据库要素类或表。

  • shapefile 不支持字段别名,所以无法将字段别名添加到 shapefile。

  • 字段属性域参数可使用地理数据库中要素类的现有属性域。必须提供现有属性域的名称。提供无效的属性域名称或值不会导致工具失败,但无效名称或值会被忽略且不会为字段设置属性域。

  • 字段的精度和小数位数用于描述可存储于字段中的数据的最大精度和大小。精度描述可存储在字段中的数字位数,小数位数描述浮点型和双精度字段的小数位数。例如,如果字段值是 54.234,则小数位数 = 3,精度 = 5。

    使用以下原则为给定的精度和小数位数选择正确的字段类型:

    • 在创建浮点型、双精度或整型字段并将精度和小数位数指定为 0 时,如果基础数据库支持二进制类型字段,则该工具将尝试创建该字段。文件地理数据库仅支持二进制类型字段,并忽略精度和小数位数。
    • 在创建浮点型和双精度字段并指定精度和小数位数时,如果精度大于 6,则使用双精度,否则使用浮点型。如果创建双精度字段并指定等于或小于 6 的精度,则将创建浮点型字段。如果创建浮点型字段并指定大于 6 的精度,则将创建双精度字段。
    • 如果指定的小数位数等于 0,精度等于或小于 10,则会创建整型字段。创建整型字段时,请将精度指定为等于或小于 10,否则可能将字段创建为双精度字段。
  • 在地理数据库要素类或表中创建新字段时,可指定字段的类型,但无法指定其精度和小数位数。即使对话框允许为精度或小数位数添加值,该值在执行期间也会被忽略。

  • 必填字段具有永久性,不能删除。要在以后允许将其删除,请将字段设置为非必填字段(默认值)。

  • 栅格类型的字段允许将栅格影像包含为属性。它存储在地理数据库中或与地理数据库一同存储。当图像是描述要素的最佳途径时,这很有用。无法为栅格类型的字段设置精度、小数位数和长度。

语法

arcpy.management.AddField(in_table, field_name, field_type, {field_precision}, {field_scale}, {field_length}, {field_alias}, {field_is_nullable}, {field_is_required}, {field_domain})
参数说明数据类型
in_table

要添加指定字段的输入表。该字段将被添加到现有输入表,并且不会创建新的输出表。

可将字段添加到地理数据库中的要素类、shapefile、coverage、独立表、栅格目录、带属性表的栅格和图层。

Mosaic Layer; Raster Layer; Table View
field_name

要添加到输入表的字段的名称。

String
field_type

指定新字段的字段类型。

  • TEXT任何字符串。
  • FLOAT 在 -3.4E38 和 1.2E38 之间的小数。
  • DOUBLE 在 -2.2E308 和 1.8E308 之间的小数。
  • SHORT 在 -32,768 和 32,767 之间的整数。
  • LONG 在 -2,147,483,648 和 2,147,483,647 之间的整数。
  • DATE日期和/或时间。
  • BLOB长二进制数序列。您需要一个自定义的加载器、查看器或第三方应用程序将这些项加载到 BLOB 字段中或者查看 BLOB 字段的内容。
  • RASTER栅格影像。可以存储 ArcGIS 软件支持的所有栅格数据集格式,但强烈建议您仅使用小影像。
  • GUID全局唯一标识符。
String
field_precision
(可选)

可存储在字段中的位数。所有位都将被计算在内,而无论其处于小数点的哪一侧。

如果输入表是文件地理数据库,则将忽略字段精度值。

Long
field_scale
(可选)

可存储在字段中的小数位数。此参数仅可用于浮点型和双精度数据字段类型。

如果输入表是文件地理数据库,则将忽略字段小数位数值。

Long
field_length
(可选)

要添加的字段的长度。它为字段的每条记录设置最大允许字符数。此参数仅适用于文本类型的字段。

Long
field_alias
(可选)

指定给字段名称的备用名称。此名称用于描述含义隐晦的字段名称。此参数仅适用于地理数据库。

String
field_is_nullable
(可选)

指定该字段是否可包含空值。空值与零或空字段不同,仅支持地理数据库中的字段。

  • NON_NULLABLE字段不允许空值。
  • NULLABLE字段允许空值。这是默认设置。
Boolean
field_is_required
(可选)

指定要创建的字段是否是表的必填字段。地理数据库中仅支持必填字段。

  • NON_REQUIRED字段不是必填字段。这是默认设置。
  • REQUIRED此字段是必填字段。必填字段具有永久性,不能删除。
Boolean
field_domain
(可选)

约束地理数据库中的表、要素类或子类型的任何特定属性的允许值。必须指定现有属性域的名称才能将其应用于字段。

String

派生输出

名称说明数据类型
out_table

已更新的输入表。

代码示例

AddField 示例 1(Python 窗口)

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

import arcpy
arcpy.env.workspace = "C:/data/airport.gdb"
arcpy.AddField_management("schools", "ref_ID", "LONG", 9, "", "", "refcode", 
                          "NULLABLE", "REQUIRED")
AddField 示例 2(独立脚本)

以下独立脚本演示了如何使用 AddField 函数。

# Name: AddField_Example2.py
# Description: Add a pair of new fields to a table
 
# Import system modules
import arcpy
 
# Set environment settings
arcpy.env.workspace = "C:/data/airport.gdb"
 
# Set local variables
inFeatures = "schools"
fieldName1 = "ref_ID"
fieldPrecision = 9
fieldAlias = "refcode"
fieldName2 = "status"
fieldLength = 10
# Execute AddField twice for two new fields
arcpy.AddField_management(inFeatures, fieldName1, "LONG", fieldPrecision,
                          field_alias=fieldAlias, field_is_nullable="NULLABLE")
arcpy.AddField_management(inFeatures, fieldName2, "TEXT", 
                          field_length=fieldLength)

许可信息

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

相关主题