一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

交通状态检测方法、装置、设备和存储介质与流程

2022-02-19 11:39:43 来源:中国专利 TAG:

1.本发明涉及交通技术领域,尤其涉及一种交通状态检测方法、装置、设备和存储介质。


背景技术:

2.tti(travel time index)是业内使用较多的城市拥堵程度的评价指标,是反应实际花费的行程时间与自由流花费行程时间的比值关系,值越大表示交通运行状态越差,一般与拥堵程度正相关,其它如异常天气(如雨、雪、雾等)或者异常道路情况也可能对tti的数值产生影响。
3.基于海量的轨迹数据,可以计算出城市的tti指数,用直观的形式表达城市拥堵程度,为城市管理者提供决策支撑。
4.当前国内外对城市交通运行情况的评价方法主要有以下几种:1、基于旅行时间进行评价:计算实际通行时间与自由流之间的关系来得到评价结果。
5.2、基于旅行速度进行评价:通过实际通行速度与自由流速度之间的关系得到评价结果。
6.3、基于拥堵比进行评价:对每条道路会进行定权,然后以实际的拥堵里程的占比,计算拥堵占比。拥堵占比与运行指数之间有一定的对应关系。
7.4、基于交通流量进行评价:根据路段实际的交通流量与一段时间内评价基准的比值,通过每公里平均日交通量的加权平均值。
8.目前,结合以上多种思想,提出了交通指数的计算方法:速度计算的基本思想:如果一条路段有两个连续时间片,分别为t1、t2,该路段长度为s,那么t1到t2这段时间内,该路段的平均速度v=2s/(t1 t2)。
9.tti计算的基本思想:在同一条路段在一个时间片内,tti=自由流速度/实际速度。其中,自由流速度指的是路段在低交通量、低密度情况下机动车所能达到的行程速度。
10.当轨迹覆盖度较低时,根据路段的长度和路况可信度进行过滤。
11.也就是说,需要先将道路划分为路段,再计算各路段的tti,从而确定交通拥堵程度。
12.而传统的基于地理信息的道路划分方法大致可分为两种。第一种是通过连接关系,以路口为节点,道路为边来构建图模型。这样建模的缺点是无法反映道路内部的区别与变化。例如,在分析道路堵塞问题时,拥堵往往首先出现在路的其中一段,然后开始传播,因此把一条路作为一个整体分析是显然不合适的。还有一种方式是等距离划分路段,这样划分虽然可以更加具体,但是难以适应不同道路的不同特点。在划分长度一定的情况下,对于交通流量大、路况复杂的路来说,会存在划分不够细的问题,同时,对于相反情况的道路来说,这样的划分方式却又往往过于复杂,让数据处理变得困难。因此,目前的划分方式会导致交通大数据的处理效率和处理精度有限。


技术实现要素:

