滴滴开源 TTI : 基于浮动车轨迹的城市交通指数计算服务

2019 年 9 月 17 日

滴滴开源 TTI : 基于浮动车轨迹的城市交通指数计算服务

TTI( Travel Time Index)是业内使用较多的城市拥堵程度的评价指标,是反应实际花费的行程时间与自由流花费行程时间的比值关系,值越大表示交通运行状态越差,一般与拥堵程度正相关,其它如异常天气(如雨、雪、雾等)或者异常道路情况也可能对TTI的数值产生影响。

基于滴滴海量的轨迹数据,可以准确计算城市交通运行指数,用直观的形式表达城市拥堵程度,为城市管理者提供决策支撑。


国内外对城市交通运行情况的评价方法


1、基于旅行时间进行评价


计算实际通行时间与自由流之间的关系来得到评价结果。Tomtom 使用的是实际旅行时间比自由流情况下增加的时间比例来衡量。


2、基于旅行速度进行评价


通过实际通行速度与自由流速度之间的关系得到评价结果。Inrix 使用是自由流速度与实际速度的比值,以道路的长度作为权重系数。


3、基于拥堵比进行评价


对每条道路会进行定权,然后以实际的拥堵里程的占比,计算拥堵占比。拥堵占比与运行指数之间有一定的对应关系。


4、基于交通流量进行评价


根据路段实际的交通流量与一段时间内评价基准的比值,通过每公里平均日交通量的加权平均值。


交通指数的计算方法


在文嵩老师、 Henry 老师的指导下,地图事业部交通大数据胡润波团队的大力支持下,结合智慧交通的业务场景,不断迭代优化,并对计算结果的合理性、准确性做了充分的验证。


速度计算的基本思想:如果一条 link 有两个连续时间片,分别为 t1、t2, link 长度为 S,那么 t1 到 t2 这段时间内,link 的平均速度 v 为 v = 2·S / (t1 + t2)。


TTI 计算的基本思想:在同一条 link 在一个时间片内,tti = 自由流速度 / 实际速度。


当轨迹覆盖度较低时,根据 link 的长度和路况可信度进行过滤。



自由流的计算方法


自由流速度:路段在低交通量,低密度情况下机动车所能达到的行程速度


a) 收集一段时间内经过某 link 每天 24 小时,时间间隔不大于 5 分钟的行程速度数据(如果时间间隔内通行轨迹数达不到一定阈值,则输出空值,为无效样本),至少连续观测 1 个月。


b) 使用算术平均聚合每个时间间隔在观测时间段内的所有有效样本的行程速度的平均值,如果有效样本达不到一定阈值,这个时间间隔的行程速度不纳入后续计算。


c) 根据时间段中速度最大的累计 4 小时样本速度的均值作为该 link 的自由流速度。


权重计算方法


在实际计算中,使用 link 在时间段 T 内的真实流量作为权重,但实际情况下,很难获取每个路网实时流量,因此,我们采用一个时间周期 T 内,观测到通过 link 的累计车辆数作为权重,T 的值为 30 天。


Link 集合获取方法


面状数据:在 PostGIS 路网数据库中进行空间查询,获取 link_id 和 direction 两个字段,然后再转换成 esiwei_id,拓扑关系采用 st_intersects。


线状数据:采用模板匹配的方法,根据 link 的形状与属性信息,获取目标 link 集合。


PostGIS 的查询效率:在全国路网数据库中,查询紫色范围下的 link 集合,耗时 1.7s。




计算架构




准确度验证


TTI 是一个宏观指标,不追求绝对值的准确度,只要求相对值的准确度。根据我们的观察,当轨迹点较少时,其值不能准确反映路网的运行态势。为了验证其准确度,我们进行了验证:


观测大众已知的规律区域,确认指数曲线是否反映了真实情况


提交软件园广场的回溯任务,计算周期为三天,为了降低单纯因时间跨度较小带来的相关性误差,我们选取跨度较大的两天和跨度较小的两天,分别为 2018.7.9、2019.1.17、2019.1.18,空间范围如图所示:



中关村软件园 3 天的指数曲线:



从软件园的指数曲线可以看出,软件园一天有三个波峰分别在 9:20 点附近、18:40 附近和 21:20 附近,这也符合互联网公司工作时间的认知。


我们再分析因地域差异带来的影响


