[ArcPy] Excel转shp文件 | ArcPy与要素类

本文介绍如何使用Python和ArcPy进行地理数据处理,包括从Excel读取坐标数据、创建点、线、面等几何对象,并将这些对象保存为Shapefile文件。此外,还提供了完整的代码示例。

涉及Python读取excel,ArcPy创建要素类,并保存(要素仅有空间坐标,不保存其他属性)
若需要写入要素的其他属性,可以参考shp文件创建与写入数据:http://blog.youkuaiyun.com/summer_dew/article/details/78072870

ArcPy创建多边行并保存成shp文件

其他类型一样操作
先创建ArcPy要素类的变量:①面:arcpy.Polygon②线:Polyline③点:Point

类型说明查文档:ArcPy–>几何

保存数据到文件:arcpy.CopyFeatures_management(变量,路径)

# 存放多边形的 点集
polygonGeometryList = []
# 遍历行(第一行->最后一行)
for i in range(1,nrows):  
    # 取出第i行,第5列的值
    str = table.cell(i,5).value
    # ;分隔  
    points = str.split(u';')  
    # 字符串转成坐标
    for j in points:  
        xy = j.split(',')
        # 创点类型  
        point.X = float(xy[0]);point.Y = float(xy[1])  
        array.add(point)
    # 创面类型  
    polygon = arcpy.Polygon(array)  
    polygonGeometryList.append(polygon)  
    array.removeAll()
# 保存数据  
arcpy.CopyFeatures_management(polygonGeometryList, "d:\\polygon.shp")  

完整代码

excel表:

这里写图片描述

代码:

import xlrd # must init xlrd 
import arcpy

# param
arcpy.env.workspace = r"F:\note\python\ArcPy" #workspace
excelPath = r"test.xlsx" # excel file path
excelTableIndex = 0 # excel's table index
outName = r"point.shp" # out file

excel = xlrd.open_workbook('test.xlsx') # get excel
table = excel.sheets()[0] # get table by sheets index
nrows = table.nrows # number of table's row
# get data
pointGeometryList = [] # a list to hold the PointGeometry objects
point = arcpy.Point() #create an empty Point object
spRef = arcpy.SpatialReference('WGS84 ARC System Zone 18')

for i in range(1,nrows): # get row once
    x = table.cell(i,0).value 
    y = table.cell(i,1).value
    point.X = float(x)
    point.Y = float(y)
    pointGeometry = arcpy.PointGeometry(point,spRef)
    pointGeometryList.append(pointGeometry)

arcpy.CopyFeatures_management(pointGeometryList,outName) # save the shape file

结果:
这里写图片描述

创建工具箱

为脚本创建工具箱,点我

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

geodoer

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

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

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

打赏作者

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

抵扣说明:

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

余额充值