13.本发明所要解决的技术问题是:提供一种交通状态检测方法、装置、设备和存储介质,可以提高交通大数据的处理效率及处理精度。
14.第一方面,本发明提供了一种交通状态检测方法,包括:获取路网数据以及浮动车的轨迹点数据,所述轨迹点数据包括轨迹点的经纬度和时间戳;根据所述轨迹点数据,分别计算各条轨迹中相邻两个轨迹点的平均速度,并根据所述平均速度,对各条轨迹中相邻两个轨迹点的中点进行聚类,得到第一聚类结果;根据所述第一聚类结果和路网数据,对道路进行划分,得到第一细分路段;分别根据各第一细分路段上各条轨迹中相邻两个中点的速度差和时间差,计算所述相邻两个中点的加速度,并根据所述加速度,分别对各第一细分路段上各条轨迹中的各所述中点进行聚类,得到第二聚类结果;根据所述第二聚类结果,分别对各第一细分路段进行划分,得到第二细分路段;分别根据各第二细分路段上的轨迹点数据,计算各第二细分路段的自由流速度和不同预设时段的实际速度,并分别根据各第二细分路段的自由流速度和不同预设时段的实际速度,计算各第二细分路段对应不同预设时段的拥堵系数。
15.第二方面,本发明还提供了一种交通状态检测装置,包括:第一获取模块,用于获取路网数据以及浮动车的轨迹点数据,所述轨迹点数据包括轨迹点的经纬度和时间戳;第一聚类模块,用于根据所述轨迹点数据,分别计算各条轨迹中相邻两个轨迹点的平均速度,并根据所述平均速度,对各条轨迹中相邻两个轨迹点的中点进行聚类,得到第一聚类结果;第一划分模块,用于根据所述第一聚类结果和路网数据,对道路进行划分,得到第一细分路段;第二聚类模块,用于分别根据各第一细分路段上各条轨迹中相邻两个中点的速度差和时间差,计算所述相邻两个中点的加速度,并根据所述加速度,分别对各第一细分路段上各条轨迹中的各所述中点进行聚类,得到第二聚类结果;第二划分模块,用于根据所述第二聚类结果,分别对各第一细分路段进行划分,得到第二细分路段;第一计算模块,用于分别根据各第二细分路段上的轨迹点数据,计算各第二细分路段的自由流速度和不同预设时段的实际速度,并分别根据各第二细分路段的自由流速度和不同预设时段的实际速度,计算各第二细分路段对应不同预设时段的拥堵系数。
16.第三方面,本发明还提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面提供的交通状态检测方法。
17.第四方面,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面提供的交通状态检测方法。
18.本发明的有益效果在于:根据gps轨迹点数据求出速度,并根据速度对道路进行第一次划分,再根据速度求出加速度,并根据加速度对道路进行第二次划分,能够更好地体现出不同路况对司机驾驶行为的影响,并且通过筛选出复杂路况路段,有助于预防复杂路况路段出现的交通事故,从而能够更好地提高交通安全;通过计算各第二细分路段对应不同时段的拥堵系数,可以很好地展示各个细分路段的交通状态,也可以提高后续出行时间的预测准确度。
19.本发明相对于传统的基于地理信息的道路划分方法,能够更好地对道路进行精确划分,从而提高交通大数据的处理效率及处理精度。
附图说明
20.图1为本发明提供的一种交通状态检测方法的流程图;图2为本发明提供的一种交通状态检测装置的结构示意图;图3为本发明提供的一种电子设备的结构示意图;图4为本发明实施例一的交通状态检测方法的流程图;图5为本发明实施例一的道路细分结果示意图;图6为本发明实施例一的路径和预估出行时间的展示示意图。
具体实施方式
21.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
22.在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子计算机程序等等。
23.此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本技术的范围的情况下,可以将第一信息为第二信息,且类似地,可将第二信息称为第一信息。第一信息和第二信息两者都是信息,但其不是同一信息。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
24.如图1所示,一种交通状态检测方法,包括:s101:获取路网数据以及浮动车的轨迹点数据,所述轨迹点数据包括轨迹点的经纬度和时间戳;s102:根据所述轨迹点数据,分别计算各条轨迹中相邻两个轨迹点的平均速度,并根据所述平均速度,对各条轨迹中相邻两个轨迹点的中点进行聚类,得到第一聚类结果;
s103:根据所述第一聚类结果和路网数据,对道路进行划分,得到第一细分路段;s104:分别根据各第一细分路段上各条轨迹中相邻两个中点的速度差和时间差,计算所述相邻两个中点的加速度,并根据所述加速度,分别对各第一细分路段上各条轨迹中的各所述中点进行聚类,得到第二聚类结果;s105:根据所述第二聚类结果,分别对各第一细分路段进行划分,得到第二细分路段;s106:分别根据各第二细分路段上的轨迹点数据,计算各第二细分路段的自由流速度和不同预设时段的实际速度,并分别根据各第二细分路段的自由流速度和不同预设时段的实际速度,计算各第二细分路段对应不同预设时段的拥堵系数。
25.基于gps数据对道路进行划分,在划分路段时,不仅通过速度对不同的交通状况进行划分,还通过加速度进行二次划分,可以更好地体现出不同路况(如弯道、上下坡、岔路口等)对司机驾驶行为的影响(加速减速等),通过筛选出复杂路况对应的路段,有助于预防复杂路况路段出现的交通事故,从而能够更好地提高交通安全。
26.在一个可选的实施例中,所述根据所述轨迹点数据,分别计算各条轨迹中相邻两个轨迹点的平均速度,并根据所述平均速度,对各条轨迹中相邻两个轨迹点的中点进行聚类,得到第一聚类结果;根据所述第一聚类结果和路网数据,对道路进行划分,得到第一细分路段,包括:根据同一条轨迹中相邻两个轨迹点的经纬度,计算所述相邻两个轨迹点对应的中点的经纬度;根据所述相邻两个轨迹点的经纬度和时间戳,计算所述相邻两个轨迹点对应的平均速度,并将所述平均速度作为所述相邻两个轨迹点对应的中点的瞬时速度;根据各轨迹点对应的中点的经纬度和瞬时速度,对各轨迹点对应的中点进行聚类,得到k1个第一聚类簇,所述k1通过手肘法确定;分别计算各第一聚类簇的凸包,并根据所述凸包和路网数据,对道路进行划分,得到第一细分路段。
27.根据轨迹点数据计算出速度,然后基于速度和位置进行聚类,可对不同道路的交通状况进行划分,可以很好地适应不同道路的不同特点。
28.在一个可选的实施例中,所述根据所述相邻两个轨迹点的经纬度和时间戳,计算所述相邻两个轨迹点对应的平均速度,包括:根据所述相邻两个轨迹点的经纬度,计算所述相邻两个轨迹点之间的曼哈顿距离;根据所述相邻两个轨迹点的时间戳,计算所述相邻两个轨迹点的时间差;根据所述相邻两个轨迹点的之间的曼哈顿距离和时间差,计算所述相邻两个轨迹点对应的平均速度。
29.由于在聚类过程中使用的速度这一特征值只需要一个相对值,能够反映大小关系即可,因此,为了计算简便,采用曼哈顿距离。
30.在一个可选的实施例中,所述分别根据各第一细分路段上各条轨迹中相邻两个中点的速度差和时间差,计算所述相邻两个中点的加速度,并根据所述加速度,分别对各第一细分路段上各条轨迹中的各所述中点进行聚类,得到第二聚类结果;根据所述第二聚类结
果,分别对各第一细分路段进行划分,得到第二细分路段,包括:根据同一条轨迹中相邻两个轨迹点的时间戳,计算所述相邻两个轨迹点对应的中点的时间戳;根据一第一细分路段上同一条轨迹中相邻两个中点的瞬时速度和时间戳,计算所述相邻两个中点的速度差和时间差,并根据所述速度差和时间差,计算所述相邻两个中点的加速度;根据各所述中点的经纬度和加速度,对所述一第一细分路段上各条轨迹中的各所述中点进行聚类,得到k2个第二聚类簇,所述k2通过手肘法确定;分别计算各第二聚类簇的凸包,并根据所述凸包,对所述一第一细分路段进行划分,得到所述一第一细分路段对应的第二细分路段。
31.基于加速度对路段进行二次划分,可提取得到司机驾驶行为,进而根据路况进行分类。由于复杂路况路段往往是交通事故多发区,因此从轨迹点数据中区分出复杂路况路段,可以更好地提高交通安全。
32.在一个可选的实施例中,所述分别根据各第二细分路段上的轨迹点数据,计算各第二细分路段的自由流速度和不同预设时段的实际速度,并分别根据各第二细分路段的自由流速度和不同预设时段的实际速度,计算各第二细分路段对应不同预设时段的拥堵系数,包括:分别根据位于各第二细分路段上且处于预设第一时段内的轨迹点数据,计算各第二细分路段的自由流速度;将一天划分为多个预设时长的第二时段;分别根据位于各第二细分路段上且处于同一第二时段内的轨迹点数据,计算各第二细分路段对应所述同一第二时段的实际速度;分别根据各第二细分路段的自由流速度及对应所述同一第二时段的实际速度,计算各第二细分路段的对应所述同一第二时段的拥堵系数。
33.基于每日最不拥堵时段的轨迹点数据来计算自由流速度,并基于每日各时段的轨迹点数据来计算各时段的实际速度,从而可计算出全天各时段的拥堵系数,可提高后续计算预估出行时间的准确度。
34.在一个可选的实施例中,所述分别根据位于各第二细分路段上且处于同一第二时段内的轨迹点数据,计算各第二细分路段对应所述同一第二时段的实际速度,包括:根据轨迹点的经纬度和时间戳以及各第二细分路段的路段数据,匹配得到位于一第二细分路段上且处于一第二时段内的轨迹点数据;根据所述一第二细分路段上的同一条轨迹中相邻两个轨迹点的经纬度和时间戳,计算所述相邻两个轨迹点之间的距离和时间差,并根据所述距离和时间差,计算所述相邻两个轨迹点对应的轨迹速度;计算所述一第二细分路段上处于所述一第二时段内的各条轨迹中的各轨迹速度的平均值,得到所述一第二细分路段对应所述一第二时段的实际速度。
35.基于处于同一第二细分路段上且处于同一第二时段的轨迹点数据来计算该第二细分路段上该第二时段内的所有轨迹速度,然后将所有轨迹速度进行平均,即可得到该第二细分路段对应该第二时段的实际速度。
36.在一个可选的实施例中,所述方法还包括:根据所述路网数据,建立有向有权图,所述有向有权图中的节点为道路的交点,边为道路,边的权值为道路的长度;通过最短路径算法,计算所述有向有权图中两两节点之间的最短路径及距离,并保存至数据库中;根据接收到的起点数据和终点数据,从所述数据库中查询得到对应的最短路径及距离,作为所述起点数据和终点数据对应的行驶路径和行驶距离;获取所述行驶路径的各第二细分路段的自由流速度及对应当前时段的拥堵系数,并分别根据所述各第二细分路段的自由流速度及对应当前时段的拥堵系数,计算所述各第二细分路段当前时段的实际速度;分别根据所述行驶路径的各第二细分路段当前时段的实际速度和路段长度,计算各第二细分路段的通行时间,并根据各第二细分路段的通行时间,累加得到预估出行时间。
37.通过预先计算任意两个道路交点的最短路径及距离并保存至数据库中,便于后续可快速查询起点和终点的行驶路径和行驶距离;通过行驶路径上的各第二细分路段对应当前时段的拥堵系数来计算预估出行时间,可提高预测准确性。
38.如图2所示,本发明还提供了一种交通状态检测装置,包括:第一获取模块201,用于获取路网数据以及浮动车的轨迹点数据,所述轨迹点数据包括轨迹点的经纬度和时间戳;第一聚类模块202,用于根据所述轨迹点数据,分别计算各条轨迹中相邻两个轨迹点的平均速度,并根据所述平均速度,对各条轨迹中相邻两个轨迹点的中点进行聚类,得到第一聚类结果;第一划分模块203,用于根据所述第一聚类结果和路网数据,对道路进行划分,得到第一细分路段;第二聚类模块204,用于分别根据各第一细分路段上各条轨迹中相邻两个中点的速度差和时间差,计算所述相邻两个中点的加速度,并根据所述加速度,分别对各第一细分路段上各条轨迹中的各所述中点进行聚类,得到第二聚类结果;第二划分模块205,用于根据所述第二聚类结果,分别对各第一细分路段进行划分,得到第二细分路段;第一计算模块206,用于分别根据各第二细分路段上的轨迹点数据,计算各第二细分路段的自由流速度和不同预设时段的实际速度,并分别根据各第二细分路段的自由流速度和不同预设时段的实际速度,计算各第二细分路段对应不同预设时段的拥堵系数。
39.如图3所示,本发明还提供了一种电子设备,所述电子设备包括:一个或多个处理器301;存储装置302,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器301执行,使得所述一个或多个处理器301实现如上所述的交通状态检测方法。
40.本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的交通状态检测方法。
41.实施例一
请参照图4

