【大数据】城市公交网络分析与可视化(一):基于Python爬取公交车行驶路径等基本信息

博客内容介绍

借助高德地图API,爬取指定公交线路(国内绝大多数线路,给定城市名和路线名即可)的始发站、终点站、行驶路径(行车轨迹)、站点名称和坐标、行驶距离等与公交车有关的基本信息,并将其保存到Execl表格中!

说明

考虑到个人最近精力有限,不做知识点详细介绍!

但可以告诉大家有哪些关键点:
1、高德开放平台|高德地图API
注册账号->获取Key!
(密钥Key是url中的一个关键参数,具体获取细节见后文补充部分,但我把自己申请的密钥直接放到代码中了,所以不申请问题也行)

2、啥是API?
API(Application Programming Interface,应用程序接口)
有兴趣就去了解一下,知不知道与本课题关系不大

3、啥是URL?
URL(Uniform Resource Locator,统一资源定位符)
同样,有兴趣就去了解一下,与本博客关系不是非常大~

4、了解requests、json库简单应用
同上,还是有兴趣就去了解一下,一点也不知道是啥其实也行,问题不大

可直接运行的Python程序

1、接口URL介绍

参数设置和返回参数内容,具体可参考:路径规划-API文档-开发指南(关于具体参数细节问题有待进一步探究)

url = 'https://restapi.amap.com/v3/bus/linename?s=rsv3&extensions=all&key=a5b7479db5b24fd68cedcf24f482c156&output=json&city={}&offset=1&keywords={}&platform=JS'.format(cityname,line)

2、完整代码
选取内容以青岛110路公交举例,可根据实际需求自己调整

import requests
import json
import pandas as pd
#0、在这里设置城市和线路名!(应确保有这条线路)
cityname='青岛'
line='110路'
url = 'https://restapi.amap.com/v3/bus/linename?s=rsv3&extensions=all&key=a5b7479db5b24fd68cedcf24f482c156&output=json&city={}&offset=1&keywords={}&platform=JS'.format(cityname,line)
#1、获取数据
r = requests.get(url).text
rt = json.loads(r)
#2、读取公交线路部分信息(可参考rt变量中的内容,按需获取)
dt = {}
dt['line_name'] = rt['buslines'][0]['name'] #公交线路名字
dt['start_stop'] = rt['buslines'][0]['start_stop'] #始发站
dt['end_stop'] = rt['buslines'][0]['end_stop'] #终点站
#3、获取沿途站点站名和对应坐标并保存在“公交基本信息”表格中
station_name = []
station_coords = []
for st in rt['buslines'][0]['busstops']:
    station_name.append(st['name'])
    station_coords.append(st['location'])
dt['station_name'] = station_name
dt['station_coords'] = station_coords
dm = pd.DataFrame(dt)
dm['latitude'], dm['longitude'] = dm['station_coords'].str.split(',', 1).str#将坐标拆解为经度和纬度
dm.to_csv('表格1_{}{}公交基本信息.csv'.format(cityname,line),encoding='utf-8-sig') 

#4、获取沿途路径坐标(行驶轨迹)并保存在“公交路线轨迹表格中”
tmp={}
polyline=rt['buslines'][0]['polyline']
tmp['station_coords']=polyline.split(";")
path=pd.DataFrame(tmp)
path['latitude'], path['longitude'] = path['station_coords'].str.split(',', 1).str#将坐标拆解为经度和纬度
path.to_csv('表格2_{}{}公交路线轨迹.csv'.format(cityname,line),encoding='utf-8-sig')

分析

1、运行结果:
(1)两个表格:
在这里插入图片描述
(2)表格1内容:
①第1遍打开:乱码?
原因分析:此时读入表格中参数encoding=‘utf-8’,应修改为encoding=‘utf-8-sig’
在这里插入图片描述
②:改正后内容:
在这里插入图片描述
(3)表格2内容:
说明:station_coords为经纬度,latitude和longitude分别为拆分后的经纬度,目的是根据方便不同使用场合应用,可根据实际情况调整。

在这里插入图片描述
(4)轨迹可视化
将表格1和表格2中坐标结合使用,采用高德地图可视化平台,绘制轨迹图
本部分在后续文章中还会涉及,这里不做详细介绍
在这里插入图片描述
部分绘制细节:
在这里插入图片描述
2、关键爬取数据变量rt分析
(1)打开Spyder中的Variable explorer(变量探测器)
在这里插入图片描述
(2)点击关键变量buslines
在这里插入图片描述
这些变量什么意思?有的可以直接判断出来,有的可以参照刚推荐的链接,就是这个:路径规划-API文档-开发指南,有的或许需要查阅别的文档了~

补充

1、如何获取密钥Key
(1)进入控制台,在左上角找到“我的应用”
在这里插入图片描述
(2)点击右上角“创建新应用”
在这里插入图片描述
(3)填写创建应用相关信息
在这里插入图片描述

(4)选择添加“Key”

在这里插入图片描述
(5)按选择Web端在这里插入图片描述
(6)申请成功,下图红线内容即为Key在这里插入图片描述

参考链接

CSDN博客:公交信息爬取01

知乎文章:城市路网实时路况爬取与ArcGIS可视化

CSDN博客:pd.read_csv()中encoding='utf-8’和’utf-8-sig’的区别

  • 31
    点赞
  • 205
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
大数据技术在城市公交网络分析可视化方面发挥着重要作用。为了进行公交网络分析可视化,我们可以使用Python进行公交车信息爬取。通过爬取公交车相关的数据,我们可以获取大量的实时、历史和预测性的公交车信息,以便进行后续的分析与可视化。 首先,我们可以利用Python的爬虫技术,通过访问公交车相关的数据接口,从网站上爬取公交车的实时位置、车辆类型、运行状态等信息。通过这些数据的收集,我们可以得到城市公交车的运行轨迹、车辆分布情况以及运行状况等信息,并将这些数据保存到本地数据库中。 接着,我们可以利用Python的数据处理与分析库,对爬取到的公交车数据进行清洗、处理和分析。我们可以对公交车的运行轨迹进行轨迹分析,找出车辆的常用路线和停靠点,进行运行状态的统计与分析,以及预测车辆的运行时间等。 最后,我们可以利用Python的数据可视化库,对公交车的数据进行可视化呈现。通过绘制城市公交车的路线分布图、车辆运行状况的热力图、车辆运行时间的趋势图等,可以更直观地展示公交车的运行状态与规律,方便决策者和用户进行对公交网络的分析与评估。 综上所述,利用Python进行公交车数据的爬取、处理和可视化,可以为城市公交网络分析可视化提供帮助,为公交运营、规划和管理提供数据支持,从而提升城市公交服务的质量和效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值