CN114116787B - 一种多粒度时空轨迹数据表示方法和查询方法 - Google Patents

一种多粒度时空轨迹数据表示方法和查询方法 Download PDF

Info

Publication number
CN114116787B
CN114116787B CN202111511205.2A CN202111511205A CN114116787B CN 114116787 B CN114116787 B CN 114116787B CN 202111511205 A CN202111511205 A CN 202111511205A CN 114116787 B CN114116787 B CN 114116787B
Authority
CN
China
Prior art keywords
time
track
space
query
tree
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
Application number
CN202111511205.2A
Other languages
English (en)
Other versions
CN114116787A (zh
Inventor
陈荦
曹竞之
熊伟
杨岸然
贾庆仁
彭双
欧阳雪
杜春
马梦宇
李沛秦
吴烨
李军
钟志农
陈浩
伍江江
景宁
刘泽邦
陈南宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202111511205.2A priority Critical patent/CN114116787B/zh
Publication of CN114116787A publication Critical patent/CN114116787A/zh
Application granted granted Critical
Publication of CN114116787B publication Critical patent/CN114116787B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Remote Sensing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种多粒度时空轨迹数据表示方法和查询方法。所述方法包括根据获取的预设区域内的所述轨迹数据,在每个时间点构建一个单独的k2树,并且按照时间顺序记录移动对象轨迹的相对移动;在空间维上采用每个时间点的k2树表示当前时刻移动对象的空间位置信息,在时间维上采用位图记录每条轨迹的移动状态,并采用轨迹对象标识数组表示同一位置出现的移动对象的标识,得到移动对象的时空轨迹。时空轨迹数据是多时态、多粒度的时空数据结构,在不同尺度下具有不同的形态,适合采用本方法进行表示。该方法具有良好的压缩性能,不仅能应用于涉及时空区域的相关查询中,还能作为高效的时空轨迹组织与索引结构。

Description

一种多粒度时空轨迹数据表示方法和查询方法
技术领域
本申请涉及时空数据处理技术领域,特别是涉及一种多粒度时空轨迹数据表示方法和查询方法。
背景技术
时空轨迹数据因其在时空范围内连续性和离散采样的特点,具有多尺度、多粒度以及多时态的特性。高效的时空轨迹数据组织与表示方法以及相应的处理技术一直是时空轨迹数据挖掘的热点问题,尤其是近年来随着基于LBS技术应用的广泛普及,时空轨迹数据呈现指数指数增长,具有独特的研究和应用价值。同时,时空轨迹数据因其具有结构复杂、语义丰富的特点,使得面向大规模时空轨迹数据的组织与管理成为当前轨迹数据管理的研究热点。
传统时空轨迹数据模型通常将轨迹数据作为一个整体来建立模型,往往忽略了其中所蕴含的多粒度特性,无法应对现实应用中的多样化需求,缺乏实用性。时空轨迹的多粒度特性为轨迹数据的模型建立带来了全新的挑战,同时在海量数据的背景下,高效、紧凑的表示和操作是时空轨迹数据分析处理的基本要求。
发明内容
基于此,有必要针对上述技术问题,提供一种多粒度时空轨迹数据表示方法和查询方法。
一种多粒度时空轨迹数据表示方法,所述方法包括:
获取预设区域内至少两个移动对象在预设时间段内的轨迹数据。
根据所述预设区域和所述轨迹数据,在每个时间点构建一个单独的k2树,并且按照时间顺序记录移动对象轨迹的相对移动;所述k2树的数据结构由位向量T和L组成;其中T向量用于存储k2树中除底层节点和根节点之外的节点值,L向量用于存储k2树中的底层节点值。
在空间维上采用每个时间点的k2树表示当前时刻移动对象的空间位置信息,在时间维上采用位图记录每条轨迹的移动状态,并采用轨迹对象标识数组表示同一位置出现的移动对象的标识,得到移动对象的时空轨迹;所述轨迹对象标识数组的顺序与L向量中的轨迹点位置一一对应。
在其中一个实施例中,根据所述预设区域和所述轨迹数据,在每个时间点构建一个单独的k2树,并且按照时间顺序记录移动对象轨迹的相对移动,包括:
对所述轨迹数据按照预设采样频率进行采样,得到离散轨迹数据。
对预设区域进行网格划分,将每个采样时刻的所有网格作为矩阵的元素,得到二元邻接矩阵。
根据一个采样时刻的所述离散轨迹数据和划分的网格,确定所述二元邻接矩阵中元素的值,当网格中有移动对象时矩阵中对应位置的元素值为1,当网格中没有移动对象时矩阵中对应位置的元素值为0。
在每个采样时刻根据对应的二元邻接矩阵构建一个单独的k2树,并按照时间顺序记录移动对象轨迹的相对移动;所述k2树的数据结构由位向量T和L组成,其中T向量用于存储k2树中除底层节点和根节点之外的节点值,L向量用于存储k2树中的底层节点值。
在其中一个实施例中,在空间维采用每个时间点的k2树表示当前时刻移动对象的空间位置信息,在时间维采用位图记录每条轨迹的移动状态,并采用轨迹对象标识数组表示同一位置出现的移动对象的标识,得到移动对象的时空轨迹,包括:
在空间维上采用每个采样时刻的k2树表示当前时刻下构建的网格内含有移动对象的空间位置信息。
在时间维上采用位图表示每条轨迹的相对移动。
采用轨迹对象标识数组表示同一网格内出现的移动对象的标识。
根据空间维上的每个采样时刻的k2树、时间维上每条轨迹的移动状态的位图以及轨迹对象标识数组,得到移动对象的时空轨迹。
在其中一个实施例中,所述移动对象的时空轨迹是按照时间顺序排列的,每个时间点下分为时间维和空间维,空间维SI={SIt0,SIt1,SIt2,...,SItn-1},SIta表示ta时刻空间中含有轨迹对象的区域,a为大于等于0且小于n的整数,n为时间点数量,时间维为:TI={TIt0,TIt1,TIt2,...,TItn-1},其中:TIta表示当前时刻ta较前一时刻ta-1轨迹的相对移动,当前时刻ta与前一时刻ta-1之间的时间间隔为预设采样频率。
在其中一个实施例中,所述方法还包括:
根据k2树对于空间范围的网格划分,轨迹点可以在上、下、左、右4个方向移动,当在当前时刻轨迹对象较上一时刻无位置变化时,则设置当前时刻该条轨迹的位图设为空。
将移动对象E在上、下、左、右4个方向的移动情况用位图表示,得到上、下、左、右4个方向的轨迹的位图。
根据移动对象E的预设初始位置和上、下、左、右4个方向的轨迹的位图,得到则移动对象E在时间点ti的绝对位置;移动对象E在时间点ti的绝对位置计算公式为:
xi=x0+Rank1(Br,i)-Rank1(Bl,i)
yi=y0+Rank1(Bu,i)-Rank1(Bd,i)
其中:(x0,y0)为移动对象E的预设初始位置,Bu,Bd,Bl,Br分别为上、下、左、右4个方向的位图,(xi,yi)为移动对象E在时间点ti的绝对位置,i为时间点序号,Rank为位置查找函数。
将时间维上的数据结构整合为一个元组B={M,C,F},其中M为上、下、左、右4个方向的位图,C为加速Rank和Select操作计算的矩阵,F为初始时刻值,C的大小在M大小的5%~10%之间。
一种多粒度时空轨迹数据查询方法,所述方法适用于采用上述多粒度时空轨迹数据表示方法构建的数据模型进行时间点查询。
查询到时间点tq对应的空间索引SItq,得到查询结果。
当查询结果为存在时间点tq对应的空间索引SItq时,则在STtq上执行空间范围查询。
当查询结果为不存在时间点tq对应的空间索引SItq时,则找到与tq最接近且小于tq的时间点t′对应的空间索引,按照查询规则执行空间范围查询。
在其中一个实施例中,当查询结果为不存在时间点tq对应的空间索引SItq时,则找到与tq最接近且小于tq的时间点t′对应的空间索引,按照查询规则执行空间范围查询,步骤中所述查询规则包括:
设定两个区域Sexpand和Sstay,其中Sexpand将查询框向四周扩展到包含时间点tq能够到达查询区域S轨迹对象的范围,Sstay则是包含在tq仍旧在区域S内的轨迹对象。
根据两个区域Sexpand和Sstay,确定三种轨迹对象;所述三种轨迹对象为:ext表示在时间点t′不在区域S内,但是在时间点tq能够到达区域S的轨迹对象;mid表示时间点t′处于区域S内,但是在时间点tq离开区域S的轨迹对象;in表示在[t,tq]时间区间内一直位于区域S内的轨迹对象。
空间范围查询采用自上而下遍历的方式来查询一个空间点的位置信息;针对ext和mid两种轨迹对象进行时间维上的Rank查询,得出在时间点tq的空间位置,最终得到准确的结果。
一种多粒度时空轨迹数据查询方法,所述方法适用于采用上述任一种多粒度时空轨迹数据表示方法构建的数据模型进行时间范围查询。
从起始时刻开始,首次查询时间区间为[ts,tu],tu为构建的数据模型中距离ts时刻最近的后一时刻,当且仅当ts和te之间无对应时间点k2树时,tu=te
下一查询窗口为[tu+1,tq],同理,tq也为[tu+1,te]区间内tu+1时刻的下一时刻;直到查询窗口覆盖整个查询时间区域。
在各个查询窗口进行查询,得到查询结果。
上述一种多粒度时空轨迹数据表示方法和查询方法,所述方法包括根据获取的预设区域和所述轨迹数据,在每个时间点构建一个单独的k2树,并且按照时间顺序记录移动对象轨迹的相对移动;在空间维上采用每个时间点的k2树表示当前时刻移动对象的空间位置信息,在时间维上采用位图记录每条轨迹的移动状态,并采用轨迹对象标识数组表示同一位置出现的移动对象的标识,得到移动对象的时空轨迹;所述轨迹对象标识数组的顺序与L向量中的轨迹点位置一一对应。该方法具有良好的压缩性能,并且本方法不仅能够应用于涉及时空区域的相关查询中,还能作为高效的时空轨迹组织与索引结构。时空轨迹数据作为多时态、多粒度的时空数据结构,在不同尺度下具有不同的形态,非常适合采用本方法来进行表示。
附图说明
图1为多粒度轨迹模型与简单要素模型之间的对接关系;
图2为一个实施例中多粒度时空轨迹数据表示方法的流程示意图;
图3为一个实施例中k=2时16×16二元邻接矩阵所对应的k2树结构,其中(a)为16×16二元邻接矩阵,(b)为k=2所对应的k2树结构,(c)为k2树结构对应的T向量,(d)为k2树结构对应的L向量;
图4为另一个实施例中多粒度时空轨迹模型示意图;
图5为一个实施例中多粒度时空轨迹数据查询方法的流程示意图;
图6为另一个实施例中多粒度时空轨迹数据查询方法的流程示意图;
图7为另一个实施例中构建时间与占用空间大小对比,其中(a)为ADS-B,(b)为AIS;
图8为另一个实施例中时间点查询结果,其中(a)为ADS-B,(b)为AIS;
图9为另一个实施例中时间范围查询结果,其中(a)为ADS-B,(b)为AIS。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
将本发明的基于k2树设计的多粒度时空轨迹数据表示方法命名为:基于k2树的多版本时空轨迹表示方法(Multi-Versionk2Tree简称:MVK2T)。
在实际应用过程中,需要考虑与上层分析应用可视化和底层存储结构之间的有效衔接,因此,参考OpenGIS(Open Geodata Interoperation Specification,开放的地理数据互操作规范)设计本发明所提模型来提升模型的通用性和实用性。本发明参考OpenGIS提出的简单要素模型框架,以及多粒度时空对象组成结构,设计了多粒度时空轨迹数据模型,其关系如图1所示。上半部分是OpenGIS简单要素模型的构成框架,下半部分为多粒度时空轨迹模型。在多粒度时空轨迹模型中,轨迹(Trajectory)表示时空轨迹数据模型的抽象表达形式,包含基本时空属性,采用时空序列模型表示。在一些场景如旅行路线查询中轨迹会附加一些语义信息(POI信息,天气等)扩展Trajectory的语义内涵成为Trip。Trajectory由轨迹节点(Junction)和轨迹段(Segment)组成,在时空域内,两者共同构成时空轨迹序列,有实际采样得到的轨迹点SamplePoint构成。Junction轨迹节点具有起始点和终点信息的轨迹信息,采用起始点-终点模型加以表示。
在一个实施例中,如图2所示,提供了一种多粒度时空轨迹数据表示方法,该方法包括以下步骤:
步骤100:获取预设区域内至少两个移动对象在预设时间段内的轨迹数据。
具体的,轨迹数据可以为许多类型的轨迹数据,如AIS船舶数据,航空飞机的飞行轨迹数,公路交通工具运动轨迹数据,动物迁徙轨迹以及台风移动轨迹等。
步骤102:根据预设区域和轨迹数据,在每个时间点构建一个单独的k2树,并且按照时间顺序记录移动对象轨迹的相对移动;k2树的数据结构由位向量T和L组成;其中T向量用于存储k2树中除底层节点和根节点之外的节点值,L向量用于存储k2树中的底层节点值。
具体的,T向量是按照二元邻接矩阵中自上而下,自左而右的顺序对节点信息进行记录,向量中前k2个值是根节点的子节点,后面按照顺序依次排列。
对轨迹数据进行处理,将原始的经纬度坐标转换成网格坐标,根据对不同类型的轨迹数据按照不同的精度标准将预设区域进行网格划分,将得到的网格作为一个矩阵,根据网格内是否有移动对象对矩阵中对应位置的元素进行取值,得到每个时间点的二元邻接矩阵;在每个时间点根据二元邻接矩阵构建一个单独的k2树,并且按照时间顺序记录移动对象轨迹的相对移动。
在时间维的记录上,由于时空轨迹具有连续性,在时间维上位图记录的是时空轨迹的相对移动,能够减少记录空间占用。
步骤104:在空间维上采用每个时间点的k2树表示当前时刻移动对象的空间位置信息,在时间维上采用位图记录每条轨迹的移动状态,并采用轨迹对象标识数组表示同一位置出现的移动对象的标识,得到移动对象的时空轨迹;轨迹对象标识数组的顺序与L向量中的轨迹点位置一一对应。
本方法的主要思想是为每个时间点构建一个单独的k2树并且按照时间顺序记录轨迹的相对移动。具体而言,在空间维上采用k2树结构来存储每个时间点下空间内轨迹对象的位置,在时间维上则是采用位图(Bitmap)来记录每条轨迹的移动状态,包含每条轨迹的起始点和每个时间点下的位置信息。针对空间维上基于k2树结构的轨迹点记录,T向量和L向量均为位图结构。同时增加一个轨迹对象标识数组,其顺序与L向量中的轨迹点位置一一对应。
上述一种多粒度时空轨迹数据表示方法中,所述方法包括根据获取的预设区域和所述轨迹数据,在每个时间点构建一个单独的k2树,并且按照时间顺序记录移动对象轨迹的相对移动;在空间维上采用每个时间点的k2树表示当前时刻移动对象的空间位置信息,在时间维上采用位图记录每条轨迹的移动状态,并采用轨迹对象标识数组表示同一位置出现的移动对象的标识,得到移动对象的时空轨迹;所述轨迹对象标识数组的顺序与L向量中的轨迹点位置一一对应。该方法具有良好的压缩性能,并且本方法不仅能够应用于涉及时空区域的相关查询中,还能作为高效的时空轨迹组织与索引结构。时空轨迹数据作为多时态、多粒度的时空数据结构,在不同尺度下具有不同的形态,非常适合采用本方法来进行表示。
在其中一个实施例中,步骤102包括:对轨迹数据按照预设采样频率进行采样,得到离散轨迹数据;对预设区域进行网格划分,将每个采样时刻的所有网格作为矩阵的元素,得到二元邻接矩阵;根据一个采样时刻的离散轨迹数据和划分的网格,确定二元邻接矩阵中元素的值,当网格中有移动对象时矩阵中对应位置的元素值为1,当网格中没有移动对象时矩阵中对应位置的元素值为0;在每个采样时刻根据对应的二元邻接矩阵构建一个单独的k2树,并按照时间顺序记录移动对象轨迹的相对移动;k2树的数据结构由位向量T和L组成,其中T向量用于存储k2树中除底层节点和根节点之外的节点值,L向量用于存储k2树中的底层节点值。
二元邻接矩阵是矩阵内元素的值只有0或1的邻接矩阵。
因为在数据采样阶段,受自身设备精度、建筑物遮挡、导航卫星信号强度等影响,实际接收到的数据会带有一定的误差,有研究显示,在置信度为95%的情况下经纬度采样平均误差为7.8米,在一些信号较差或遮挡严重的区域甚至可以达到百米级别的误差。针对上述情况,在轨迹预处理阶段,需要对采样到的轨迹数据进行清洗。网络受限条件下的时空轨迹可采用地图匹配的方法对时空轨迹数据进行修正,自由空间条件下的时空轨迹可采用卡尔曼滤波等方式减小误差带来的影响。
k2树侧重于对原始数据的压缩表示,在有限的信息损失代价内最大限度实现数据的压缩,使得压缩后的结果能够满足内存加载。同时,还能够直接对压缩后对数据结构进行检索,从而实现高效地查询检索。k=2时16×16二元邻接矩阵所对应的k2树结构如图3所示,其中(a)为16×16二元邻接矩阵,(b)为k=2所对应的k2树结构,(c)为k2树结构对应的T向量,(d)为k2树结构对应的L向量。k2树中的节点按照从上到下,从左到右的顺序排列,第0层为根节点层,根节点的k2个子节点在第1层,由0值或1值表示。从图3可以发现,与二元邻接矩阵的稀疏性相比,k2树只记录了含1值的子节点,对于0值节点的子节点不做记录,目的在于压缩二元邻接矩阵中含有的大量0值元素,这样很好的将空间进行了压缩。
k2树可由一个二元邻接矩阵表示,对于N×N的二元邻接矩阵,k2树的高度为h=Ceiling(logkn)(Ceiling为向上取整函数),k2树中每个节点包含1比特数据:1值表示节点内部有子节点,0值表示节点内部没有子节点。从图3中可以看到,当子节点为0值时,意味着其子矩阵下均为0值,因此不再继续表示,除底层叶子节点外,k2树的每个节点均包含k2个子节点。可见,根节点和为1值的节点包含的子节点数量由k值决定。在空间点位置的表示中,我们可以通过自上而下遍历的方式来查询一个空间点的位置信息。首先,将坐标初始化为(x,y)→(0,0)。当查询到第m层节点的第r个子节点时,更新坐标信息为:
(x+((r-1)mod k)×v/km,y+(k2-r)k×v/km)
其中,n/km表示在第m层节点时边均分成了n/km份,mod为取余操作,v为轨迹数据集中轨迹点的总数。图3展示了查询空间点位置在k2树上自上而下的过程。在本发明中,由于处理对象为空间轨迹点,主要为二维信息,因此,设置k=2。
在其中一个实施例中,步骤104包括:在空间维上采用每个采样时刻的k2树表示当前时刻下构建的网格内含有移动对象的空间位置信息;在时间维上采用位图表示每条轨迹的相对移动;采用轨迹对象标识数组表示同一网格内出现的移动对象的标识;根据空间维上的每个采样时刻的k2树、时间维上每条轨迹的移动状态的位图以及轨迹对象标识数组,得到移动对象的时空轨迹。
在其中一个实施例中,步骤104中移动对象的时空轨迹是按照时间顺序排列的,每个时间点下分为时间维和空间维,空间维SI={SIt0,SIt1,SIt2,...,SItn-1},SIta表示ta时刻空间中含有轨迹对象的区域,a为大于等于0且小于n的整数,n为时间点数量,时间维为:TI={TIt0,TIt1,TIt2,...,TItn-1},其中:TIta表示当前时刻ta较前一时刻ta-1轨迹的相对移动,当前时刻ta与前一时刻ta-1之间的时间间隔为预设采样频率。移动对象的时空轨迹的数据模型如图4所示。
针对位图结构的特点,在查询上能够采用Rank和Select两种操作。具体含义为:Rankc(B,p)表示在位图B中,到位置p时值比特c出现的次数,而Selectc(B,i)则表示第i次比特c出现在位图B中的位置。在本发明中的操作Rank1(L,i)统计L向量中前i位里面轨迹对象的数量,操作Select1(L,j)返回第j个轨迹对象在L向量上的位置。
在其中一个实施例中,本方法还包括:根据k2树对于空间范围的网格划分,轨迹点可以在上、下、左、右4个方向移动,当在当前时刻轨迹对象较上一时刻无位置变化时,则设置当前时刻该条轨迹的位图设为空;将移动对象E在上、下、左、右4个方向的移动情况用位图表示,得到上、下、左、右4个方向的轨迹的位图;根据移动对象E的预设初始位置和上、下、左、右4个方向的轨迹的位图,得到则移动对象E在时间点ti的绝对位置;移动对象E在时间点ti的绝对位置计算公式为:
xi=x0+Rank1(Br,i)-Rank1(Bl,i)
yi=y0+Rank1(Bu,i)-Rank1(Bd,i)
其中:(x0,y0)为移动对象E的预设初始位置,Bu,Bd,Bl,Br分别为上、下、左、右4个方向的位图,(xi,yi)为移动对象E在时间点ti的绝对位置,i为时间点序号,Rank为位置查找函数。
将时间维上的数据结构整合为一个元组B={M,C,F},其中M为上、下、左、右4个方向的位图,C为加速Rank和Select操作计算的矩阵,F为初始时刻值,C的大小在M大小的5%~10%之间。
在一个是实施例中,如图5所示,提供了一种多粒度时空轨迹数据查询方法,方法适用于采用上述多粒度时空轨迹数据表示方法构建的数据模型进行时间点查询。
步骤500:查询到时间点tq对应的空间索引SItq,得到查询结果。
步骤502:当查询结果为存在时间点tq对应的空间索引SItq时,则在STtq上执行空间范围查询。
步骤504:当查询结果为不存在时间点tq对应的空间索引SItq时,则找到与tq最接近且小于tq的时间点t′对应的空间索引,按照查询规则执行空间范围查询。
具体的,时间点查询是指给定一个空间范围S和时间点t,返回在时间点t下S范围内的轨迹对象。具体定义为:给定一个轨迹集Γ(T),时间点tq,空间范围S=(latmin,lonmin,latmax,lonmax),时间点查询返回所有满足以下两个条件的轨迹对象空间位置Pi(x,y)∈Γ(T):1)Pi(x,y).t=tq;2)即:
TR_query(Γ(T),S,tq)={Pi(x,y)∈Γ(T)}
在其中一个实施例中,步骤504中的查询规则包括:设定两个区域Sexpand和Sstay,其中Sexpand将查询框向四周扩展到包含时间点tq能够到达查询区域S轨迹对象的范围,Sstay则是包含在tq仍旧在区域S内的轨迹对象;根据两个区域Sexpand和Sstay,确定三种轨迹对象;三种轨迹对象为:ext表示在时间点t′不在区域S内,但是在时间点tq能够到达区域S的轨迹对象;mid表示时间点t′处于区域S内,但是在时间点tq离开区域S的轨迹对象;in表示在[t,tq]时间区间内一直位于区域S内的轨迹对象;空间范围查询采用自上而下遍历的方式来查询一个空间点的位置信息;针对ext和mid两种轨迹对象进行时间维上的Rank查询,得出在时间点tq的空间位置,最终得到准确的结果。
在一个是实施例中,如图6所示,提供了一种多粒度时空轨迹数据查询方法,方法适用于采用上述任一种多粒度时空轨迹数据表示方法构建的数据模型进行时间范围查询。
步骤600:从起始时刻开始,首次查询时间区间为[ts,tu],tu为构建的数据模型中距离ts时刻最近的后一时刻,当且仅当ts和te之间无对应时间点k2树时,tu=te
步骤602:下一查询窗口为[tu+1,tq],同理,tq也为[tu+1,te]区间内tu+1时刻的下一时刻;直到查询窗口覆盖整个查询时间区域。
步骤604:在各个查询窗口进行查询,得到查询结果。
具体的:时间范围查询的主要思想是通过对时间范围内的多粒度时空轨迹数据表示方法构建的模型进行空间范围查询,查找出符合条件的轨迹对象。
时间范围查询是指给定一个空间范围S和时间范围R=[ts,te],返回时间范围R内在空间范围S内的出现过的轨迹对象。时间范围查询是时间点查询在时间维上的扩展,对于时间范围查询,可以返现,存在该时间范围内包含多个时间点对应的空间索引结构。因此,在这种情况下,查询被分解为一个一个时间段的查询,最终查询出的结果被合并为一个总体答案。其具体定义为:给定一个轨迹集Γ(T),时间范围R=[ts,te]以及空间范围S=(latmin,lonmin,latmax,lonmax),时间范围查询返回所有满足以下条件的轨迹对象空间位置Pti(x,y)∈Γ(T):1)2)/>即:
应该理解的是,虽然图2、图5-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、图5-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个验证实施例中,实验采用真实的轨迹数据集进行实验,轨迹数据集信息如表1所示。具体如下:
1.ADS-B:非盈利航班数据供应商TheOpenskyNetwork2提供的欧洲地区30家航空公司总计2300架飞机的飞行轨迹数据。
2.AIS:采用美国海事局自动识别系统记录的船舶轨迹数据,选取了2019年UTMZone10区域中连续一个月的数据,包含了4653条船舶的轨迹数据。
表1轨迹数据集信息一览
实验硬件环境为Ubuntu20.04LTS操作系统,E5-2620v4CPU2.10GHz,512G内存,编程语言采用C++11,GCC9.30。
(1)数据集预处理
对原始轨迹数据集进行预处理,由于实际采样过程中会出现GPS误差,在k2树中表示空间坐标的相对位置。因此,对原始数据集进行处理,将原始的经纬度坐标转换成网格坐标,根据,对不同类型的数据集按照不同的精度标准进行处理。其中,ADS-B数据为飞机在空域的飞行轨迹,网格大小设置为1000m×1000m;AIS数据为船舶在海域的航行轨迹,数据集精度设置为100m×100m。同时设置最大速度删除速度异常点,比如,船舶的速度不超过234km/h,飞机的速度不超过800km/h。
(2)实验结果与分析
1)数据模型构建
MVK2T在不同规模、不同类型上的时空轨迹数据集上的构建时间和占用空间大小如图7所示,其中(a)为ADS-B,(b)为AIS。可以发现,随着采样时间间隔的加大,在两个数据集上生成存储索引的大小呈线性降低,这是因为采样间隔的加大使得存储的轨迹数据点减少,空间占用也相应减少。相比与原始文件庞大的空间占用,生成的索引大小为原始文件大小的1/10-1/20,且随着时间间隔的加大不断减小。这使得生成文件能够直接加载到内存中进行查询,相比于在本地文件系统中的磁盘查询,在内存中进行查询性能无疑会提高许多,这也在后面时间点查询和时间范围查询实验中有显著体现。可见,本章所提方法在空间压缩方面有较大性能地提升,同时用少量存储空间存储大量的轨迹数据,也说明了MVK2T较好的可扩展性。
2)时空查询过滤
时空查询包括两种查询类型:时间点查询和时间范围两种查询,在不同类型、不同范围的时空轨迹数据集上进行实验,验证MVK2T在时空查询过滤方面的性能。
(a)时间点查询
时间点查询常常应用在实时定位、快递查询等场景中,主要查询出与查询空间范围内相交的轨迹对象。在本实验中,采用不同尺度的空间查询窗口(1%,9%,17%的数据集空间范围),利用构建好的不同采样间隔(60,90,120,150)下的MVK2T进行查询过滤,我们随机进行了2000次查询,选取查询时间的平均值作为最终的查询结果。选取经典方法MVR树进行对比,比较两者的查询性能。查询结果如图8所示,其中(a)为ADS-B(b)为AIS。
分析图8的查询结果可以发现,查询的空间尺度越大,查询耗时越高,这是因为随着查询空间范围的扩大,得到的轨迹对象也会相应的增多,查询时间也会相应的增加。同时,随着采样间隔的增大,查询时间也在不断下降,这是因为采样间隔的增大使得存储的轨迹点数量减少,这也说明了MVK2T的查询效率与查询空间内包含的空间坐标点数呈正相关关系。并且,同MVR树相比,MVK2T在查询性能方面有着明显的优越性,查询耗时大大降低。
(b)时间范围查询时间范围查询是最为常见的时空查询类型,主要查询出在给定时间范围内,与查询空间范围相交的轨迹对象。在时间点查询实验中,已经较好证明了所提方法在空间范围查询上的性能。因此,在本实验中,主要分析时间范围对于查询性能的影响。设置空间范围为9%,采用不同尺度的时间窗口(1hour,6hour,1day),利用构建好的不同采样间隔(60,90,120,150)下的MVK2T进行查询过滤。我们随机进行了2000次查询,选取查询时间的平均值作为最终的查询结果。选取经典方法MVR树进行对比,比较两者之间的查询性能。查询结果如图9所示,其中(a)为ADS-B,(b)为AIS。
分析图9所示的查询结果可以发现,查询的时间尺度越大,查询耗时越高,这是因为随着查询时间范围的扩大,得到的轨迹对象也就越多,查询时间也会相应的增加。同时,随着采样间隔的增大,查询时间也在不断下降,这是因为采样间隔的增大使得存储的轨迹点数减少,这也说明了MVK2T的查询效率与查询空间内包含的空间坐标点数呈正相关关系。并且,同MVR树相比,MVK2T在查询性能方面有着明显的优越性,查询耗时大大降低。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (7)