6,本发明的实施例一为:一种交通状态检测方法,可应用于交通平台、地图导航系统以及网约车平台等场景,实现出行时间的预估。
42.如图4所示,包括如下步骤:s401:获取路网数据以及浮动车的轨迹点数据,所述轨迹点数据包括轨迹点的经纬度和时间戳;进一步地,对所述路网数据和轨迹点数据进行数据清洗。
43.在实际应用中,可通过数据开放平台或者是其他渠道获得足够多的某个城市或地区的出租车gps轨迹点数据以及该地区的路网数据,利用python平台来进行数据清洗。
44.s402:根据所述轨迹点数据,分别计算各条轨迹中相邻两个轨迹点的平均速度,并根据所述平均速度,对各条轨迹中相邻两个轨迹点的中点进行聚类,得到第一聚类结果。
45.具体地,本步骤包括如下步骤:s4021:根据同一条轨迹中相邻两个轨迹点的经纬度,计算所述相邻两个轨迹点对应的中点的经纬度。
46.例如,假设p1、p2为同一条轨迹中相邻的两个轨迹点,p1的经纬度为(lngp1,latp1),p2的经纬度为(lngp2,latp2),则p1和p2的中点pmid的经纬度((lngp1 lngp2)/2,(latp1 latp2))/2)。
47.s4022:根据所述相邻两个轨迹点的经纬度和时间戳,计算所述相邻两个轨迹点对应的平均速度,并将所述平均速度作为所述相邻两个轨迹点对应的中点的瞬时速度。
48.具体地,根据所述相邻两个轨迹点的经纬度,计算所述相邻两个轨迹点之间的曼哈顿距离;根据所述相邻两个轨迹点的时间戳,计算所述相邻两个轨迹点的时间差;根据所述相邻两个轨迹点的之间的曼哈顿距离和时间差,计算所述相邻两个轨迹点对应的平均速度。
49.例如,假设p1的时间戳为t1,p2的时间戳为t2,t2晚于t1,则p1和p2的中点pmid的瞬时速度vmid=distance(p1,p2)/(t2

t1),其中,distance(p1,p2)表示p1和p2之间的距离,本实施例中,由于在聚类过程中使用的速度这一特征值只需要一个相对值,能够反映大小关系即可,因此,为了计算简便,采用曼哈顿距离,即distance(p1,p2)=|lngp1

