一种基于时空数据库的轨迹多维度分布式压缩方法与流程

文档序号:29625822发布日期:2022-04-13 14:24阅读:109来源:国知局
一种基于时空数据库的轨迹多维度分布式压缩方法与流程

1.本发明涉及数据压缩技术领域,尤其是一种基于时空数据库的轨迹多维度分布式压缩方法。


背景技术:

2.随着北斗全球卫星导航系统及5g通信技术的在各行各业的普及,无数终端产生了海量的北斗时空轨迹数据。
3.在处理轨迹数据时,传统的douglas-peucker算法对每条轨迹的首末点虚连接一条直线,求其他所有轨迹点与这条直线的距离,并找到最大距离值d
max
,用d
max
与限差d相比:若 d
max
<d,这条轨迹上的中间点全部舍掉;若d
max
>d,保留d
max
对应的坐标点,并以该点为界,把轨迹分为两部分,分别对这两部分重复使用此方法。
4.douglas-peucker算法用来处理时空轨迹数据存在两个问题:一是由于其仅仅以各个轨迹点到起始点连线的垂直欧式距离作为判断是否舍弃轨迹点的唯一判断标准,可能会去除掉一些具有明显轨迹特征的轨迹语义点,进而影响后续轨迹数据挖掘的相关效果;二是时间复杂度高,用它来直接处理海量的时空轨迹数据、或者一条具有巨量轨迹点的数据效率不太理想。
5.对于移动对象,基于时间戳的轨迹记录可以采用秒级记录,但是由于存储设备、计算能力等的限制,轨迹数据挖掘不需要如此精细的位置定位,通常需要采用轨迹压缩的方法来处理轨迹数据。


技术实现要素:

6.为了解决上述技术问题,本发明提出了基于分布式时空数据库对海量轨迹数据进行多维度的压缩,在保留原始轨迹的主要轨迹特征的前提下,大大减少了轨迹数据的存储压力、节省了存储资源,同时大大减少了针对轨迹数据挖掘的计算资源。
7.本发明的技术方案为:一种基于时空数据库的轨迹多维度分布式压缩方法,包括如下步骤:
8.步骤1、海量时空轨迹数据入库;
9.步骤2、针对同一运动物体,插入其后续轨迹点数据时对其进行实时压缩,即多行数据压缩成一行数据;
10.步骤3、当单一物体的轨迹点达到某一限定大小后,对其进行分表拆分处理,采用分布式压缩算法进行并行压缩存储。
11.进一步的,所述步骤1具体包括:
12.步骤1.1、在分布式数据库中创建分区表;
13.步骤1.2、将包含时间、经纬度、速度、方向等信息的单个轨迹点数据作为一条行数据插入到分布式时空数据库中。
14.进一步的,所述步骤2具体包括:
15.步骤2.1、保留轨迹首尾两点;
16.步骤2.2、依次计算相邻两个轨迹点之间速度差及方向角差值,如果速度差值大于阈值或者方向角差值大于阈值,则该轨迹点应当保留,记做突变点,总共有n个;
17.步骤2.3、计算完成后,所有突变点将原始轨迹切分成n+1段子轨迹;
18.步骤2.4、分别在n+1个子轨迹段中,将子轨迹首尾两个轨迹点之间连接一条直线,对于第i-1个点c
i-1
和第i个点ci之间的子轨迹段,遍历子轨迹段上其他所有点,求每个点到直线的垂直欧式距离,找到最大距离的点d,最大距离记为dmax;
19.步骤2.5、比较该距离dmax与预先定义的阈值dmax大小,如果dmax《dmax,则将该直线c
i-1ci
作为曲线段的近似,其余所有点丢弃掉,曲线段处理完毕;
20.步骤2.6、若dmax》=dmax,则使d点将曲线c
i-1ci
分为c
i-1
d和dci两段,并分别对这两段进行步骤2.4~步骤2.6步处理;
21.步骤2.7、当所有曲线都处理完毕时,依次连接各个突变点形成的折线,即为原始曲线的路径。
22.进一步的,所述步骤3,步骤3、当单一物体的轨迹点达到某一限定大小后,对其进行分表拆分处理,采用分布式压缩算法进行并行压缩存储,其中,分布式数据库对海量时空轨迹数据的压缩处理流程,具体为:
23.步骤3.1、打开分布式数据库的master节点的sql命令终端;
24.步骤3.2指定轨迹分布式表,执行轨迹压缩命令;
25.步骤3.3、将轨迹压缩命令分发到各个计算节点;
26.步骤3.4各个计算节点,批量处理存储在本节点上的海量轨迹数据。
27.5、根据权利要求1所述的一种基于时空数据库的轨迹多维度分布式压缩方法,其特征在于,进一步的,所述步骤3.4中,计算节点批量处理本节点轨迹数据流程如下:
28.步骤3.4.1、在各个分布式节点上创建轨迹压缩工作线程池;
29.步骤3.4.2、在工作线程从分布式表中读取一条待压缩的轨迹数据,利用轨迹压缩算法进行轨迹压缩;
30.步骤3.4.3、将压缩后的轨迹插入到分布式数据库中,将压缩后的工作线程重新加入到线程池中;
31.步骤3.4.4、重复步骤3.4.2-3.4.3,直到压缩完本节点所有轨迹数据。
32.有益效果:
33.1、本发明充分利用时空轨迹数据的语义特征,在保证压缩率的前提下,尽可能多的保留轨迹原始特征,轨迹点的时间、经纬度、速度、方位角等,为后续轨迹数据挖掘提供尽可能多的轨迹语义特征支撑。
34.2、本发明将时空轨迹数据压缩算法集成到时空数据库中,将海量轨迹数据分区表存入到分布式时空数据库的各个节点中,再利用分布式时空数据库高可扩展、高并发、高可用等特点,对海量时空轨迹数据进行批量分布式实时压缩,大大减少压缩时间。
附图说明
35.图1:本发明的方法流程框图;
36.图2:本发明的方法流程图示;
37.图3:分布式数据库对海量时空轨迹数据的压缩处理流程;
38.图4:本发明的计算节点批量处理本节点轨迹数据流程。
具体实施方式
39.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
40.术语定义:
41.时空数据库:可以存储管理空间数据和时间数据,提供一系列的数据类型、函数、运算符和存储过程,用于海量、多源、异构、时空数据进行高效的存储、索引、查询和分析计算。
42.分布式数据库:用计算机网络将物理上分散的多个数据库单元连接起来组成一个逻辑上统一的数据库。
43.数据分区:对于数据量很大的数据集,单机无法保存或者处理效率低下,通过对数据集的拆分,将不同的数据子集存放到不同的物理节点。
44.轨迹点数据:移动对象由在某一时间点产生的带时间、位置点等信息的数据组成。定义 pi=(ti,loni,lati,v,o)表示一个轨迹点,t表示时间(utc时间),lon表示位置点经度,lat表示位置点纬度,v表示轨迹点速度,o表示轨迹点的方向。
45.北斗时空轨迹数据:移动对象搭载的北斗终端产生的时空轨迹数据。其中lon、lat由北斗定位模块产生,t由北斗授时模块产生。
46.欧几里得距离:欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维空间中的欧氏距离就是两点之间的实际距离。
47.根据本发明的一个实施例,提出一种基于时空数据库的轨迹多维度分布式压缩方法,海量轨迹数据在入库阶段:采用实时压缩的方式将同一物体的多行数据压缩成一行数据,本发明保留原来多行轨迹数据的轨迹特征信息;采用分布式存储的形式,将海量数据均匀存储在多个物理节点上,方便之后的进一步压缩操作。具体包括如下步骤:
48.步骤1、海量时空轨迹数据入库;
49.步骤2、针对同一运动物体,插入其后续轨迹点数据时对其进行实时压缩,即多行数据压缩成一行数据;
50.步骤3、当单一物体的轨迹点达到某一限定大小后,对其进行分表拆分处理,采用分布式压缩算法进行并行压缩存储。
51.具体的,步骤1、海量时空轨迹数据入库过程如下:
52.海量轨迹数据在入库阶段:采用实时压缩的方式将同一物体的多行数据压缩成一行数据,
53.根据本发明的一个实施例,轨迹数据(比如出租车轨迹数据),每个1分钟(有时更短),会发送一次数据,包含出租车车牌号、id号、经纬度、速度等信息。入库的过程中实时压缩是指:时空数据库会对其进行多条数据合并的操作,去掉冗余数据将一辆车的多条数据
压缩成一条数据。
54.如图2所示,详细入库步骤如下:
55.步骤1.1、在分布式数据库中创建分区表;
56.步骤1.2、将包含时间、经纬度、速度、方向等信息的单个轨迹点数据作为一条行数据插入到分布式时空数据库中;
57.具体的,步骤2、针对同一运动物体,插入其后续轨迹点数据时对其进行实时压缩,即多行数据压缩成一行数据;
58.所述的入库的过程中实时压缩是指:时空数据库会对其进行多条数据合并的操作,去掉冗余数据将一辆车的多条数据压缩成一条数据。
59.根据本发明的一个实施例,例如,对于出租车轨迹数据:
60.每间隔一段时间,会收集出租车以下主要数据:
61.id号、出租车车牌号、汽车车架号、汽车型号、车辆登记人、数据上传时间、经度、维度、汽车速度、前进方向;
62.传统做法只是单纯将上述数据保存到数据库中。
63.本发明中,基于时空数据库,在上述轨迹数据入库过程中进行实时压缩,自动将相同出租车的轨迹数据进行整合压缩,多行数据压缩成一行数据;当单一物体的轨迹点达到某一限定大小后,对其进行分表拆分处理;
64.对于不同运动物体的海量时空轨迹数据,并分别存放在不同的物理节点中,均按照上述压缩方式进行处理。
65.本发明的实时压缩方法是改进了道格拉斯轨迹压缩方法,具体如下:
66.步骤2.1、保留轨迹首尾两点;
67.步骤2.2、依次计算相邻两个轨迹点之间速度差及方向角差值,如果速度差值大于阈值或者方向角差值大于阈值,则该轨迹点应当保留,记做突变点,总共有n个;
68.步骤2.3、计算完成后,所有突变点将原始轨迹切分成n+1段子轨迹;
69.步骤2.4、分别在n+1个子轨迹段中,将子轨迹首尾两个轨迹点之间连接一条直线,对于第i-1个点c
i-1
和第i个点ci之间的子轨迹段,遍历子轨迹段上其他所有点,求每个点到直线的垂直欧式距离,找到最大距离的点d,最大距离记为dmax;
70.步骤2.5、比较该距离dmax与预先定义的阈值dmax大小,如果dmax《dmax,则将该直线c
i-1ci
作为曲线段的近似,其余所有点丢弃掉,曲线段处理完毕;
71.步骤2.6、若dmax》=dmax,则使d点将曲线c
i-1ci
分为c
i-1
d和dci两段,并分别对这两段进行步骤2.4~步骤2.6步处理;
72.步骤2.7、当所有曲线都处理完毕时,依次连接各个突变点形成的折线,即为原始曲线的路径。
73.优化后的轨迹压缩算法,即保留了轨迹空间整体运行趋势,同时也保留轨迹方向变化较大及速度变化较大的重要轨迹点最大程度上保留了原始轨迹的轨迹语义。
74.可见,本发明海量轨迹数据入库时进行的冗余数据压缩,传统方案中每个出租车会将每个时间点上传的数据进行冗余入库保存,这里本发明会剔除冗余数据,将多条数据压缩成1 条;由于轨迹数据重要信息未丢弃,既保留了速度变化点,也保留了角度变化点。因此本发明的压缩是几乎无损压缩。
75.进一步,优选的,本发明在分布式时空数据库进行压缩算法下推,多节点分布式并行执行压缩算法,提高运行效率;减少了压缩时间;
76.同时,由于本发明实时压缩后,数据量减小,减少了存储压力;
77.步骤3、当单一物体的轨迹点达到某一限定大小后,对其进行分表拆分处理,采用分布式压缩算法进行并行压缩存储,具体如下:
78.如图3所示,为分布式数据库对海量时空轨迹数据的压缩处理流程:
79.步骤3.1、打开分布式数据库的master节点的sql命令终端;
80.步骤3.2指定轨迹分布式表,执行轨迹压缩命令;
81.步骤3.3、将轨迹压缩命令分发到各个计算节点;
82.步骤3.4各个计算节点,批量处理存储在本节点上的海量轨迹数据。
83.进一步的,所述步骤3.4中,计算节点批量处理本节点轨迹数据流程如下:
84.步骤3.4.1、在各个分布式节点上创建轨迹压缩工作线程池;
85.步骤3.4.2、在工作线程从分布式表中读取一条待压缩的轨迹数据,利用轨迹压缩算法进行轨迹压缩;
86.步骤3.4.3、将压缩后的轨迹插入到分布式数据库中,将压缩后的工作线程重新加入到线程池中;
87.步骤3.4.4、重复步骤3.4.2-3.4.3,直到压缩完本节点所有轨迹数据。
88.尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,且应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1