1.一种多粒度时空轨迹数据表示方法,其特征在于,所述方法包括:
获取预设区域内至少两个移动对象在预设时间段内的轨迹数据;
根据所述预设区域和所述轨迹数据,在每个时间点构建一个单独的k2树,并且按照时间顺序记录移动对象轨迹的相对移动;所述k2树的数据结构由位向量T和L组成;其中T向量用于存储k2树中除底层节点和根节点之外的节点值,L向量用于存储k2树中的底层节点值;
在空间维上采用每个时间点的k2树表示当前时刻移动对象的空间位置信息,在时间维上采用位图记录每条轨迹的移动状态,并采用轨迹对象标识数组表示同一位置出现的移动对象的标识,得到移动对象的时空轨迹;所述轨迹对象标识数组的顺序与L向量中的轨迹点位置一一对应;
其中,根据所述预设区域和所述轨迹数据,在每个时间点构建一个单独的k2树,并且按照时间顺序记录移动对象轨迹的相对移动,包括:
对所述轨迹数据按照预设采样频率进行采样,得到离散轨迹数据;
对预设区域进行网格划分,将每个采样时刻的所有网格作为矩阵的元素,得到二元邻接矩阵;
根据一个采样时刻的所述离散轨迹数据和划分的网格,确定所述二元邻接矩阵中元素的值,当网格中有移动对象时矩阵中对应位置的元素值为1,当网格中没有移动对象时矩阵中对应位置的元素值为0;
在每个采样时刻根据对应的二元邻接矩阵构建一个单独的k2树,并按照时间顺序记录移动对象轨迹的相对移动;所述k2树的数据结构由位向量T和L组成,其中T向量用于存储k2树中除底层节点和根节点之外的节点值,L向量用于存储k2树中的底层节点值。
2.根据权利要求1所述的方法,其特征在于,在空间维采用每个时间点的k2树表示当前时刻移动对象的空间位置信息,在时间维采用位图记录每条轨迹的移动状态,并采用轨迹对象标识数组表示同一位置出现的移动对象的标识,得到移动对象的时空轨迹,包括:
在空间维上采用每个采样时刻的k2树表示当前时刻下构建的网格内含有移动对象的空间位置信息;
在时间维上采用位图表示每条轨迹的相对移动;
采用轨迹对象标识数组表示同一网格内出现的移动对象的标识;
根据空间维上的每个采样时刻的k2树、时间维上每条轨迹的移动状态的位图以及轨迹对象标识数组,得到移动对象的时空轨迹。
3.根据权利要求1所述的方法,其特征在于,所述移动对象的时空轨迹是按照时间顺序排列的,每个时间点下分为时间维和空间维,空间维SI={SIt0,SIt1,SIt2,...,SItn-1},SIta表示ta时刻空间中含有轨迹对象的区域,a为大于等于0且小于n的整数,n为时间点数量,时间维为:TI={TIt0,TIt1,TIt2,...,TItn-1},其中:TIta表示当前时刻ta较前一时刻ta-1轨迹的相对移动,当前时刻ta与前一时刻ta-1之间的时间间隔为预设采样频率。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
根据k2树对于空间范围的网格划分,轨迹点可以在上、下、左、右4个方向移动,当在当前时刻轨迹对象较上一时刻无位置变化时,则设置当前时刻该条轨迹的位图设为空;
将移动对象E在上、下、左、右4个方向的移动情况用位图表示,得到上、下、左、右4个方向的轨迹的位图;
根据移动对象E的预设初始位置和上、下、左、右4个方向的轨迹的位图,得到则移动对象E在时间点ti的绝对位置;移动对象E在时间点ti的绝对位置计算公式为:
xi=x0+Rank1(Br,i)-Rank1(Bl,i)
yi=y0+Rank1(Bu,i)-Rank1(Bd,i)
其中:(x0,y0)为移动对象E的预设初始位置,Bu,Bd,Bl,Br分别为上、下、左、右4个方向的位图,(xi,yi)为移动对象E在时间点ti的绝对位置,i为时间点序号,Rank为位置查找函数;
将时间维上的数据结构整合为一个元组B={M,C,F},其中M为上、下、左、右4个方向的位图,C为加速Rank和Select操作计算的矩阵,F为初始时刻值,C的大小在M大小的5%~10%之间。
5.一种多粒度时空轨迹数据查询方法,其特征在于,所述方法适用于采用如权利要求4所述的多粒度时空轨迹数据表示方法构建的数据模型进行时间点查询;
查询到时间点tq对应的空间索引SItq,得到查询结果;
当查询结果为存在时间点tq对应的空间索引SItq时,则在STtq上执行空间范围查询;
当查询结果为不存在时间点tq对应的空间索引SItq时,则找到与tq最接近且小于tq的时间点t′对应的空间索引,按照查询规则执行空间范围查询。
6.根据权利要求5所述的方法,其特征在于,当查询结果为不存在时间点tq对应的空间索引SItq时,则找到与tq最接近且小于tq的时间点t′对应的空间索引,按照查询规则执行空间范围查询,步骤中所述查询规则包括:
设定两个区域Sexpand和Sstay,其中Sexpand将查询框向四周扩展到包含时间点tq能够到达查询区域S轨迹对象的范围,Sstay则是包含在tq仍旧在区域S内的轨迹对象;
根据两个区域Sexpand和Sstay,确定三种轨迹对象;所述三种轨迹对象为:ext表示在时间点t′不在区域S内,但是在时间点tq能够到达区域S的轨迹对象;mid表示时间点t′处于区域S内,但是在时间点tq离开区域S的轨迹对象;in表示在[t,tq]时间区间内一直位于区域S内的轨迹对象;
空间范围查询采用自上而下遍历的方式来查询一个空间点的位置信息;针对ext和mid两种轨迹对象进行时间维上的Rank查询,得出在时间点tq的空间位置,最终得到准确的结果。
7.一种多粒度时空轨迹数据查询方法,其特征在于,所述方法适用于采用如权利要求1-4任一项所述的多粒度时空轨迹数据表示方法构建的数据模型进行时间范围查询;所述时间范围查询是指给定一个空间范围S和时间范围R=[ts,te],返回时间范围R内在空间范围S内的出现过的轨迹对象;
从起始时刻开始,首次查询时间区间为[ts,tu],tu为构建的数据模型中距离ts时刻最近的后一时刻,当且仅当ts和te之间无对应时间点k2树时,tu=te
下一查询窗口为[tu+1,tq],同理,tq也为[tu+1,te]区间内tu+1时刻的下一时刻;直到查询窗口覆盖整个查询时间区域;
在各个查询窗口进行查询,得到查询结果。
CN202111511205.2A 2021-12-03 2021-12-03 一种多粒度时空轨迹数据表示方法和查询方法 Active CN114116787B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111511205.2A CN114116787B (zh) 2021-12-03 2021-12-03 一种多粒度时空轨迹数据表示方法和查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111511205.2A CN114116787B (zh) 2021-12-03 2021-12-03 一种多粒度时空轨迹数据表示方法和查询方法

