一种基于卡口大数据的高架分段区间实时速度自适应计算方法与流程

文档序号:12368038阅读:298来源:国知局
一种基于卡口大数据的高架分段区间实时速度自适应计算方法与流程
本发明涉及智能交通领域,尤其涉及一种基于卡口大数据的高架分段区间实时速度自适应计算方法。
背景技术
:区间速度计算是所有交通算法的基础,许多交通指标都以区间速度作为基础,例如拥堵指数、堵点检测、拥堵时长、拥堵里程等等。高架实时速度计算一般以微波数据或者浮动车数据作为数据来源。在现代城市中,卡口系统是交通信息非常重要的来源。重要的路口、路段一般都会布设卡口。卡口指的是,采用先进的光电、计算机、图像处理、模式识别、远程数据访问等技术,对监控路段的机动车道、非机动车道进行全天候实时监控并记录相关图像数据,并自动获取车辆的通过时间、地点、行驶方向、号牌号码、号牌颜色、车身颜色等数据。目前卡口数据一般用于支持面向交通执法和交通安全的应用,较少用于交通拥堵感知与治理的应用。已公开的专利及审查中的专利中,利用卡口数据计算道路区间速度,基本原理是利用车辆通过相邻卡口间的时间差与卡口间的距离直接计算。这些方法包括:方法一(专利号:201510225291.9)《基于大规模卡口过车数据的道路实时通行速度计算方法》:设定过车量阈值,读取历史过车数据,顺序经过两卡口的车辆数大于该阈值,则认为该两卡口是一对相邻卡口对。然后根据最短路径算法得到计算出两相邻卡口之间沿地图的最短路径及该路径的长度。最后根据实时过车数据,得到相邻卡口对速度列表,剔除异常速度,计算平均速度作为卡口对速度,加权平均得到道路实时通行速度。方法二(专利号:201510834256.7)《面向道路实时速度计算的卡口与浮动车数据融合方法》:通过浮动车数据计算的实时道路速度和卡口过车数据计算的实时的卡口对之间的速度进行加权融合。其中卡口数据计算方式为:读取当前时间前5分钟的卡口过车数据,并根据过车时间GCSJ计算速度作为当前时间的卡口对实时速度。这些方法的前提是车辆直接经过两个卡口能够覆盖整个路网,这些方法在地面道路上运用较好,但是在高架路网上,车辆顺序经过的往往不是相邻的卡口(上下匝道卡口中间可能间隔若干个卡口),相邻的卡口往往没有直接的过车记录(例如两个相邻的上匝道),车辆直接经过的卡口对无法覆盖整个路网,导致很多路段区间速度无法计算。技术实现要素:本发明为克服上述的不足之处,目的在于提供一种基于卡口大数据的高架分段区间实时速度自适应计算方法,本方法通过对高架、卡口进行编号、组合,确定计算公式,能够计算高架上任意一对卡口对之间的实时区间速度,克服了现有方法无法计算高架上任意相邻卡口对区间速度问题。本发明是通过以下技术方案达到上述目的:一种基于卡口大数据的高架分段区间实时速度自适应计算方法,包括如下步骤:(1)对高架道路和卡口进行编号,其中高架道路编号记作Road_ID;每一条高架道路上的卡口分别编号,记作KKXH;(2)统计每个卡口在时间槽T内的过车数量LL,剔除过车数量LL为0的卡口;(3)将有过车记录的卡口按照高架道路编号Road_ID进行分组,每一个组内相邻KKXH顺序两两组合,形成有过车记录的最小相邻卡口对(Road_ID,KKXHi,KKXHj),完成对整个高架路网的自适应分段,卡口KKXHi与卡口KKXHj之间的路段为划分的区间路段,其中KKXHi表示对应高架道路编号Road_ID的第i个卡口编号,KKXHj表示对应高架道路编号Road_ID的第j个卡口编号;(4)根据步骤(3)中划分的区间路段两端的卡口类型确定每个区间路段的平均行程时间的计算方式;(5)根据实时卡口数据,在动态数组中记录每一辆车最近两条通行记录,并筛选位于时间槽T内的过车记录;计算两次过车记录的时间差,删除异常记录;按照卡口对将记录分组,统计每组平均行程时间和过车记录数并存于哈希表2;(6)根据步骤(4)所述每个区间路段的平均行程时间的计算方式和步骤(5)得到的哈希表2计算高架路网中所有路段的平均行程时间;并根据每个区间路段长度计算高架路网中所有路段的平均车速。作为优选,所述对高架道路和卡口进行编号的方法为按照高架路网中不同的高架道路、不同的高架道路行车方向对高架道路进行编号,为每一条高架道路的不同行车方向设置1个Road_ID,编号从1开始;按照Road_ID对该高架上所有的卡口进行分组,每一组内的卡口按照行车方向于高架开始位置开始从1开始依次顺序编号,记作KKXH。作为优选,所述的卡口分为三种类型,分别为上匝道卡口、下匝道卡口、桥面卡口;根据每个最小相邻卡口对之间路段的两端卡口类型不同,则卡口对的组合方式有9种。作为优选,所述确定每个区间路段的平均行程时间的计算方式包括如下:i)车辆若可以顺序通过区间路段两端的卡口KKXHi,KKXHj,则统计所有直接通过卡口KKXHi,KKXHj的车辆的平均行程时间T(R,i,j);ii)车辆若无法顺序通过区间路段两端的卡口KKXHi,KKXHj,则利用车辆通过包含区间路段(R,i,j)的卡口对之间路段的平均行程时间,与不包含区间路段(R,i,j)的卡口对之间路段的平均行程时间之差,计算区间路段(R,i,j)的平均行程时间T(R,i,j)。作为优选,所述车辆若无法顺序通过区间路段两端的卡口KKXHi,KKXHj的计算方法如下:1)若存在一个卡口,通过该卡口的车辆可以分别直接到达区间路段两端的两个卡口,或者通过区间路段两端卡口的车辆可以分别直接到达该卡口,则计算方式包括如下两种情形:1.1)若存在一个卡口KKXHk,通过该卡口的车辆可以分别直接到达区间路段两端的两个卡口KKXHi和KKXHj,分别计算该卡口到卡口KKXHi和卡口KKXHj的平均行程时间,并计算两者平均行程时间差,取所有结果加权平均值,公式如下:T(R,i,j)=Σk((T(R,i,k)-T(R,j,k))*min(LL(R,i,k),LL(R,j,k)))/Σkmin(LL(R,i,k),LL(R,j,k))]]>KKXHk为所有满足KKXHk<KKXHi且KKXHk类型为桥面卡口或者上匝道卡口;1.2)若存在一个卡口KKXHk,通过卡口KKXHi和卡口KKXHj的车辆可以分别直接到达卡口KKXHk,分别计算车辆从KKXHi和KKXHj到KKXHk的平均行程时间,并计算两者平均行程时间差,取所有结果加权平均值,公式如下:T(R,i,j)=Σk((T(R,k,j)-T(R,k,i))*min(LL(R,k,j),LL(R,k,i)))/Σkmin(LL(R,k,j),LL(R,k,i))]]>KKXHk为所有满足KKXHk>KKXHj且KKXHk类型为桥面卡口或者下匝道卡口;2)若不存在一个卡口,从该卡口出发的车辆可以同时直接到达KKXHi和KKXHj,也不存在一个卡口,从KKXHi和KKXHj出发的车辆可以同时到达该卡口,可以通过寻找卡口KKXHk和KKXHl,其中KKXHk能直接到达KKXHi,KKXHj能直接到达KKXHl,将KKXHi和KKXHj间的平均行程时间转换成可直接计算的三组卡口对之间的平均行程时间差,取所有结果加权平均值,公式如下:T(R,i,j)=Σk((T(R,k,l)-T(R,k,i)-T(R,j,l))*min(LL(R,k,l),LL(R,k,i),LL(R,j,l)))/Σkmin(LL(R,k,l),LL(R,k,i),LL(R,j,l))]]>其中KKXHk满足KKXHk<KKXHi且KKXHk类型为桥面卡口或者上匝道卡口;KKXHl满足KKXHl>KKXHj且KKXHk类型为桥面卡口或者下匝道卡口;LL(R,i,j)为时间槽内经过卡口KKXHi和卡口KKXHj的过车数量,即区间路段(R,i,j)的权重。作为优选,所述卡口对的组合方式对应的计算方式如下:I)卡口对组合为(上匝道卡口、上匝道卡口),(桥面卡口、上匝道卡口)时,则采用1.1)所述方法计算每个最小相邻卡口对之间路段的平均行驶时间;II)卡口对组合为(上匝道卡口、桥面卡口),(上匝道卡口、下匝道卡口),(桥面卡口、桥面卡口),(桥面卡口、下匝道卡口)时,则采用i)所述方法计算每个最小相邻卡口对之间路段的平均行驶时间;III)卡口对组合为(下匝道卡口、桥面卡口),(下匝道卡口、下匝道卡口)时,则采用1.2)所述方法计算每个最小相邻卡口对之间路段的平均行驶时间;IV)卡口对组合为(下匝道卡口、上匝道卡口)时,则采用2)所述方法计算每个最小相邻卡口对之间路段的平均行驶时间。作为优选,所述步骤(5)的步骤方法如下:(5.1)建立一个动态数组,其数据结构为(HPHM,KKID1,JGSJ1,KKID2,JGSJ2);HPHM表示车辆号牌号码,KKID2,JGSJ2表示车辆最近经过的卡口点位和经过时间,KKID1,JGSJ1表示车辆上上次经过的卡口点位和经过时间,动态数组中存放所有车辆最新的两条过车记录;(5.2)建立一张哈希表1,其中Key是HPHM,不同的HPHM映射到不同的哈希值,value是自增序列ID;每读取一条实时过车记录,查看哈希表1中是否存在该HPHM,如果不存在,将(HPHM,ID)插入哈希表1,同时在动态数组末尾插入(HPHM,1900-01-0100:00:00,1900-01-0100:00:00,KKID2,JGSJ2),其中HPHM,KKID2,JGSJ2为读取的过车记录数据,自增序列ID自增1;如果存在,则执行步骤(5.3);(5.3)根据HPHM获取哈希表1中的ID值,根据ID值找到动态数组中第ID条记录,令KKID1=KKID2,JGSJ1=JGSJ2,即将原来车辆经过的卡口点位KKID2和经过时间JGSJ2更新到KKID1和JGSJ1位置,同时KKID2,JGSJ2更新为刚读取的车辆经过的卡口点位和经过时间;(5.4)获取时间槽T内所有过车记录,并去除重复的车辆号牌号码,根据车辆号牌号码在哈希表1中的ID值,找到对应动态数组中该车的过车记录,计算这些记录JGSJ1和JGSJ2的时间差SJC,SJC=JGSJ2-JGSJ1,剔除时间差异常的记录,即当SJC>T_max时,剔除对应车辆的过车记录,其中T_max为时间差剔除阈值;按照键值对(KKID1,KKID2)分组,统计每组中SJC的平均值,记为SJC_AVG,统计每组过车记录数,记作COU,;(5.5)建立一张哈希表2,将(5.4)统计结果放置到哈希表2中,其中Key为(KKID1,KKID2),Value为(SJC_AVG,COU)。作为优选,所述的时间槽T为人工预设的,优选设为5-10分钟。作为优选,所述T_max为为人工预设的,优选设为2个小时。作为优选,所述步骤(6)计算高架路网中所有区间路段的平均行程时间与平均车速的方法如下:A)将哈希表2的SJC_AVG作为两卡口KKID1,KKID2间的平均行程时间,COU作为经过两卡口KKID1,KKID2的车辆数,根据步骤(4)得到的每个路段行驶时间的计算方式计算平均行程时间;B)结合每个路段(R,i,j)的长度,计算每个路段(R,i,j)的平均车速,(R,i,j)的平均车速=路段(R,i,j)的长度/路段(R,i,j)的平均行程时间。本发明的有益效果在于:1)本发明数据来源为卡口系统,无需部署额外设备,具有较强的适用性;2)本发明具有计算速度快的特点,通过维护两张哈希表和一个动态数组,能够对数据进行实时计算;3)本发明路段划分细,以相邻的有过车记录的卡口作为区间路段划分依据,便于后续各项基于区间速度指标的计算;4)本发明能够自适应计算。针对于部分卡口数据缺失,能够自动适应,跳过数据缺失的卡口。附图说明图1是本发明的流程示意图;图2是本发明实施例的S3计算过程示意图。具体实施方式下面结合具体实施例对本发明进行进一步描述,但本发明的保护范围并不仅限于此:实施例:本实施例以杭州快速路网为例,杭州目前共有8条快速路,“中河——上塘高架”为其中一条,双向4车道。其单向道路长度约27公里,累计共有48个卡口,其中10个为桥面卡口,19个为上匝道,19个为下匝道,每个方向上均有24个卡口。本实施例中,时间槽T为“2016-01-0521:00:00--2016-01-0521:05:00”。所用到的数据为卡口过车记录,卡口编号(一个卡口编号唯一对应一个路口的卡口),卡口坐标(GPS坐标),卡口间的实际距离,卡口类型(上匝道卡口、下匝道卡口、桥面中间卡口)。如图1所示,一种基于卡口大数据的高架分段区间实时速度自适应计算方法,具体步骤如下:S1.高架道路和卡口的编号,统计每个卡口时间槽T内的车流量;该步骤的目的是明确卡口相对位置以及卡口数据是否缺失,方便下一步区间划分。将“中河——上塘高架北向南”Road_ID编号设为1,将“中河——上塘高架南向北”Road_ID编号设为2,Road_ID=1上所有卡口,按照车辆前进方向,依次编号为1-24,将Road_ID=2上所有卡口,按照车辆前进方向,依次编号为1-24,统计时间槽T内每个卡口的过车数量,记作LL,如表1所示。表中KKID是卡口编号,KKLB是卡口类别。表1S2.按照表1,将路网划分成路段;该步骤的目的是将高架路按照有过车记录卡口对进行区间划分,最小相邻的有过车记录的卡口对确定一个路段;将S1表格中所有LL=0的卡口去掉,剩余24个卡口。其中Road_ID=1剩余12个卡口,其KKXH分别为1,4,6,7,11,12,14,16,17,19,20,22。Road_ID=2剩余12个卡口,其KKXH分别为1,5,6,7,9,11,12,14,15,19,23,24。将每个Road_ID组内的卡口和下一个相邻的卡口组成键值对,Road_ID=1可以划分成11个区间路段,Road_ID=2可以划分成11个区间路段,总计可以划分成22个区间路段,如表2所示:序号Road_IDKKXH1KKLB1KKXH2KKLB2111上匝道卡口4上匝道卡口214上匝道卡口6下匝道卡口316下匝道卡口7桥面卡口417桥面卡口11下匝道卡口5111下匝道卡口12桥面卡口6112桥面卡口14下匝道卡口7114下匝道卡口16上匝道卡口8116上匝道卡口17上匝道卡口9117上匝道卡口19下匝道卡口10119下匝道卡口20桥面卡口11120桥面卡口22下匝道卡口1221桥面卡口5桥面卡口1325桥面卡口6上匝道卡口1426上匝道卡口7下匝道卡口1527下匝道卡口9下匝道卡口1629下匝道卡口11上匝道卡口17211上匝道卡口12下匝道卡口18212下匝道卡口14上匝道卡口19214上匝道卡口15下匝道卡口20215下匝道卡口19上匝道卡口21219上匝道卡口23下匝道卡口22223下匝道卡口24下匝道卡口表2S3.根据S2中对高架的划分,确定每一个区间路段计算方法(将不可直接到达的卡口对之间的行程时间转化为多组可以直接到达的卡口对行程时间的差值)。高架卡口总共可以分成三种基本类型,上匝道卡口、下匝道卡口、桥面卡口。根据每个区间路段两端卡口类型的不同,卡口对的组合方式一共有9种,每一种组合基本计算方法如表3所示。表3其中,上表中的T(R,i,j)表示路段(Road_ID,KKXHi,KKXHj)的平均行程时间。LL(R,i,j)表示路段(Road_ID,KKXHi,KKXHj)的权重,为时间槽内从卡口KKXHi到卡口KKXHj的车辆数。如图2所示,假设路段Road_ID为R,Ki表示该分组中第i个卡口,T(R,Ki,Kj)表示卡口Ki和Kj的行程时间。图例中,K1和K2都是上匝道,K3是下匝道,K4是桥面卡口,那么路段(R,K1,K2)行程时间T(R,K1,K2)可以用T(R,K1,K4)-T(R,K2,K4)来表示,也可以用T(R,K1,K3)-T(R,K2,K3)来表示。根据表1的计算方法,我们取所有计算结果的加权平均值作为该路段速度平均值。其中T(1,K1,K4)-T(1,K2,K4)计算的平均速度,权重取LL(1,K1,K4)和LL(1,K2,K4)的较小值,T(1,K1,K3)-T(1,K2,K3)计算的平均速度,权重取LL(1,K1,K3)和LL(1,K2,K3)的较小值,LL(1,Ki,Kj)为时间槽T内Ki到Kj的过车记录数。在本实施例中,对照表3(KKLB1,KKLB2)键值对为(上匝道卡口,下匝道卡口)、(上匝道卡口、桥面卡口)、(桥面卡口、下匝道卡口)、(桥面卡口、桥面卡口),可以直接计算卡口间行程时间。其中路段ID为:2,4,6,9,11,12,14,17,19,21符合直接计算的条件。(KKLB1,KKLB2)键值对为(桥面卡口,上匝道卡口)、(上匝道卡口、上匝道卡口),可以通过寻找KKID1和KKID2能直接到达的卡口,将KKID1和KKID2间的行程时间转换成可直接计算的两组卡口对之间的时间差。其中路段ID为1,8,13符合该条件。(KKLB1,KKLB2)键值对为(下匝道卡口,桥面卡口)、(下匝道卡口、下匝道卡口),可以通过寻找能直接到达KKID1和KKID2的卡口,将KKID1和KKID2间的行程时间将卡口对间的行程时间转换成可直接计算的两组卡口对之间的时间差。其中路段ID为3、5、10、15、22符合该条件。(KKLB1,KKLB2)键值对为(下匝道卡口,上匝道),可以通过寻找能直接到达KKID1的卡口和KKID2能直接到达的卡口,将KKID1和KKID2间的行程时间将卡口对间的行程时间转换成可直接计算的三组卡口对之间的时间差。其中路段ID为7、16、18、20符合该条件。S4.通过实时卡口数据,计算卡口间的平均行程时间和过车记录数。该步骤通过处理实时数据,将所有车辆最近两条过车记录记录在哈希表中,筛选出时间槽T内的过车记录,计算时间差,去掉不合理的记录,按照卡口对将记录分组,计算出每一组平均行程时间和过车记录数量;具体方法如下:1、维护一个动态数组,其中元素是一个数据结构,包含(HPHM,KKID1,JGSJ1,KKID2,JGSJ2),HPHM表示车辆号牌号码,KKID2,JGSJ2表示车辆最近经过的卡口点位和经过时间,KKID1,JGSJ1表示车辆上一个经过的卡口点位和经过时间。2、维护一张哈希表1,其中Key是HPHM(号牌号码),不同的HPHM映射到不同的哈希值,value取值自增序列ID。每读取一条实时过车记录,查看哈希表1中是否存在该HPHM,如果不存在,将(HPHM,ID)插入哈希表1,同时在动态数组末尾插入(HPHM,“1900-01-0100:00:00”,“1900-01-0100:00:00”,KKID2,JGSJ2),其中HPHM,KKID2,JGSJ2为读取的过车记录数据,自增序列ID自增1。如果存在,转到步骤3。3、根据HPHM获取哈希表1中的ID值,根据ID值找到动态数组中第ID条记录,令KKID1=KKID2,JGSJ1=JGSJ2,同时KKID2,JGSJ2更新为刚读取过车记录数据。4、获取时间槽T(一般设为5-10分钟)内所有过车记录,提取车牌,并去除重复车牌。遍历车牌,根据车牌在哈希表1中的ID值,找到对应动态数组中该车牌的过车记录,计算这些记录JGSJ1和JGSJ2的时间差SJC,去掉SJC>T_max(一般设为2个小时)的记录。根据键值对(KKID1,KKID2)分组,统计每组中SJC的平均值,记为SJC_AVG,统计每组过车记录数,记作COU,将统计结果放置到哈希表2中,其中Key为(KKID1,KKID2),Value为(SJC_AVG,COU)。在本实施例中,使用到的实时卡口数据包含的字段有(HPHM,KKID,JGSJ),基本数据格式如下表4所示:序号KKIDHPHMJGSJ1310003000088**浙ACD6****2016-01-0521:00:272310003000114**浙A917****2016-01-0521:00:183310003000126**浙AW59****2016-01-0521:00:564310003000070**浙ABY2****2016-01-0521:00:325310003000126**浙A0AB****2016-01-0521:00:236310003000045**浙A5F6****2016-01-0521:00:537310003000045**辽C607****2016-01-0521:00:378310003000114**浙A292****2016-01-0521:00:259310003000028**浙AT91****2016-01-0521:00:0710310003000019**浙ACD6****2016-01-0521:04:44表4以处理表4这10条数据为例,说明哈希表1和动态数组的维护过程。读取第1条数据,发现HPHM“浙ACD6****”在哈希表1中不存在,此时ID=15000(本实施例是运行一段时间后的状态),因此将(“浙ACD6****”,15000)插入哈希表1中,同时将(“浙ACD6****”,“1900-01-0100:00:00”,“1900-01-0100:00:00”,310003000088**,“2016-01-0521:00:27”)插入到动态数组中,该记录在动态数组正好是位于15000处,第一个元素位于0处,将ID更新为15001。读取第2条数据,发现HPHM“浙A917****”存在于哈希表1中,获取“浙A917****”在哈希表1中对应的ID=9578。根据ID,找到位于哈希表1中9578处元素,也就是(“浙A917****”,“1900-01-0100:00:00”,“1900-01-0100:00:00”,310003000148**,“2016-01-0520:45:52”),将KKID1更新为KKID2,将JGSJ1更新为JGSJ2,同时KKID2,JGSJ2更新为当前过车记录数据,也就是将这条记录更新为(“浙A917****”,310003000148**,“2016-01-0520:45:52”,310003000114**,“2016-01-0521:00:18”);依次处理接收到的数据。获取时间槽T内所有过车记录,并去除重复车牌。以这10条数据为例,总计9个不同的车牌。遍历这9个车牌,根据车牌在哈希表1中的ID值,找到对应动态数组中的记录。在本实施例中,根据这9个车牌,从动态数组中取出的记录如下表5所示:表5计算JGSJ1和JGSJ2的时间差SJC,如下表6所示:序号HPHMKKID1KKID2SJC1浙ACD6****310003000088**310003000019**257S2浙A917****310003000148**310003000114**866S3浙AW59****310003000147**310003000126**414S4浙ABY2****310003000147**310003000070**21140S5浙A0AB****310003000147**310003000126**423S6浙A5F6****310003000126**310003000045**269S7辽C607****310003000144**310003000045**3661102837S8浙A292****310003000148**310003000114**877S9浙AT91****310003000139**310003000028**383S表6本实施例中,T_max设置为7200S(绝大部分情况下,车辆在高架上单次通行时间不超过2小时,因此本实施例中设置为7200S,可根据各个城市不同的情况设置)。其中21140S和3661102837S超过了T_max,去掉这两条记录。将剩余的7条记录,按照键值对(KKID1,KKID2)分组,可以分成5组,统计每一组SJC的平均值,记为SJC_AVG,统计过车记录数,记作COU,可以得到下表7:序号KKID1KKID2SJC_AVGCOU1310003000088**310003000019**257S12310003000148**310003000114**872S23310003000147**310003000126**419S24310003000126**310003000045**269S15310003000139**310003000028**383S1表7将统计结果放置到哈希表2中,其中Key为(KKID1,KKID2),Value为(SJC_AVG,COU)。S5.根据S3的计算方法和S4的哈希表2,计算S2中所有区间路段的平均行程时间和车速。将S2中所有路段的平均行程时间,转化成S4中行程时间的表达式,从而计算出S2中所有路段的平均行程时间和速度。在表1中,累计有4中不同计算方法,实施例中,每一种计算方法的案例如下:1、直接计算。以路段(1,7,11)为例,对应的(KKID1,KKID2)为(310003000097**,310003000070**),卡口类别分别是(桥面卡口,下匝道卡口)。以(310003000097**,310003000070**)为Key,从哈希表2中取出对应的Value。本实施例中从哈希表2中取出的value为(249S,15),已知路段长度为4500M,那么在时间槽T内,路段(1,7,11)平均速度为4500/249*0.036=65.1KM/H。2、利用前进方向桥面卡口或者下匝道卡口,计算两者时间差。以路段(1,1,4)为例,对应的(KKID1,KKID2)为(310003000125**,310003000088**),卡口类别分别是(上匝道卡口,上匝道卡口)。获取该分组中,道路前进方向前方的下匝道卡口和桥面中间卡口(通行车辆数>0),一共8个卡口;如表8所示:表8以KKXH=6的卡口为例,和KKXH=1和KKXH=4卡口分别组合,分别计算路段(1,1,6)和路段(1,4,6)的行程时间。分别得到两组行程时间和权重(550S,8),(210S,4),550S-210S=340S,即该路段平均行程时间为340S,8和4的较小值为4,即权重为4。那么通过KKXH=6,我们计算出路段(1,1,4)的行程时间和权重为(340S,4)。类似的,我们分别以KKXH=7,11,12的卡口和KKXH=1和KKXH=4卡口分别组合,计算出路段(1,1,4)的通行时间和权重分别为(336S,22),(351S,2),(343S,2)。当KKXH=14,19,20,22卡口与KKXH=1和KKXH=4卡口分别组合时,我们发现对应的Key在哈希表2中不存在,将通过这些卡口计算出路段(1,1,4)速度记为“-”,权重记为0。将累计8组计算结果进行加权平均,我们得到路段(1,1,4)的行程时间338S,已知路段(1,1,4)长度为6400M,那么在时间槽T内,路段(1,1,4)平均速度为6400/338*0.036=68.2KM/H。3、利用车辆来源方向桥面卡口或者上匝道卡口,计算两者时间差。以路段(1,6,7)为例,对应的(KKID1,KKID2)为(310003000126**,310003000097**),卡口类别分别是(下匝道卡口,桥面卡口)。获取该分组中,车辆来源方向桥面卡口或者上匝道卡口(通行车辆数>0),一共2个卡口;如表9所示:表9以KKXH=1的卡口为例,和KKXH=6和KKXH=7卡口分别组合,分别计算路段(1,1,6)和路段(1,1,7)的行程时间。分别得到两组行程时间和权重(550S,8),(623S,48),623S-550S=73S,即该路段平均行程时间为73S,8和48的较小值为8,即权重为8。那么通过KKXH=1,我们计算出路段(1,6,7)的行程时间和权重为(73S,8)。类似的,我们分别以KKXH=4的卡口和KKXH=6和KKXH=7卡口分别组合,计算出路段(1,6,7)的行程时间和权重分别为(70S,18)。将2组计算结果进行加权平均,我们得到路段(1,6,7)的行程时间为71S,已知路段(1,6,7)长度为1400M,那么在时间槽T内,路段(1,6,7)平均速度为1400/71*0.036=70.9KM/H。4、利用车辆来源方向桥面卡口或者上匝道卡口以及车辆前进方向桥面卡口或者下匝道卡口,分别和区间路段开始位置卡口、区间路段结束位置卡口组合,并计算三者时间差。以路段(1,14,16)为例,对应的(KKID1,KKID2)为(310003000151**,310003000131**),卡口类别分别是(下匝道卡口,上匝道)。获取该分组中,车辆来源方向桥面卡口或者上匝道卡口(通行车辆数>0),一共4个卡口;如表10所示:IDKKXHKKLBKKID11上匝道卡口310003000125**24上匝道卡口310003000088**37桥面卡口310003000097**412桥面卡口310003000284**表10获取该分组中,车辆前进方向桥面卡口或者下匝道卡口(通行车辆数>0),一共2个卡口;如表11所示:IDKKXHKKLBKKID119下匝道卡口310003000132**222下匝道卡口310003000123**表11在两个表中,分别取一个卡口和KKXH=14和KKXH=16卡口组合。以表1中KKXH=12,表2中KKXH=19为例,路段(1,12,14),路段(1,12,19)和路段(1,16,19)可以分别直接计算。那么路段(1,14,16)的行程时间就等于T(1,12,19)-T(1,12,14)-T(1,14,19)。实施例中,路段(1,12,19)行程时间和权重为(648S,16),路段(1,12,14)行程时间和权重为(157S,9),路段(1,16,19)行程时间和权重为(352S,34)。那么路段(1,14,16)行程时间和权重为(139S,9)。遍历表10和表11,一共得到8组路段(1,14,16)行程时间和权重。将8组计算结果进行加权平均,我们得到路段(1,14,16)的行程时间145S,已知路段(1,14,16)长度为1900M,那么在时间槽T内,路段(1,6,7)平均速度为1900/145*0.035=47.2KM/H。将哈希表2清空,开始下个时间槽的计算。本实施例中,时间槽T(2016-01-0521:00:00--2016-01-0521:05:00)高架各个区间路段速度计算结果如下表12所示:表12本实施例中,在卡口数据缺失率(缺失率=通行记录数为0的卡口数量/卡口总数)达到了50%的情况下,依然利用现有卡口数据较好的完成整个高架路的分段区间实时速度计算,计算结果比较准确。以上的所述乃是本发明的具体实施例及所运用的技术原理,若依本发明的构想所作的改变,其所产生的功能作用仍未超出说明书及附图所涵盖的精神时,仍应属本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1