基于北斗卫星的车辆监控数据挖掘与分析
2022-06-10唐天琪
唐天琪,谈 帅
(江苏省测绘研究所,江苏 南京 210013)
0 引 言
与时间、空间相关的数据呈现出“爆炸式”增长的趋势,时空大数据时代已经来临[1]。基于各种测量传感网络来感知人类个体和群体与自然环境和社会环境关系的泛在测绘所产生的位置大数据、时空轨迹数据等实时大数据是大数据研究的重要组成部分。《智慧城市时空大数据平台建设技术大纲(2019版)》中提到“要利用空、天、地一体化对地观测传感网实时获取的基础地理信息数据和依托专业传感器感知的、可共享的行业专题实时数据”。
江苏省测绘研究所在2017年、2018年的基础测绘项目中已对时空大数据中历史与现状基础地理信息数据、历史与现状公共专题数据、空间规划数据开展了研究,在时空大数据的汇聚整合、存储管理、分析挖掘与可视化方面具有一定的技术基础,但缺少对智能感知的实时数据的研究。
2020年6月23日,北斗三号组网部署的最后一颗卫星发射成功标志着北斗全球系统星座部署圆满完成[2],我国全球卫星导航服务提升到一个新的高度。目前,国内学者针对轨迹数据研究较为丰富,根据用户类型划分,如出租车[3]、公交车[4]、个人[5]等,研究出行规律和安全性分析;按照轨迹数据获取、提取、可视化等步骤[6-8],探索道路提取、数据压缩、行为识别等技术。
但是面向北斗卫星开展的研究相对较少[9-11],为此,本文以北斗车辆监控数据为切入点,围绕实时时空大数据的特点进行分析与挖掘,探索接入、处理、输出等各个环节,研究WebSocket传输协议,设计通信方案,以车辆定位监控为场景,搭建地理围栏对异常车辆情况进行报警,开展行程分析和聚合分析。在促进智慧城市时空信息云平台功能升级完善的基础上,为智慧城市时空基础设施的全面应用积累经验,为江苏全省新型基础测绘、政府部门时空大数据及地理信息应用提供技术支持。
1 车辆监控数据处理
1.1 数据源情况
本文采用的数据源为江苏北斗卫星应用产业研究院有限公司提供的2016年部分北斗车辆监控数据和视频数据,其中车辆监控数据记录19 993 003条,约300 G。数据结构详如表1-表2所示。
表1 Vehicle数据结构
表2 Vehicle-second数据结构
1.2 处理难点及流程
1.2.1 处理难点
车辆监控数据具有数据体量大、结构复杂的特点,尤其是没有经过处理的数据价值密度相对较低,用户感兴趣的往往只是某些特定空间要素和属性信息,因此,数据处理的难点表现在以下3个方面:
(1)数据异构问题
即使为同一类传感器,其物理、产品特性也有较大差别,导致各个传感器件采集的数据拥有不同类型、不同时效、不同数据结构,物联网多模式并存使数据难以得到统一,为实时处理带来困难。
(2)对指标展开增量计算
对于计数、求和等简单指标来说,通过查询结果合并即可,但是,对于相对复杂的指标,如涉及到长周期时间窗口或热点数据维度等,需要进行多次计算,显著增加了计算的开销。
(3)资产跟踪管理问题
通过地理信息技术对车辆等资产进行跟踪管理,及时向目标传达指定时间及地点,如向车辆传达指定的路线信息和空间限制信息,从而形成车辆管理网络,车辆监管人员及时发现车辆偏离、进入限制区域等异常情况,并对需求时间段内车辆行驶情况进行统计,为车辆管理决策提供依据。
1.2.2 处理流程
结合现阶段大数据技术发展和使用情况来看,已经能够一定程度上实现大数据处理,一种是以Hadoop为代表的批量大数据处理技术,该技术首先将数据信息汇总成批进行批量预处理,再将处理后的数据传输并保存至分析结果库,以支持实时查询服务,但是该技术不能给予最新的数据和信息进行查询,存在一定的迟滞。另一种是流式大数据处理技术,以Storm、Spark为代表,具有较高时效性,能够实现对即时性数据的处理与反馈。此外,若是在实际计算中,使用粗放的调度策略,会导致系统内存的大量浪费。基于这样的情况,必须使用能够对进度进行实时感知的融合存储策略,优化流式大数据实时处理的内存使用效率。
为此,本文结合上述优势提出针对性解决方案,包括基于不同情况下构建输入连接器、实时地理信息数据处理分析、输出连接器配置以及车辆定位监控场景下地理围栏应用等(图1)。既扩展了适用于车载GPS设备以及大数据支持的连接器,又针对GIS事件实时数据流有较好的空间分析能力。
1.3 轨迹数据处理
1.3.1 轨迹分段
车辆轨迹数据具有长期性,局部时间连续但整体时间不连续的突出特征,如图2所示,如果将相隔时间较长的两个定位点串接在一起形成的轨迹较为突兀。
为此,本文分析车辆轨迹数据时间轴,发现对于一般车辆来说,把轨迹分段时间间隔值设置为10 min的效果较好(分段时间间隔值指的是相邻定位点时间间隔在10 min内,则认为该车辆在连续行驶)。对于一些车辆本身定位点间隔较长的情况,可以根据需要把轨迹分段时间间隔值设置为30 min或1 h,这样基本上避免了简单地串接起两段轨迹造成的轨迹失真现象。
1.3.2 轨迹漂移
(1)去除停车期间车辆定位点团状现象
车辆停车期间,由于GPS信号一直处于接收状态,出现由GPS信号解析得到的同一个定位点会在车辆停车点附近随机分布的现象(图3)。经过分析对比发现,形成团状现象的定位点基本上在停车点周边10 m范围内,去除距离在10 m内的相邻点后,这种现象基本上得以避免。
(2)去除定位漂移造成的轨迹尖角现象
受车辆GPS信号接收的影响,车辆定位点会出现忽然漂移较远再回到道路附近的现象。对此,本文将明显漂移的定位点看作噪点,进行去除。如图4所示,此类漂移点常常和前后定位点构成锐角,借助Python的Numpy库,按照时间序列读取车辆轨迹数据,分析连续三点是否构成锐角,从而决定是否去除连续三点中的中间点。
(3)区别处理车辆转弯掉头和定位漂移现象
构成锐角的情况分为2种:① 车辆转弯或掉头处的点与其相邻的点;② 定位漂移和其相邻点,前者保留而后者要去除。本文对车辆转弯掉头处多次分析后发现,车辆转弯处构成的锐角一般不超过60°,虽然掉头构成的锐角和漂移点的锐角无法通过角度来区别,但通过距离可以区别,掉头处的点一般在10 m之外30 m之内,而漂移点常常是在30 m之外。为此,通过角度和距离的综合分析,对定位点进行去留的操作后,如图5所示,异常点出现频率大大降低。
1.4 数据同构处理
即使使用相同的适配器,仍然不能保证接入的数据结构完全一致,最常见的问题是相同结构数据存在不同字段名称。利用字段映射方法,建立字段的一一对应关系,把不同的数据结构完成数据同构化,保证后续数据流处理进程的可靠性(图6)。
2 车辆监控数据接入
2.1 通信方案
本文采用WebSocket通信方案进行实时数据的分发与处理,具体方案分为3步走(图7):① 构建WebSocket服务器来接收车辆终端的实时数据;② 实时处理服务器与WebSocket服务器建立Web Socket通信,获取车辆的位置等信息,进行实时分析处理;③ 通过Web服务器把处理后的信息发布出来,提供给终端用户使用。
2.2 WebSocket服务器设计
当数据正常接入时,需要完成4个操作:① 识别用户发送的连接请求;② 回复请求报文完成握手;③ 建立连接并检查;④ 推送最新空间位置信息到客户端。
当出现异常情况,需要断开连接时,涉及2个操作:① 主动放弃连接,释放资源;② 识别主动申请关闭连接的请求并关闭连接。为此,本文将WebSocket服务器整体功能归纳为请求处理、数据读取、数据发送、业务处理4个部分。
3 基于地理围栏的车辆监控管理
3.1 搭建地理围栏目的
地理围栏是一种新的地理信息服务理念和模式,是具有时间和地理双属性的模型。空间地理边界难以通过文字指令和语言传达准确,但将限制区域以闭合多边形的方式绘制在地图上则直观准确得多,故将限制区域以闭合图形方式在电子地图上标记出来,并设置限制区域生效的时间段信息,形成具有时空限制条件的逻辑围栏。将要观测监控的要素信息与地理围栏进行关联,可以为特定要素指派或匹配相应的地理围栏,直观地对要素进行分类管理。
动态设置车辆规则是建立属性监控和空间围栏监控的过程,本文在预创建服务流程的基础上,动态添加车辆数据管理规则。
3.2 围栏创建与管理
3.2.1 预创建服务流程
一个基本的车辆规则创建流程如图8所示,满足定义的车辆数据从多个输入控件流入(图中所示为kafka-json-in、websocket-json-in),经过初步字段映射(FieldMapper),将多种不同结构的数据处理为标准定义的数据汇总至数据字段处理器(dataHandler)组件中,经由多个输出组件输出。图层输出(feature)组件负责将数据存入图层中,提供历史轨迹的查询;流服务输出(stream-service-out)组件输出动态的数据流,用于在地图上展示车辆实时位置和相关信息;Websocket外部json输出(websocket-external-json-out)组件以json的格式通过websocket客户端向车辆系统的服务端推送数据,用作车辆的统计展示。
3.2.2 围栏操作
将特定区域范围或某点指定半径范围的缓冲区设置为地理围栏,当车辆驶入或驶离该区域时触发报警事件(表3)。在设置时间段内,车辆对象在电子地图上移动时,其关联的地理围栏发生拓扑关系变化的情况。如目标对象进入地理围栏,触发“进入”事件;目标对象离开地理围栏,触发“离开”事件;目标对象位置信息消失,则触发“消失”事件。当事件被触发,则创建一条事件信息记录,可在系统一系列数据分析、展示功能下,进行事件信息存储、统计、分析、展示等处理。
表3 地理事件触发
3.2.3 车辆数据规则动态指定
车辆规则的动态指定,即将车辆与规则的关系应用到了每一条流经数据字段处理器组件的车辆数据上。在车辆规则动态创建的过程中,数据字段处理器组件起到承上启下的重要作用,可以通过地理事件处理器的二次开发来完成,其关键作用在于通过RPC远程调用车辆系统的API查询所有被系统管理的车辆数据,补全每条通过组件的数据缺失的关键字段信息,包括车辆所属单位(groupid)、车辆应用的规则id(ruleid)、报警方式(alarmmode)、报警邮件地址(email)、报警联系电话(tel)以及围栏标记(geofence)的字段信息,后续可根据需要扩展更多字段。
4 数据分析
4.1 行程分析
本次分析采用261万个轨迹点样例数据,分析步骤为(图9):① 数据清洗:经分析发现,数据存在异常偏差点,因此,将远离道路的偏差点认为是噪点,对道路数据进行缓冲区分析,剔除不在缓冲区内的轨迹点;② 获得初始行程:将轨迹点按照日期分成不同的子集,按时间顺序依次连接,形成每日的初始行程;③ 切割初始行程:本次实验每日行程切割间隔设置为0.5 h,如果时间相邻的两点时间间隔在0.5 h以上,则进行分割,同时剔除距离少于1 km的行程;④ 连接隔天行程:依据当天的第一个行程开始时间与前一天最后一个行程的结束时间,如果两个时间间隔在15 min内,则连接这两个行程。
经过上述步骤,2 619 501条轨迹记录共形成2 885条行程。行程主要集中在华北、华东和华南地区(图10)。行程平均长度为15.5 km,最短行程1 km(程序限制),最长139.9 km。所有行程平均车速为33.5 km/h,最低平均车速为0.6 km/h,最高平均车速为65.9 km/h。
4.2 聚合分析
通过对轨迹数据进行预处理,去除噪音,获取起讫点数据,将数据存储在Elasticsearch中,构建空间索引,提供分析聚合接口,前端调用聚合接口并进行可视化,热力图结果如图11所示,颜色越亮(橘黄色)的地方表明聚集程度越高,从可视化结果来看,本次分析的轨迹数据主要分布在华东地区,以南京市内居多。在实际应用中可以直观形象地展示高人流量聚集区域,如景区、服务区等,提前规划调整出行路线,有效躲避拥挤。
此外,为了丰富可视化效果,利用有颜色的线条表示轨迹信息。针对数据量较大的情况,设置阈值进行聚类,将具有相近特征的轨迹数据进行合并展示,如图12所示,效果与热力图类似,高亮的地方表明轨迹数据较多,在实际应用中可用于研究个人行为特征、旅游出行线路喜爱度等。
5 结 语
大数据时代的到来,对数据分析与挖掘提出较高要求,尤其是针对实时大数据的分析需求日益增长。本文以北斗车辆监控数据作为切入点,研究数据接入、处理、输出的各个环节,解决数据预处理中轨迹分段、轨迹漂移的问题,引入地理围栏技术参与车辆监控,对围栏搭建进行深入研究,并开展行程分析和聚合分析,丰富数据可视化展示效果。未来将进一步提升计算能力,增加可视化展示方式。