lngp2| |latp1

latp2|。
50.s4023:根据各轨迹点对应的中点的经纬度和瞬时速度,对各轨迹点对应的中点进行聚类,得到k1个第一聚类簇,其中,所述k1通过手肘法确定。
51.本实施例中,聚类算法采用k

means算法,在使用k

means聚类之前,使用手肘法,来确定最佳k1值。
52.具体地,预设k1的取值范围,本实施例中取[1,9]中的整数。对于取值范围内的所有k1的取值,分别应用k

means聚类算法进行聚类,并计算误差平方和(sse)。随着k1的取值增大,sse逐渐减小。初期,sse下降的幅度较大,而到了某个特定值时,sse的下降速度会突然放缓。如果以k1为x轴,sse为y轴作折线图,会出现一个类似于手肘形状的折线,则认为这个肘部的转折点就是k的合适取值。这就是“手肘法”。
[0053]
然而通过作图的方式再人工确定k1值的效率较低,因此,本实施例基于手肘法提出了一个k1值确定方法。
[0054]
首先,计算k1=1时与k1=2时的sse之差,即δsse1,2=sse1

sse2。
[0055]
然后,从k1=2开始,依次计算之后的sse减量,即δssex,x 1=ssex

ssex 1,x=2,
3,

,9。当δssex,x 1<δsse1,2/n时,则认为sse的下降速度放缓,x为肘部,同时停止迭代,其中,n为超参数,需要根据实际结果进行调整,本实施例中,n=20。
[0056]
最后,返回k1=x。
[0057]
明确了k1的取值后,对各轨迹点对应的中点进行聚类。需要注意的是,虽然输入的特征是三维的(即经度、纬度、瞬时速度),但是结果应是一系列二维点集,所以速度这一特征在计算两点的距离时所占的比重不应过大,从而保证空间上的连续性。
[0058]
s403:根据所述第一聚类结果和路网数据,对道路进行划分,得到第一细分路段。
[0059]
具体地,分别计算各个第一聚类簇的凸包,然后根据所述凸包和路网数据,对道路进行划分,得到第一细分路段。即将凸包与道路的点集数据取交集,从而得到各第一细分路段。
[0060]
s404:分别根据各第一细分路段上各条轨迹中相邻两个中点的速度差和时间差,计算各第一细分路段上各条轨迹中相邻两个中点的加速度,并根据所述加速度,分别对各第一细分路段上各条轨迹中的各所述中点进行聚类,得到第二聚类结果。
[0061]
具体地,本步骤包括如下步骤:s4041:根据同一条轨迹中相邻两个轨迹点的时间戳,计算所述相邻两个轨迹点对应的中点的时间戳。
[0062]
本实施例中,中点的时间戳即其相邻两个轨迹点的时间戳的平均值。例如,假设p1、p2为同一条轨迹中相邻的两个轨迹点,p1的时间戳为t1,p2的时间戳为t2,则p1和p2的中点pmid的时间戳tmid=(t1 t2)/2。
[0063]
s4042:根据一第一细分路段上同一条轨迹中相邻两个中点的瞬时速度和时间戳,计算所述相邻两个中点的速度差和时间差,并根据所述速度差和时间差,计算所述相邻两个中点的加速度。
[0064]
例如,假设pmid1、pmid2为同一条轨迹中相邻的两个中点,pmid1的瞬时速度和时间戳分别为vmid1和tmid1,pmid2的瞬时速度和时间戳分别为vmid2和tmid2,则这两个中点的加速度a=(vmid2

vmid1)/(tmid2

tmid1)。
[0065]
进一步地,本实施例中,将相邻两个中点的加速度作为其中一个中点对应的加速度,例如作为时间戳较小的中点的加速度。
[0066]
在其他实施例中,将相邻两个中点的加速度作为同一条轨迹中所述相邻两个中点中的轨迹点的加速度,则后续步骤s4043即根据轨迹点的加速度和经纬度,分别对各第一细分路段上的各轨迹点进行聚类。
[0067]
s4043:根据各所述中点的经纬度和加速度,对所述一第一细分路段上各条轨迹中的各所述中点进行聚类,得到k2个第二聚类簇,所述k2通过手肘法确定;在步骤s4021中已求得各中点的经纬度,再结合步骤s4042中求得的各中点的加速度,对位于同一第一细分路段上的各中点进行聚类,得到所述同一第一细分路段对应的k2个第二聚类簇。
[0068]
本步骤中,聚类算法也采用k

