python读取shapefile文件(非常之基础)

import shapefile
from matplotlib import pyplot as plt

border_shape=shapefile.Reader(“D:\…\ne_10m_rivers_lake_centerlines.shp”)
#通过创建reader类的对象进行shapefile文件的读取

border=border_shape.shapes()
# .shapes()读取几何数据信息,存放着该文件中所有对象的 几何数据
#border是一个列表

border_points = border[0].points
#返回第1个对象的所有点坐标
#border_points = [(x1,y1),(x2,y2),(x3,y3),…]

x,y = zip(*border_points)
#x=(x1,x2,x3,…)
#y=(y1,y2,y3,…)

fig,ax=plt.subplots() # 生成一张图和一张子图
lax.plot(x,y,‘k-’) # x横坐标 y纵坐标 ‘k-’线性为黑色
ax.grid()# 添加网格线
ax.axis(‘equal’)
plt.show()

在这里插入图片描述输出结果:
在这里插入图片描述
尚存的问题:
一个shapefile文件中存在多个几何对象,以上只能每次读出一个对象的数据并显示成图,如果依次把每个对象的横坐标数据都添加到一个x,所有的纵坐标数据都添加到y,统一显示,会坐标衔接不上。
如下:
在这里插入图片描述
for i in range(200,204)结果输出:在这里插入图片描述
for i in range(0,204)结果输出:
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值