批量添加字段

需求:

将其它图层(图层A、B)的字段添加到另一图层(图层C)属性表中

如下图:

下图中“气象数据201706”图层已有6个字段,现在想将“point”图层中除了OBJECTID、SHAPE之外的字段添加到“气象数据201706”图层中。

 具体实现:

使用Python脚本进行实现,通过遍历“point”图层并将其字段名称、类型等参数获取到传递给arcpy.AddField_management()方法,需要注意的是arcpy中添加字段时定义的字段类型名称和字段的type属性获取到的字段类型不一致。

 具体代码:

# 2020-1-19
# 将其它图层(图层A、B)的字段添加到另一图层(图层C)属性表中
# 基于Python3实现
import arcpy
from arcpy import env

# 设置工作空间
env.workspace = r"D:\GPTOOL\空间插值气象站点数据\test.gdb"
# 字段结构
fieldsFrom = "point"
# 添加字段给哪个要素图层
fieldsTo = "气象数据201706"
# 字段列表
fieldList = arcpy.ListFields(fieldsFrom)
# 遍历指标
for fld in fieldList:
    print("field name: " + fld.name + " field type: " + fld.type + " " + " field precision: " + str(
        fld.precision) + " field scale: " + str(fld.scale))
    if fld.name.upper() == "OBJECTID" or fld.name.upper() == "SHAPE" or fld.name.upper() == "SHAPE_LENGTH" or fld.name.upper() == "SHAPE_AREA":
        continue
    else:
        if fld.type == 'SmallInteger':
            print(fld.type)
            arcpy.AddField_management(fieldsTo, fld.name, "SHORT")  # 短整型
            print("field name: " + fld.name + " field type: " + fld.type)
        elif fld.type == 'Integer':
            arcpy.AddField_management(fieldsTo, fld.name, "LONG")  # 长整型
            print("field name: " + fld.name + " field type: " + fld.type)
        elif fld.type == 'Single':
            arcpy.AddField_management(fieldsTo, fld.name,
                                      "FLOAT")  # 浮点型
            print("field name: " + fld.name + " field type: " + fld.type)
        elif fld.type == 'String':
            arcpy.AddField_management(fieldsTo, fld.name,
                                      "TEXT",
                                      field_length=254)  # 文本型
            print("field name: " + fld.name + " field type: " + fld.type)
        else:
            arcpy.AddField_management(fieldsTo, fld.name,
                                      fld.type)  #
            print("field name: " + fld.name + " field type: " + fld.type)

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值