这里我们选取北京市和乌鲁木齐市,两个城市一天指数曲线:



对比北京市和乌鲁木齐市的指数曲线,可以看出,乌鲁木齐虽使用北京时间,但是在出行高峰上,由于“时差”的存在,居民出行规律和当地日出日落时间强相关。


我们再分析社会活动是否对交通运行态势造成了影响


选取北京市有代表性 5 天的指数曲线:




2.4 号为除夕,2.11 号为上班第一天,2.18 号为上班一周,3.11 号为正常通行,3.12 号出现交通管制。从图中可以看出,由于除夕放假,北京市全城路网运行都处于畅通状态,节后第一天上班,由于人员回流,开始出现波峰,但拥堵情况并不严重。到 2.18 号已经上班一周,拥堵情况开始加剧,3.11 号北京已经恢复正常拥堵的态势,由于两会的召开,3.12 号北京大部分道路出现交通管制,所以 3.12 号的拥堵情况特别严重。


网约车主要在城市城区运行,这是其天然属性,相较于地图导航工具来说,滴滴的轨迹数据从轨迹特征、连续性、覆盖度看,对城市交通运行态势的理解更为深刻。随着滴滴内置导航工具的进一步完善,优势会越来越明显。在计算结果数据的准确度上,得到了城市管理者的初步认可。


济南交警、上海路设处、成都交管局、天津交管局、珠海交警、潍坊交警、哈尔滨交警、天津交管局、自贡交管局、天津滨海新区交管局,都曾使用滴滴的交通指数数据进行城市拥堵情况的验证,这些需求扩大了滴滴交通指数的影响力,也增加了我们的信心。


本文转载自公众号滴滴技术(ID:didi_tech)。


原文链接:


https://mp.weixin.qq.com/s/HoN7FtEl22z6bK2WlMKl-g


2019 年 9 月 17 日 14:54658
用户头像

发布了 33 篇内容, 共 50207 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

Istio 中的智能 DNS 代理功能

Jimmy Song

开源 云原生 Service Mesh istio 服务网格

LeetCode069-x的平方根-easy

书旅

go 数据结构 算法

week5-(2选1)

Week_09 作业

golangboy

极客大学架构师训练营

【薪火计划】04 - 心态和角色

brave heart

管理

vivo 调用链 Agent 原理及实践

vivo互联网技术

Java 架构 调用链

第9周学习总结

饭桶

第九周总结

脚手架 | 从零搭建满足权限校验等需求的前端命令行工具

梁龙先森

node.js 前端 前端工程化 前端进阶

Week 9 作业02

Croesus

展现非凡领跑力,京东会展云斩获“十大云原生行业落地典范”奖项

京东智联云开发者

云计算 AI 云原生

第九周课后练习

饭桶

鹿鼎记 · 韦小宝,丽春院、天地会、入皇宫等五个场景的恶搞版多线程锁学习!

小傅哥

Java 程序员 小傅哥 多线程

第九周作业

记一次HEX和RGB互换算法的思考及应用

徐小夕

Java 面试 算法 前端

智能灯串开发资料全开源!为这个冬天装点烂漫“星空”

智能物联实验室

人工智能 物联网 智能硬件 智能家居

第九周总结

熊桂平

架构师训练营 - 第 9 周课后作业(1 期)

Pudding

经典计算机课程

Joseph295

还在用分库分表?看TiDB如何解决海量数据无感扩容难题

京东智联云开发者

数据库 分布式数据库 #TiDB

田哥:面试被问== 与equals 的区别,该怎么回答?

田维常

面试

架构训练营 - 第9周课后作业 - 学习总结

Pudding

第五周作业

jizhi7

week5-根据当周学习情况,完成一篇学习总结

Week_09 总结

golangboy

极客大学架构师训练营

为什么你写的拦截器注入不了 Java bean?

Java旅途

Java spring Spring Boot 拦截器

讲武德,你们要的高性能日志工具 Log4j2,来了

沉默王二

Java log4j

第九周作业

Geek_4c1353

极客大学架构师训练营

极客大学 - 架构师训练营 第十周作业

9527

5G革命:如何让「数据」实现最大性能?

VoltDB

数据库 数据分析 5G 工业互联网

《Elasticsearch服务器开发》.pdf

田维常

elasticsearch

滴滴开源 TTI : 基于浮动车轨迹的城市交通指数计算服务-InfoQ