描述
向表或要素类表、要素图层和/或带属性表的栅格添加新字段。
使用方法
对于 shapefile 和 dBase 表,如果字段类型定义为字符型,则会为每条记录插入空白行。如果字段类型定义为数值型,则将为每条记录插入零。
字段长度参数仅适用于文本类型的字段。如果未指定长度,则长度默认为 255。
对于地理数据库,如果由字段类型定义字符或数字,则在已选择字段可为空参数的情况下会将 <null> 插入每条记录(在 Python 中为 field_is_nullable="NULLABLE" )。
无法将非空字段添加到非空地理数据库要素类或表。
shapefile 不支持字段别名,所以无法将字段别名添加到 shapefile。
字段属性域参数可使用地理数据库中要素类的现有属性域。必须输入现有属性域的名称。输入无效的属性域名称或值不会导致工具失败,但无效名称或值会被忽略且不会为字段设置属性域。
字段的精度和小数位数用于描述可存储于字段中的数据的最大大小和精度。精度描述可存储在字段中的数字位数,小数位数描述浮点型和双精度字段的小数位数。例如,如果字段值是 54.234,则小数位数 = 3,精度 = 5。
使用以下原则为给定的精度和小数位数选择正确的字段类型:
- 在创建浮点型、双精度或整型字段并将精度和小数位数指定为 0 时,如果基础数据库支持二进制类型字段,则该工具将尝试创建该字段。文件地理数据库仅支持二进制类型字段,并忽略精度和小数位数。
- 在创建浮点型和双精度字段并指定精度和小数位数时,如果精度大于 6,则使用双精度,否则使用浮点型。如果创建双精度字段并指定等于或小于 6 的精度,则创建浮点型字段。如果创建浮点型字段并指定大于 6 的字段,则将创建双精度字段。
- 如果指定的小数位数等于 0,精度等于或小于 10,则会创建整型字段。创建整型字段时,精度应等于或小于 10,否则可能将字段创建为双精度字段。
在地理数据库要素类或表中创建新字段时,可指定字段的类型,但无法指定其精度和小数位数。即使对话框允许为精度或小数位数添加值,它在执行期间也会被忽略。
必填字段具有永久性,不能删除。要在以后允许将其删除,请将字段设置为非必填字段(默认值)。
栅格类型的字段允许将栅格影像作为属性。它存储在地理数据库中或与地理数据库一同存储。当图片是描述要素的最佳途径时,这很有用。无法为栅格类型的字段设置精度、小数位数和长度。
语法
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 | 新字段的字段类型。
| 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 | 已更新的输入表。 | 表 |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用 AddField 工具。
import arcpy
arcpy.env.workspace = "C:/data/airport.gdb"
arcpy.AddField_management("schools", "ref_ID", "LONG", 9, "", "", "refcode", "NULLABLE", "REQUIRED")
以下独立脚本演示了如何使用 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: 是