Publications (2)

Publication Number Publication Date
CN114116787A CN114116787A (zh) 2022-03-01
CN114116787B true CN114116787B (zh) 2024-03-26

Family

ID=80364263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111511205.2A Active CN114116787B (zh) 2021-12-03 2021-12-03 一种多粒度时空轨迹数据表示方法和查询方法

Country Status (1)

Country Link
CN (1) CN114116787B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114357322B (zh) * 2022-03-16 2022-06-14 交通运输部规划研究院 一种基于时空分解的船舶轨迹异常检测方法
CN117591520A (zh) * 2024-01-19 2024-02-23 深圳市名通科技股份有限公司 基于位图组的时空大数据计算方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111046303A (zh) * 2019-11-20 2020-04-21 北京文安智能技术股份有限公司 一种热点区域的自动检测方法、装置及系统
CN113010567A (zh) * 2021-02-07 2021-06-22 中电科卫星导航运营服务有限公司 一种基于bds/gps定位数据时空特征的农机作业面积计算方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3007081B1 (en) * 2014-10-09 2019-03-27 CRFS Limited Processing spatiotemporal data records

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111046303A (zh) * 2019-11-20 2020-04-21 北京文安智能技术股份有限公司 一种热点区域的自动检测方法、装置及系统
CN113010567A (zh) * 2021-02-07 2021-06-22 中电科卫星导航运营服务有限公司 一种基于bds/gps定位数据时空特征的农机作业面积计算方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
适应动态需求的卫星观测任务星上连续自主规划方法;彭双;中国博士学位论文全文数据库 工程科技II辑;全文 *