means算法,k2值的确定方法可参照步骤s4023。
[0069]
s405:根据所述第二聚类结果,分别对各第一细分路段进行划分,得到第二细分路段。
[0070]
具体地,分别计算各第二聚类簇的凸包,并根据所述凸包,对所述一第一细分路段
进行划分,得到所述一第一细分路段对应的第二细分路段。即将各第二聚类簇的凸包与第一细分路段的点集数据取交集,从而得到各第二细分路段。道路细分结果如图5所示。
[0071]
基于加速度对路段进行二次划分,可提取得到司机驾驶行为,进而根据路况进行分类。例如,假设一第一细分路段最后得到3个第二聚类簇,每个第二聚类簇对应的加速度范围分别为0

2、2

5以及5

10。其中,加速度范围在0

2表示车辆正常行驶,对应的路段为顺利通行路段;加速度范围在2

5表示车辆起步或停止阶段,对应位路口区域;加速度范围在5

10表示有较为激烈的速度变化,对应路况较差的路段,如可能为发生交通事故区域,或出现急转弯等情况。
[0072]
s406:分别根据各第二细分路段上的轨迹点数据,计算各第二细分路段的自由流速度和不同预设时段的实际速度,并分别根据各第二细分路段的自由流速度和不同预设时段的实际速度,计算各第二细分路段对应不同预设时段的拥堵系数(tti)。
[0073]
具体地,本步骤包括如下步骤:s4061:分别根据位于各第二细分路段上且处于预设第一时段内的轨迹点数据,计算各第二细分路段的自由流速度。
[0074]
其中,第一时段为每日最不拥堵的时段,本实施例中,所述第一时段选取凌晨3:00

