01 背景
上周的时候,有学员咨询了这个批量添加字段的问题,需求比较明确,就是有个excel表里面有几十个字段模板需要一次性添加到ArcGIS的图层当中,如果像我们以往的做法一个个添加字段,毕竟是耗费时间的,且容易造成错误。
我们,当时是提供两个方法,一个是2016年的时候我们就做个的技术分享。一个是今天要介绍的ArcPY的应用。
02 2016年的技术分享
ArcGIS系列技术分享与GIS思维分享
2016年的技术分享当时主要是介绍ArcGIS加载POI点的应用,在最结尾的时候加入利用excel导入多个字段的应用。 有兴趣的可以点击最后的阅读原文,进行学习。
这么多年,我们有发布没发布的做了很多技巧性分享,关注我们,后续将逐一推送。
03 ArcPy应用
主要介绍的就是根据下方上图的Excel中的字段,编写ArcPy脚本工具,批量的加载到ArcGIS图层当中。
组织语言,码字也是很累的,录制了视频介绍,放在了免费技术分享当中,点击下方的阅读原文,进行视频学习与脚本工具获取。
04 贴一下脚本源码
import xlrd
import arcpy
#读取Excel表作为参数输入
xls_path=arcpy.GetParameterAsText(0)
data=xlrd.open_workbook(xls_path)
#读取要批量添加字段的图层
shp_path=arcpy.GetParameterAsText(1)
#shp_path=r'C:\Users\ygb_709\Desktop\test20201123\test.shp'
#读取excel中的sheet表名
sheetname=arcpy.GetParameterAsText(2)
table=data.sheet_by_name(sheetname)
for i in range(1,table.nrows):
arcpy.AddField_management(shp_path,table.row_values(i)[1],table.row_values(i)[3],field_alias=table.row_values(i)[2],
field_length=table.row_values(i)[4],field_scale=table.row_values(i)[5])
arcpy.AddMessage("成功添加字段:".decode('utf-8')+table.row_values(i)[1])
arcpy.AddMessage("已完成")
脚本的需求导向很明显,写的比较快,需要自己根据思路做些补充,
比如调用 arcpy.AddField_management,最好加上参数field_precision,以适配一些版本添加双精度字段时候的报错问题
05 视频学习与脚本获取方式
ArcGIS(ArcPy)脚本excel批量添加字段(GIS思维20201202)
06 参考学习
https://edu.csdn.net/course/detail/28073