描述
向表或要素类表、要素图层以及带属性表的栅格添加新字段。
使用方法
对于 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、独立表、带属性表的栅格和图层。 | Table View; Raster Layer; Raster Catalog Layer; Mosaic Layer |
field_name | 将添加到输入表的字段的名称。 | String |
field_type | 指定新字段的字段类型。
尽管 Field 对象的 type 属性值与添加字段工具的 field_type 参数所使用的关键字不完全匹配,但是所有 Field 对象的 type 值均可用作此参数的输入。 不同的字段类型映射如下:Integer 到 LONG、String 到 TEXT,以及 SmallInteger 到 SHORT。 | String |
field_precision (可选) | 可存储在字段中的位数。 所有位都将被计算在内,而无论其处于小数点的哪一侧。 如果输入表是文件或个人地理数据库,则将忽略字段精度值。 | Long |
field_scale (可选) | 可存储在字段中的小数位数。 此参数仅在浮点型和双精度型数据字段类型中使用。 如果输入表是文件或个人地理数据库,则将忽略字段小数位数值。 | Long |
field_length (可选) | 要添加的字段的长度。 它为字段的每条记录设置最大允许字符数。 此参数仅适用于文本类型的字段。 | Long |
field_alias (可选) | 指定给字段名称的备用名称。 此名称用于描述含义隐晦的字段名称。 此参数仅适用于地理数据库。 | String |
field_is_nullable (可选) | 指定该字段是否可包含空值。 空值不同于零或空字段,并且仅地理数据库中的字段支持空值。
| Boolean |
field_is_required (可选) | 指定要创建的字段是否是表的必填字段。 地理数据库中仅支持必填字段。
| Boolean |
field_domain (可选) | 约束地理数据库中的表、要素类或子类型的任何特定属性的允许值。 您必须指定现有属性域的名称才能将其应用于字段。 | String |
派生输出
名称 | 说明 | 数据类型 |
out_table | 已更新的输入表。 | 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: 是