1.一种基于手机信令数据实时获取高速公路运行状态的方法,其特征在于:该方法包括以下步骤:
步骤1:根据高速公路实际路线,划定矩形监测区域;采用长宽均为L的正方形栅格对监测区域进行栅格化处理;以监测区域左下角为起点,以地理水平线为横轴,垂线为纵轴划分栅格;栅格表示为B[x,y],其中x为此栅格所在行数,y为此栅格所在列数;设高速公路某一行驶方向为正向,设含有高速公路路段的栅格为道路栅格,由此得到高速公路正向道路栅格序列L_HB={B[h1,w1],B[h2,w2],B[h3,w3],…,B[hi,wi],…,B[hn,wn]},其中B[hi,wi]为一个道路栅格,hi为此栅格所在行数,wi为此栅格所在列数;
步骤2:获取监测区域内的基站数据,并根据步骤1确定的栅格地图,建立基站信息表;
基站信息表包含基站位置区编号LAC、基站小区编号CellID、基站经纬度坐标LOC、所属栅格CB、是否覆盖高速公路IOW、对应的道路栅格CWB;
步骤3:设T时刻用户信息集合为S_U,其中用户信息包含用户唯一标识UID以及此用户在T时刻之前的轨迹序列;获取在T到T+t监测时间段内监测区域产生的所有信令数据,其中信令数据包含用户唯一标识UID、信令数据所属基站位置区编号LAC、基站小区编号CellID和时间戳TimeStamp字段;然后将信令数据按用户分类并对每个用户的数据按时间戳TimeStamp进行排序,过滤乒乓切换,并将用户在连续时间段内位于同一位置的数据进行合并,从而构建用户在监测时间段内的轨迹序列;随后根据UID更新用户信息集合S_U,若S_U中存在此用户,则更新此用户的轨迹序列;若S_U中不存在此用户,则向S_U中添加此用户信息,由此得到在监测时间段内轨迹数据更新的用户信息集合S_U1;
步骤4:设在高速路上行驶的用户为高速公路用户,获取T时刻高速公路用户集合S_HU,其中S_HU包含于S_U;对S_U1中各用户的轨迹序列进行有效出行段分割,并分析其最后一段有效出行段的轨迹序列,判断其是否在高速路上行驶,并据此更新维护高速公路用户集合S_HU和生成计算高速公路各道路栅格实时速度所需的正向轨迹序列集合S_PE和负向轨迹序列集合S_NE;
步骤5:提取S_PE和S_NE中各轨迹序列,分析计算得到各道路栅格的正负向实时速度;
其中道路栅格实时速度即为道路栅格包含的高速公路路段实时速度,其中正负方向道路栅格实时速度计算方法一致。
2.根据权利要求1所述的一种基于手机信令数据实时获取高速公路运行状态的方法,其特征在于:在步骤2中,首先根据基站LOC确定基站所属栅格CB,随后根据基站覆盖范围,确定基站覆盖的栅格集合;若基站覆盖的栅格集合中含有道路栅格,则将此基站IOW属性值设为iw,否则将此IOW属性值设为ow;其中iw表示此基站覆盖范围含有高速公路,ow表示此基站不能覆盖高速公路;若基站IOW属性值为iw,则计算基站覆盖的道路栅格与其所在栅格CB的距离,取距离最小的道路栅格为基站映射到道路上的栅格CWB;若基站IOW属性值为ow,则其CWB取值为null;设某基站所在栅格为B[a,b],其覆盖的道路栅格集合为S_CHB={B[c1,d1],B[c2,d2],B[c3,d3],…,B[ci,di],…,B[cm,dm]};计算S_CHB中各栅格与基站所在栅格B[a,b]的距离S_D={Dc1d1,Dc2d2,Dc3d3,…,Dcidi,…,Dcmdm},其中Dcidi为B[ci,di]与B[a,b]之
2 2 (1/2)
间的距离,Dcidi=((ci-a)+(di-b) ) ,选取S_D中值最小的栅格为基站映射到道路的栅格。
3.根据权利要求2所述的一种基于手机信令数据实时获取高速公路运行状态的方法,其特征在于:在步骤4中,具体包括:
步骤4.1:提取S_U1中各用户的轨迹序列,并进行有效出行段分割;提取S_U1中用户最后一段有效出行段,若此有效出行段信令数大于一定阈值则跳转到步骤4.2,否则判断S_HU中是否存在此用户,若存在此用户,则根据用户行驶方向将其在监测时间段内的轨迹序列添加到对应的轨迹序列集合中;
步骤4.2:获取有效出行段轨迹序列L_P={P1,P2,P3,…,Pi,…,Pu},其中Pi表示轨迹序列中第i条信令数据,各信令之间按时间先后顺序排列,根据步骤2的基站信息表获取Pi基站对应的道路栅格CWB,由此得到轨迹序列对应的道路栅格序列L_PCWB={CWB1,CWB2,CWB3,…,CWBi,…,CWBu},其中CWBi为Pi对应的CWB,CWBi可能为null;
步骤4.3:计算L_PCWB序列中非null的CWB的占比;获取L_PCWB序列中取值为null的CWB的个数N1,以及取值非null的CWB的个数N2;计算非null的CWB的占比R1=N2/(N1+N2);若R1大于一定阈值则转到步骤4.4,否则认定此用户非高速公路用户,跳转至步骤4.5;
步骤4.4:提取L_PCWB中取值为非null的CWB组成轨迹序列P对应的非空的道路栅格序列L_PCWB2={CWBg1,CWBg2,CWBg3,…,CWBgi,…,CWBgq},其中L_PCWB2包含于L_PCWB,gi∈[1,u];提取CWBgi在高速公路道路栅格序列L_HB中的序号Ogi,则L_PCWB2对应的序号序列为L_O={Og1,Og2,Og3,…,Ogi,…,Ogq};计算L_O中相邻两个元素的平均值Agi=(Ogi+Og(i+1))/2,则L_O平滑处理之后的序列为L_OA={Ag1,Ag2,Ag3,…,Agi,…,Ag(q-1)};若L_OA序列存在明显的增长趋势,则认定此用户的移动方向与高速公路匹配且其为高速公路用户;若增长趋势为正,则认为此用户移动方向为高速公路正方向,并将其在监测时间段内的轨迹序列添加到S_PE中;若增长趋势为负,则认为此用户移动方向为高速公路负方向,并将其在监测时间段内的轨迹序列添加到S_NE中;
步骤4.5:更新高速公路用户集合S_HU;获取T时刻高速公路用户集合为S_HU,若此用户为高速公路用户且S_HU不存在此用户,则添加此用户到S_HU中;若此用户判断为非高速公路用户且S_HU中存在此用户,则从S_HU中删除此用户。
4.根据权利要求3所述的一种基于手机信令数据实时获取高速公路运行状态的方法,其特征在于:在步骤5中,以正方向速度求取为例,其步骤包括:
步骤5.1:为L_HB中各道路栅格设置对应的速度容器,用于存放各轨迹序列中手机用户在两轨迹点之间的移动速度;根据两轨迹点之间的路程长度将速度分成Z个等级,则每个道路栅格的速度容器中包含Z个速度容器,每个速度容器存放对应的速度数据;
步骤5.2:计算S_PE中各轨迹序列中用户在两轨迹点之间的移动速度,根据两轨迹点之间的路程对计算得到的速度进行等级划分,并将其放入相应的道路栅格对应的速度容器中;
步骤5.3:利用聚类算法对L_HB中各道路栅格的各速度容器中的速度数据进行聚类分析,得到各道路栅格不同路程等级对应的速度;设道路栅格B[hi,wi]对应的速度容器集合为S_B[hi,wi]_Con={B[hi,wi]_C1,B[hi,wi]_C2,B[hi,wi]_C3,…,B[hi,wi]_Cj,…,B[hi,wi]_Cz},利用聚类算法分析计算B[hi,wi]_Cj中速度数据得到等级j对应的速度为Con_Speedj,则道路栅格B[hi,wi]不同等级速度集合为S_Con_Speed={Con_Speed1,Con_Speed2,Con_Speed3,…,Con_Speedj,…,Con_Speedz};获取各速度容器中速度数据样本数,则道路栅格B[hi,wi]不同等级速度样本数集合为S_Con_NS={NS1,NS2,NS3,…,NSj,…NSz};则道路栅格B[hi,wi]速度样本总数B[hi,wi]_SpeedSwatch_Sum=NS1+NS2+NS3+…+NSj+…+NSz;利用下面公式计算道路栅格B[hi,wi]实时速度B[hi,wi]_RTSpeed:步骤5.4:根据道路栅格的实时运行速度确定其中的高速公路路段的交通状态。
5.根据权利要求4所述的一种基于手机信令数据实时获取高速公路运行状态的方法,其特征在于:在所述步骤5.2中,具体步骤如下:
步骤5.2.1:获取S_PE中某一轨迹序列L_EP={R1,R2,R3,…,Ri,…,Rk},其中Ri表示此轨迹序列中第i个轨迹点;顺序遍历L_EP中各轨迹点,计算手机用户在其与后续各点之间的移动速度,并将计算得到的速度归入到相应道路栅格的速度容器中;
步骤5.2.2:设轨迹点Ri-1和Ri对应的道路栅格分别为B[e(i-1),f(i-1)]和B[ei,fi],获取B[e(i-1),f(i-1)]和B[ei,fi]在L_HB中序号,若两序号的差值与此用户的移动方向同为正或同为负,则跳转至5.2.3;
步骤5.2.3:计算B[e(i-1),f(i-1)]和B[ei,fi]之间的路程Dis(i-1)i;获取L_HB中B[e(i-1),f(i-1)]和B[ei,fi]之间的子序列L_EHB={B[s1,l1],B[s2,l2],…,B[si,li],…,B[sv,lv]},则B[e(i-1),f(i-1)]和B[ei,fi]之间的路程Dis(i-1)i可用下面公式计算得到;
步骤5.2.4:设轨迹点Ri-1和Ri对应的时间戳TimeStamp(i-1)和TimeStampi,则用户在Ri-1和Ri之间的移动速度Speed(i-1)i=Dis(i-1)i/(TimeStampi-TimeStamp(i-1));
步骤5.2.5:根据步骤5.2.3获取的路程Dis(i-1)i将Speed(i-1)i放到B[e(i-1),f(i-1)]和B[ei,fi]之间的子序列L_EHB中的各个道路栅格对应的速度容器中;设Speed(i-1)i对应的等级为Level_Speed(i-1)i,等级序列为L_Level={Level1,Level2,Level3,…,Levelj,…,Levelz},其中Levelj表示第j个速度等级;则可由以下公式确定Level_Speed(i-1)i;即是若Dis(i-1)i大于等于DisNumj且小于DisNumj+1,则Level_Speed(i-1)i为Levelj;其中DisNumj+1大于DisNumj,若Dis(i-1)i不在任何一区间内,则将此速度数据舍弃;