ArcGis国土空间”一张图”填报操作技巧(四)零编程基础批量添加字段并设置字段属性

      向表或要素类表、要素图层和/或带属性表的栅格添加字段并设置字段属性,是我们在数据建库或处理时常常要用到的操作,实现的方法非常多。

一、逐一添加字段的常见操作

1.打开属性表——添加字段。ArcGis国土空间”一张图”填报操作技巧(四)零编程基础批量添加字段并设置字段属性_第1张图片

2.使用字段工具添加字段或批处理批量添加。

ArcGis国土空间”一张图”填报操作技巧(四)零编程基础批量添加字段并设置字段属性_第2张图片

3.修改文件地理数据库中的要素类属性

ArcGis国土空间”一张图”填报操作技巧(四)零编程基础批量添加字段并设置字段属性_第3张图片

      上述常规做法对于字段数量不多的情况可以满足工作要求。对于目前各行业开展的国土空间”一张图”填报工作,字段值多、相同的字段在不同图层的属性各不相同,上述常规做法就不是特别适用。

二、批量添加(更改)字段并设置字段属性

对于熟悉ArcGis中Python编程的大哥来说,批量添加字段并设置字段属性非常小儿科。对于编程零基础的同志,也可以结合Excel和简单的AddField()/AlterField()函数,实现批量添加(更改)字段并设置字段属性。以AddField()为例,充分利用技术要求中的字段属性表格,实现批量字段添加。

1.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

在创建新字段时所使用的字段类型。

  • TEXT —名称或其他文本特性。
  • FLOAT —特定范围内含小数值的数值。
  • DOUBLE —特定范围内含小数值的数值。
  • SHORT —特定范围内不含小数值的数值;编码值。
  • LONG —特定范围内不含小数值的数值。
  • DATE —日期和/或时间。
  • BLOB —影像或其他多媒体。
  • RASTER —栅格影像。
  • GUID —GUID 值

String

field_precision

(可选)

描述可存储在字段中的位数。所有位都将被计算在内,而无论其处于小数点的哪一侧。如果输入表是个人或文件地理数据库,则将忽略字段精度值。

Long

field_scale

(可选)

设置可存储在字段中的小数位数。此参数仅可用于浮点型和双精度数据字段类型。如果输入表是个人或文件地理数据库,则将忽略字段小数位数值。

Long

field_length

(可选)

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

Long

field_alias

(可选)

指定给字段名称的备用名称。此名称用于为含义隐晦的的字段名称指定更具描述性的名称。字段别名参数仅适用于地理数据库和 coverage。

String

field_is_nullable

(可选)

不存在关联属性信息的地理要素。它们与零或空字段不同,仅支持地理数据库中的字段。

  • NON_NULLABLE —字段不允许空值。
  • NULLABLE —字段允许空值。这是默认设置。

Boolean

field_is_required

(可选)

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

  • NON_REQUIRED —字段不是必填字段。这是默认设置。
  • REQUIRED —此字段是必填字段。必填字段具有永久性,不能删除。

Boolean

field_domain

(可选)

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

String

值得注意的是:

  • 字段长度参数仅适用于文本类型的字段。如果未指定长度,则长度默认为 255。
  • shapefile 不支持字段别名,所以无法将字段别名添加到 shapefile。
  • 字段的精度和小数位数用于描述可存储于字段中的数据的最大大小和精度。精度描述可存储在字段中的数字位数,小数位数描述浮点型和双精度字段的小数位数。例如,如果字段值是54.234,则小数位数=3,精度=5。
  • 在地理数据库要素类或表中创建新字段时,可指定字段的类型,但无法指定其精度和小数位数。即使对话框允许为精度或小数位数添加值,它在执行期间也会被忽略。

2.初步思路

充分利用技术要求中的字段属性表格和Excel中的字段处理函数,将技术要求的字段表格写成AddField()语句,例如:arcpy.AddField_management(“GLZXX”,”LC”,”Float”,1,15,“里程”)。

ArcGis国土空间”一张图”填报操作技巧(四)零编程基础批量添加字段并设置字段属性_第4张图片

3.操作流程

(1)将要素属性数据表复制到Excel表格中,并将字段属性Char替换为field_type中TEXT—名称或其他文本特性,添加输入表、位数、小数位数等列,按照AddField语句参数顺序调整表格

ArcGis国土空间”一张图”填报操作技巧(四)零编程基础批量添加字段并设置字段属性_第5张图片

(2)在表格中输入公式,=I2:O12,按下F9键,生成带双引号、由分号分隔的字符串。

ArcGis国土空间”一张图”填报操作技巧(四)零编程基础批量添加字段并设置字段属性_第6张图片

(3)将分号“;”作为分隔符执行数据分列,复制——选择性粘贴——转置。使用连接字符串公式="arcpy.AddField_management("&A16&")",写成标准语法。

ArcGis国土空间”一张图”填报操作技巧(四)零编程基础批量添加字段并设置字段属性_第7张图片

(4)复制生成的字符串,粘贴到ArcGis中的Python窗口,回车。

ArcGis国土空间”一张图”填报操作技巧(四)零编程基础批量添加字段并设置字段属性_第8张图片

ArcGis国土空间”一张图”填报操作技巧(四)零编程基础批量添加字段并设置字段属性_第9张图片

你可能感兴趣的:(ARCGIS在生产中的应用,开发语言,大数据,数据库)