python学习—使用arcpy将excel批量转table表,并进一步将table转shp格式

现在有一批含有表头的excel文件,表头是经纬度等,但是在arcgis中无法直接将excel转shp,需要先转table再转shp。只有单个文件可以直接使用工具:XY Table To Point (Data Management)—ArcGIS Pro | Documentation直接手动处理,但是现在有大批数据,不能一个个执行,故使用arcpy处理。


更新:221209 之前脑子糊涂了,其实不用代码,直接构建个模型应该就行吧,还是当时试了不行所以才用arcpy的,忘记了
在这里插入图片描述

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
arcpy是基于arcgis的python里面的模块,如果没有ARCGIS是没办法使用的。

主要的参考来源有以下几个函数:

ListFiles()函数

https://pro.arcgis.com/zh-cn/pro-app/latest/arcpy/functions/listfiles.htm

这个函数在https://blog.csdn.net/weixin_43416590/article/details/124813336?spm=1001.2014.3001.5502 第6.4节有所提及。

EXCEL转表函数:
https://pro.arcgis.com/zh-cn/pro-app/2.6/tool-reference/conversion/excel-to-table.htm

XY表转点函数:
https://pro.arcgis.com/zh-cn/pro-app/latest/tool-reference/data-management/xy-table-to-point.htm

具体代码如下所示:

# -*- coding: utf-8 -*-
import os
import arcpy
import xlrd
arcpy.env.overwriteOutput = True  # 允许覆盖之前产生的数据集,便于测试

# 设置工作空间
arcpy.env.workspace = r"D:\DELL\E\zong\yuejiangshuiliang2"
out_table = r"D:\DELL\E\zong\yuejiangshuiliang3"
out_shp = r"D:\DELL\E\zong\yuejiangshuiliang4"
coordinate = r"D:\DELL\E\zong\yuejiangshuiliang2\WGS 1984.prj"


# 读取excel文件列表
for xlsx_file in arcpy.ListFiles("*.xlsx"):
    name = xlsx_file[:-5]
    print(name)
    arcpy.ExcelToTable_conversion(xlsx_file, out_table+"/"+name, "Sheet1")
    arcpy.management.XYTableToPoint(out_table+"/"+name+".dbf", out_shp+"/"+name,
                                    "lon", "lat", "pre",
                                    coordinate)

其中,工作空间为存储了excel文件的文件夹,out_table存储了生成的table文件,out_shp存储了生成的shp文件,coordinate是投影文件。print(name)可以保留,用于查看进度。我这里有1500来个excel,所以我使用了print(name)来查看处理到哪里了。name = xlsx_file[:-5]用于删掉文件拓展名.xlsx

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值