持续获取道路的车速和拥堵状态--附北京五环内全天路况下载

本文主要是介绍持续获取道路的车速和拥堵状态--附北京五环内全天路况下载,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

最近有个中科院的学生找我,说正在做一个环保相关的课题,需要监测某个特定区域内所有道路在不同时刻的车辆通行速度(时间),问我怎么样才能获取到这样的数据。陆续有好几个人问过这个需求了,这次我花了一些时间系统整理了一下业务流程,并重新编写了代码,实现了这个功能。因此写这篇教程把思路分享给大家,并将处理好的北京市五环内各道路在2023年3月23日全天不同时段(每30分钟采集一次)的速度和拥堵状态提供给大家下载研究。

需求分析

干交通这行,不管是交通设计、分析还是预测,经常需要知道某个区域内道路的拥堵状态,即某条路堵不堵,什么时候堵,堵多久,最好还能知道通行速度。要怎么做呢?我们最容易想到的是找交警要数据,但是不少人没有这个途径,而且交警的数据更多关注的是车流量,不一定能满足我们的需求。还有一种方式是直接看高德等图商的官网,上面会用红黄绿表示道路拥堵与否,如果只关注一两条路的话还行,但是你得盯着电脑一直看,而且只能定性的得到红黄绿(拥堵缓行畅通),不能得到通行速度。以上方法都不能满足我们获取持续路况的需求。

解决途径

最好的方法还是用图商的导航接口。百度、高德、腾讯都有免费的路径规划接口,规则大致相同,都是输入起终点坐标,接口返回途径道路的矢量坐标、路名、长度、通行时间等信息。自然我们就能想到,如果周期性比如每5分钟去导航同一条路,不就可以持续的得到这条路的路况数据了吗?另外,用不同的起终点多次调用接口,不就可以获取某区域内多条道路的数据了吗?答案是肯定的。本文基于以上两个思路,向大家介绍如何使用高德路径规划接口持续获取道路的车速和拥堵信息,并向大家分享我已经处理好的北京五环内主要道路一天的路况数据。

效果展示

我先给大家介绍下最终处理好的数据是什么样的,让大家先有个直观的了解,后面再来讲如何处理数据。最终数据包括:

  • 基础路网数据

本例为北京五环内路网的shp文件(图1),字段包括路名、长度、方向和路段ID,该shp包含68206条记录,每条记录代表一条小路段(高德称其为tmc)。放了张交大西门外的大柳树路的局部路网(图2)方便大家理解,图中的箭头是小路段的终点,也代表这路段的方向,这条路从南到北总长约1.2公里,被划分成了19条小路段,每条小路段有唯一的编号ID。

26bd6b01cd6e6a03d1cb46ea1ef9dfe5.jpeg

fcce079907fe7a9303735f3a50203bd9.jpeg

  • 路段分时段数据(excel)

包含每条小路段在不同时刻的速度和拥堵状态。时间取的是2023年3月23日(一个普通的工作日)全天0时到24时的数据,每半小时抓取一次。表中速度是定量指标,单位为km/h;拥堵状态是定性指标,取值为畅通、缓行、拥堵和严重拥堵;

我们可以从路网中筛选出所关注的小路段,如图2中的我标记了7的路段,其在路段分时段数据表中的ID为31570,则excel中的数据如图3和图4所示。

6f61eb19375622861ff2bc96118b7bad.jpeg

80a911f6bb74ff95fec537abf11ece1a.jpeg

从图4可以看到,白天早晨7点到晚上8点之间,该路段的通行速度明显比其它时段低;大柳树路不是主干路,速度波动不够大,我再放一张西直门立交桥的,车速差别就很明显了,早晚高峰也清晰见,见图5和图6。

0b9e4237b9f6f96ae31e5b46a3aefd61.jpeg

aab4cdd36ce65e5eeea7a735f1f072ad.jpeg

再强调一次,速度是定量指标,拥堵状态是定性指标,这是两个不同的维度,比如高速公路车速50km/h就算缓行了,而城市道路同样的速度则妥妥算畅通,要用哪个指标取决于你的数学模型。

数据处理过程

数据处理过程很复杂,因为涉及到很多细节,这些细节我之前在其它文章中已经写过,后面我会仅列出来,不再细说。这里主要讲一下数据处理的总体流程:

步骤1:利用高德路径规划接口,获取基础路网数据(类似本例中的北京五环路网shp文件)。详细过程见我之前的文章。如果你关注的路段比较多,OD点对就多弄一些,不多的话就就少一些;另外,原教程中的一些拓扑处理在本文的场景下是无需处理的;

《利用高德导航接口获取模型级交通路网数据》

步骤2:对基础路网的每一条路段进行唯一的ID标号,用于后期的匹配;

步骤3:在某一个时刻获取并保存基础路网中路段的实时车速,记录获取时刻;详细过程见之前文章:获取道路实时车速—以东南大学为例;

《获取道路实时车速》

步骤4:以一定频率周期性执行步骤3,获得路段在不同时刻的路况数据集合;

步骤5:根据基础路网中的路段ID,对后期获取的所有路段进行ID编号,即可得到路段分时段数据。

示例数据下载

数据内容:即上文所述的

  • 北京五环内路网的shp文件

路段分时段数据(CSV)2023年3月24日全天(每半小时一批次),共计3327948条记录

  • 数据下载方式:关注本人微信公众号“数牍小点子”,发送bj0323即可获得下载地址。

扫描加入免费的「智慧城市之智慧交通」知识星球可了解更多行业资讯和资料。

欢迎加入智能交通技术群!

联系方式:微信号18515441838

这篇关于持续获取道路的车速和拥堵状态--附北京五环内全天路况下载的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/814481

相关文章

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Python获取浏览器Cookies的四种方式小结

《Python获取浏览器Cookies的四种方式小结》在进行Web应用程序测试和开发时,获取浏览器Cookies是一项重要任务,本文我们介绍四种用Python获取浏览器Cookies的方式,具有一定的... 目录什么是 Cookie?1.使用Selenium库获取浏览器Cookies2.使用浏览器开发者工具

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

MySQL 获取字符串长度及注意事项

《MySQL获取字符串长度及注意事项》本文通过实例代码给大家介绍MySQL获取字符串长度及注意事项,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql 获取字符串长度详解 核心长度函数对比⚠️ 六大关键注意事项1. 字符编码决定字节长度2

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat