如何获取交通态势数据(上)
原文链接
如何获取交通态势数据(上)https://mp.weixin.qq.com/s/ceSsz8uvvC2ozL-L0GP-sA
近规划的小伙伴有没有在做城市体检呢,我就是学着做的你们不要喷我。
分两次来记录一下,上篇内容主要为基础介绍和简单抓取交通态势数据以及ArcGIS中数据的处理;下篇主要为批量抓取交通态势数据并结合ArcGIS进行可视化出图。
Traffic API介绍
Python简单抓取操作
ArcGIS中道路处理和创建渔网
Traffic API介绍
高德地图交通态势接口早就下线了
百度API有一个实时路况查询服务
https://lbsyun.baidu.com/index.php?title=webapi/traffic
详细解释了请求参数与返回结果参数
构建自己的URL,以周边路况查询方式为例(URL如下)
https://api.map.baidu.com/traffic/v1/around?ak=你的AK¢er=39.912078,116.464303&radius=200&coord_type_input=gcj02&coord_type_output=gcj02//GET请求
对照请求参数的含义拆解来看:
ak=你的AK,你申请的密匙,将其替换进去即可,怎么申请去百度啦。
center=39.912078,116.464303,中心点坐标,这里注意是纬度在前经度在后。
radius=200,查询半径,最大1km
但也是因为百度API的流量限制,相当于将研究区域划分为若干个网格,获取到网格内道路的中心点(center)周边半径范围(radius)内的实时拥堵情况和各拥堵路段信息,然后通过for循环获取每个网格内的交通态势数据从而获得整个研究区域的数据。
coord_type_input=gcj02与coord_type_output=gcj02,请求和返回的坐标类型,示例中用的gcj02。
了解了以后把要换的都替换上就可以构建自己的URL了
https://api.map.baidu.com/traffic/v1/around?ak=qTVkMU1Bt9S8L042nkimfh1y6WlbYBX¢er=39.912078,116.464303&radius=200&coord_type_input=wgs84&coord_type_output=gcj02
直接在浏览器里试一下,可以看到返回的结果
那返回结果参数代表什么意思呢,服务文档中也有明确的解释
"status":0,显示是否成功的状态码,0就是成功,不成功会显示其他数字,在这里有个
状态码定义
https://lbsyun.baidu.com/index.php?title=webapi/appendix
"description",代表路况描述
"evaluation",路况整体评估,下面还包括"status":1和"status_desc"两个层级,前一个
以数字123..代表拥堵缓行等,后一个较status更为细致以文字描述路况。
那么我选取成都太古里一处地点,返回json是这样的层级关系,有"status","message"
evaluation"下就有"status":和"status_desc"两个层级。
Python简单抓取操作
以成都市太古里点为例,500m半径范围内的路况信息。
import requests
import pandas as pdkey = 'qTVkMU1Bt9S8L042nksimfh1yWlbYBX' # 你的key
x = 104.08373 # 经度
y = 30.65367 # 纬度#创建表格表头
traffic_api_header = [['status', 'description', 'eve_status', 'eve_desc', 'road_traffic']]
save_path = "C:\\Users\\chuan\\Desktop\\traffic api\\traffic.csv"
out = pd.DataFrame(traffic_api_header)
out.to_csv(save_path, mode='a', header=False, index=False, encoding='ANSI') # 正确数据追加# 构建url并访问
url = 'https://api.map.baidu.com/traffic/v1/around?ak='+str(key)+'¢er='+str(y)+','+str(x)+'&radius=500&coord_type_input=gcj02&coord_type_output=gcj02'
data = requests.get(url)
data.close()
traffic_m = data.json()# 提取返回结果中的各层级数据信息
status = traffic_m['status']
description = traffic_m['description']
eve_status = traffic_m['evaluation']['status']
eve_desc = traffic_m['evaluation']['status_desc']
road_traffic = traffic_m['road_traffic']
traffic_api = [[status, description, eve_status, eve_desc, road_traffic]] # 编组#输出表格
save_path = "C:\\Users\\chuan\\Desktop\\traffic api\\traffic.csv"
out = pd.DataFrame(traffic_api)
这样就可以输出一个表格,方法基本就这么个方法
ArcGIS中道路处理和创建渔网
好了,到这里前面写的都先放一放不管,来到ArcGIS里说一说数据的处理和中心点坐标的获取,上面返回的结果只是一个中心点周边的数据,我们需要一整个研究区的数据,那就是需要多个坐标点。
数据来源:OSM
示例区域:成都一环路范围内
主要步骤是创建500*500渔网格,然后路网先融合成一个整体,然后用标识工具将渔网格切割路网,使每个网格中都对应着一段路网。然后在属性表中用计算几何计算“中点的x/y坐标”得到道路中心点坐标,最后表转EXCLE工具把坐标信息导出来。
不想说具体步骤了..我写着写着不想写了..截图实在太麻烦了一步步的(ID是自己添加的,因为FID是从0开始,从1开始比较方便)。表转成excle后保存为csv格式的即可
批量坐标点都弄好了,下次就是循环这些中心点坐标获取周边半径范围内的路况信息。最后说一点,osm路网是wgs84的,构建URL的时候记得改一下coord_type_input哦~~~下次见,有写错的地方的请理解。
公众号:一点规划
也欢迎大家投稿哦,投稿邮箱:m17723445756@163.com
如何获取交通态势数据(上)相关推荐
- Python程序及交通态势数据
这是获取韶关交通态势数据的代码. 通过使用key,去高德地图上获取数据. import requests import pandas as pdkey = 'ljIS5EiGMd2mZrswSrU9T ...
- python爬取路况信息查询_如何一键获取高德交通态势数据
发送原创文章至admin@caup.net,可申请注册邀请码 您需要 登录 才可以下载或查看,没有帐号?注册方式 x W56N8WNYzvv0Yeow.jpg (86.04 KB, 下载次数: 25) ...
- python交通调查数据处理_Python突破高德API限制爬取交通态势数据+GIS可视化(超详细)...
一.需求: 爬取高德的交通态势API,将数据可视化为含有交通态势信息的矢量路网数据. 二.使用的工具: Python IDLE.记事本编辑器.ArcGIS 10.2.申请的高德开发者KEY(免费). ...
- 阿里云HaaS100作为Http客户端获取中控机数据上云
需求: 某些工控设备具有以太网接口,内部是一个Web服务器,把作业数据汇总,呈现在html页面上,甲方希望脱离集中控制器,数据直接上云.这样可以快速部署工控设备,不需要布网线,装中控PC软件之类的. ...
- 怎么调用获取被创建的预制体_Go 语言 Web 编程系列—— 获取用户请求数据(上)...
0.GET/POST 请求数据 在 PHP 中,可以直接通过全局变量 $_GET 和 $_POST 快速获取 GET/POST 请求数据,GET 请求数据主要是 URL 查询字符串中包含的参数,以前面 ...
- 中高德地图只显示某一城市_小O地图 - 城市交通态势数据查询及下载
小O地图是一款互联网地图数据挖掘.分析.图表软件.具有专业.稳定.高效的特点.提供地图功能多达30余项,并持续更新中. 感兴趣的朋友可以登录官网下载使用 .www.GIS9.com [概述] 本文介绍 ...
- 高德地图交通态势爬取并存入MySQL数据库
高德地图交通态势爬取并存入mysql数据库 高德地图交通态势开放api链接: 高德交通态势 高德地图交通态势使用流程: 第一步,申请"Web服务API接口"密钥(Key): 第二步 ...
- [小o地图-数据] - 城市交通态势数据(实时路况)
小O地图是一款互联网地图数据挖掘.分析.图表软件.具有专业.稳定.高效的特点.提供地图功能多达30余项,并持续更新中. [概述] 本文介绍小O地图新开发的"交通态势数据"获取功能. ...
- arcgis公里坐标转经纬度_高德api交通态势爬取及可视化利用 python+arcgis
近日做项目,有一部分要分析研究范围内的交通运行情况.传统的方法是要去现场调研数车,通过交通量和道路通行能力来计算道路的服务水平.但是因为疫情原因,不想外出,想要利用其它方法来获得区域的交通运行水平.首 ...
最新文章
- [20160307]绑定变量的分配长度3.txt
- 征集活动 | PMCAFF八周年,十万产品经理送祝福
- js 设备条形码字体_蚌埠食品袋激光打码机设备-青岛博泰格睿特
- php分页实例下载,PHP文件操作实例总结【文件上传、下载、分页】
- Maven定制化打包后的包名(加入时间戳)
- 03-22 H5 性能分析
- Java项目开发中实现分页的三种方式一篇包会
- IE8卸载再回到IE6
- 对公司的建议_工作总结
- _validate_lengths‘ from ‘numpy.lib.arraypad
- qt控件之qt中的控件QTableWidget的使用
- 用记事本编辑注册表文件
- 【设计模式】- 观察者模式
- nssl 1438.战略威慑
- Chrome浏览器未连接到互联网的解决办法
- 全球疫情形势动态地图展示(超帅超好玩的python动图)
- Xubuntu22.04设置全局代理(一百五十六)
- esp分区创建 linux_EFI引导Ubuntu。分区如何手动创建
- 视频融合平台EasyCVR如何快速更改快照文件的raw后缀?
- Hibernate_day03(转载传智播客的老师讲义,博主只图查看方便)
热门文章
- python 多媒体框架pyglet开发
- 招商银行 测试开发工程师 视频面经
- 火山安卓模块的封装方法
- IOS:Warning: Attempt to dismiss from view controller xxxxxxxxxController: 0x13f6840e0
- Oracle 最后一次更新时间(dba_objects)
- Discuz论坛广告横幅大图在百度app内无法显示,百度app默认开启了广告屏蔽
- 【报告分享】苏宁:2019中国智慧零售门店数字化白皮书(附下载)
- WIFI大师专业版支持多开系统和独立系统
- QWT3D 之 三维动态曲线的实现
- java.lang.RuntimeException: Unable to fence NameNode at hadoop1/192.168.43.100:8020