需求:
将其它图层(图层A、B)的字段添加到另一图层(图层C)属性表中
具体实现:
使用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)
作者:gislaozhang
链接:https://blog.csdn.net/gislaozhang/article/details/104042653
来源:CSDN
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。