Also Published As

Publication number Publication date
CN114116787A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
CN114116787B (zh) 一种多粒度时空轨迹数据表示方法和查询方法
Su et al. A survey of trajectory distance measures and performance evaluation
Wang et al. A visual reasoning approach for data-driven transport assessment on urban roads
US9727976B1 (en) Geospatial-temporal semantic graph representations of trajectories from remote sensing and geolocation data
Li et al. Robust inferences of travel paths from GPS trajectories
CN112181991B (zh) 基于快速构建kd树的地球模拟系统网格重映射方法
CN111581454A (zh) 基于深度图压缩算法的并行查询表现预测系统及方法
Lin et al. Noise filtering, trajectory compression and trajectory segmentation on GPS data
CN110083599B (zh) 一种基于时空插值的车辆轨迹数据索引方法
Huang et al. Frequent pattern-based map-matching on low sampling rate trajectories
Bose et al. A real time prediction methodology for hurricane evolution using LSTM recurrent neural networks
Abbasifard et al. Efficient indexing for past and current position of moving objects on road networks
JP3984134B2 (ja) 移動軌跡データ検索用インデックス生成装置及びその方法と、移動軌跡データ検索装置及びその方法と、移動軌跡データ検索用インデックス生成プログラム及びそのプログラムを記録した記録媒体と、移動軌跡データ検索プログラム及びそのプログラムを記録した記録媒体
Cho et al. A basis of spatial big data analysis with map-matching system
CN112633389B (zh) 一种基于mdl和速度方向的飓风运动轨迹趋势计算方法
Jiang et al. A feature based method for trajectory dataset segmentation and profiling
Pfoser et al. Trajectory indexing using movement constraints
Wandelt et al. Ads-bi: Compressed indexing of ads-b data
CN116304213B (zh) 基于图神经网络的rdf图数据库子图匹配查询优化方法
Rashid et al. Challenging issues of spatio-temporal data mining
CN114117260B (zh) 时空轨迹索引与查询处理方法、装置、设备及介质
Li et al. gsstSIM: A high‐performance and synchronized similarity analysis method of spatiotemporal trajectory based on grid model representation
Li et al. The parallel and precision adaptive method of marine lane extraction based on QuadTree
CN109902139B (zh) 一种基于r树的轨迹数据压缩方法
US9436715B2 (en) Data management apparatus and data management method

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