ArcPy基于Excel表格批量添加字段

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

 

 

 

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用arcpy批量添加字段的方法如下: 首先,使用arcpy.ListFeatureClasses()函数获取要添加字段的矢量文件列表。 然后,使用for循环遍历每个文件,使用arcpy.AddField_management()函数为每个文件添加一个名称为name的字段。 在arcpy.AddField_management()函数中,将字段类型设置为"TEXT",字段长度设置为50。 最后,使用arcpy.CalculateField_management()函数为每个字段赋值为文件名称。 以下是示例代码: ``` import arcpy arcpy.env.workspace = r"E:\GEDIshuiku\shp" ListGEDI = arcpy.ListFeatureClasses() for i in ListGEDI: arcpy.AddField_management(i, "name", "TEXT", field_length=50) arcpy.CalculateField_management(i, field="name", expression=i\[9:22\], expression_type="VB", code_block="") ``` 这段代码会循环读取每一个矢量文件,给每一个文件添加一个名称为name的字段,并将字段赋值为文件名称的一部分。\[1\] #### 引用[.reference_title] - *1* [基于arcpy批量添加矢量属性表字段并赋值](https://blog.csdn.net/m0_46471094/article/details/127700032)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [arcpy——利用Arcpy进行字段操作](https://blog.csdn.net/knkn123/article/details/124278289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GIS思维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值