5:00这一时段。
[0075]
具体地,首先,根据轨迹点的经纬度和时间戳以及一第二细分路段的路段数据(即点集数据),匹配得到位于所述一第二细分路段上且处于第一时段内的轨迹点数据。在实际匹配中,若一轨迹点与一第二细分路段的点集数据中的任一点的最短距离小于预设的阈值,则认为该轨迹点位于该第二细分路段上。
[0076]
然后,根据所述一第二细分路段上的同一条轨迹中相邻两个轨迹点的经纬度和时间戳,计算所述相邻两个轨迹点之间的距离和时间差,并根据所述距离和时间差,计算所述相邻两个轨迹点对应的轨迹速度。
[0077]
最后,计算所述一第二细分路段上处于第一时段内的各条轨迹中的各轨迹速度的平均值,得到所述一第二细分路段的自由流速度。即将根据该第二细分路段上处于第一时段内的轨迹点所计算得到的所有轨迹速度进行平均,即可得到该第二细分路段的自由流速度。
[0078]
s4062:将一天划分为多个预设时长的第二时段。
[0079]
本实施例中,将一天24个小时划分为48个第二时段,即每个第二时段的时长为30min。
[0080]
s4063:分别根据位于各第二细分路段上且处于同一第二时段内的轨迹点数据,计算各第二细分路段对应所述同一第二时段的实际速度。
[0081]
具体地,首先,根据轨迹点的经纬度和时间戳以及一第二细分路段的路段数据(即点集数据),匹配得到位于所述一第二细分路段上且处于一第二时段内的轨迹点数据。同理,在实际匹配中,若一轨迹点与一第二细分路段的点集数据中的任一点的最短距离小于预设的阈值,则认为该轨迹点位于该第二细分路段上。
[0082]
然后,根据所述一第二细分路段上的同一条轨迹中相邻两个轨迹点的经纬度和时间戳,计算所述相邻两个轨迹点之间的距离和时间差,并根据所述距离和时间差,计算所述相邻两个轨迹点对应的轨迹速度。即根据相邻两个轨迹点的经纬度,计算其之间的距离;根
据相邻两个轨迹点的时间戳,计算其之间的时间差;将距离除以时间差,即可得到轨迹速度。
[0083]
最后,计算所述一第二细分路段上处于所述一第二时段内的各条轨迹中的各轨迹速度的平均值,得到所述一第二细分路段对应所述一第二时段的实际速度。即将根据该第二细分路段上处于同一第二时段内的轨迹点所计算得到的所有轨迹速度进行平均,即可得到该第二细分路段对应该第二时段的实际速度。
[0084]
s4064:分别根据各第二细分路段的自由流速度及对应所述同一第二时段的实际速度,计算各第二细分路段的对应所述同一第二时段的拥堵系数(tti)。
[0085]
具体地,tti=自由流速度/实际速度,即将一第二细分路段的自由流速度处于该第二细分路段上对应一第二时段的实际速度,得到该第二细分路段上对应该第二时段的拥堵系数tti。
[0086]
通过上述步骤,实现了路段划分并得到了各细分路段的拥堵系数,实现了交通状态检测。进一步地,为了实现出行时间的预估,本方法还包括如下步骤:s407:根据所述路网数据,建立有向有权图,所述有向有权图中的节点为道路的交点,边为道路,边的权值为道路的长度。
[0087]
具体地,将路网数据转化为shapely格式,并使用python的networkx库中的read_shp方法将路网数据建立为有向有权图模型,其中,节点为道路的交点,边为道路,边权为道路长度。
[0088]
s408:通过最短路径算法,计算所述有向有权图中两两节点之间的最短路径及距离,并保存至数据库中。
[0089]
本实施例中,通过dijkstra算法计算道路交点之间的最短路径及距离,然后使用postgresql建立数据库和表,将计算结果保存到数据库中,以便后续查询。
[0090]
步骤s407和s408可在步骤s401之后执行。
[0091]
s409:根据接收到的起点数据和终点数据,从所述数据库中查询得到对应的最短路径及距离,作为所述起点数据和终点数据对应的行驶路径和行驶距离。
[0092]
在实际应用中,用户可通过点击地图选取起点和终点,或输入起点和终点,然后点击查询按钮开始进行查询。点击查询按钮后,网页前端运行javascript脚本,使用jquery将起点坐标和终点坐标发送给后端。后端接收到数据后,在数据库中进行匹配与计算。
[0093]
进一步地,当起点或终点不为道路交点时,则匹配与其最近的道路交点,作为起点和终点,再在数据库中查询最短路径及距离。
[0094]
s410:获取所述行驶路径的各第二细分路段的自由流速度及对应当前时段的拥堵系数,并分别根据所述各第二细分路段的自由流速度及对应当前时段的拥堵系数,计算所述各第二细分路段当前时段的实际速度。
[0095]
具体地,首先,将用户查询时间或后端接收到数据的时间所处的时段作为当前时段。然后,获取行驶路径上的各第二细分路段的自由流速度及对应当前时段的拥堵系数tti。最后,将一第二细分路段的自由流速度除以该第二细分路段对应当前时段的拥堵系数tti,即可得到该第二细分路段当前时段的实际速度。
[0096]
s411:分别根据所述行驶路径的各第二细分路段当前时段的实际速度和路段长度,计算各第二细分路段的通行时间,并根据各第二细分路段的通行时间,累加得到预估出
行时间。
[0097]
具体地,将一第二细分路段的路段长度除以该第二细分路段当前时段的实际速度,得到该第二细分路段的通行时间。然后将行驶路径上所有的第二细分路段的通行时间进行累加,即可得到预估出行时间。其中,第二细分路段的路段长度可根据其点集数据计算得到。
[0098]
在实际应用中,获得行驶路径以及预估出行时间后,通过flask框架返回到前端;前端通过leaflet将路径和预估出行时间展示在地图图层上,如图6所示。
[0099]
本实施例基于gps数据,根据gps轨迹点数据求出速度,并根据速度对道路进行第一次划分,再根据速度求出加速度,并根据加速度对道路进行第二次划分,相对于传统的基于地理信息的道路划分方法,能够更好地对道路进行精确划分,从而提高交通大数据的处理效率及处理精度。通过计算细分路段各时段的拥堵系数,可提高道路交通状况展示的精确性,也可以提高出行时间的预测准确性。
[0100]
实施例二请参照图2,本发明的实施例二为:一种交通状态检测装置,可执行本发明实施例一所提供的交通状态检测方法,具备执行方法相应的功能模块和有益效果。该装置可以由软件/或硬件实现,具体包括:第一获取模块201,用于获取路网数据以及浮动车的轨迹点数据,所述轨迹点数据包括轨迹点的经纬度和时间戳;第一聚类模块202,用于根据所述轨迹点数据,分别计算各条轨迹中相邻两个轨迹点的平均速度,并根据所述平均速度,对各条轨迹中相邻两个轨迹点的中点进行聚类,得到第一聚类结果;第一划分模块203,用于根据所述第一聚类结果和路网数据,对道路进行划分,得到第一细分路段;第二聚类模块204,用于分别根据各第一细分路段上各条轨迹中相邻两个中点的速度差和时间差,计算所述相邻两个中点的加速度,并根据所述加速度,分别对各第一细分路段上各条轨迹中的各所述中点进行聚类,得到第二聚类结果;第二划分模块205,用于根据所述第二聚类结果,分别对各第一细分路段进行划分,得到第二细分路段;第一计算模块206,用于分别根据各第二细分路段上的轨迹点数据,计算各第二细分路段的自由流速度和不同预设时段的实际速度,并分别根据各第二细分路段的自由流速度和不同预设时段的实际速度,计算各第二细分路段对应不同预设时段的拥堵系数。
[0101]
在一个可选的实施方式中,所述第一聚类模块包括:第一计算单元,用于根据同一条轨迹中相邻两个轨迹点的经纬度,计算所述相邻两个轨迹点对应的中点的经纬度;第二计算单元,用于根据所述相邻两个轨迹点的经纬度和时间戳,计算所述相邻两个轨迹点对应的平均速度,并将所述平均速度作为所述相邻两个轨迹点对应的中点的瞬时速度;第一聚类单元,用于根据各轨迹点对应的中点的经纬度和瞬时速度,对各轨迹点对应的中点进行聚类,得到k1个第一聚类簇,所述k1通过手肘法确定;
所述第一划分模块具体用于分别计算各第一聚类簇的凸包,并根据所述凸包和路网数据,对道路进行划分,得到第一细分路段。
[0102]
在一个可选的实施方式中,所述第二计算单元包括:第一计算子单元,用于根据所述相邻两个轨迹点的经纬度,计算所述相邻两个轨迹点之间的曼哈顿距离;第二计算子单元,用于根据所述相邻两个轨迹点的时间戳,计算所述相邻两个轨迹点的时间差;第三计算子单元,用于根据所述相邻两个轨迹点的之间的曼哈顿距离和时间差,计算所述相邻两个轨迹点对应的平均速度。
[0103]
在一个可选的实施方式中,所述第二聚类模块包括:第三计算单元,用于根据同一条轨迹中相邻两个轨迹点的时间戳,计算所述相邻两个轨迹点对应的中点的时间戳;第四计算单元,用于根据一第一细分路段上同一条轨迹中相邻两个中点的瞬时速度和时间戳,计算所述相邻两个中点的速度差和时间差,并根据所述速度差和时间差,计算所述相邻两个中点的加速度;第二聚类单元,用于根据各所述中点的经纬度和加速度,对所述一第一细分路段上各条轨迹中的各所述中点进行聚类,得到k2个第二聚类簇,所述k2通过手肘法确定;所述第二划分模块具体用于分别计算各第二聚类簇的凸包,并根据所述凸包,对所述一第一细分路段进行划分,得到所述一第一细分路段对应的第二细分路段。
[0104]
在一个可选的实施方式中,所述第一计算模块包括:第五计算单元,用于分别根据位于各第二细分路段上且处于预设第一时段内的轨迹点数据,计算各第二细分路段的自由流速度;划分单元,用于将一天划分为多个预设时长的第二时段;第六计算单元,用于分别根据位于各第二细分路段上且处于同一第二时段内的轨迹点数据,计算各第二细分路段对应所述同一第二时段的实际速度;第七计算单元,用于分别根据各第二细分路段的自由流速度及对应所述同一第二时段的实际速度,计算各第二细分路段的对应所述同一第二时段的拥堵系数。
[0105]
在一个可选的实施方式中,所述第六计算单元包括:匹配子单元,用于根据轨迹点的经纬度和时间戳以及各第二细分路段的路段数据,匹配得到位于一第二细分路段上且处于一第二时段内的轨迹点数据;第四计算子单元,用于根据所述一第二细分路段上的同一条轨迹中相邻两个轨迹点的经纬度和时间戳,计算所述相邻两个轨迹点之间的距离和时间差,并根据所述距离和时间差,计算所述相邻两个轨迹点对应的轨迹速度;第五计算子单元,用于计算所述一第二细分路段上处于所述一第二时段内的各条轨迹中的各轨迹速度的平均值,得到所述一第二细分路段对应所述一第二时段的实际速度。
[0106]
在一个可选的实施方式中,所述交通状态检测装置还包括:建立模块,用于根据所述路网数据,建立有向有权图,所述有向有权图中的节点为道路的交点,边为道路,边的权值为道路的长度;
第二计算模块,用于通过最短路径算法,计算所述有向有权图中两两节点之间的最短路径及距离,并保存至数据库中;查询模块,用于根据接收到的起点数据和终点数据,从所述数据库中查询得到对应的最短路径及距离,作为所述起点数据和终点数据对应的行驶路径和行驶距离;第三计算模块,用于获取所述行驶路径的各第二细分路段的自由流速度及对应当前时段的拥堵系数,并分别根据所述各第二细分路段的自由流速度及对应当前时段的拥堵系数,计算所述各第二细分路段当前时段的实际速度;第四计算模块,用于分别根据所述行驶路径的各第二细分路段当前时段的实际速度和路段长度,计算各第二细分路段的通行时间,并根据各第二细分路段的通行时间,累加得到预估出行时间。
[0107]
实施例三请参照图3,本发明的实施例三为:一种电子设备,所述电子设备包括:一个或多个处理器301;存储装置302,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器301执行,使得所述一个或多个处理器301实现如上所述的交通状态检测方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0108]
实施例四本发明的实施例四提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的交通状态检测方法实施例中的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0109]
综上所述,本发明提供的一种交通状态检测方法、装置、设备和存储介质,根据gps轨迹点数据求出速度,并根据速度对道路进行划分,可对不同道路的交通状况进行划分,可以很好地适应不同道路的不同特点;还根据速度求出加速度,并根据加速度对道路进行二次划分,可以更好地体现出不同路况对司机驾驶行为的影响,通过筛选出复杂路况对应的路段,有助于预防复杂路况路段出现的交通事故,从而能够更好地提高交通安全。基于每日最不拥堵时段的轨迹点数据来计算自由流速度,并基于每日各时段的轨迹点数据来计算各时段的实际速度,从而可计算出全天各时段的拥堵系数,可提高后续计算预估出行时间的准确度。通过预先计算任意两个道路交点的最短路径及距离并保存至数据库中,便于后续可快速查询起点和终点的行驶路径和行驶距离;通过行驶路径上的各第二细分路段对应当前时段的拥堵系数来计算预估出行时间,可提高预测准确性。
[0110]
本发明相对于传统的基于地理信息的道路划分方法,能够更好地对道路进行精确划分,从而提高交通大数据的处理效率及处理精度。
[0111]
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read

only memory,rom)、随机存取存储器(randomaccess memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计
算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0112]
值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0113]
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献