赞
踩
向表或要素类表、要素图层和/或带属性表的栅格添加字段并设置字段属性,是我们在数据建库或处理时常常要用到的操作,实现的方法非常多。
一、逐一添加字段的常见操作
1.打开属性表——添加字段。
2.使用字段工具添加字段或批处理批量添加。
3.修改文件地理数据库中的要素类属性
上述常规做法对于字段数量不多的情况可以满足工作要求。对于目前各行业开展的国土空间”一张图”填报工作,字段值多、相同的字段在不同图层的属性各不相同,上述常规做法就不是特别适用。
二、批量添加(更改)字段并设置字段属性
对于熟悉ArcGis中Python编程的大哥来说,批量添加字段并设置字段属性非常小儿科。对于编程零基础的同志,也可以结合Excel和简单的AddField()/AlterField()函数,实现批量添加(更改)字段并设置字段属性。以AddField()为例,充分利用技术要求中的字段属性表格,实现批量字段添加。
语法:arcpy.AddField_management(in_table,field_name,field_type,{field_precision},{field_scale},{field_length},{field_alias},{field_is_nullable},{field_is_required},{field_domain})。其中,in_table输入表,field_name字段名称,field_type字段类型为必填参数。其他参数为字段描述,可选,最好使用具名参数,如field_length=100。
参数 | 说明 | 数据类型 |
in_table | 要添加指定字段的输入表。该字段将被添加到现有输入表,并且不会创建新的输出表。可将字段添加到 ArcSDE 的要素类、文件或个人地理数据库的要素类、coverage、shapefile、栅格目录、独立表、带属性表的栅格和/或图层。 | Mosaic Layer;Raster Catalog Layer;Raster Layer;Table View |
field_name | 要添加到输入表的字段的名称。 | String |
field_type | 在创建新字段时所使用的字段类型。
| String |
field_precision (可选) | 描述可存储在字段中的位数。所有位都将被计算在内,而无论其处于小数点的哪一侧。如果输入表是个人或文件地理数据库,则将忽略字段精度值。 | Long |
field_scale (可选) | 设置可存储在字段中的小数位数。此参数仅可用于浮点型和双精度数据字段类型。如果输入表是个人或文件地理数据库,则将忽略字段小数位数值。 | Long |
field_length (可选) | 要添加的字段的长度。它为字段的每条记录设置最大允许字符数。此选项仅适用于文本或 blob 类型的字段。 | Long |
field_alias (可选) | 指定给字段名称的备用名称。此名称用于为含义隐晦的的字段名称指定更具描述性的名称。字段别名参数仅适用于地理数据库和 coverage。 | String |
field_is_nullable (可选) | 不存在关联属性信息的地理要素。它们与零或空字段不同,仅支持地理数据库中的字段。
| Boolean |
field_is_required (可选) | 指定要创建的字段是否是表的必填字段;仅支持地理数据库中的字段。
| Boolean |
field_domain (可选) | 用于约束地理数据库中的表、要素类或子类型的任何特定属性的允许值。必须指定现有属性域的名称才能将其应用于字段。 | String |
值得注意的是:
2.初步思路
充分利用技术要求中的字段属性表格和Excel中的字段处理函数,将技术要求的字段表格写成AddField()语句,例如:arcpy.AddField_management(“GLZXX”,”LC”,”Float”,1,15,“里程”)。
3.操作流程
(1)将要素属性数据表复制到Excel表格中,并将字段属性Char替换为field_type中TEXT—名称或其他文本特性,添加输入表、位数、小数位数等列,按照AddField语句参数顺序调整表格。
(2)在表格中输入公式,=I2:O12,按下F9键,生成带双引号、由分号分隔的字符串。
(3)将分号“;”作为分隔符执行数据分列,复制——选择性粘贴——转置。使用连接字符串公式="arcpy.AddField_management("&A16&")",写成标准语法。
(4)复制生成的字符串,粘贴到ArcGis中的Python窗口,回车。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。