CN107330085B - 大数据环境下固定传感器错误位置的判断识别和矫正方法 - Google Patents
大数据环境下固定传感器错误位置的判断识别和矫正方法 Download PDFInfo
- Publication number
- CN107330085B CN107330085B CN201710535039.7A CN201710535039A CN107330085B CN 107330085 B CN107330085 B CN 107330085B CN 201710535039 A CN201710535039 A CN 201710535039A CN 107330085 B CN107330085 B CN 107330085B
- Authority
- CN
- China
- Prior art keywords
- abnormal
- sensor
- point
- abnormal point
- travel track
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/029—Location-based management or tracking services
Abstract
本发明提供了一种大数据环境下传感器空间位置错误的识别和矫正方法,利用移动终端个体在指定时间范围内的空间活动数据集,挖掘大量个体的出行时空序列数据,识别用户出行时空序列中位置信息错误的记录点,矫正包括传感器记录错误和传感器本身位置信息错误,解决由此带来的用户出行轨迹跳跃的问题。本发明利用通信网络中已有海量匿名移动终端持续的加密位置信息,即能低成本、自动化、便捷地获取指定时间范围内大量人口的出行轨迹,利用轨迹中与位置信息错误的记录相似的出行轨迹矫正目标信令记录的位置错误,使得个体出行轨迹连续完整准确,为智慧出行与智慧交通的应用与分析夯实底层数据基础。
Description
技术领域
本发明涉及一种大数据环境下固定传感器错误位置的判断识别和矫正方法,属于大数据分析技术领域。
背景技术
近年来,随着信息技术的发展,数据信息量呈现爆炸式增长,数据来源越来越多,数据量也越来越庞大。其中,由手机、WIFI、物联网等信息传感器记录的数据已经成为大数据分析中最重要的数据来源,其较为完备的个体出行记录,为大数据、尤其是交通大数据分析提供了很好的数据支持。以手机为例,至2015年,手机用户达到13.06亿,占到总人口的96%以上,手机终端设备持续产生的信号信息,形成了记录用户出行的一系列数据集,为交通出行分析提供了重要的数据来源。
然而,当前直接获得的传感器数据仍然存在种种问题,需要大数据分析人员对其进行后期的加工处理。其中,传感器记录的空间信息错误使得用户个体在空间上的出行轨迹出现不合理的大幅空间跳跃,导致其时空序列异常,给大数据分析处理带来了很大的不便。
因此,采取一定的算法,利用已有移动终端与传感器之间的信令记录数据对个体准确的空间位置信息进行挖掘,矫正其行迹中的空间坐标,并校正传感器的错误空间信息,具有重要的实用价值。然而,现有技术中还没有这样的传感器错误位置判断识别和矫正的方法。
发明内容
本发明要解决的技术问题是在大数据环境下,如何对固定传感器的错误空间信息进行判断识别和矫正。
为了解决上述技术问题,本发明的技术方案是提供一种大数据环境下固定传感器错误位置的判断识别和矫正方法,其特征在于,包括以下步骤:
步骤1:系统定期读取从传感器运营商获取匿名加密移动终端时间序列数据,匿名加密移动终端传感器数据理论上在时间与空间上连续,不同移动终端对应不同的匿名单向加密全球唯一移动终端标识码EPID,提取每个EPID在指定时间段T内所触发的信令记录,构成初步的出行轨迹数据结构;
步骤2:遍历出行轨迹数据集列表,依时间顺序提取,对其在空间和时间上,以IT时间为间隔进行平滑和插值,构建用户出行轨迹对象;以插值后的节点之间的距离D、节点瞬时速度VP为标准,判断该段行迹始末点是否异常,提取存在异常点的出行轨迹对象,组成异常轨迹列表;
步骤3:判断异常轨迹空间信息错误的类型,针对异常行迹中非插值点的传感器编号,搜索时空序列对象列表中同样被该传感器记录的其他个体的时空序列,判断这些时空序列在该点上的空间位置是否异常,以此将错误类型分为记录错误和传感器错误两类;
步骤4:针对记录错误的异常点,即传感器的空间位置正确、用户记录的传感器编号错误的异常点,通过匹配与其行迹相似的其他用户的时空序列,矫正其错误的空间位置记录;
步骤5:针对传感器本身位置信息错误的异常点,即用户记录的传感器编号正确、传感器本身的位置信息错误的异常点,通过提取大量个体时空序列中该站点附近位置信息正确的站点的位置分布,采用概率加权空间插值的方法求解该传感器准确的空间位置;
步骤6:根据矫正后的站点位置信息,更正用户出行的时空序列,对于传感器本身位置信息错误的情况,在获取正确的空间位置信息之后更新存在位置异常点的出行轨迹对象列表,并验证其准确性,验证通过后将更正无误的出行轨迹对象从列表中删除;
步骤7:若异常轨迹列表已经遍历完毕,则退出,否则,提取异常轨迹列表中的下一个对象,返回步骤3。
优选地,所述步骤1包括:
步骤1.1:系统读取从传感器运营商获取匿名加密移动终端传感器数据,理论上匿名加密移动终端传感器数据在时间与空间上都应该是连续的,包括:用户唯一编号EPID、通信动作类型TYPE、通信动作发生时刻TIMESTAMP、传感器所处大区REGIONCODE、传感器具体编号SENSORID,传感器所处大区REGIONCODE及传感器具体编号SENSORID构成了传感器编号;
步骤1.2:一条匿名加密移动终端传感器数据为一个信令记录,对每条信令记录进行解密,将传感器编号与传感器真实经度坐标LON及传感器真实纬度坐标LAT关联,将其转化为地理坐标X-Y,完善通讯记录;
步骤1.3:根据用户编号EPID,查询其在指定时间段内所有的已完善的通讯记录,构建用户出行轨迹数据集。
优选地,所述步骤2包括:
步骤2.1:构建时空序列类结构,记录点类,插值点类,类中包含平均速度与速度差,平均速度是目标点与其前后点之间行程的平均速度,速度差是目标点与前一点之间速度的差值;
步骤2.2:依次从出行轨迹数据集列表中提取一条出行轨迹数据集,将其通信时间改为自起点所花费的时间,以秒计算,从起点开始遍历,提取其行迹中与传感器通讯记录中的空间位置信息和时间信息,采用多项式拟合分别计算用户出行的经度和纬度变化;在拟合过程中,要求拟合得到的拟合优度R2大于设定的阈值R0,否则提高多项式的次数,直到R2足够大,最终得到两条以时间t为自变量,分别以地理坐标X-Y为因变量的多项式方程;
步骤2.3:根据获得的用户出行轨迹多项式方程,自起点开始,以IT为时间间隔计算每个时间点用户所处的空间位置X-Y,以Java的动态数据类ArrayList的形式按时间顺序排列至行程结束,完成用户时空序列的构建;
步骤2.4:重新遍历用户出行轨迹,读取轨迹中每一个记录点RECORDID传感器的位置,然后按时间顺序遍历拟合得到的X-Y时空序列,查找序列上与该记录点RECORDID距离最近的插值点ITPL,将其定为拟合记录点RCD,在其对象中赋予相应的传感器编号、真实通讯时间、真实经纬度和真实空间位置X-Y,将其余的节点定为插值点,在其对象中赋予前后两个记录点的传感器编号;
步骤2.5:遍历用户的时空序列,计算节点之间的路段长路,计算其行进速度,以速度和速度差为标准,判断时空序列中是否存在位置异常点。
更优选地,所述步骤2.5包括:
步骤2.5.1:根据每个节点的空间位置X-Y,计算节点之间路段的距离D,由于节点之间的时间间隔固定为IT,因此路段的长度即可看成是节点之间的速度V;
步骤2.5.2:根据节点N前后两段路程的速度,计算用户通过节点N时的瞬时速度VP,并计算节点N与其前一节点N-1的瞬时速度差VD,将瞬时速度和速度差记入节点N的数据对象中;N为节点编号;
步骤2.5.3:若节点N为用户时空序列的起始点,则只取其前或后的一段的速度作为其瞬时速度VP,起点不存在速度差;
步骤2.5.4:再次依照时间顺序遍历用户的时空序列,当用户在节点N的瞬时速度大于速度阈值Thr-VP时,且速度差大于速度差阈值Thr-VPD时,标记该点为一个异常点,进入步骤2.5.5,否则继续下一个节点,直到时空序列的末尾;
步骤2.5.5:从异常点出发,沿时间顺序查找新的异常点,记录在此过程中遍历到的记录点,若:
(1)查找到新的异常点,且这个异常点两端的速度差VD为正,且没有出现以下(2)、(3)、(4)任何一种情况,则记录除这个异常点外的所有在两个异常点之间的记录点,即若第二个异常点为记录点,也不将其记录下来,同时进入步骤2.5.6,处理异常轨迹;
(2)异常点之后没有出现新的异常点,则放弃该时空序列;
(3)查找到新的异常点,但是异常点之间存在n个以上传感器编号不同的记录点,则放弃该时空序列;n为记录点的数量;
(4)若查找到的新的异常点,其两端速度差VD仍然为负,则将该异常点当成普通异常点,继续向下查询;
步骤2.5.6:整理步骤2.5.5记录得到的异常轨迹中的记录点数据,从中提取从首个位置信息异常记录前的第n1条到最后一个位置信息异常记录后的第n1条记录,提取异常轨迹中记录的传感器编号,将其设定为位置信息错误传感器;若异常轨迹前后记录点数不足n1条,则取到出行轨迹的起止点为止;n1为从目标点向前向后遍历的记录数;
步骤2.5.7:将步骤2.5.6提取出来的数据实例化位置异常轨迹类,形成一个新的对象,将每个信令记录中的传感器编号写入对象中;遍历所有时空序列,提取出所有异常轨迹,形成异常轨迹对象集合。
优选地,所述步骤3包括:
步骤3.1:遍历得到的异常轨迹对象集合,以此提取其中的异常信令记录的传感器编号,在所有正常的用户出行轨迹对象和异常轨迹对象中查找该传感器,计算该传感器在正常的出行轨迹中出现的次数,和在异常轨迹中出现的次数;
步骤3.2:若该传感器大量出现在其他异常轨迹对象中,且在正常的出行轨迹中出现次数较少,即异常信令记录占总的出现过该传感器的通信记录的比例大于设定值S,则认为该传感器本身的位置信息有误,导致大部分与该传感器通讯的用户的出行轨迹均出现了异常,将其归类到传感器错误中;
步骤3.3:若该传感器大量出现在正常的轨迹对象中,即异常信令记录占总信令记录的比例小于设定值S,则认为该传感器本身的位置信息正确,但是用户的出行轨迹记录中存在错误的传感器编号,以此将其归类到记录错误中。
优选地,所述步骤4包括:
步骤4.1:提取异常轨迹中的异常记录点的编号,实例化异常点对象,将其编号记入异常点对象,将异常轨迹中异常路段前后n1条记录中不同的传感器编号存入异常点对象中的ID_BCK和ID_FWD列表,若同一方向存在连续的相同传感器记录的信息,则取其离异常记录最近的一条;
步骤4.2:提取ID_BCK和ID_FWD中的传感器进行排列组合,组合数总计2n2种,即原出行轨迹中ID_BCK的传感器也可排在ID_FWD中,若其中存在ID_BCK和ID_FWD编号相同的情况,则去除其中一种情况;
步骤4.3:在正常的出行轨迹数据集中进行查找,若出行轨迹中同时出现ID_BCK中编号为B和ID_FWD中编号为F的传感器,且这两个传感器在出行轨迹序列中的位置差距小于s,记录下处于B和F之间的传感器,保留其不重复的编号,将编号写入数组TGT中;s为设定的传感器之间距离阈值;
步骤4.4:遍历读取数组TGT中的传感器编号,以ArrayList数据结构存储到TLIST中,TLIST为异常点对象中的存储可能的邻近传感器的动态数组,若TLIST已存在某个传感器编号,则对其出现次数number加x,若没有出现过,则在TLIST的尾部贴上该传感器,并将其出现次数number设为x;这里的x是加权后的出现次数,加权规则是B和F距离异常点的时间越近,权重越大,即在ID_BCK和ID_FWD列表中,若以异常点为中心起点,且ID_BCK和ID_FWD均有n条记录,则Bn和Fn权重最小,B1和F1权重最大;Bn和Fn为ID_BCK和ID_FWD上距离目标异常点最远的节点,B1和F1为ID_BCK和ID_FWD上距离目标异常点最远的节点;
步骤4.5:对异常点对象中的TLIST按出现次数逆向排序,从前往后遍历,若遍历到的传感器在异常点对象的ID_BCK或ID_FWD数组中,则寻找下一个,直到遍历到没有出现在ID_BCK或ID_FWD的传感器,则将其作为目标行迹中缺失部分,替换错误的传感器记录;
步骤4.6:采用步骤2.5对替换错误传感器后的目标出行轨迹进行验证,若不再出现异常点,则表明替换成功,该出行记录在空间上已不存在异常点,若在原来的位置仍然存在异常点,则回到步骤4.5,继续遍历TLIST,从中提取传感器进行替换,直到目标出行轨迹上不再出现异常点。
优选地,所述步骤5包括:
步骤5.1:提取异常轨迹中的异常记录点的编号,实例化异常点对象,将其编号记入异常点对象;
步骤5.2:遍历所有出行轨迹记录,查找与目标异常点发生过通信行为的所有出行轨迹,提取异常目标点所在异常路段前后n条记录中不同的传感器编号,记入ID_BCK和ID_FWD中;传感器编号在ID_BCK或ID_FWD当中不能重复,但可同时出现在ID_BCK和ID_FWD中,此外ID_BCK和ID_FWD中不能出现目标异常点;若出现连续的同编号传感器记录,则取其距离目标点最近的一条;
步骤5.3:对ID_BCK和ID_FWD中的传感器编号赋权重,即距离异常点越近,权重越大,将加权后的ID_BCK和ID_FWD返回异常点对象,存储到TLIST列表中,若ID_BCK或ID_FWD中的传感器编号已在TLIST中,则将该传感器的加权出现频率加上x,若未出现,则在TLIST的尾部贴上该传感器,并将其出现次数number设为x;这里x的含义同步骤4.4;
步骤5.4:遍历完所有出行轨迹后,读取TLIST列表中的传感器编号和加权出现频率,根据传感器的空间位置X-Y和加权值number,依据式(1)和式(2)计算目标异常点的空间位置;式(1)和式(2)中,w表示传感器i的权重:
式(1)中,X为计算得到的目标异常点的X坐标,Y表示计算得到的目标异常点的Y坐标,i表示TLIST中传感器的编号,Xi和Yi表示TLIST中编号为i的传感器的X-Y坐标。
优选地,所述步骤6包括:
步骤6.1:得到异常点的空间位置后,遍历异常点对象列表,查找所有异常点编号与本次处理的目标点编号相同的异常点对象;
步骤6.2:将本次处理得到的异常点空间位置写入所有异常点对象中,替换原有的错误的空间位置;
步骤6.3:针对每条修复后的出行轨迹,重复步骤2,观察其在原异常点附近是否仍然存在速度异常点,若在原异常点附近不存在异常点,则将该异常点对象的ifRepare标为true,若仍然存在异常点,则记录下存在该异常点对象编号;ifRepare用于表示异常点是否被修复布尔标签;
步骤6.4:统计修复后的异常点为本次处理目标点的异常点对象;
步骤6.5:更新所有修复后的出行轨迹中原异常点的空间坐标,在异常点对象列表中删除已修复的异常点对象;
步骤6.6、重复步骤4-6,直到修复所有的异常点对象,清空异常点对象列表。
更优选地,所述步骤6.4包括:
步骤6.4.1:若比例超过a的异常点对象的ifRepare为true,则认为算法已找到该异常点正确的空间位置坐标,剩下的1-a比例的异常点对象则被认为是传感器编号记录错误,重复步骤4,直到所有1-a比例的异常点对象的异常点被修复;a为确认异常点被修复的比例阈值;
步骤6.4.2:若被修复的比例不足a,则认为算法找到的异常点空间位置仍然有误,返回步骤5,对每条轨迹中的D_BCK和ID_FWD中的传感器重新赋权重,然后重复步骤6.1-6.4,直到被正确修复的异常点对象比例大于a,剩余没有被正确修复的异常点对象则仍然采用步骤4的方法进行修复;
步骤6.4.3:若只有比例小于b的异常点对象被修复,则认为算法找到的空间位置错误,返回步骤5,在遍历过程中去掉在上次处理中ifRepare已经被标为true的异常点对象,减少其对最终加权计算的影响,直到被修复异常点对象的比例高于b;继续采取步骤6.4.2和步骤6.4.1,直到所有的异常点对象均被修复;b为否决异常点被修复的比例阈值。
本发明提供的方法是利用固定传感器间海量匿名加密时间序列定位数据,判断识别出错误固定传感器空间位置坐标信息,并矫正。根据传感器记录的匿名加密个体时空数据,构建出行时空序列,对序列进行插值和平滑,通过综合分析时空序列中每段行迹之间的时空连续性,判断行迹两端是否存在空间位置信息错误的固定传感器点;通过分析该点的传感器在其他个体出行轨迹中的时空连续性,判断目标点的错误类型;对于属于记录错误的异常点,通过匹配其他个体相似空间轨迹的方法补全其时空序列;对于传感器本身位置信息错误的情况,通过分析其在大量个体时空序列中临近的传感器,通过概率加权空间插值的方法求解该传感器准确的空间位置。
本发明提供的方法克服了现有技术的不足,利用通信网络中已有海量匿名移动终端持续的加密位置信息,即能低成本、自动化、便捷地获取指定时间范围内大量人口的出行轨迹,利用轨迹中与位置信息错误的记录相似的出行轨迹矫正目标信令记录的位置错误,弥补了由于信令记录位置错误导致的在海量数据处理过程中遇到的困难,使得个体出行轨迹连续完整准确,为智慧出行与智慧交通的应用与分析夯实底层数据基础。
附图说明
图1为本实施例提供的大数据环境下固定传感器错误位置的判断识别和矫正方法总体流程图;
图2为两类异常点矫正的详细流程图。
具体实施方式
下面结合具体实施例,进一步阐述本发明。
本发明的目的是利用移动终端个体在指定时间范围内的空间活动数据集,挖掘大量个体的出行时空序列数据,识别用户出行时空序列中位置信息错误的记录点,矫正包括传感器记录错误和传感器本身位置信息错误,解决由此带来的用户出行轨迹跳跃的问题。
图1为本实施例提供的大数据环境下固定传感器错误位置的判断识别和矫正方法流程图,所述的大数据环境下固定传感器错误位置的判断识别和矫正方法包括以下步骤:
步骤1、系统读取从传感器运营商获取匿名加密移动终端传感器数据,匿名加密移动终端传感器数据理论上在时间与空间上连续,不同移动终端对应不同的EPID,提取每个EPID在指定时间段T内所触发的信令记录,构成初步的出行轨迹数据结构;
步骤1.1、系统读取从传感器运营商获取匿名加密移动终端传感器数据,理论上匿名加密移动终端传感器数据在时间与空间上都应该是连续的,包括:用户唯一编号EPID、通信动作类型TYPE、通信动作发生时刻TIME、传感器所处大区REGIONCODE、传感器具体编号SENSORID,传感器所处大区REGIONCODE及传感器具体编号SENSORID构成了传感器编号;
匿名加密移动终端传感器数据是运营商从移动通信网络、固定宽带网络、无线WIFI以及位置服务相关APP等实时获取并脱敏加密后的匿名手机用户时间序列的加密位置信息,内容包括:EPID、TYPE、TIME、REGIONCODE、SENSORID,参见申请号为201610273693.0的中国专利。具体介绍如下:
EPID(匿名单向加密全球唯一移动终端标识码,EncryPtion internationalmobile subscriber IDentity),是对每个移动终端用户进行单向不可逆加密,从而唯一标识每个移动终端用户,且不暴露用户号码隐私信息,要求每个移动终端用户加密后的EPID保持唯一性,即任意时刻各手机用户的EPID保持不变且不与其它手机用户重复。
TYPE,是当前记录所涉及的通信动作类型,如,上网、通话、主被叫、收发短信、GPS定位、传感器小区切换、传感器切换、开关机等。
TIME,是当前记录所涉及的通信动作发生时刻,单位为毫秒。
REGIONCODE、SENSORID是当前记录所涉及的通信动作发生的传感器加密位置信息。REGIONCODE、SENSORID传感器的编号,其中REGIONCODE代表传感器所处大区,SENSORID是具体的传感器的编号。
在本例中,提取得到的用户与传感器的实时信令记录数据为:
表1:解密后新接收的实时信令记录数据
RECORDID | EPID | TYPE | TIMESTAMP | REGIONCODE | SENSORID |
…… | …… | …… | …… | …… | …… |
R1 | E1 | T1 | 2017-04-01 11:01:21 | 9647 | 9586 |
R2 | E1 | T2 | 2017-04-01 11:01:26 | 9647 | 5058 |
R3 | E1 | T1 | 2017-04-01 11:01:48 | 9647 | 4545 |
…… | …… | …… | …… | …… | …… |
R50 | E1 | T3 | 2017-04-01 11:15:09 | 9647 | 8530 |
R51 | E1 | T4 | 2017-04-01 11:16:45 | 9647 | 4801 |
R52 | E1 | T4 | 2017-04-01 11:18:20 | 9647 | 4370 |
R53 | E1 | T3 | 2017-04-01 11:18:48 | 9647 | 4370 |
R54 | E1 | T3 | 2017-04-01 11:19:26 | 9647 | 6849 |
…… | …… | …… | …… | …… | …… |
R101 | E1 | T1 | 2017-04-01 11:35:21 | 9421 | 7243 |
R102 | E1 | T1 | 2017-04-01 11:35:30 | 9421 | 7603 |
R103 | E1 | T1 | 2017-04-01 11:35:59 | 9421 | 0274 |
R104 | E1 | T1 | 2017-04-01 11:36:04 | 9421 | 3731 |
…… | …… | …… | …… | …… | …… |
步骤1.2、一条匿名加密移动终端传感器数据为一个信令记录,对每条信令记录进行解密,将传感器编号与传感器真实经度坐标LON及传感器真实纬度坐标LAT关联,将其转化为地理坐标X,Y,完善通讯记录;在本例中,经由传感器的LON、LAT信息转换,添加了XY坐标的用户与传感器实时信令记录数据为:
表2:添加了传感器XY坐标的实时信令记录数据
步骤2、遍历出行轨迹数据集列表,依次提取,对其在空间和时间上,以T时间为间隔进行平滑和插值,构建用户出行轨迹对象,以插值后的节点之间的距离D、相邻节点间的距离差为标准判断该小段行迹始末点是否异常,提取存在异常点的出行轨迹对象,组成异常轨迹列表,判断异常类型;
步骤2.1、构建时空序列类结构,记录点类,插值点类,类中包含平均速度与速度差,平均速度是目标点与其前后点之间行程的平均速度,速度差是目标点与前后点之间速度的差值;
其中,时刻序列类包含以下变量:
用户编号EPID;
行迹中记录点与插值点列表PLIST;
记录点对象列表RCDLIST;
插值点对象列表ITPLLIST;
节点之间时间差列表ITLIST;
节点之间距离差列表IDLIST;
节点之间瞬时速度列表VPLIST;
节点之间速度差列表VDLIST;
记录点类包含以下变量:
记录编号RECORDID;
记录点X坐标X;
记录点Y坐标Y;
通信时间TIME;
对应传感器大区编号REGIONCODE;
对应传感器具体编号SENSORID;
对于传感器真实通信时间TIMESTAMP;
通信类型TYPE;
对应传感器经度LON;
对应传感器纬度LAT;
对应传感器X坐标XR;
对应传感器Y坐标YR;
插值点类包含以下变量:
记录编号RECORDID;
通信时间TIME;
插值点X坐标X;
插值点Y坐标Y;
步骤2.2:依次从出行轨迹数据集列表中提取一条出行轨迹数据集,将其通信时间改为自起点所花费的时间,以秒计算,从起点开始遍历,提取其行迹中与传感器通讯记录中的空间位置信息和时间信息,采用多项式拟合分别计算用户出行的经度和纬度变化;在拟合过程中,要求拟合得到的拟合优度R2大于设定的阈值R0,否则提高多项式的次数,直到R2足够大,最终得到两条以时间t为自变量,分别以地理坐标X-Y为因变量的多项式方程;
在本例中,提取出来的行程轨迹数据为:
表2:行程轨迹数据
RECORDID | EPID | TYPE | TIME | REGIONCODE | SENSORID | X | Y |
…… | …… | …… | …… | …… | …… | …… | …… |
R301 | E1 | T3 | 52700 | 9647 | 8530 | 1075.2480 | 770.2797 |
R302 | E1 | T4 | 52796 | 9647 | 4801 | 1167.8523 | 786.8162 |
R303 | E1 | T4 | 52891 | 9647 | 4370 | 1171.1596 | 856.2694 |
R304 | E1 | T3 | 53039 | 9421 | 4370 | 1091.7845 | 905.8789 |
R305 | E1 | T3 | 53227 | 9421 | 6849 | 1048.1281 | 1392.9524 |
R306 | E1 | T1 | 53309 | 9421 | 4469 | 1237.3056 | 952.1811 |
R307 | E1 | T1 | 53441 | 9421 | 4465 | 1263.7640 | 889.3424 |
R308 | E1 | T4 | 53589 | 9421 | 8801 | 1359.6756 | 869.4986 |
R309 | E1 | T4 | 53789 | 9421 | 0273 | 1376.2121 | 945.5665 |
R310 | E1 | T3 | 54055 | 9421 | 4369 | 1412.5924 | 1028.2489 |
R311 | E1 | T1 | 54212 | 9421 | 7243 | 1372.9048 | 1094.3949 |
R312 | E1 | T2 | 54437 | 9421 | 6593 | 1300.1443 | 1153.9263 |
R313 | E1 | T2 | 54607 | 9421 | 6451 | 1286.9151 | 1259.7598 |
R314 | E1 | T2 | 54812 | 9421 | 4371 | 1333.2173 | 1335.8277 |
R315 | E1 | T1 | 54992 | 9647 | 5059 | 1230.6910 | 1428.4320 |
R316 | E1 | T3 | 55150 | 9647 | 4801 | 1042.1750 | 1382.1299 |
R317 | E1 | T3 | 55331 | 9647 | 8530 | 1032.2531 | 1253.1452 |
R318 | E1 | T1 | 55551 | 9647 | 9586 | 936.3415 | 1137.3898 |
R319 | E1 | T4 | 55879 | 9647 | 4802 | 770.9766 | 1048.0927 |
R320 | E1 | T4 | 55999 | 9647 | 4803 | 648.6065 | 1051.4000 |
R321 | E1 | T4 | 56236 | 9647 | 5569 | 506.3927 | 1071.2438 |
R322 | E1 | T4 | 56409 | 9421 | 6851 | 511.0229 | 1409.2497 |
R323 | E1 | T3 | 56622 | 9647 | 5570 | 400.5591 | 1153.9263 |
R324 | E1 | T3 | 56777 | 9647 | 5571 | 314.5694 | 1094.3949 |
R325 | E1 | T4 | 56922 | 9647 | 8626 | 169.0483 | 1097.7022 |
R326 | E1 | T1 | 57016 | 9647 | 0257 | 40.0636 | 1101.0095 |
R327 | E1 | T2 | 57353 | 9647 | 8969 | -88.9210 | 1008.4052 |
R328 | E1 | T2 | 57661 | 9647 | 6307 | -164.9889 | 895.9570 |
R329 | E1 | T2 | 57841 | 9647 | 9587 | -333.6611 | 836.4256 |
R330 | E1 | T2 | 57939 | 9647 | 8163 | -457.9455 | 831.5827 |
…… | …… | …… | …… | …… | …… | …… | …… |
回归得到的X和Y坐标的多项式分别为:
X=0.00000000000000000134t6-0.00000000000044873594t5+0.00000006268550244470t4-0.00466877073722107000t3+195.532261390587t2-4,366,045.86018011t+40,606,868,235.5018
Y=-0.00000000000000000197t6+0.00000000000064966942t5-0.00000008909611027685t4+0.00651455335240234t3-267.851195624913t2+5,871,669.02055054t-53,614,038,429.9274
步骤2.3:根据获得的用户出行轨迹多项式方程,自起点开始,以IT为时间间隔计算每个时间点用户所处的空间位置X-Y,IT表示时间间隔;以Java的动态数据类ArrayList的形式按时间顺序排列至行程结束,完成用户时空序列的构建;在本例中,时间间隔IT被设置为100秒,得到的插值后的用户时刻序列为:
表3 插值后的行程轨迹数据
步骤2.4、重新遍历用户出行轨迹,读取轨迹中每一个记录中传感器的位置,然后从时间起点开始遍历时空序列,查找序列上每个节点的空间坐标与相同时间段内用户出行轨迹中站点空间位置之间的距离,将距离传感器真实位置最小的节点定为记录点,在其对象中赋予相应的传感器编号、真实通讯时间和真实空间位置,将其余的节点定为插值点,在其对象中赋予前后两个记录点的传感器编号;在本例中,重新整理后的出行轨迹数据为:
表4 整理后的行程轨迹数据
步骤2.5、遍历用户的时空序列,计算节点之间的路段长路,计算其行进速度,以速度和速度差为标准,判断时空序列中是否存在位置异常点;
步骤2.5.1:根据每个节点的空间位置X-Y,计算节点之间路段的距离D,由于节点之间的时间间隔固定为IT,因此路段的长度即可看成是节点之间的速度V;在本例中,各插值点之间的距离为:
表5 各插值点之间的距离
步骤2.5.2:根据节点N前后两段路程的速度,计算用户通过节点N时的瞬时速度VP,并计算节点N与其前一节点N-1的瞬时速度差VD,将瞬时速度和速度差记入节点N的数据对象中;N为节点编号;
步骤2.5.3:若节点N为用户时空序列的起始点,则只取其前或后的一段的速度作为其瞬时速度VP,起点不存在速度差;在本例中,节点的瞬时速度和速度差为:
表6 节点间的瞬时速度和速度差
步骤2.5.4:再次依照时间顺序遍历用户的时空序列,当用户在节点N的瞬时速度大于速度阈值Thr-VP时,且速度差大于速度差阈值Thr-VPD时,标记该点为一个异常点,进入步骤2.5.5,否则继续下一个节点,直到时空序列的末尾;在本例中,将速度阈值Thr-VP设定在2米/秒,速度差阈值Thr-VPD设定在2,则异常点为:
表7 筛选出的异常点列表
步骤2.5.5、从异常点出发,沿时间顺序查找新的异常点,记录在此过程中遍历到的记录点,若:
(1)查找到的新的异常点,且这个异常点两端的速度差VD为正,且没有出现以下任何一种情况,则记录除这个异常点外的所有在两个异常点之间的记录点,即若第二个异常点为记录点,也不将其记录下来,同时进入步骤2.5.6,处理异常轨迹;
(2)异常点之后没有出现新的异常点,则放弃该时空序列;
(3)查找到新的异常点,但是异常点之间存在n个以上传感器编号不同的记录点,则放弃该时空序列;n为记录点的数量;
(4)若查找到的新的异常点,其两端速度差VD仍然为负,则将该异常点当成普通异常点,继续向下查询;
在本例中,点INS3和点INS6成一个闭环,点INS35和点INS39构成一个闭环,INS3和INS7之间的实际记录点为R305,INS35和INS39之间的实际记录点为R322,两个点均被确认为异常点;
步骤2.5.6:整理步骤2.5.5记录得到的异常轨迹中的记录点数据,从中提取从首个位置信息异常记录前的第n1条到最后一个位置信息异常记录后的第n1条记录,提取异常轨迹中记录的传感器编号,将其设定为位置信息错误传感器;若异常轨迹前后记录点数不足n1条,则取到出行轨迹的起止点为止;n1为从目标点向前向后遍历的记录数。在本例中,异常段记录数据分别为:
表8a 异常段R305
RECORDID | EPID | TYPE | TIME | REGIONCODE | SENSORID | X | Y |
…… | …… | …… | …… | …… | …… | …… | …… |
R302 | E1 | T4 | 52796 | 9647 | 4801 | 1167.8523 | 786.8162 |
R303 | E1 | T4 | 52891 | 9647 | 4370 | 1171.1596 | 856.2694 |
R304 | E1 | T3 | 53039 | 9421 | 4370 | 1091.7845 | 905.8789 |
R305 | E1 | T3 | 53227 | 9421 | 6849 | 1048.1281 | 1392.9524 |
R306 | E1 | T1 | 53309 | 9421 | 4469 | 1237.3056 | 952.1811 |
R307 | E1 | T1 | 53441 | 9421 | 4465 | 1263.7640 | 889.3424 |
R308 | E1 | T4 | 53589 | 9421 | 8801 | 1359.6756 | 869.4986 |
…… | …… | …… | …… | …… | …… | …… | …… |
表8b 异常段R322
RECORDID | EPID | TYPE | TIME | REGIONCODE | SENSORID | X | Y |
…… | …… | …… | …… | …… | …… | …… | …… |
R319 | E1 | T4 | 55879 | 9647 | 4802 | 770.9766 | 1048.0927 |
R320 | E1 | T4 | 55999 | 9647 | 4803 | 648.6065 | 1051.4000 |
R321 | E1 | T4 | 56236 | 9647 | 5569 | 506.3927 | 1071.2438 |
R322 | E1 | T4 | 56409 | 9421 | 6851 | 511.0229 | 1409.2497 |
R323 | E1 | T3 | 56622 | 9647 | 5570 | 400.5591 | 1153.9263 |
R324 | E1 | T3 | 56777 | 9647 | 5571 | 314.5694 | 1094.3949 |
R325 | E1 | T4 | 56922 | 9647 | 8626 | 169.0483 | 1097.7022 |
…… | …… | …… | …… | …… | …… | …… | …… |
步骤2.5.7、将步骤2.5.6提取出来的数据实例化位置异常轨迹类,形成一个新的对象,将每个信令记录中的传感器编号写入对象中;遍历所有时空序列,提取出所有异常轨迹,形成异常轨迹对象集合;
步骤3、判断异常轨迹空间信息错误的类型,针对异常行迹中非插值点的传感器编号,搜索时空序列对象列表中同样被该传感器记录的其他个体的时空序列,判断这些时空序列在该点上的空间位置是否异常,以此将错误类型分为记录错误和传感器错误两类;
步骤3.1、遍历得到的异常轨迹对象集合,以此提取其中的异常信令记录的传感器编号,在所有正常的用户出行轨迹对象和异常轨迹对象中查找该传感器,计算该传感器在正常的出行轨迹中出现的次数,和在异常轨迹中出现的次数;
步骤3.2、若该传感器大量出现在其他异常轨迹对象中,且在正常的出行轨迹中出现次数较少(异常信令记录占总的出现过该传感器的信令记录的比例大于S),则认为该传感器本身的位置信息有误,导致大部分与该传感器通讯的用户的出行轨迹均出现了异常,将其归类到传感器错误中;
步骤3.3、若该传感器大量出现在正常的轨迹对象中(异常信令记录占总信令记录的比例小于S),则认为该传感器本身的位置信息正确,但是用户的出行轨迹记录中存在错误的传感器编号,以此将其归类到记录错误中;
在本例中,设定判断的比例S为80%,查询所有用户出行轨迹数据,得到R305作为异常点出现了3次,而其在所有的轨迹数据中总共出现了247次,比例小于95%,判定为记录错误;R322作为异常点出现了179次,在所有的轨迹数据中出现了182次,判定为传感器错误;
步骤4、针对记录错误的异常点(传感器的空间位置正确,用户记录的传感器编号错误),通过匹配与其行迹相似的其他用户的时空序列,矫正其错误的空间位置记录;
异常点类包含以下变量:
向前邻接点列表ID_FWD;
向后邻接点列表ID_BCK;
搜索点频率列表TLIST;
是否被修复ifRepair;
步骤4.1:提取异常轨迹中的异常记录点的编号,实例化异常点对象,将其编号记入异常点对象,将异常轨迹中异常路段前后n1条记录中不同的传感器编号存入异常点对象中的ID_BCK和ID_FWD列表,若同一方向存在连续的相同传感器记录的信息,则取其离异常记录最近的一条;在本例中,设n为3,则异常点对象R305的ID_BCK和ID_FWD列表为:
表9 异常点9421-6849的ID_BCK和ID_FWD
步骤4.2:提取ID_BCK和ID_FWD中的传感器进行排列组合,组合数总计2n2种,即原出行轨迹中ID_BCK的传感器也可排在ID_FWD中,若其中存在ID_BCK和ID_FWD编号相同的情况,则去除其中一种情况;本例中,ID_BCK和ID_FWD的排列组合为:
表10 异常点9421-6849的ID_BCK和ID_FWD中传感器排列组合
ID_BCK | ID_FWD |
9647-4801 | 9421-4469 |
9647-4801 | 9421-4465 |
9647-4801 | 9421-8801 |
9647-4370 | 9421-4469 |
9647-4370 | 9421-4465 |
9647-4370 | 9421-8801 |
9421-4370 | 9421-4469 |
9421-4370 | 9421-4465 |
9421-4370 | 9421-8801 |
9421-4469 | 9647-4801 |
9421-4465 | 9647-4801 |
9421-8801 | 9647-4801 |
9421-4469 | 9647-4370 |
9421-4465 | 9647-4370 |
9421-8801 | 9647-4370 |
9421-4469 | 9421-4370 |
9421-4465 | 9421-4370 |
9421-8801 | 9421-4370 |
步骤4.3、依次选择组合中一种,在正常的出行轨迹数据集中进行查找,看出行轨迹中同时出现ID_BCK中编号为B和ID_FWD中编号为F的传感器,且这两个传感器在出行轨迹序列中的位置差距小于s,s为设定的传感器之间距离阈值,记录下处于B和F之间的传感器,保留其不重复的编号,将编号写入数组TGT中;在本例中,TGT数组为:
表11 异常点9421-6849的TGT数组
步骤4.4:遍历读取数组TGT中的传感器编号,以ArrayList数据结构存储到TLIST中,TLIST为异常点对象中的存储可能的邻近传感器的动态数组,若TLIST已存在某个传感器编号,则对其出现次数number加x,若没有出现过,则在TLIST的尾部贴上该传感器,并将其出现次数number设为x;这里的x是加权后的出现次数,加权规则是B和F距离异常点的时间越近,权重越大,即在ID_BCK和ID_FWD列表中,若以异常点为中心起点,且ID_BCK和ID_FWD均有n条记录,则Bn和Fn权重最小,B1和F1权重最大;Bn和Fn为ID_BCK和ID_FWD上距离目标异常点最远的节点,B1和F1为ID_BCK和ID_FWD上距离目标异常点最远的节点。在本例中,令组合9421-4370和9421-4469的权重为9,组合9647-4801和9421-8801的权重为1,则TLIST为:
表12 异常点9421-6849的TLIST列表
Target | Number |
…… | …… |
9647-3041 | 31 |
9647-0513 | 12 |
9421-4469 | 192 |
9421-0273 | 27 |
9421-7363 | 108 |
9647-5058 | 35 |
9421-0274 | 151 |
9421-6417 | 125 |
9421-4370 | 219 |
9421-4371 | 78 |
…… | …… |
步骤4.5:对异常点对象中的TLIST按出现次数逆向排序,从前往后遍历,若遍历到的传感器在异常点对象的ID_BCK或ID_FWD数组中,则寻找下一个,直到遍历到没有出现在ID_BCK或ID_FWD的传感器,则将其作为目标行迹中缺失部分,替换错误的传感器记录;在本例中,排序后的TLIST为:
表13 根据加权出现次数排序后的异常点9421-6849的TLIST列表
Target | Number |
9421-4465 | 243 |
9421-4370 | 219 |
9421-4469 | 192 |
9421-0274 | 151 |
9421-6417 | 125 |
9421-7363 | 108 |
94214370 | 78 |
9647-5058 | 35 |
9647-3041 | 31 |
9421-0273 | 27 |
9647-0513 | 12 |
…… | …… |
其中,9421-4465、9421-4370、9421-4469均在异常点对象的ID_BCK或ID_FWD中,因此权重最大的非ID_BCK或ID_FWD传感器为9421-0274,将原序列中发生异常的传感器9421-6849替换为9421-0274;
步骤4.6、采用步骤2.5对替换错误传感器后的目标出行轨迹进行验证,若不再出现异常点,则表明替换成功,该出行记录在空间上已不存在异常点,若在原来的位置仍然存在异常点,则回到步骤4.5,继续遍历TLIST,从中提取传感器进行替换,直到目标出行轨迹上不再出现异常点;在本例中,替换后的用户出行轨迹中的异常段R305为:
表14 矫正后的异常段R305
RECORDID | EPID | TYPE | TIME | REGIONCODE | SENSORID | X | Y |
…… | …… | …… | …… | …… | …… | …… | …… |
R302 | E1 | T4 | 52796 | 9647 | 4801 | 1167.8523 | 786.8162 |
R303 | E1 | T4 | 52891 | 9647 | 4370 | 1171.1596 | 856.2694 |
R304 | E1 | T3 | 53039 | 9421 | 4370 | 1091.7845 | 905.8789 |
R305 | E1 | T3 | 53227 | 9421 | 0274 | 1168.1983 | 937.6983 |
R306 | E1 | T1 | 53309 | 9421 | 4469 | 1237.3056 | 952.1811 |
R307 | E1 | T1 | 53441 | 9421 | 4465 | 1263.7640 | 889.3424 |
R308 | E1 | T4 | 53589 | 9421 | 8801 | 1359.6756 | 869.4986 |
…… | …… | …… | …… | …… | …… | …… | …… |
替换后进行验证,该段再无异常点出现,认为该处已得到矫正,处理完毕;
步骤5、针对传感器本身位置信息错误的情况(用户记录的传感器编号正确,传感器本身的位置信息错误),通过提取大量个体时空序列中该站点附近位置信息正确的站点的位置分布,采用概率加权空间插值的方法求解该传感器准确的空间位置;本例中本步骤的异常点类包含以下变量:
搜索点频率列表TLIST;
是否被修复ifRepair;
步骤5.1、提取异常轨迹中的异常记录点的编号,实例化异常点对象,将其编号记入异常点对象;
步骤5.2、遍历所有出行轨迹记录,查找与目标异常点发生过通信行为的所有出行轨迹,提取异常目标点所在异常路段前后n条记录中不同的传感器编号,记入ID_BCK和ID_FWD中(传感器编号在ID_BCK或ID_FWD当中不能重复,但可同时出现在ID_BCK和ID_FWD中,此外ID_BCK和ID_FWD中不能出现目标异常点),若出现连续的同编号传感器记录,则取其距离目标点最近的一条;在本例中,令n为3,则某条同样存在异常点9421-6851的出行轨迹,其ID_BCK和ID_FWD为:
表15 某条出行轨迹中异常点9421-6851的ID_BCK和ID_FWD
No | ID_BCK | ID_FWD |
1 | 9647-5276 | 9647-3248 |
2 | 96474803 | 9647-5574 |
3 | 9647-4843 | 9647-1246 |
步骤5.3、对ID_BCK和ID_FWD中的传感器编号赋权重,即距离异常点越近,权重越大,将加权后的ID_BCK和ID_FWD返回异常点对象,存储到TLIST列表中,若ID_BCK和ID_FWD中的传感器编号已在TLIST中,则将该传感器的加权出现频率加上x,若未出现,则在TLIST的尾部贴上该传感器,并将其出现次数设为x;这里x的含义同步骤4.4;在本例中,令距离目标异常点最近的点权重为3,距离最远的为1,即在表15中9647-4843和9647-1246的x为1,9647-5276和9647-3248的x为3,TLIST中各节点的加权出现次数为:
表16 异常点9421-6851的TLIST中各节点的加权出现次数
步骤5.4:遍历完所有出行轨迹后,读取TLIST列表中的传感器编号和加权出现频率,根据传感器的空间位置X-Y和加权值number,依据式(1)和式(2)计算目标异常点的空间位置;式(1)和式(2)中,w表示传感器i的权重:
式(1)中,X为计算得到的目标异常点的X坐标,Y表示计算得到的目标异常点的Y坐标,i表示TLIST中传感器的编号,Xi和Yi表示TLIST中编号为i的传感器的X-Y坐标。
在本例中,计算得到的目标异常点9421-6849的空间坐标为:X=460.3032,Y=1112.5943,修正后的异常段R322为:
表17 异常段R322
RECORDID | EPID | TYPE | TIME | REGIONCODE | SENSORID | X | Y |
…… | …… | …… | …… | …… | …… | …… | …… |
R319 | E1 | T4 | 55879 | 9647 | 4802 | 770.9766 | 1048.0927 |
R320 | E1 | T4 | 55999 | 9647 | 4803 | 648.6065 | 1051.4000 |
R321 | E1 | T4 | 56236 | 9647 | 5569 | 506.3927 | 1071.2438 |
R322 | E1 | T4 | 56409 | 9421 | 6851 | 460.3032 | 1112.5943 |
R323 | E1 | T3 | 56622 | 9647 | 5570 | 400.5591 | 1153.9263 |
R324 | E1 | T3 | 56777 | 9647 | 5571 | 314.5694 | 1094.3949 |
R325 | E1 | T4 | 56922 | 9647 | 8626 | 169.0483 | 1097.7022 |
…… | …… | …… | …… | …… | …… | …… | …… |
步骤6、根据矫正后的站点位置信息,更正用户出行的时空序列,对于传感器本身位置信息错误的情况,在获取正确的空间位置信息之后更新存在位置异常点的出行轨迹对象列表,并验证其准确性,验证通过后将更正无误的出行轨迹对象从列表中删除;
步骤6.1、得到异常点的空间位置后,遍历异常点对象列表,查找所有异常点编号与本次处理的目标点编号相同的异常点对象;
步骤6.2、将本次处理得到的异常点空间位置写入所有异常点对象中,替换原有的错误的空间位置;
步骤6.3、针对每条修复后的出行轨迹,重复步骤2,观察其在原异常点附近是否仍然存在速度异常点,若在原异常点附近不存在异常点,则将该异常点对象的ifRepare标为true,若仍然存在异常点,则记录下存在该异常点对象编号;ifRepare表示异常点是否被修复布尔标签;
步骤6.4、统计修复后的异常点为本次处理目标点的异常点对象;
步骤6.4.1:若比例超过a的异常点对象的ifRepare为true(a为确认异常点被修复的比例阈值),则认为算法已找到该异常点正确的空间位置坐标,剩下的1-a比例的异常点对象则被认为是传感器编号记录错误,重复步骤4,直到所有1-a比例的异常点对象的异常点被修复;在本例中,设定a为90%,在实际操作中,异常点9421-6849在替换成9421-0274后没有再出现异常,认为修正成功;异常点9421-6849在更新空间坐标之后,原先的179个异常减为4个,满足90%的阈值;
步骤6.4.2、若被修复的比例不足a,则认为算法找到的异常点空间位置仍然有误,返回步骤5,对每条轨迹中的ID_BCK和ID_FWD中的传感器重新赋权重,然后重复步骤6.1-6.4,直到被正确修复的异常点对象比例大于a,剩余没有被正确修复的异常点对象则仍然采用步骤4的方法进行修复;在本例中,剩余的4个没有被修复的异常点情况考虑为记录点错误,转到步骤4进行修正。
步骤6.4.3、若只有比例小于b的异常点对象被修复(b为否决异常点被修复的比例阈值),则认为算法找到的空间位置错误,返回步骤5,在遍历过程中去掉在上次处理中ifRepare已经被标为true的异常点对象,减少其对最终加权计算的影响,直到被修复异常点对象的比例高于b;继续采取步骤6.4.2和步骤6.4.1,直到所有的异常点对象均被修复;
步骤6.5、更新所有修复后的出行轨迹中原异常点的空间坐标,在异常点对象列表中删除已修复的异常点对象;
步骤6.6、重复步骤4-6,直到修复所有的异常点对象,清空异常点对象列表。
本发明是利用固定传感器间海量匿名加密移动终端个体在指定时间范围内的空间活动数据集,挖掘大量个体的出行时空序列数据,对其进行插值平滑等预处理后,构建判断规则与指标来判断个体空间信息的准确与否,判断识别出错误的传感器空间位置坐标;对于不同类型的空间信息错误,采取相似路径匹配提取和相邻节点加权插值的方法,计算修正错误的空间位置坐标信息,使得个体出行轨迹连续完整准确,为智慧出行与智慧交通的应用与分析夯实底层数据基础。
以上所述,仅为本发明的较佳实施例,并非对本发明任何形式上和实质上的限制,应当指出,对于本技术领域的普通技术人员,在不脱离本发明方法的前提下,还将可以做出若干改进和补充,这些改进和补充也应视为本发明的保护范围。凡熟悉本专业的技术人员,在不脱离本发明的精神和范围的情况下,当可利用以上所揭示的技术内容而做出的些许更动、修饰与演变的等同变化,均为本发明的等效实施例;同时,凡依据本发明的实质技术对上述实施例所作的任何等同变化的更动、修饰与演变,均仍属于本发明的技术方案的范围内。
Claims (8)
1.一种大数据环境下固定传感器错误位置的判断识别和矫正方法,其特征在于,包括以下步骤:
步骤1:系统定期读取从传感器运营商获取匿名加密移动终端时间序列数据,匿名加密移动终端时间序列数据理论上在时间与空间上连续,不同移动终端对应不同的匿名单向加密全球唯一移动终端标识码EPID,提取每个EPID在指定时间段T内所触发的信令记录,构成初步的出行轨迹数据结构;
步骤2:遍历出行轨迹数据结构,依时间顺序提取,对其在空间和时间上,以T时间为间隔进行平滑和插值,构建表征用户出行轨迹对象的时空序列;以插值后的节点之间的距离D、节点瞬时速度VP为标准,判断该段出行轨迹始末点是否异常,提取存在异常点的出行轨迹对象,组成异常出行轨迹列表;
步骤3:判断异常出行轨迹列表信息错误的类型,针对异常出行轨迹中非插值点的传感器编号,搜索时空序列对象列表中同样被该传感器记录的其他个体的时空序列,判断这些时空序列在该点上的空间位置是否异常,以此将错误类型分为记录错误和传感器错误两类;
步骤4:针对记录错误的异常点,即传感器的空间位置正确、用户记录的传感器编号错误的异常点,通过匹配与其出行轨迹相似的其他用户的时空序列,矫正其错误的空间位置记录;
步骤5:针对传感器本身位置信息错误的异常点,即用户记录的传感器编号正确、传感器本身的位置信息错误的异常点,通过提取大量个体时空序列中该异常点附近位置信息正确的节点的位置分布,采用概率加权空间插值的方法求解该传感器准确的空间位置,步骤5包括:
步骤5.1:提取异常出行轨迹中的异常记录点的编号,实例化异常点对象,将其编号记入异常点对象;
步骤5.2:遍历所有出行轨迹记录,查找与目标异常点发生过通信行为的所有出行轨迹,提取异常目标点所在异常路段前n条记录中不同的传感器编号记入ID_FWD中,提取异常目标点所在异常路段前后n条记录中不同的传感器编号记入ID_BCK中;传感器编号在ID_BCK或ID_FWD当中不能重复,但可同时出现在ID_BCK或ID_FWD,此外ID_BCK和ID_FWD中不能出现目标异常点;若出现连续的同编号传感器记录,则取其距离目标点最近的一条;
步骤5.3:对ID_BCK和ID_FWD中的传感器编号赋权重,即距离异常点越近,权重越大,将加权后的ID_BCK和ID_FWD返回异常点对象,存储到TLIST列表中,若ID_BCK或ID_FWD中的传感器编号已在TLIST中,则将该传感器的加权出现频率加上x,若未出现,则在TLIST的尾部贴上该传感器,并将其出现次数number设为x,x是加权后的出现次数;
步骤5.4:遍历完所有出行轨迹后,读取TLIST列表中的传感器编号和加权出现频率,根据传感器的空间位置X-Y和加权值number,依据式(1)和式(2)计算目标异常点的空间位置;式(1)和式(2)中,w表示传感器i的权重:
式(1)中,X为计算得到的目标异常点的X坐标,Y表示计算得到的目标异常点的Y坐标,i表示TLIST中传感器的编号,Xi和Yi表示TLIST中编号为i的传感器的X-Y坐标;
步骤6:根据矫正后的节点位置信息,更正用户出行的匿名加密移动终端时间序列数据,对于传感器本身位置信息错误的情况,在获取正确的空间位置信息之后更新存在位置异常点的出行轨迹对象列表,并验证其准确性,验证通过后将更正无误的出行轨迹对象从列表中删除;
步骤7:若异常出行轨迹列表已经遍历完毕,则退出,否则,提取异常出行轨迹列表中的下一个对象,返回步骤3。
2.如权利要求1所述的一种大数据环境下固定传感器错误位置的判断识别和矫正方法,其特征在于,所述步骤1包括:
步骤1.1:系统读取从传感器运营商获取匿名加密移动终端时间序列数据,理论上匿名加密移动终端时间序列数据在时间与空间上都应该是连续的,包括:用户唯一编号EPID、通信动作类型TYPE、通信动作发生时刻TIMESTAMP、传感器所处大区REGIONCODE、传感器具体编号SENSORID,传感器所处大区REGIONCODE及传感器具体编号SENSORID构成了传感器编号;
步骤1.2:一条匿名加密移动终端时间序列数据为一个信令记录,对每条信令记录进行解密,将传感器编号与传感器真实经度坐标LON及传感器真实纬度坐标LAT关联,将其转化为地理坐标X-Y,完善通讯记录;
步骤1.3:根据用户编号EPID,查询其在指定时间段内所有的已完善的通讯记录,构建用户出行轨迹数据集。
3.如权利要求2所述的一种大数据环境下固定传感器错误位置的判断识别和矫正方法,其特征在于,所述步骤2包括:
步骤2.1:构建时空序列类结构,记录点类,插值点类,类中包含平均速度与速度差,平均速度是目标点与其前后点之间行程的平均速度,速度差是目标点与前一点之间速度的差值;
步骤2.2:依次从用户出行轨迹数据集列表中提取一条出行轨迹数据集,将其通信时间改为自起点所花费的时间,以秒计算,从起点开始遍历,提取其出行轨迹中与传感器通讯记录中的空间位置信息和时间信息,采用多项式拟合分别计算用户出行的经度和纬度变化;在拟合过程中,要求拟合得到的拟合优度R2大于设定的阈值R0,否则提高多项式的次数,直到R2足够大,最终得到两条以时间t为自变量,分别以地理坐标X-Y为因变量的多项式方程;
步骤2.3:根据获得的用户出行轨迹多项式方程,自起点开始,以T为时间间隔计算每个时间点用户所处的空间位置X-Y,以Java的动态数据类ArrayList的形式按时间顺序排列至行程结束,完成用户时空序列的构建;
步骤2.4:重新遍历用户出行轨迹,读取出行轨迹中每一个记录点RECORDID传感器的位置,然后按时间顺序遍历拟合得到的X-Y时空序列,查找序列上与该记录点RECORDID距离最近的插值点ITPL,将其定为拟合记录点RCD,在其对象中赋予相应的传感器编号、真实通讯时间、真实经纬度和真实空间位置X-Y,将其余的节点定为插值点,在其对象中赋予前后两个记录点的传感器编号;
步骤2.5:遍历用户的时空序列,计算节点之间的路段长路,计算其行进速度,以速度和速度差为标准,判断时空序列中是否存在位置异常点。
4.如权利要求3所述的一种大数据环境下固定传感器错误位置的判断识别和矫正方法,其特征在于:所述步骤2.5包括:
步骤2.5.1:根据每个节点的空间位置X-Y,计算节点之间路段的距离D,由于节点之间的时间间隔固定为T,因此路段的长度即可看成是节点之间的速度V;
步骤2.5.2:根据节点N前后两段路程的速度,计算用户通过节点N时的瞬时速度VP,并计算节点N与其前一节点N-1的瞬时速度差VD,将瞬时速度和速度差记入节点N的数据对象中;N为节点编号;
步骤2.5.3:若节点N为用户时空序列的起始点,则只取其前或后的一段的速度作为其瞬时速度VP,起点不存在速度差;
步骤2.5.4:再次依照时间顺序遍历用户的时空序列,当用户在节点N的瞬时速度大于速度阈值Thr-VP时,且速度差大于速度差阈值Thr-VPD时,标记该节点为一个异常点,进入步骤2.5.5,否则继续下一个节点,直到时空序列的末尾;
步骤2.5.5:从异常点出发,沿时间顺序查找新的异常点,记录在此过程中遍历到的记录点,若:
(1)查找到新的异常点,且这个异常点两端的速度差VD为正,且没有出现以下(2)、(3)、(4)任何一种情况,则记录除这个异常点外的所有在两个异常点之间的记录点,即若第二个异常点为记录点,也不将其记录下来,同时进入步骤2.5.6,处理异常轨迹;
(2)异常点之后没有出现新的异常点,则放弃该时空序列;
(3)查找到新的异常点,但是异常点之间存在n个以上传感器编号不同的记录点,则放弃该时空序列;n为记录点的数量;
(4)若查找到的新的异常点,其两端速度差VD仍然为负,则将该异常点当成普通异常点,继续向下查询;
步骤2.5.6:整理步骤2.5.5记录得到的异常出行轨迹中的记录点数据,从中提取从首个位置信息异常记录前的第n1条到最后一个位置信息异常记录后的第n1条记录,提取异常出行轨迹中记录的传感器编号,将其设定为位置信息错误传感器;若异常出行轨迹前后记录点数不足n1条,则取到出行轨迹的起止点为止;n1为从目标点向前向后遍历的记录数;
步骤2.5.7:将步骤2.5.6提取出来的数据实例化位置异常出行轨迹类,形成一个新的对象,将每个信令记录中的传感器编号写入对象中;遍历所有时空序列,提取出所有异常出行轨迹,形成异常出行轨迹对象集合。
5.如权利要求4所述的一种大数据环境下固定传感器错误位置的判断识别和矫正方法,其特征在于:所述步骤3包括:
步骤3.1:遍历得到的异常出行轨迹对象集合,以此提取其中的异常信令记录的传感器编号,在所有正常的用户出行轨迹对象和异常出行轨迹对象中查找该传感器,计算该传感器在正常的出行轨迹中出现的次数,和在异常出行轨迹中出现的次数;
步骤3.2:若该传感器大量出现在其他异常出行轨迹对象中,且在正常的出行轨迹中出现次数较少,即异常信令记录占总的出现过该传感器的通信记录的比例大于设定值S,则认为该传感器本身的位置信息有误,导致大部分与该传感器通讯的用户的出行轨迹均出现了异常,将其归类到传感器错误中;
步骤3.3:若该传感器大量出现在正常的出行轨迹对象中,即异常信令记录占总信令记录的比例小于设定值S,则认为该传感器本身的位置信息正确,但是用户的出行轨迹记录中存在错误的传感器编号,以此将其归类到记录错误中。
6.如权利要求5所述的一种大数据环境下固定传感器错误位置的判断识别和矫正方法,其特征在于:所述步骤4包括:
步骤4.1:提取异常出行轨迹中的异常记录点的编号,实例化异常点对象,将其编号记入异常点对象,将异常出行轨迹中异常路段前n1条记录中不同的传感器编号存入异常点对象中的ID_FWD列表,将异常出行轨迹中异常路段后n1条记录中不同的传感器编号存入异常点对象中的ID_BCK列表,若同一方向存在连续的相同传感器记录的信息,则取其离异常记录最近的一条;
步骤4.2:提取ID_BCK和ID_FWD中的传感器进行排列组合,组合数总计2n2种,即原出行轨迹中ID_BCK的传感器也可排在ID_FWD中,若其中存在ID_BCK和ID_FWD编号相同的情况,则去除其中一种情况;
步骤4.3:在正常的出行轨迹数据集中进行查找,若出行轨迹中同时出现ID_BCK中编号为B和ID_FWD中编号为F的传感器,且这两个传感器在出行轨迹序列中的位置差距小于s,记录下处于B和F之间的传感器,保留其不重复的编号,将编号写入数组TGT中;s为设定的传感器之间距离阈值;
步骤4.4:遍历读取数组TGT中的传感器编号,以ArrayList数据结构存储到TLIST中,TLIST为异常点对象中的存储可能的邻近传感器的动态数组;若TLIST已存在某个传感器编号,则对其出现次数number加x,若没有出现过,则在TLIST的尾部贴上该传感器,并将其出现次数number设为x;这里的x是加权后的出现次数,加权规则是B和F距离异常点的时间越近,权重越大,即在ID_BCK和ID_FWD列表中,若以异常点为中心起点,且ID_BCK和ID_FWD均有n条记录,则Bn和Fn权重最小,B1和F1权重最大;Bn和Fn为ID_BCK和ID_FWD上距离目标异常点最远的节点,B1和F1为ID_BCK和ID_FWD上距离目标异常点最远的节点;
步骤4.5:对异常点对象中的TLIST按出现次数逆向排序,从前往后遍历,若遍历到的传感器在异常点对象的ID_BCK或ID_FWD数组中,则寻找下一个,直到遍历到没有出现在ID_BCK或ID_FWD的传感器,则将其作为目标出行轨迹中缺失部分,替换错误的传感器记录;
步骤4.6:采用步骤2.5对替换错误传感器后的目标出行轨迹进行验证,若不再出现异常点,则表明替换成功,该记录在空间上已不存在异常点,若在原来的位置仍然存在异常点,则回到步骤4.5,继续遍历TLIST,从中提取传感器进行替换,直到目标出行轨迹上不再出现异常点。
7.如权利要求6所述的一种大数据环境下固定传感器错误位置的判断识别和矫正方法,其特征在于:所述步骤6包括:
步骤6.1:得到异常点的空间位置后,遍历异常点对象列表,查找所有异常点编号与本次处理的目标点编号相同的异常点对象;
步骤6.2:将本次处理得到的异常点空间位置写入所有异常点对象中,替换原有的错误的空间位置;
步骤6.3:针对每条修复后的出行轨迹,重复步骤2,观察其在原异常点附近是否仍然存在速度异常点,若在原异常点附近不存在异常点,则将该异常点对象的ifRepare标为true,若仍然存在异常点,则记录下存在该异常点对象编号;ifRepare表示异常点是否被修复布尔标签;
步骤6.4:统计修复后的异常点为本次处理目标点的异常点对象;
步骤6.5:更新所有修复后的出行轨迹中原异常点的空间坐标,在异常点对象列表中删除已修复的异常点对象;
步骤6.6、重复步骤4-6,直到修复所有的异常点对象,清空异常点对象列表。
8.如权利要求7所述的一种大数据环境下固定传感器错误位置的判断识别和矫正方法,其特征在于:所述步骤6.4包括:
步骤6.4.1:若比例超过a的异常点对象的ifRepare为true,则认为算法已找到该异常点正确的空间位置坐标,剩下的1-a比例的异常点对象则被认为是传感器编号记录错误,重复步骤4,直到所有1-a比例的异常点对象的异常点被修复;a为确认异常点被修复的比例阈值;
步骤6.4.2:若被修复的比例不足a,则认为算法找到的异常点空间位置仍然有误,返回步骤5,对每条轨迹中的ID_BCK和ID_FWD中的传感器重新赋权重,然后重复步骤6.1-6.4,直到被正确修复的异常点对象比例大于a,剩余没有被正确修复的异常点对象则仍然采用步骤4的方法进行修复;
步骤6.4.3:若只有比例小于b的异常点对象被修复,则认为算法找到的空间位置错误,返回步骤5,在遍历过程中去掉在上次处理中ifRepare已经被标为true的异常点对象,减少其对最终加权计算的影响,直到被修复异常点对象的比例高于b;继续采取步骤6.4.2和步骤6.4.1,直到所有的异常点对象均被修复;b为否决异常点被修复的比例阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710535039.7A CN107330085B (zh) | 2017-07-03 | 2017-07-03 | 大数据环境下固定传感器错误位置的判断识别和矫正方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710535039.7A CN107330085B (zh) | 2017-07-03 | 2017-07-03 | 大数据环境下固定传感器错误位置的判断识别和矫正方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107330085A CN107330085A (zh) | 2017-11-07 |
CN107330085B true CN107330085B (zh) | 2020-07-17 |
Family
ID=60197810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710535039.7A Active CN107330085B (zh) | 2017-07-03 | 2017-07-03 | 大数据环境下固定传感器错误位置的判断识别和矫正方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107330085B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108733774B (zh) * | 2018-04-27 | 2022-04-05 | 上海世脉信息科技有限公司 | 一种基于大数据的失业人口动态监测方法 |
CN111447581B (zh) * | 2020-03-24 | 2021-08-31 | 广州启盟信息科技有限公司 | 一种基于蓝牙beacon设备的室内定位方法 |
CN111881246B (zh) * | 2020-08-06 | 2024-03-08 | 北京爱笔科技有限公司 | 一种用户移动数据的处理方法及装置 |
CN112033454B (zh) * | 2020-08-28 | 2022-07-12 | 杭州海康威视数字技术股份有限公司 | 轨迹数据处理方法和装置 |
CN116214526B (zh) * | 2023-05-09 | 2023-08-04 | 合力(天津)能源科技股份有限公司 | 一种机器人运动轨迹的补偿控制方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101772156A (zh) * | 2008-12-30 | 2010-07-07 | 阿德利亚科技(北京)有限责任公司 | 一种无线局域网设备定位方法及装置 |
CN102998684A (zh) * | 2012-11-21 | 2013-03-27 | 厦门雅迅网络股份有限公司 | 一种基于贝塞尔曲线的终端定位轨迹拟合方法 |
CN103035123A (zh) * | 2012-12-25 | 2013-04-10 | 中国科学院深圳先进技术研究院 | 一种交通轨迹数据中异常数据获取方法及系统 |
CN103218628A (zh) * | 2013-03-22 | 2013-07-24 | 中国科学技术大学 | 一种基于团块与轨迹特征的异常行为描述方法 |
CN103471589A (zh) * | 2013-09-25 | 2013-12-25 | 武汉大学 | 一种室内行人行走模式识别和轨迹追踪的方法 |
CN103605362A (zh) * | 2013-09-11 | 2014-02-26 | 天津工业大学 | 基于车辆轨迹多特征的运动模式学习及异常检测方法 |
CN103971521A (zh) * | 2014-05-19 | 2014-08-06 | 清华大学 | 道路交通异常事件实时检测方法及装置 |
CN104537052A (zh) * | 2014-12-26 | 2015-04-22 | 西南交通大学 | 基于小波分析模极大值算法的交通出行换乘点识别方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11255804B2 (en) * | 2014-12-01 | 2022-02-22 | Wts Llc | Method of calculating pathogen inactivation for a fluid heating system |
-
2017
- 2017-07-03 CN CN201710535039.7A patent/CN107330085B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101772156A (zh) * | 2008-12-30 | 2010-07-07 | 阿德利亚科技(北京)有限责任公司 | 一种无线局域网设备定位方法及装置 |
CN102998684A (zh) * | 2012-11-21 | 2013-03-27 | 厦门雅迅网络股份有限公司 | 一种基于贝塞尔曲线的终端定位轨迹拟合方法 |
CN103035123A (zh) * | 2012-12-25 | 2013-04-10 | 中国科学院深圳先进技术研究院 | 一种交通轨迹数据中异常数据获取方法及系统 |
CN103218628A (zh) * | 2013-03-22 | 2013-07-24 | 中国科学技术大学 | 一种基于团块与轨迹特征的异常行为描述方法 |
CN103605362A (zh) * | 2013-09-11 | 2014-02-26 | 天津工业大学 | 基于车辆轨迹多特征的运动模式学习及异常检测方法 |
CN103471589A (zh) * | 2013-09-25 | 2013-12-25 | 武汉大学 | 一种室内行人行走模式识别和轨迹追踪的方法 |
CN103971521A (zh) * | 2014-05-19 | 2014-08-06 | 清华大学 | 道路交通异常事件实时检测方法及装置 |
CN104537052A (zh) * | 2014-12-26 | 2015-04-22 | 西南交通大学 | 基于小波分析模极大值算法的交通出行换乘点识别方法 |
Non-Patent Citations (1)
Title |
---|
移动对象轨迹异常和关联模式的挖掘;张海涛;《中国优秀硕士学位论文全文数据库信息科技辑》;20150115(第1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107330085A (zh) | 2017-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107330085B (zh) | 大数据环境下固定传感器错误位置的判断识别和矫正方法 | |
Huang et al. | Transport mode detection based on mobile phone network data: A systematic review | |
Liu et al. | Annotating mobile phone location data with activity purposes using machine learning algorithms | |
CN109215347A (zh) | 一种基于众包轨迹数据的交通数据质量控制方法 | |
Michau et al. | Bluetooth data in an urban context: Retrieving vehicle trajectories | |
CN110213724B (zh) | 一种伪基站运动轨迹的识别方法 | |
CN108271157B (zh) | 一种伪基站识别方法及装置 | |
CN106997666A (zh) | 一种利用手机信令数据位置切换获取交通流速度的方法 | |
CN106982413B (zh) | 一种区域客流趋势的预测方法及装置 | |
CN111259444B (zh) | 一种融合隐私保护的轨迹数据标签聚类方法 | |
CN108694237A (zh) | 处理车辆位置数据的方法、设备、可视化系统和用户终端 | |
CN110460962B (zh) | 轨道交通用户识别方法和装置 | |
CN112770265B (zh) | 一种行人身份信息获取方法、系统、服务器和存储介质 | |
CN111510859A (zh) | 一种用户轨迹定位方法、系统、服务器和存储介质 | |
CN105575155A (zh) | 用于确定车辆行驶信息的方法和设备 | |
CN111222381A (zh) | 用户出行方式识别方法、装置、电子设备及存储介质 | |
CN112149763A (zh) | 一种利用众包概念提高路面异常检测的方法及装置 | |
CN112734956A (zh) | 一种etc门架确定的方法、装置及存储介质 | |
CN106776902A (zh) | 路径轨迹的分析方法及装置 | |
Amirat et al. | MyRoute: A Graph-Dependency Based Model for Real-Time Route Prediction. | |
CN109951809B (zh) | 一种用户状态提醒方法、装置及设备 | |
CN112566043B (zh) | Mac地址的识别方法和装置、存储介质及电子设备 | |
CN107241693B (zh) | 一种大数据环境下无坐标传感器位置确定方法 | |
CN113887518A (zh) | 一种行为检测的方法、装置、电子设备及存储介质 | |
JP2016048529A (ja) | 携帯端末を所持したユーザの滞在判定が可能な装置、プログラム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |