python爬虫_抓取瓦片图片信息并将其拼接_以mapbar为例(适用交通工程类专业)

python爬虫_抓取瓦片图片信息并将其拼接_以mapbar为例(适用交通工程类专业)


爬虫是抓取数据的高效率方法,本次介绍爬取瓦片图片并进行拼接:
瓦片信息就是,类似于拼图,一块块小的拼图本身所含的信息并不多,将所有的拼图碎片全部抓取之后,再将其拼接成完成的拼图,才能运用其中的数据。

瓦片图片主要存在在地图(包含道路交通等等以不同图层layer的方式展现),每块瓦片碎片的大小、类别都是一样的,只是所代表的位置不同罢了。也因此每块瓦片碎片都有它自己的标号来标定当前瓦片的位置(一般是以某种方向的坐标系为准)。
所以,首先解析瓦片标号并构建瓦片所在的坐标系,之后按照一定的范围依次爬取,最后进行拼接就可以得到想要的数据了。流程大概如下:

Created with Raphaël 2.2.0 开始 解析瓦片标号信息和其所在坐标系 找到需要爬取的范围(一般为一个矩形)开始爬 将瓦片按顺序拼接,得到完整的图片数据 结束

这次就以mapbar为例爬取道路交通拥堵情况

在这里插入图片描述
绿色、黄色、红色的线就是北京市的道路交通拥堵情况了,目标是尽可能详细地抓出来然后拼接。

第一步,瓦片标号解析

打开开发者工具F12,进一步放大地图会弹出很多.png格式的图,前面是一连串序号。在network的preview里就能看到图的样子,明显就是道路交通拥堵的图层瓦片。
在这里插入图片描述
这里就直接解析这张图的序列号:o b 16bd l 9bd
这是一个16位进制编码的标号,o为开头,b代表大小层级,16bd是x轴,l为xy轴分隔,9bd是y轴。顺序从左到右,从下到上,典型的xy坐标系啊。
因此大概找了北京等其他城市的大致范围,并将其存到了表格方便依次读取,表格大概长这样:
在这里插入图片描述

df1=pd.read_excel('pic.xlsx',sheet_name='cityinf',header=0,index=False)
data_citypic=df1.values
citynum=data_citypic.shape[0] #city num=42

然后是对坐标解析:

'''xy坐标信息'''
def city_loc(number):
    n=number                            #表格里的序号,代表城市
    city_inf=data_citypic[n,1:4]        #读取需要的信息
    cityname=city_inf[0]
    xy1_16=city_inf[1]
    xy2_16=city_inf[2]                  #16位进制坐标
    x1_16=xy1_16[2:6
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值