CN114357313A - 数据处理方法及设备 - Google Patents
数据处理方法及设备 Download PDFInfo
- Publication number
- CN114357313A CN114357313A CN202011066444.7A CN202011066444A CN114357313A CN 114357313 A CN114357313 A CN 114357313A CN 202011066444 A CN202011066444 A CN 202011066444A CN 114357313 A CN114357313 A CN 114357313A
- Authority
- CN
- China
- Prior art keywords
- track
- mixed
- code
- codes
- level
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 128
- 238000004364 calculation method Methods 0.000 claims abstract description 43
- 230000002123 temporal effect Effects 0.000 claims description 52
- 239000000203 mixture Substances 0.000 claims description 25
- 238000004891 communication Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 14
- 238000012216 screening Methods 0.000 claims description 9
- 238000005192 partition Methods 0.000 claims description 6
- 235000019580 granularity Nutrition 0.000 description 41
- 238000010586 diagram Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 16
- 238000013507 mapping Methods 0.000 description 14
- 230000011218 segmentation Effects 0.000 description 7
- NEBFIUZIGRTIFY-BJDJZHNGSA-N Ala-Met-Ser-Arg Chemical compound CSCC[C@H](NC(=O)[C@H](C)N)C(=O)N[C@@H](CO)C(=O)N[C@H](C(O)=O)CCCNC(N)=N NEBFIUZIGRTIFY-BJDJZHNGSA-N 0.000 description 6
- 101100182248 Caenorhabditis elegans lat-2 gene Proteins 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 6
- 101150004293 lon2 gene Proteins 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 6
- 101100182247 Caenorhabditis elegans lat-1 gene Proteins 0.000 description 4
- 101100021570 Caenorhabditis elegans lon-3 gene Proteins 0.000 description 4
- 101150061388 LON1 gene Proteins 0.000 description 4
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- -1 t2) and (lat3 Proteins 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000000691 measurement method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000005180 public health Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 230000008566 social perception Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/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
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
-
- 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
- G06F16/2228—Indexing 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- 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
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index 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/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Automation & Control Theory (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据处理方法及设备,其中,该方法包括:基于一个轨迹的轨迹点的空间位置数据和时间位置数据,根据索引数据库中预设层级的混合编码的编码规则进行编码得到各个轨迹点的混合编码,该混合编码包括轨迹点的时间信息和空间位置信息,然后基于该各个轨迹点的混合编码在索引数据库中查询该一个轨迹的相似轨迹。该索引数据库中包括多个层级的混合编码,该索引数据库中包括具有轨迹信息的混合编码,所述轨迹信息包括轨迹标识和轨迹长度。本申请能够提高轨迹查询的准确度,同时降低轨迹相似性计算的复杂度,提高相似轨迹的查询效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据处理方法及设备。
背景技术
移动互联技术的快速发展催生了大量反映个体、群体位置信息及行为状态的轨迹数据,因其具有丰富的时空位置及语义信息,被广泛应用于智能交通、城市计算、社会感知等各个领域。其中,轨迹相似性查询作为轨迹数据挖掘的基础之一,逐渐成为国内外的研究热点,并得到社会各界广泛关注与应用,如通勤模式识别、交通状况预测、异常行为探测、犯罪行为追踪、重大疫情防控等,对于城市交通、城市规划、公共卫生等具有重大的意义。
但是,现有的轨迹相似性查询方案中要么缺少轨迹的时间信息,要么相似性计算复杂度高,因此,如何在轨迹相似性查询中增加轨迹的时间信息以提高轨迹查询的准确度,同时降低轨迹相似性计算的复杂度是本领域技术人员急需解决的技术问题。
发明内容
本申请提供一种数据处理方法及设备,能够提高轨迹查询的准确度,同时降低轨迹相似性计算的复杂度,提高相似轨迹的查询效率。
第一方面,本申请提供一种数据处理方法,包括:
获取第一信息,上述第一信息包括第一轨迹的一个或多个轨迹点的空间位置数据和时间数据;
根据上述第一信息获取第一混合编码集合,上述第一混合编码集合包括上述第一信息的每个轨迹点各自的混合编码,上述混合编码为根据索引数据库中的预设层级的混合编码规则编码获得;上述混合编码包括轨迹点的时间编码和轨迹点的空间编码,上述时间编码是根据上述时间数据获得,上述空间编码是根据上述空间位置数据获得;上述索引数据库为多级索引结构,包括多个层级的混合编码,每个层级的混合编码根据其所归属的层级的混合编码进行集合划分,上述每个层级的混合编码和其所归属的层级的混合编码之间存在所索引关系,上述多个层级的混合编码中包括具有轨迹信息的混合编码,上述轨迹信息用于指示上述混合编码所属轨迹的轨迹标识和所属轨迹的轨迹长度,一个轨迹的轨迹长度为上述索引数据库中存储的轨迹标识为同一轨迹的混合编码的个数;
根据上述第一混合编码集合中的每个混合编码在上述索引数据库中按照多级索引结构的查询方法进行查询,获得第二混合编码集合,上述第二混合编码集合中的混合编码为具有轨迹信息的混合编码;上述第二混合编码集合中的混合编码映射有m个候选相似轨迹的轨迹信息,上述m为整数;
根据上述第一轨迹的轨迹长度和上述m个候选相似轨迹的轨迹信息获取N个相似轨迹,上述N为小于或等于m的整数。
本申请结合轨迹的轨迹点的时间信息和空间信息编码得到混合编码,并基于该混合编码为索引构建多层级的索引数据库,并在索引数据库的混合编码映射上述轨迹信息,在此基础上在该索引数据库中查询到候选相似轨迹,并基于候选相似轨迹计算出目标轨迹的相似轨迹,从而能够提高轨迹查询的准确度,同时降低轨迹相似性计算的复杂度,并提高相似轨迹的查询效率。
在一种可能的实施方式中,上述根据上述第一混合编码集合中的每个混合编码在上述索引数据库中按照多级索引结构的查询方法进行查询,获得第二混合编码集合,包括:
按照多级索引结构的查询方法将上述第一混合编码集合中的每个混合编码与上述索引数据库中的混合编码比较,获取上述第二混合编码集合,上述第二混合编码集合中的混合编码为上述索引数据库中与上述第一混合编码集合中的混合编码相同的混合编码,和/或上述索引数据库中与上述第一混合编码集合中的混合编码相同的混合编码对应的低层级和/或高层级混合编码。
本申请介绍查询候选相似轨迹对应的编码集合的过程,从而可以获取到候选相似轨迹,通过筛选出候选相似轨迹,然后再进一步计算轨迹之间的相似度,从而可以减少相似度的计算次数,提高计算效率。
在一种可能的实施方式中,上述第一信息还包括上述第一轨迹的属性数据,上述轨迹信息还包括上述轨迹信息指示的轨迹的属性信息,上述属性信息根据上述轨迹信息指示的轨迹的属性数据获得;
上述根据上述第一混合编码集合中的每个混合编码在上述索引数据库中按照多级索引结构的查询方法进行查询,获得第二混合编码集合,包括:
按照多级索引结构的查询方法将上述第一混合编码集合中的每个混合编码与上述索引数据库中的混合编码比较,获取第一匹配的混合编码,上述第一匹配的混合编码为上述索引数据库中与上述第一混合编码集合中的混合编码相同的混合编码,和/或上述索引数据库中与上述第一混合编码集合中的混合编码相同的混合编码对应的低层级和/或高层级混合编码;
根据上述第一匹配的混合编码获取上述第二混合编码集合,上述第二混合编码集合中的混合编码为上述第一匹配的混合编码中属性信息包含上述第一轨迹的属性信息的混合编码。
在本申请中,除了上述混合编码作为索引之外,进一步增加属性信息作为过滤信息,属性信息可以在查询相似轨迹的时候进一步过滤不必要的轨迹,从而更高效更准确地查询到匹配的相似轨迹。
在一种可能的实施方式中,上述按照多级索引结构的查询方法将上述第一混合编码集合中的每个混合编码与上述索引数据库中的混合编码比较,包括:
根据上述第一混合编码集合中的第一混合编码确定目标层级的混合编码,上述目标层级为上述预设层级归属的层级;
根据上述目标层级的混合编码进行查找,获取第一候选混合编码集;
将上述第一混合编码与上述第一候选混合编码集比较。
在本申请中通过先获取低层级的混合编码作为索引,可以提高索引的效率。
在一种可能的实施方式中,上述根据上述第一信息获取第一混合编码集合,包括:
根据上述预设层级中混合编码的空间编码的编码规则,对上述一个或多个轨迹点的空间位置数据进行编码得到上述一个或多个轨迹点各自的空间编码;
根据上述预设层级中混合编码的时间编码的编码规则,对上述一个或多个轨迹点的时间数据进行编码得到上述一个或多个轨迹点各自的时间编码;
将上述一个或多个轨迹点中每一个轨迹点的空间编码和时间编码合并得到上述每一个轨迹点的混合编码。
本申请说明混合编码的编码过程,混合编码为轨迹点的时间编码和空间编码混合而成,因此相比于现有技术只有空间编码来表示轨迹点,本申请用该混合编码来表示轨迹点更准确。
在一种可能的实施方式中,上述第一信息还包括上述第一轨迹的属性数据,上述根据上述第一信息获取第一混合编码集合,包括:
根据上述预设层级中混合编码的空间编码的编码规则,对上述一个或多个轨迹点的空间位置数据进行编码得到上述一个或多个轨迹点各自的空间编码;
根据上述预设层级中混合编码的时间编码的编码规则,对上述一个或多个轨迹点的时间数据进行编码得到上述一个或多个轨迹点各自的时间编码;
对上述第一轨迹的属性数据进行编码得到上述第一轨迹的属性编码;
将上述一个或多个轨迹点中每一个轨迹点的空间编码、时间编码和属性编码合并得到上述每一个轨迹点的混合编码。
在本申请中,混合编码除了包括轨迹点的时间信息和空间信息,还可以包括轨迹点对应的轨迹的属性信息,属性信息可以在查询相似轨迹的时候进一步过滤不必要的轨迹,从而更高效更准确地查询到匹配的相似轨迹。
在一种可能的实施方式中,上述根据上述第一轨迹的轨迹长度和上述m个候选相似轨迹的轨迹信息获取N个相似轨迹,包括:
计算第i编码个数,上述第i编码个数为根据上述第二混合编码集合中映射有第i标识的混合编码的个数计算得到,上述第i标识为第i个候选相似轨迹的轨迹标识,上述i的取值为从1到m;
获取第i长度,上述第i长度为基于上述第一轨迹的轨迹长度,或基于上述第i个候选相似轨迹的轨迹长度与上述第一轨迹的轨迹长度计算得到;
计算上述第i编码个数和上述第i长度的比值,上述比值为上述第i个候选相似轨迹与上述第一轨迹之间的相似度;
根据上述计算得到的m个相似度筛选出上述N个相似轨迹。
在本申请中,直接基于索引数据库中的混合编码以及混合编码映射的轨迹信息即可计算出轨迹的相似度,相比于现有技术中通过经纬度矢量计算轨迹的相似度,提高了计算的效率。另外,由于计算相似度不需要使用轨迹的原始数据即轨迹包括的轨迹点的空间位置数据和时间数据,因此不需要大量读取磁盘操作来访问轨迹的原始数据,从而可以减少磁盘读取带来的磁盘性能损耗,进一步地提高了上述相似轨迹查询的效率。
在一种可能的实施方式中,在第一预设场景下,上述第i编码个数为上述第一混合编码集合中的混合编码映射的第i个候选相似轨迹的轨迹标识的个数,上述第i长度为长度之和与上述第i编码个数之差,上述长度之和为第一长度与上述第一轨迹的轨迹长度的和,上述第一长度为上述第i个候选相似轨迹的轨迹长度与系数K的乘积,上述K大于0;
在第二预设场景下,上述第i编码个数为上述第一混合编码集合中的混合编码映射的第i个候选相似轨迹的轨迹标识的个数的两倍,上述第i长度为第二长度与上述第一轨迹的轨迹长度之和,上述第二长度为上述第i个候选相似轨迹的轨迹长度与上述系数K的乘积;
在第三预设场景下,上述第i编码个数为上述第一混合编码集合中的混合编码映射的第i个候选相似轨迹的轨迹标识的个数,上述第i长度为上述第一轨迹的轨迹长度;
在上述第一匹配的混合编码包括上述索引数据库中与上述第一混合编码集合中的混合编码相同的混合编码的情况下,上述K等于1;
在上述第一匹配的混合编码包括上述索引数据库中与上述第一混合编码集合中的混合编码相同的混合编码对应的低层级混合编码的情况下,上述K大于1;
在上述第一匹配的混合编码包括上述索引数据库中与上述第一混合编码集合中的混合编码相同的混合编码对应的高层级混合编码的情况下,上述K大于0且小于1。
在本申请中,不同的场景采用不同的轨迹相似度计算方式,从而可以更准确查找到匹配的相似度,也能够提高查找的相似轨迹的精度。
在一种可能的实施方式中,上述第一混合编码集合还包括插值轨迹点的混合编码,上述插值轨迹点为基于上述一个或多个轨迹点根据预设插值方法得到。
在本申请中,基于已有的轨迹点通过插值的方式获取更多的轨迹点的混合编码,从而使得轨迹点之间的关系更紧密,进而在相似轨迹查询的过程中更好地查找到匹配的相似轨迹。
在一种可能的实施方式中,上述索引数据库为基于时空格网模型构建的数据库,上述时空格网模型包括多个层级的时空格网,每一个时空格网层级根据设定的空间层级和时间划分粒度来确定,每一个时空格网映射有一个混合编码;上述索引数据库的多个层级为r个层级,上述r大于1,上述索引数据库的r个层级分别对应r个时空格网层级。
在本申请中,通过对已有的轨迹点的混合编码进行扩展,使得邻近的混合编码也归属于轨迹的混合编码,这样可以避免遗漏潜在的相似轨迹,从而保证轨迹相似性查询算法的鲁棒性。
在一种可能的实施方式中,上述索引数据库为基于时空格网模型构建的数据库,上述时空格网模型包括多个层级的时空格网,每一个时空格网层级根据设定的空间层级和时间划分粒度来确定,每一个时空格网映射有一个混合编码;上述索引数据库的多个层级为r个层级,上述r大于1,上述索引数据库的r个层级的混合编码分别为r个时空格网层级中的时空格网映射的混合编码,上述索引数据库的r个层级与上述r个时空格网层级一一映射,上述r个时空格网层级为预先设定的上述时空格网模型的多个层级中的r个层级。
本申请构建的索引数据库是多级多维的数据库,多维指的是索引数据库中的索引混合编码包括轨迹的时间信息和空间信息,可选的,还可以包括轨迹的属性信息,因此属于多维度的索引,多级指的是索引数据库包括多个层级的索引编码,每个层级还与时空格网模型的层级有映射关系,基于时空格网模型构建的索引数据库也具备时空格网模型的属性,例如混合编码的空间编码部分具备高层级的空间编码前缀包括对应的低层级的空间编码的属性,混合编码的时间编码部分具备高层级的时间编码前缀包括对应的低层级的时间编码的属性。由于具备这些属性,在相似轨迹查询的过程中可以高效地查询到相似的轨迹。
在一种可能的实施方式中,上述索引数据库与轨迹数据库映射,上述轨迹数据库用于存储上述索引数据库中包括的多个轨迹的原始数据,上述原始数据包括上述多个轨迹的时间数据、空间位置数据和属性数据中的多项数据,上述索引数据库中包括的多个轨迹的标识与上述轨迹数据库中的上述多个轨迹的原始数据一一对应映射。
在本申请中,还对应构建了轨迹数据库,以便需要查询轨迹的原始数据时可以查询到。
第二方面,本申请提供了一种轨迹的表达模型构建方法,该方法包括:
获取第二轨迹的轨迹数据,上述轨迹数据包括上述第二轨迹的一个或多个轨迹点的空间位置数据和时间数据;
根据上述轨迹数据编码得到表达上述第二轨迹的第三混合编码集合,上述第三混合编码集合包括上述第二轨迹的一个或多个轨迹点各自的混合编码,上述混合编码为根据索引数据库中的预设层级的混合编码规则编码获得;上述混合编码包括轨迹点的时间编码和轨迹点的空间编码,上述时间编码是根据上述时间数据获得,上述空间编码是根据上述空间位置数据获得;上述索引数据库包括r个层级的混合编码,上述r大于1,上述r个层级的混合编码分别为r个时空格网层级中的时空格网映射的混合编码,上述r个层级与上述r个时空格网层级一一映射,上述r个时空格网层级为预先设定的时空格网模型包括的多个层级中的r个层级,上述时空格网模型中每一个时空格网层级根据设定的空间层级和时间划分粒度来确定。
本申请是通过结合了轨迹的时间信息和空间信息的混合编码集合表达一个轨迹,这样的轨迹表达模型结合上述索引数据库可以在相似轨迹查询中快速准确地查找到匹配的相似轨迹。
在一种可能的实施方式中,上述根据上述轨迹数据编码得到表达上述第二轨迹的第三混合编码集合,包括:
根据上述预设层级中混合编码的空间编码的编码规则对上述一个或多个轨迹点的空间位置数据编码得到上述一个或多个轨迹点各自的空间编码;
根据上述预设层级中混合编码的时间编码的编码规则对上述一个或多个轨迹点的时间数据编码得到上述一个或多个轨迹点各自的时间编码;
将上述一个或多个轨迹点中每一个轨迹点的空间编码和时间编码合并得到上述每一个轨迹点的混合编码,上述一个或多个轨迹点的混合编码组成上述第三混合编码集合。
本申请说明混合编码的编码过程,混合编码为轨迹点的时间编码和空间编码混合而成,因此相比于现有技术只有空间编码来表示轨迹点,本申请用该混合编码来表示轨迹点更准确。
在一种可能的实施方式中,上述轨迹数据还包括上述第二轨迹的属性数据,上述根据上述轨迹数据编码得到表达上述第二轨迹的第三混合编码集合,包括:
根据上述预设层级中混合编码的空间编码的编码规则对上述一个或多个轨迹点的空间位置数据编码得到上述一个或多个轨迹点各自的空间编码;
根据上述预设层级中混合编码的时间编码的编码规则对上述一个或多个轨迹点的时间数据编码得到上述一个或多个轨迹点各自的时间编码;
对上述第二轨迹的属性数据编码得到上述第二轨迹的属性编码;
将上述一个或多个轨迹点中每一个轨迹点的空间编码、时间编码和上述属性编码合并得到上述每一个轨迹点的混合编码,上述一个或多个轨迹点的混合编码组成上述第三混合编码集合。
在本申请中,混合编码除了包括轨迹点的时间信息和空间信息,还可以包括轨迹点对应的轨迹的属性信息,属性信息可以在查询相似轨迹的时候进一步过滤不必要的轨迹,从而更高效更准确地查询到匹配的相似轨迹。
在一种可能的实施方式中,上述第三混合编码集合还包括插值轨迹点的混合编码,上述插值轨迹点的混合编码为基于上述一个或多个轨迹点的混合编码,根据预设插值方法计算得到的轨迹点的混合编码。
在本申请中,基于已有的轨迹点通过插值的方式获取更多的轨迹点的混合编码,从而使得轨迹点之间的关系更紧密,进而在相似轨迹查询的过程中更好地查找到匹配的相似轨迹。
第三方面,本申请提供了一种数据处理设备,该设备包括:
第一获取单元,用于获取第一信息,上述第一信息包括第一轨迹的一个或多个轨迹点的空间位置数据和时间数据;
第二获取单元,用于根据上述第一信息获取第一混合编码集合,上述第一混合编码集合包括上述第一信息的每个轨迹点各自的混合编码,上述混合编码为根据索引数据库中的预设层级的混合编码规则编码获得;上述混合编码包括轨迹点的时间编码和轨迹点的空间编码,上述时间编码是根据上述时间数据获得,上述空间编码是根据上述空间位置数据获得;上述索引数据库为多级索引结构,包括多个层级的混合编码,每个层级的混合编码根据其所归属的层级的混合编码进行集合划分,上述每个层级的混合编码和其所归属的层级的混合编码之间存在所索引关系,上述多个层级的混合编码中包括具有轨迹信息的混合编码,上述轨迹信息用于指示上述混合编码所属轨迹的轨迹标识和所属轨迹的轨迹长度,一个轨迹的轨迹长度为上述索引数据库中存储的轨迹标识为同一轨迹的混合编码的个数;
查询单元,用于根据上述第一混合编码集合中的每个混合编码在上述索引数据库中按照多级索引结构的查询设备进行查询,获得第二混合编码集合,上述第二混合编码集合中的混合编码为具有轨迹信息的混合编码;上述第二混合编码集合中的混合编码映射有m个候选相似轨迹的轨迹信息,上述m为整数;
第三获取单元,用于根据上述第一轨迹的轨迹长度和上述m个候选相似轨迹的轨迹信息获取N个相似轨迹,上述N为小于或等于m的整数。
在一种可能的实施方式中,上述查询单元具体用于:
按照多级索引结构的查询设备将上述第一混合编码集合中的每个混合编码与上述索引数据库中的混合编码比较,获取上述第二混合编码集合,上述第二混合编码集合中的混合编码为上述索引数据库中与上述第一混合编码集合中的混合编码相同的混合编码,和/或上述索引数据库中与上述第一混合编码集合中的混合编码相同的混合编码对应的低层级和/或高层级混合编码。
在一种可能的实施方式中,上述第一信息还包括上述第一轨迹的属性数据,上述轨迹信息还包括上述轨迹信息指示的轨迹的属性信息,上述属性信息根据上述轨迹信息指示的轨迹的属性数据获得;
上述查询单元具体用于:
按照多级索引结构的查询设备将上述第一混合编码集合中的每个混合编码与上述索引数据库中的混合编码比较,获取第一匹配的混合编码,上述第一匹配的混合编码为上述索引数据库中与上述第一混合编码集合中的混合编码相同的混合编码,和/或上述索引数据库中与上述第一混合编码集合中的混合编码相同的混合编码对应的低层级和/或高层级混合编码;
根据上述第一匹配的混合编码获取上述第二混合编码集合,上述第二混合编码集合中的混合编码为上述第一匹配的混合编码中属性信息包含上述第一轨迹的属性信息的混合编码。
在一种可能的实施方式中,上述查询单元具体用于:
根据上述第一混合编码集合中的第一混合编码确定目标层级的混合编码,上述目标层级为上述预设层级归属的层级;
根据上述目标层级的混合编码进行查找,获取第一候选混合编码集;
将上述第一混合编码与上述第一候选混合编码集比较。
在一种可能的实施方式中,上述第二获取单元具体用于:
根据上述预设层级中混合编码的空间编码的编码规则,对上述一个或多个轨迹点的空间位置数据进行编码得到上述一个或多个轨迹点各自的空间编码;
根据上述预设层级中混合编码的时间编码的编码规则,对上述一个或多个轨迹点的时间数据进行编码得到上述一个或多个轨迹点各自的时间编码;
将上述一个或多个轨迹点中每一个轨迹点的空间编码和时间编码合并得到上述每一个轨迹点的混合编码。
在一种可能的实施方式中,上述第一信息还包括上述第一轨迹的属性数据,上述第二获取单元具体用于:
根据上述预设层级中混合编码的空间编码的编码规则,对上述一个或多个轨迹点的空间位置数据进行编码得到上述一个或多个轨迹点各自的空间编码;
根据上述预设层级中混合编码的时间编码的编码规则,对上述一个或多个轨迹点的时间数据进行编码得到上述一个或多个轨迹点各自的时间编码;
对上述第一轨迹的属性数据进行编码得到上述第一轨迹的属性编码;
将上述一个或多个轨迹点中每一个轨迹点的空间编码、时间编码和属性编码合并得到上述每一个轨迹点的混合编码。
在一种可能的实施方式中,上述第三获取单元具体用于:
计算第i编码个数,上述第i编码个数为根据上述第二混合编码集合中映射有第i标识的混合编码的个数计算得到,上述第i标识为第i个候选相似轨迹的轨迹标识,上述i的取值为从1到m;
获取第i长度,上述第i长度为基于上述第一轨迹的轨迹长度,或基于上述第i个候选相似轨迹的轨迹长度与上述第一轨迹的轨迹长度计算得到;
计算上述第i编码个数和上述第i长度的比值,上述比值为上述第i个候选相似轨迹与上述第一轨迹之间的相似度;
根据上述计算得到的m个相似度筛选出上述N个相似轨迹。
在一种可能的实施方式中,上述第一混合编码集合还包括插值轨迹点的混合编码,上述插值轨迹点为基于上述一个或多个轨迹点根据预设插值设备得到。
在一种可能的实施方式中,上述第一混合编码集合还包括扩展轨迹点的混合编码,上述扩展轨迹点为基于上述一个或多个轨迹点和上述插值轨迹点通过预设的扩展设备得到。
在一种可能的实施方式中,上述索引数据库为基于时空格网模型构建的数据库,上述时空格网模型包括多个层级的时空格网,每一个时空格网层级根据设定的空间层级和时间划分粒度来确定,每一个时空格网映射有一个混合编码;上述索引数据库的多个层级为r个层级,上述r大于1,上述索引数据库的r个层级分别对应r个时空格网层级。
在一种可能的实施方式中,上述索引数据库与轨迹数据库映射,上述轨迹数据库用于存储上述索引数据库中包括的多个轨迹的原始数据,上述原始数据包括上述多个轨迹的时间数据、空间位置数据和属性数据中的多项数据。
第四方面,本申请提供了一种轨迹的表达模型构建设备,该设备包括:
获取单元,用于获取第二轨迹的轨迹数据,上述轨迹数据包括上述第二轨迹的一个或多个轨迹点的空间位置数据和时间数据;
编码单元,用于根据上述轨迹数据编码得到表达上述第二轨迹的第三混合编码集合,上述第三混合编码集合包括上述第二轨迹的每个轨迹点各自的混合编码,上述混合编码为根据索引数据库中的预设层级的混合编码规则编码获得;上述混合编码包括轨迹点的时间编码和轨迹点的空间编码,上述时间编码是根据上述时间数据获得,上述空间编码是根据上述空间位置数据获得;上述索引数据库包括r个层级的混合编码,上述r大于1,上述r个层级的混合编码分别为r个时空格网层级中的时空格网映射的混合编码,上述r个层级与上述r个时空格网层级一一映射,上述r个时空格网层级为预先设定的时空格网模型包括的多个层级中的r个层级,上述时空格网模型中每一个时空格网层级根据设定的空间层级和时间划分粒度来确定。
在一种可能的实施方式中,上述编码单元具体用于:
根据上述预设层级中混合编码的空间编码的编码规则对上述一个或多个轨迹点的空间位置数据编码得到上述一个或多个轨迹点各自的空间编码;
根据上述预设层级中混合编码的时间编码的编码规则对上述一个或多个轨迹点的时间数据编码得到上述一个或多个轨迹点各自的时间编码;
将上述一个或多个轨迹点中每一个轨迹点的空间编码和时间编码合并得到上述每一个轨迹点的混合编码,上述一个或多个轨迹点的混合编码组成上述第三混合编码集合。
在一种可能的实施方式中,上述轨迹数据还包括上述第二轨迹的属性数据,上述编码单元具体用于:
根据上述预设层级中混合编码的空间编码的编码规则对上述一个或多个轨迹点的空间位置数据编码得到上述一个或多个轨迹点各自的空间编码;
根据上述预设层级中混合编码的时间编码的编码规则对上述一个或多个轨迹点的时间数据编码得到上述一个或多个轨迹点各自的时间编码;
对上述第二轨迹的属性数据编码得到上述第二轨迹的属性编码;
将上述一个或多个轨迹点中每一个轨迹点的空间编码、时间编码和上述属性编码合并得到上述每一个轨迹点的混合编码,上述一个或多个轨迹点的混合编码组成上述第三混合编码集合。
在一种可能的实施方式中,上述第三混合编码集合还包括插值轨迹点的混合编码,上述插值轨迹点的混合编码为基于上述一个或多个轨迹点的混合编码,根据预设插值设备计算得到的轨迹点的混合编码。
第五方面,本申请提供了一种数据处理设备,包括处理器、通信接口和存储器,其中,所述存储器用于存储程序指令和/或数据,所述处理器用于执行所述存储器中存储的程序指令,使得所述设备执行如上述第一方面任一项所述的方法。
第六方面,本申请提供了一种轨迹的表达模型构建设备,包括处理器、通信接口和存储器,其中,所述存储器用于存储程序指令和/或数据,所述处理器用于执行所述存储器中存储的程序指令,使得所述设备执行如上述第二方面任一项所述的方法。
第七方面,本申请提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述第一方面任意一项所述的方法;或者,该计算机程序被处理器执行以实现上述第二方面任意一项所述的方法。
第八方面,本申请提供了一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,上述第一方面任意一项或上述第二方面任意一项所述的方法将被执行。
第九方面,本申请提供了一种装置,该装置包括处理器、通信接口和存储器,该装置被配置为执行上述第一方面任意一项或上述第二方面任意一项所述的方法。
在一种可能的实施方式中,该装置为芯片或系统芯片(system on chip,SoC)。
综上所述,本申请结合轨迹的轨迹点的时间信息和空间信息编码得到混合编码,并基于该混合编码为索引构建多层级的索引数据库,并在索引数据库的混合编码映射上述轨迹信息,在此基础上在该索引数据库中查询目标轨迹的相似轨迹,从而能够提高轨迹查询的准确度,同时降低轨迹相似性计算的复杂度,并提高相似轨迹的查询效率。
附图说明
下面将对本申请实施例中所需要使用的附图作介绍。
图1所示为本申请实施例提供的一种场景示意图;
图2所示为本申请实施例提供的一种空间格网划分示意图;
图3所示为本申请实施例提供的一种空间层级编码示意图;
图4所示为本申请实施例提供的一种时空格网结构示意图;
图5所示为本申请实施例提供的一种时间划分示意图;
图6和图7所示为本申请实施例提供的基于时间粒度划分的时空格网示意图;
图8所示为本申请实施例提供的一种时空格网模型结构示意图;
图9所示为本申请实施例提供的一种时空格网层级之间结构和编码关系的示意图;
图10所示为本申请实施例提供的一种数据处理方法的流程示意图;
图11A所示为本申请实施例提供的一种位于不同空间层级的轨迹示意图;
图11B所示为本申请实施例提供的一种轨迹映射到时空格网的示意图;
图12所示为本申请实施例提供的一种索引树结构示意图;
图13所示为本申请实施例提供的另一种数据处理方法的流程示意图;
图14所示为本申请实施例提供的一种相邻格网的示意图;
图15所示为本申请实施例提供的一种轨迹扩展的示意图;
图16为本申请实施例提供的一个设备的逻辑结构示意图;
图17为本申请实施例提供的另一个设备的逻辑结构示意图;
图18为本申请实施例提供的一个设备的硬件结构示意图;
图19为本申请实施例提供的另一个设备的硬件结构示意图。
具体实施方式
下面结合附图对本申请的实施例进行描述。
图1所示为本申请实施例提供的数据处理方法适用的一种可能的应用系统构架示意图。如图1所示,该系统构架可以包括一个或多个服务器100以及一个或多个用户终端(或设备)110,其中:
服务器100可以包括但不限于后台服务器或数据处理服务器等,服务器100可以通过互联网与多个用户终端110进行通信。服务器100为用户终端110提供数据处理服务。服务器100上需要运行有相应的服务器端程序来提供相应的数据处理服务,如数据库服务、数据计算和决策执行等等。
用户终端110可以安装并运行相关的应用(或APP)。应用是为客户提供本地服务的程序。示例性地,该本地服务可包括但不限于:获取自身所在的空间位置信息并向服务器100发送以及接收服务器100发送的相似轨迹信息等。
本方案实施例中的用户终端110可以包括但不限于任何一种车辆、车载设备、基于智能操作系统的手持式电子产品等,其可与用户通过键盘、虚拟键盘、触摸板、触摸屏以及声控设备等输入设备来进行人机交互,例如可以是智能手机、平板电脑、个人电脑等。其中,智能操作系统包括但不限于任何通过向移动设备提供各种移动应用来丰富设备功能的操作系统,诸如安卓(AndroidTM)、iOSTM、Windows PhoneTM等。此外,用户终端110还可以包括飞机或船只等交通工具或者包括这些交通工具携带的定位设备等等。
需要说明的是,本申请实施例提供的数据方法的应用的系统架构不限于上述描述的场景,只要是应用到本申请实施例提供的数据处理方法的都是本申请实施例适用的场景,此处不再赘述。
在介绍本申请实施例提供的数据处理方法之前,先介绍本申请涉及到的相关概念。
1、全球离散格网模型
通过某种剖分模型,将地球空间剖分成面积和形状相似、可无限细分、无缝无重叠的多层次离散面片体系,形成空间的层次递归划分以及剖分面片在地球空间中的多尺度嵌套关系。这些多尺度格网或格网体,每个均可赋予唯一的编码,该编码可作为地球空间的位置标识,地球上的所有信息和数据均可落在某一个或多个格网中,均可赋予相应的格网编码,从而实现对地球大数据的统一组织、计算和服务。
在具体实施例中,可以通过多种方法来进行全球离散格网的剖分,该多种方法例如可以包括等经纬度格网剖分方法、空间填充曲线格网剖分方法和正多面体格网剖分方法等。
本实施例以等经纬度四叉树剖分格网体系为例,首先以本初子午线与赤道交点为中心将地球空间平面平分为四份,此为1级格网。在每个格网中,以四叉树剖分法继续剖分得到次级格网,以此类推,直到达到需求粒度的剖分层级为止。在剖分过程中,基于空间填充曲线,每个格网与实际地理空间形成映射关系并赋予唯一的格网编码。基于这种离散格网体系,地球所有对象都可与对应地理位置的格网编码形成映射关系。为了便于理解,可以参见图2。
在图2中,假设区域ABCD是地球表面平铺展开形成的平面区域,即该平面区域中包括了地球上所有的区域面积。采用四叉树剖分格网体系对该区域ABCD进行格网剖分,假设线段FH表示本初子午线,线段IG表示赤道,E表示本初子午线FH和赤道IG的交点,那么以本初子午线FH与赤道IG交点为中心将地球空间平面平分为四份得到的四个格网区域为区域AFEI、区域FBGE、区域EGCH和区域IEHD。进一步地,分别将该四个区域的每一个区域再等分为四个格网区域,以区域AFEI为例说明,区域AFEI等分得到的四个格网区域为区域AJOQ、区域JFKO、区域OKEL和区域QOLI。进一步的,再将区域AFEI等分得到的四个区域的每一个区域再等分为四个格网区域,以区域AJOQ为例说明,区域AJOQ等分得到的四个格网区域为区域AMSR、区域MJNS、区域SNOP和区域RSPQ。以此类推,直至划分得到的最小的区域为需要的粒度区域为止。
上述区域的划分可以看成是区域层级的划分,例如,将区域ABCD划分为四个区域,该划分得到的四个区域可以称为第第1层级区域,可以为该第1层级包括的四个区域分别赋予唯一的编码,编码可以是二进制数、四进制数、十进制数或者可以是字符的形式等等。本申请实施例以编码为二进制数为例介绍。那么,上述区域AFEI、区域FBGE、区域EGCH和区域IEHD的唯一编码假设可以是00、01、10和11。
进一步的,上述区域AFEI等分得到的四个区域为区域AJOQ、区域JFKO、区域OKEL和区域QOLI可以称为第2层级区域,区域AJOQ、区域JFKO、区域OKEL和区域QOLI的唯一编码假设可以是0000、0001、0010和0011。
进一步的,区域AJOQ等分得到的四个区域为区域AMSR、区域MJNS、区域SNOP和区域RSPQ可以称为第3层级区域,区域AMSR、区域MJNS、区域SNOP和区域RSPQ的唯一编码假设可以是000000、000001、000010和000011。
上述示例性地给出了第1层级、第2层级和第3层级这三个格网区域层级的划分和编码,其中,第1层级、第2层级和第3层级可以是从低到高的层级,格网区域层级越高,格网区域包括的范围越小。且,高层级的格网区域的编码前缀包括对应的低层级的格网区域的编码。在本申请中高层级的编码对应的低层级的编码指的是该高层级的编码所归属的低层级的编码。例如,上述第2层级格网区域AJOQ的编码的前缀为第1层级格网区域AFEI的编码00,第3层级格网区域AMSR的编码前缀为第2层级格网区域AJOQ的编码0000等等。
在图2中,第1层级格网区域FBGE、区域EGCH和区域IEHD的高层级格网的划分和各层级编码的规则可以参见对格网区域AJOQ的具体描述,以及可以参见图3所示的层级和编码情况,此处不再赘述。
在本申请中,可以称上述区域层级为空间层级,可以称上述对各个格网区域的编码为空间编码。上述格网区域的编码仅是一个示例,本方案对各个格网的编码不做具体限制。
另外,其它的全球格网剖分方法例如空间填充曲线格网剖分方法和正多面体格网剖分方法等也具备上述各层级格网的区域面积变化规则和编码的规则,此处不再赘述。
在另一种可能的实施方式中,本申请实施例提供的全球离散格网模型中,同一个层级的格网区域大小可以是不相同的。示例性地,还是以图2为例,在图2中,第1层级的格网区域只包括三个,分别为区域AFEI、区域FBGE和区域IGCD。即不同大小的格网区域也可以属于同一个格网层级。然后,基于第1层级的格网区域再进一步划分高层级的格网,高层级的格网中相同层级的格网的大小也可以不相同。
2、时空格网模型
时空格网模型是在全球离散格网的基础上进一步考虑时间维度信息,融合空间属性和时间属性的全球统一离散格网编码模型。为了便于理解,可以参见图4。在图4中可以看到,时空格网可以是由经度、维度和时间三个维度构成的三维立体格网。以图2中的格网区域AMSR示例说明,在图4中当只考虑经纬度时得到的格网即为该格网区域AMSR,当考虑时间维度时,则得到的格网即为三维立体格网。
在本申请实施例中,时空格网的划分分为两部分,首先是空间格网的划分,在此基础上加上时间维度的信息划分得到三维立体的时空格网。空间格网的划分可以参见上述全球离散格网模型中的描述,下面介绍时间网格的划分方式。
在本申请实施例中,时间的划分也是按预设的时间层级来进行划分的,首先确定统计时间段,该统计时间段指的是规划进行数据搜集和存储的时间段,例如本申请实施例需要建立轨迹的数据库,并且假设已经确定了搜集和存储1999年至2019年在全国范围内的各种轨迹数据,那么该统计的时间段即为1999年至2019年。然后,可以按照年、月、日、小时、分或秒等划分粒度来对统计时间进行层级的划分,该划分的时间粒度也可以是用户自定义的时间段,本方案对此不做限制。例如,还是以统计的时间段即为1999年至2019年为例说明,可以参见图5。
在图5中,假设最小的划分粒度为日,那么可以将统计的时间段按年划分得到1999年至2019年20年的时间段,该20年的时间段中每一年可以对应一个格网,例如可以参见图6,图6中结合空间信息和时间信息示例性示出了以年为划分粒度划分得到时空格网的示意图。然后,在图5中,对于每年的时间段再按照划分粒度为月进行划分,然后每月的时间段再按照划分粒度为日进行划分。粒度为月的格网示例性地可以参见图7,图7以1999年为例示出了时间划分粒度为月的时空格网的示意图。时间划分粒度为日的时空格网的示意图也可以参见粒度为月的示意图,此处不再赘述。
每一个时空格网都可以对应有一个时间编码,时间编码的方式有多种,本申请实施例示例性地以“yyyymmddhhmmss”的直观模式表示时间编码,其中,“yyyy”表示年,“mm”表示月,“dd”表示日,“hh”表示时,“mm”表示分,“ss”表示秒。例如,假设设置的时间剖分粒度为1小时,待编码时间为2020年6月1日10时,那么,该时间的时间编码可表示为“2020060110”。同样的,时间编码可以是二进制数、四进制数、十进制数或者可以是字符的形式等等。
在本申请实施例中,可以称粗粒度划分得到的时间段的时间编码为低层级的时间编码,称细粒度划分得到的时间段的时间编码为高层级的时间编码,例如,相对于划分粒度为月的时间编码,可以称划分粒度为年的时间编码为低层级的时间编码,划分粒度为日的时间编码为高层级的时间编码等。高层级的时间编码的前缀包括对应的低层级的时间编码。这里对应的低层级的时间编码指的是该高层级的时间编码所归属的低层级的时间编码,即该高层级的时间编码指示的时间包括在该低层级的时间编码指示的时间范围内。
还是以1999年为例说明,对于在1999年这一时间段下划分的各个层级例如粒度为月的层级和粒度为日的层级,这些层级中的格网的时间编码的前缀包括1999年这一个时空格网的时间编码。假设1999年的时空格网的时间编码为1999,那么,以月为粒度划分1999年得到的12个时空格网的时间编码分别为199901、199902、199903、……、199911和199912。以日为粒度划分1999年1月得到的30个时空格网的时间编码为19990101、19990102、19990103、……、19990129和19990130。可以看到,高层级的时间编码的前缀包括对应的低层级的时间编码。
需要说明的是,时间编码的表示方式还可以是其它的方式,例如也可以将时间映射为其它的标识来进行表示,本方案对时间编码的表示方式不做限制。
基于上述的介绍,在确定空间层级和时间的划分粒度之后可以构建出时空格网模型,该时空格网模型例如可以参见图8。图8中的每一个时空格网都包括对应的空间信息和时间信息。例如,对于图8中虚线的时空格网a,可以假设该时空格网a对应的经纬度为北京天安门广场区域的经纬度,该时空格网a对应的时间信息为2019年6月1日这个时间段。即该时空格网a映射的空间信息为经过北京天安门广场的经纬度信息,以及映射的时间信息为2019年6月1日。
在本申请实施例中,时空格网模型中每一个时空格网对应有一个唯一的时空混合编码,该时空混合编码可以是由上述对空间格网区域的编码即空间编码和对时间信息的编码即时间编码合并组成。
具体的,基于上述的描述可以计算出每一个时空格网的空间编码和时间编码,可以将该空间编码和时间编码进行合并得到该时空格网的时空混合编码。空间编码和时间编码具体的合并方式可以包括时空共线、空时共线、时空时共线、时空交叉混合共线等多种方式。
其中,时空共线的合并方式指的是时间编码在前空间编码在后拼接得到时空混合编码,拼接得到的时空混合编码可以是整形数的形式或者可以是字符串的形式。例如,假设获取到的时间编码为“2019100313”,空间编码为100101101110,那么将“2019100313”和100101101110前后拼接得到时空混合编码2019100313100101101110或者“2019100313100101101110”。时空混合编码2019100313100101101110为整形数的形式,时空混合编码“2019100313100101101110”为字符串的形式。或者,也可以将时间编码转换成二进制之后再进行拼接。
空时共线的合并方式指的是空间编码在前时间编码在后拼接得到时空混合编码。例如,将上述获取到的空间编码100101101110和时间编码“2019100313”前后拼接得到时空混合编码1001011011102019100313。同样的,拼接得到的时空混合编码可以是整形数的形式或者可以是字符串的形式,具体例子参见上一段的描述。
时空时共线的合并方式指的是空间编码嵌入在时间编码中间。例如,将上述获取到的空间编码100101101110嵌入在时间编码“2019100313”中间得到时空混合编码2019100101101110100313。具体从哪一位嵌入可以根据预先设定来操作,本方案对此不做限制。同样的,拼接得到的时空混合编码可以是整形数的形式或者可以是字符串的形式,具体例子参见上一段的描述。
时空交叉混合共线的合并方式指的是空间编码和时间编码均转换为二进制、四进制或者十进制等相同类型的数,然后,通过对转换之后的空间编码和时间编码进行莫顿交叉操作得到时空混合编码。该莫顿交叉操作可以是空间编码和时间编码前后交叉,也可以是时间编码和空间编码前后交叉。可选的,经莫顿交叉操作获得时空混合编码之后,还可以将该时空混合编码转换成其它进制的整形数或者转换成字符串形式等。
示例性地,对于上述图8中的时空格网a,根据上述北京天安门的经纬度的信息编码得到空间编码,并根据上述2019年6月1日进行编码得到时间编码,然后将该空间编码和时间编码按照上述的合并方式进行合并得到时空混合编码,该时空混合编码即为该时空格网a唯一对应的编码。
在本申请实施例中,时空格网也是分层级的,层级的划分可以根据预设定的空间层级和时间划分粒度来确定。示例性地,假设预设定的空间层级包括n1、n2、n3和n4层级,该n1、n2、n3和n4层级为由低到高的层级,时间划分粒度包括年、月、日和小时,那么空间层级n1的空间格网和时间划分粒度年划分得到的时间格网映射的时空格网为第1层级的时空格网,空间层级n2的空间格网和时间划分粒度月划分得到的时间格网映射的时空格网为第2层级的时空格网,空间层级n3的空间格网和时间划分粒度日划分得到的时间格网映射的时空格网为第3层级的时空格网,空间层级n4的空间格网和时间划分粒度小时划分得到的时间格网映射的时空格网为第4层级的时空格网。
对于时空格网映射的时空混合编码,该时空混合编码的空间编码部分仍然具备高层级的空间编码前缀包括对应的低层级的空间编码的属性,该时空混合编码的时间编码部分仍然具备高层级的时间编码前缀包括对应的低层级的时间编码的属性。该高层级的时空混合编码对应的低层级的时空混合编码也可以说是:该高层级的时空混合编码所属的低层级的时空混合编码。为了便于理解,示例性地可以参见图9。
在图9中,(a)和(b)为相邻的两个时空格网层级。在时空格网层级(a)中,假设包括8个时空格网,该8个时空格网的时空混合编码分别为002018、012018、102018、112018、002019、012019、102019和112019。其中,该8个时空混合编码中00、01、10和11为空间编码,假设以图3所示的空间层级划分方式,那么,00、01、10和11为1级空间编码。该8个时空混合编码中2018和2019为时间编码,划分粒度为年。
在时空格网层级(b)中,示例性示出了102018和112018时空格网的高层级时空格网,其中,(b1)为102018时空格网对应的高一层级的时空格网,或者说时空混合编码102018为(b1)中的时空混合编码所归属的混合编码;(b2)为112018时空格网对应的高一层级的时空格网,或者说时空混合编码112018为(b2)中的时空混合编码所归属的混合编码。(b1)包括48个时空混合编码,该48个时空混合编码中,1000、1001、1010和1011为空间编码,假设以图3所示的空间层级划分方式,那么,1000、1001、1010和1011为2级空间编码。该48个时空混合编码中,20181、……、201811和201812为时间编码,划分粒度为月,因此可以划分得到1至12个月。
可以看到,(b1)包括的时空混合编码中的空间编码的前缀(10)包括其对应的低层级(层级(a))的时空格网的时空混合编码的空间编码(10);(b1)包括的时空混合编码中的时间编码的前缀(2018)包括其对应的低层级(层级(a))的时空格网的时空混合编码的时间编码(2018)。对于(b2)可以参见对(b1)的相关描述,此处不再赘述。
需要说明的是,只有在低层级包括的时空格网范围内划分出来的高层级时空格网的空间(时间)编码前缀才包括该低层级的空间(时间)编码,而该高层级的时空格网的空间(时间)编码前缀不包括其它低层级的时空格网的空间(时间)编码。例如在图9中,(b1)中的空间编码的前缀(10)只包括层级(a)中的时空格网102018的空间编码(10),而不包括层级(a)中的时空格网112018的空间编码(11)。
另外,空间编码的前缀的位数根据低一层级的空间编码的位数决定,例如在图9中,低层级(层级(a))的空间编码为两位,那么高层级(层级(b))的空间编码的前缀也为两位。同样的,时间编码的前缀的位数根据低一层级的时间编码的位数决定,例如在图9中,低层级(层级(a))的时间编码为四位,那么高层级(层级(b))的时间编码的前缀也为四位。
上述图9中的时空混合编码是以空时共线的合并方式拼接得到的编码为例介绍,也可以是时空共线或者时空交叉混合共线等合并方式拼接得到的编码,本方案对此不做限制。
在另一种可能的实施方式中,本申请实施例提供的时空格网模型中的空间格网不限于是基于上述全球离散格网模型得到,也可以是基于区域离散格网模型得到。该区域离散格网模型指的是只针对某一个预设定的区域进行空间格网划分和编码,其格网划分以及空间编码的具体实现可以参见全球离散格网模型中的格网划分方法和空间编码方法。某一个预设定的区域例如可以是某一个国家的管辖的区域或者某一省份管辖的区域等等。基于区域离散格网模型构建的时空格网模型中的时间的划分和编码可以参见上述的具体介绍,此处不再赘述。
基于上述的描述,下面通过几个实施例介绍本申请提供的数据处理方法。本申请实施例提供的数据处理方法的执行主体可以是与用户终端建立通信连接的服务器,或者可以是用户终端本身,下面以该执行主体是与用户终端建立通信连接的服务器为例进行介绍。
实施例一
下面首先介绍本申请实施例提供的数据库的构建和更新的数据处理方法。参见图10,该方法可以包括但不限于如下步骤:
S1001、服务器获取轨迹的轨迹数据。
在具体实施例中,轨迹可以是一个轨迹点组成的轨迹,也可以是多个轨迹点组成的轨迹。上述获取的轨迹数据可以是已经记录好的历史轨迹的轨迹数据,或者该获取的轨迹数据可以是通过用户终端定期发送到服务器的轨迹数据。该服务器例如可以是图1所示的服务器100,该用户终端例如可以是图1所示的用户终端110。
轨迹数据可以包括轨迹的一个或多个轨迹点的空间位置信息以及在该空间位置时的时间信息。在一种可能的实施方式中,该轨迹数据还可以包括生成该轨迹的对象的一些属性信息。例如,如果生成该轨迹的对象是车辆,那么示例性地,该属性信息可以包括车辆的车牌号、车身颜色、载客情况和车辆价格等内容中的一项或多项。
对于已经记录好的历史轨迹的轨迹数据,若这些数据存储在服务器的存储器中,那么可以直接从存储器中读取,若这些数据存储在另一个设备中,那么服务器可以通过与该设备进行通信交互获取数据等等。
对于用户终端定期向服务器发送轨迹数据的情况,用户终端可以通过定位模块记录自身轨迹的轨迹数据并将其发送给服务器。为了便于理解,下面示例性给出两个场景的描述。
场景一、顺风车服务场景
在顺风车服务场景,用户终端可以是车辆或者可以是在车辆中的其它设备例如智能手机、平板电脑等等,用户终端可以通过自身的定位模块定位到自身所在的空间位置,并记录在当前空间位置的时间,然后定期将定位到的自身的空间位置信息和记录的时间信息发送给服务器。这里的定位模块可以是车载全球定位系统(global positioning system,GPS)设备或者可以是在车辆中的其它设备中的定位设备等。在一种可能的实施方式中,也可以将车辆等相关属性信息一起发送给服务器。
场景二、同行人分析服务场景
这里的同行人指的是出行轨迹相似的人。在在同行人分析服务场景中,用户终端可以是人们携带的智能手机、智能手表、平板电脑等移动终端。同样的,用户终端可以通过自身的定位模块定位到自身所在的空间位置,并记录在当前空间位置的时间,然后定期将定位到的自身的空间位置信息和记录的时间信息发送给服务器。在一种可能的实施方式中,也可以将行人相关属性信息一起发送给服务器。
S1002、服务器对获取的轨迹数据进行编码得到对应轨迹的编码。
在具体实施例中,服务器可以对上述轨迹经过的一个或多个轨迹点的空间位置信息和时间信息进行编码,然后结合空间编码和时间编码得到各个轨迹点对应的时空混合编码,该轨迹经过的一个或多个轨迹点对应的时空混合编码的集合即为该轨迹的编码。
在进行编码之前,服务器需要先确定编码为哪一个时空格网层级的编码,基于前面的描述可知,不同的时空格网层级的空间层级和时间划分粒度是不同的,因此相同的信息在不同的时空格网层级上获得的编码也是不同的。
一种可能的实施方式中,该时空混合编码的时空格网层级可以是预先设定好的,统一编码为某一个时空格网层级的编码。
另一种可能的实施方式中,编码的时空格网层级的设定可以根据轨迹所在场景的不同而做不同的设定。例如,假设轨迹为行人的轨迹,由于行人的轨迹移动的速度较低,轨迹的范围不大,那么可以将时空格网层级设定为一个较高的层级数,较高的层级数空间和时间的划分粒度都较小,便于更准确将轨迹表达出来。又例如,假设轨迹为车辆或飞机的轨迹,由于这类轨迹移动的速度较大,轨迹的范围也相对较大,那么可以将时空格网层级设定为一个较低的层级数,较低的层级数空间和时间的划分粒度都较大,能够保证在准确将轨迹表达出来的同时又可以节省轨迹的存储数据,从而节省存储空间。在具体实施例中,可以通过获取到的轨迹数据分析出轨迹所属的场景,然后匹配对应的时空格网层级。或者,也可以对同一条轨迹的各个轨迹点的轨迹数据做一个预处理,判断出该轨迹的移动速度和移动范围,在根据对应的速度和范围确定对应的时空格网层级。为了便于理解,下面结合图11A示例性介绍。
为了便于观察,图11A是以空间格网为例进行介绍,空间格网可以映射到时空格网。在图11A中,加粗标黑的空间格网为轨迹经过的区域映射的格网,可以看到,对于同一个轨迹,从第1层级到第3层级,层级越高轨迹占的格网越多,即轨迹的编码个数越多。因此,对于速度较快和移动范围较大的轨迹,可选择低层级的时空格网来编码映射,这样进行轨迹数据存储的时候可以节省存储空间。而对于速度慢和移动范围较小的轨迹,可选择高层级的时空格网来编码映射,从而可以准确表达该轨迹。
在确定出编码的时空格网层级后,服务器可以根据上述获取的轨迹数据编码得到轨迹在该确定出的时空格网层级的时空混合编码。
下面首先介绍一下服务器根据上述轨迹经过的一个或多个轨迹点的空间位置信息进行编码得到空间编码的过程。
本实施例以采用全球离散等经纬度四叉树格网编码方法为例进行介绍。具体的,上述服务器接收到的一个或多个轨迹点的空间位置信息可以是这些轨迹点的经度和纬度。可以用经纬度坐标(lat,lon)来表示一个轨迹点的空间位置,其中,lat表示该轨迹点的纬度,lon表示该轨迹点的经度。
假设上述确定出的编码的时空格网层级中的空间层级为第n层级,n为整数。那么,可以直接计算该轨迹点(lat,lon)在第n层级的空间编码。下面示例性地介绍该轨迹点(lat,lon)的空间编码的计算过程。
首先,计算该轨迹点在第n层级空间格网的行号和列号其中,符号表示向下取整。然后,将行号Row和列号Col分别转换为二进制数(Row)2和(Col)2,并行号(Row)2在前列号(Col)2在后进行莫顿交叉运算得到该轨迹点的空间编码(GS)2。例如,假设(Row)2=100111,(Col)2=011010,则(GS)2=100101101110。
本实施例中这种交叉空间编码方式属于Z序列(Z-order)空间填充曲线的编码方式,在其它可能的实施例中,也可以是基于希尔伯特曲线的编码方式等等。
在一种可能的实施方式中,上述也可以将行号Row和列号Col分别转换为四进制数、十进制数或者字符串的形式,然后再进行莫顿交叉运算计算出该轨迹点的空间编码。
还可以采用其它的方式计算轨迹点的空间编码,本方案对此不做限制。
另外,基于前面相关概念的介绍中可知,时间的剖分粒度可以按年、月、日、时、分和秒等不同的粒度进行剖分,也可以按照用户需求自定义时间段进行剖分。用户自定义的时间段可以是30分钟或者2.5的小时等等,本方案对此不做限制。那么,可以根据预先设定的时间剖分粒度对时间信息进行编码。具体的时间编码的方式可以参见上述相关概念介绍中的时空格网模型中的描述,此处不再赘述。
服务器获取到上述轨迹点(lat,lon)的空间编码和时间编码之后,可以将该空间编码和时间编码进行合并得到时空混合编码。空间编码和时间编码的合并方式也可以参见上述相关概念介绍中的时空格网模型中的描述,此处不再赘述。那么,通过以上方式即可得到轨迹的各个轨迹点的时空混合编码。
S1003、在上述轨迹包括多个轨迹点的情况下,服务器通过插值的方法构建该轨迹的编码模型。
在具体实施例中,服务器预先构建了时空格网模型,该时空格网模型可以参见上述相关概念介绍中的描述以及图8所示的时空格网模型示意图,此处不再赘述。该时空格网模型中每一个时空格网都映射有一个唯一的时空混合编码,因此,服务器计算得到上述轨迹的各个轨迹点的时空混合编码之后,可以将该各个轨迹点映射到其时空混合编码对应的时空格网中。在该各个轨迹点所在的时空格网不是连续相邻的情况下,服务器通过插值的方法逼近该轨迹的实际运行轨迹。
该各个轨迹点所在的时空格网不是连续相邻的情况可以参见图11B。在图11B中,假设上述轨迹的轨迹点为3个,该三个轨迹点分别映射到时空格网1、时空格网4和时空格网7这三个时空格网中。可以看到,这三个时空格网不是连续相邻的格网,用折线将该三个轨迹点连接起来,假设将该折线看成是轨迹,那么,该轨迹还经过时空格网2、时空格网3、时空格网5和时空格网6这4个时空格网。因此,服务器需要通过插值的方法获取到该4个时空格网映射的空间位置信息和时间信息,从而可以获得该4个时空格网的时空混合编码,这样才可以在时空格网模型中映射出经过该时空格网1、2、3、4、5、6和7这7个格网的轨迹,以实现实际运行轨迹的逼近。
示例性地,在具体实施例中,服务器可以通过计算该多个轨迹点每两个相邻轨迹点的轨迹数据的平均值得到新的轨迹数据,该新的轨迹数据可以表示该轨迹的轨迹点。例如,假设轨迹包括三个轨迹点,该三个轨迹点的轨迹数据包括经纬度和时间,分别用三个坐标来表示:(lat1,lon1,t1)、(lat2,lon2,t2)和(lat3,lon3,t3)。那么,可以计算(lat1,lon1,t1)和(lat2,lon2,t2)的平均值得到(lat4,lon4,t4),其中,lat4=(lat1+lat2)/2,lon4=(lon1+lon2)/2,t4=(t1+t2)/2。然后,计算(lat2,lon2,t2)和(lat3,lon3,t3)的平均值得到(lat5,lon5,t5),其中,lat5=(lat2+lat3)/2,lon5=(lon2+lon3)/2,t5=(t2+t3)/2。最后,用该五个轨迹点(lat1,lon1,t1)、(lat4,lon4,t4)、(lat2,lon2,t2)、(lat3,lon3,t3)和(lat5,lon5,t5)来表示该轨迹。如果该五个轨迹点映射的时空格网仍然不是连续相邻的时空格网,那么服务器可以基于该五个轨迹点的轨迹数据再计算每两个相邻轨迹点的轨迹数据的平均值得到新的轨迹点的数据,用得到的新的轨迹点和原来的五个轨迹点表示上述轨迹。可以基于上述计算每两个相邻轨迹点的轨迹数据的平均值得到新的轨迹数据的方法进行迭代运算,直到轨迹的轨迹点映射的时空格网连续相邻为止。
在另一种可能的是实施方式中,服务器也可以计算出经过上述轨迹的多个轨迹点的连续函数,然后通过连续函数可以计算得到多个新的轨迹点,这些新的轨迹点与原来的轨迹点可以映射到连续相邻的时空格网。
这里只是示例性地介绍获取上述轨迹的新的轨迹点的插值的方法,还可以通过其它方式来实现,本方案对此不做限制。
另外,通过上述插值方法计算得到的新的轨迹点,也可以通过上述时空混合编码的方法对这些轨迹点的轨迹数据进行编码,得到这些新的轨迹点的时空混合编码,通过这些时空混合编码就可以将新的轨迹点映射到对应的时空格网中。这些新的轨迹点的时空混合编码和轨迹原来的轨迹点的时空混合编码组成的编码集合即为该轨迹的编码,该编码集合又可以称为该轨迹的编码模型,或者说该编码集合为该轨迹的表达模型。
在一种可能的实施方式中,服务器可以直接采用上述S1001中获取的轨迹数据包括的轨迹的一个或多个轨迹点的时空混合编码作为该轨迹的编码,可以不需要经过上述插值来获取映射到的时空格网连续相邻的编码作为该轨迹的编码。
S1004、服务器基于上述获取到的轨迹的时空混合编码构建索引数据库。
该索引数据库可以是一个多级多维索引树,多级索引是指时空格网索引由低层级到高层级多个层级构成,多维是指索引包含时间和空间多个维度,在一些可能的实施方式中,多维索引还可以包括属性维度。该索引树的层级可以是预先设定的,例如,该索引树为k级索引树,即第k级为该索引树的最高层级,k为大于1的整数。索引树的每一个层级都可以包括一个或多个节点。
该索引树的层级与上述时空格网模型的时空格网层级有映射关系,该映射关系是可选择的。为了便于理解,举例说明。例如,假设上述时空格网模型包括10个层级,而该索引树的层级可以为5个层级,该索引树的第1、2、3、4、5层级可以分别与时空格网模型的第6、7、8、9、10层级映射。或者,该索引树的第1、2、3、4、5层级可以分别与时空格网模型的第5、6、7、8、9层级映射。索引树和时空格网模型之间的层级映射根据实际情况选择确定,本方案对此不做限制。
上述索引树和时空格网模型之间的层级映射是指:索引树中的层级的节点一一关联对应该层级映射的时空格网层级中的部分或全部时空混合编码。例如,上述索引树的第1层级的节点一一对应关联时空格网模型的第6层级中包括的部分或全部时空混合编码,上述索引树的第2层级的节点一一对应关联时空格网模型的第7层级中包括的部分或全部时空混合编码等。
在具体实施例中,该索引树可以通过逐渐将新获取的轨迹的时空混合编码添加进去构建起来。具体的,上述获取到的轨迹的时空混合编码都是根据预设的空间层级和预设的时间粒度编码得到,该预设的空间层级和预设的时间粒度映射为某一个时空格网层级,该某一个时空格网层级与索引树中的某一个层级映射,该某一个层级可以是索引树中的任意一个层级,下面将该某一个层级称为预设索引层级。
一种可能的实施方式中,根据上述S1002中的相关描述可知,不同场景的轨迹的时空混合编码对应的时空格网层级可能不同,那么不同场景的轨迹的时空混合编码所在的索引树的层级也可能不同。
上述确定预设索引层级之后,可以根据上述预设的空间层级和预设的时间粒度编码得到的时空混合编码为该索引树的预设索引层级的索引,或者说为该索引树的预设索引层级的节点。
假设上述获取到的轨迹的时空混合编码为第一批用于构建索引树的编码,且在该获取到的轨迹的时空混合编码各不相同的情况下,服务器可以将这些时空混合编码添加到索引树中作为预设索引层级的节点。
此外,服务器还将上述轨迹的轨迹标识和轨迹元数据一起存储到该预设索引层级的节点对应的存储空间中。具体的,服务器将轨迹的轨迹标识和轨迹元数据存储到该轨迹的所有时空混合编码对应的节点中,即属于同一个轨迹的每一时空混合编码的节点中均存储该轨迹的轨迹标识和轨迹元数据。在本申请中,该轨迹的轨迹标识和轨迹元数据可以统称为轨迹信息。存储在时空混合编码对应的节点中的轨迹信息可以说是该时空混合编码映射的轨迹信息。
其中,轨迹标识用于在索引数据库中唯一标识一个轨迹,例如,对于车辆的轨迹,其轨迹标识可以是车牌号码等。
上述轨迹元数据包括轨迹长度,轨迹长度为上述S1003步骤所述的一个轨迹的轨迹点在时空格网模型中映射连续相邻的时空格网的数量。或者说,轨迹长度为在上述S1003步骤中基于插值的方法获取到的一个轨迹的新的轨迹点和该一个轨迹原来的轨迹点的总个数。或者说,轨迹长度为在上述S1003步骤中获取到的一个轨迹的编码集合中该轨迹的时空混合编码的个数。
在一种可能的实施方式中,轨迹元数据还包括其它的信息例如时空混合编码映射的时空格网的层级数、最小包围盒和轨迹持续的时间等信息,这些信息可以和轨迹标识以及轨迹长度一起存储到对应的时空混合编码节点中。该最小包围盒指的是时空混合编码映射的时空格网所映射的空间位置信息,例如可以是该时空格网映射的空间位置的左上角的经纬度和右下角的经纬度信息等。
在该获取到的轨迹的时空混合编码存在相同编码的情况下,那么对于相同的时空混合编码,只将一个时空混合编码添加到上述索引树中作为预设索引层级的节点。但是,服务器将该相同的时空混合编码所属的多个轨迹的轨迹标识和轨迹元数据均存储到该时空混合编码的节点中。例如,第一轨迹的编码集合和第二轨迹的编码集合中有一个相同的时空混合编码,服务将该相同的时空混合编码添加到上述索引树中作为预设索引层级的节点,并将第一轨迹和第二轨迹这两个轨迹的轨迹标识和轨迹元数据存储到该节点中。
经过上述的操作,服务器已经构建了索引树在预设索引层级中的多个节点。另外,基于前述的描述可知,时空混合编码的空间编码部分具备高层级的空间编码前缀包括对应的低层级的空间编码的属性,时空混合编码的时间编码部分具备高层级的时间编码前缀包括对应的低层级的时间编码的属性。那么,根据索引树中预设索引层级的节点的时空混合编码可以构建索引树中低于该预设索引层级的每一个层级的节点的时空混合编码。
具体的,首先构建比该预设索引层级低一个层级的节点的时空混合编码,服务器可以根据索引树中该比预设索引层级低一个层级映射的时空格网层级的时空混合编码的空间编码位数和时间编码位数,来分别确定该预设索引层级中的时空混合编码的空间编码前缀的位数(假设为w1位,w1为整数)和时间编码前缀的位数(假设为w2位,w2为整数)。
然后,服务器可以在该预设索引层级的时空混合编码的空间编码部分查找是否存在前w1位相同的编码,并在该预设索引层级的时空混合编码的时间编码部分查找是否存在前w2位相同的编码,若同时存在,则将该前w1位相同的空间编码和该前w2位相同的时间编码通过上述空间编码和时间编码的合并方式合并在一起得到新的时空混合编码,这里的空间编码和时间编码的合并方式与预设索引层级的时空混合编码的合并方式相同,即时空混合编码的编码规则需要一致。服务器将该新的时空混合编码添加到索引树中作为比预设索引层级低一个层级的节点,该节点为上述预设索引层级的时空混合编码中空间编码的前w1位相同并且时间编码的前w2位也相同的时空混合编码的父节点。
如果上述预设索引层级的时空混合编码中存在一个时空混合编码,没有其它时空混合编码的空间编码的前w1位与该一个时空混合编码的空间编码的前w1位相同,并且时间编码的前w2位也相同,那么服务器可以单独为该一个时空混合编码在索引树中构建父节点。该父节点的构建方法参见上一段的描述,此处不再赘述。
服务器为预设索引层级的所有时空混合编码均建立了父节点之后,则这些父节点就组成了索引树中比预设索引层级低一个层级的多个节点。若该比预设索引层级低一个层级的索引层级还不是索引树中的最低层级第一层级,那么服务器继续构建比预设索引层级低两个层级的节点。
具体的,以上述构建的比预设索引层级低一个层级的多个节点的时空混合编码为基础,来构建比该预设索引层级低两个层级的节点的时空混合编码。同样的,服务器可以根据索引树中该比预设索引层级低两个层级映射的时空格网层级的时空混合编码的空间编码位数和时间编码位数,来分别确定该预设索引层级中的时空混合编码的空间编码前缀的位数(假设为w3位,w3为整数)和时间编码前缀的位数(假设为w4位,w4为整数)。
然后,服务器可以在该比预设索引层级低一个层级的多个节点的时空混合编码的空间编码部分查找是否存在前w3位相同的编码,并在时间编码部分查找是否存在前w4位相同的编码,若同时存在,则将该前w3位相同的空间编码和该前w4位相同的时间编码通过上述空间编码和时间编码的合并方式合并在一起得到新的时空混合编码,这里的空间编码和时间编码的合并方式与预设索引层级的时空混合编码的合并方式相同,即时空混合编码的编码规则需要一致。服务器将该新的时空混合编码添加到索引树中作为比预设索引层级低两个层级的节点,该节点为上述比预设索引层级低一个层级的时空混合编码中空间编码的前w1位相同并且时间编码的前w2位也相同的时空混合编码的父节点。
同样的,如果上述比预设索引层级低一个层级的时空混合编码中存在一个时空混合编码,没有其它时空混合编码的空间编码的前w3位与该一个时空混合编码的空间编码的前w3位相同,并且时间编码的前w4位也相同,那么服务器可以单独为该一个时空混合编码在索引树中构建父节点。该父节点的构建方法参见上一段的描述,此处不再赘述。
服务器可以按照上述构建索引树低层级的节点的方法逐层级地构建,直到构建得到索引树最低层级即第一层级的节点,从而完成了初步的索引树的构建。示例性地,可以参见图12,图12示例性地示出了构建好的初步的索引树的结构示意图。图12中假设索引树为3个层级,该第3层级为上述预设索引层级,第2层级为上述比预设索引层级低一个层级的索引层级,第1层级为上述比预设索引层级低两个层级的索引层级,也是该索引树的最低层级。
上述构建的索引树只是初步的索引树,服务器会定期获取更多轨迹的数据,然后对更多轨迹进行时空编码,并将这些新获取的轨迹的时空混合编码添加到索引树中。
示例性地,下面介绍一下将新获取的轨迹的时空混合编码添加到索引树中的过程。
以新获取到轨迹的时空混合编码中的一个编码为例介绍,可以称该一个编码为第一时空混合编码。服务器可以将该第一时空混合编码的空间编码的前缀逐层与索引树中各个层级的时空混合编码的空间编码比较,并将该第一时空混合编码的时间编码的前缀逐层与索引树中各个层级的时空混合编码的时间编码比较。
若索引树中存在这样的两个层级,假设分别称为L层级和H层级,在索引树中该H层级比该L层级高一个层级,该第一时空混合编码的空间编码前缀包括该L层级的某一个时空混合编码的空间编码,同时该第一时空混合编码的时间编码前缀也包括该某一个时空混合编码的时间编码;但是,H层级的所有时空混合编码中没有一个编码的空间编码(或时间编码)包括在第一时空混合编码的空间编码(或时间编码)的前缀中。那么,服务器将该第一时空混合编码添加到该H层级作为该H层级的一个节点,并且配置上述某一个时空混合编码作为该第一时空混合编码节点的父节点。同时,服务器将该第一时空混合编码所属轨迹的轨迹标识和轨迹元数据存储在该第一时空混合编码节点对应的存储空间中。
若索引树中所有层级的时空混合编码中没有一个编码的空间编码(或时间编码)包括在第一时空混合编码的空间编码(或时间编码)的前缀中,那么,服务器将该第一时空混合编码添加到索引树的最高层级作为该最高层级的一个节点,然后基于该第一时空混合编码构建该编码对应的各个低层级的索引编码节点,具体构建低层级的节点的方法参见上述的描述,此处不追赘述。同时,服务器将该第一时空混合编码所属轨迹的轨迹标识和轨迹元数据存储在该第一时空混合编码节点对应的存储空间中。
若索引树中存在某一个时空混合编码与该第一时空混合编码相同,那么服务器直接将该第一时空混合编码所属轨迹的轨迹标识和轨迹元数据存储在该某一个时空混合编码节点对应的存储空间中。
综上,服务器可以通过上述介绍的方法逐渐完善索引数据库。
在一种可能的实施方式中,服务器还可以将轨迹的属性信息一起存储到对应的时空混合编码节点对应的存储空间中。上述S101中有关于轨迹的属性信息的相关描述,此处不再赘述。
在具体实施例中,服务器可以直接将轨迹的属性信息存储到索引树中该轨迹的每一个时空混合编码的节点对应的存储空间中。
或者,服务器可以先对轨迹的属性信息进行编码,然后将属性信息的编码存储到索引树中该轨迹的每一个时空混合编码的节点对应的存储空间中。示例性地,服务器也可以对属性的数值的范围进行分段,每一段可以赋予一个编码,若属性信息不能用数值表示,那么可以对属性信息进行分类,每一类可以赋予一个编码等等,以此来实现对属性信息的编码。例如,假设属性信息包括车辆的颜色和可载客数量,对于车辆颜色这个属性,可以每一种颜色用一个编码来表示,例如,白色编码为00,红色编码为01等等。对于可载客数量,可以划分范围,每一个范围用一个编码来表示,例如,可载客数量在1至4这个范围内可编码为10,可载客数量在5至10这个范围内可编码为11等等。这里只是示例,具体的范围、分类以及编码根据实际情况确定,本方案对此不作限制。
S1005、服务器基于上述S1001获取到的轨迹数据构建轨迹数据库。
在本申请实施例中,轨迹数据库用于存储服务器获取到的各个轨迹的轨迹数据。在构建所述轨迹数据库时,可以将轨迹的标识作为对应的轨迹数据的索引。即索引数据库中包括的多个轨迹的标识与该轨迹数据库中的多个轨迹的轨迹数据一一对应关联。
在一种可能的实施方式中,服务器也可以将轨迹的时空混合编码存储在轨迹数据库中。
此外,为解决不定长轨迹(不同轨迹数据长度差异较大)的存储一致性问题,可采用轨迹分段存储方式,将轨迹按时空格网对应的时空范围进行分段,以轨迹标识加分段标识的模式进行存储,还可存储轨迹的分段元数据信息,轨迹分段元数据包括但不限于轨迹分段时间范围,所属时空网格,轨迹分段长度等属性。
在本申请实施例中,上述索引数据库可以存储在高速存储介质中,如内存、固态驱动器(solid state disk或solid state drive,SSD)等存储介质。固态驱动器又称为固态硬盘。这是为了便于在轨迹相似查询过程中可以较快地查询到相似轨迹,以提高查询效率。上述轨迹数据库可以低速存储介质中,如机械磁盘等等。
实施例二
下面首先介绍本申请实施例提供的另一种数据库的构建和更新的数据处理方法。
在一种可能的实施方式中,还可以将轨迹的属性信息编码得到属性编码,然后,将属性编码合并到上述时空混合编码中得到多维混合编码。对于轨迹的属性信息的编码可以参见上述S1004步骤中属性信息编码的相关描述,此处不再赘述。
若属性信息包括多项信息,那么可以对多项信息分别进行编码得到多个编码,然后按照预设的顺序将该多个编码合并在一起形成一个编码序列。该编码序列即为轨迹的属性编码。例如,假设轨迹的属性信息包括车辆的颜色和可载客数量这两项信息,且车辆的颜色为白色,可载客量为4个,那么假设根据预设的编码规则车辆的颜色白色编码为00,可载客数量4落在1至4这个范围内可编码为10,又假设将车辆的颜色这个属性的编码排在前面,可载客数量这个属性的编码排在后面,因此可以获得0010这一编码序列,该编码序列即为该轨迹属性编码。
服务器通过上述介绍的方法获取到轨迹的各个轨迹点的时空混合编码以及轨迹的属性编码之后,可以将该轨迹的属性编码合并到该各个轨迹点的时空混合编码中从而得到各个轨迹点的多维混合编码。示例性地,可以将轨迹的属性编码直接拼接到该轨迹各个轨迹点的时空混合编码中作为时空混合编码的后缀或者前缀。例如,假设时空混合编码为11002018,属性编码为0010,那么,可以将该属性编码拼接在时空混合编码的后面作为后缀,得到的多位混合编码为110020180010。或者,可以将该属性编码拼接在时空混合编码的前面作为前缀,得到的多位混合编码为001011002018。当然,这里只是示例性地给出时空混合编码与属性编码合并的方式,时空混合编码与属性编码的合并也可以是其它的方式,本方案对此不做限制。
在本申请中,多维混合编码也可以与上述的时空格网模型中的时空格网一一映射。一种可能实施的方式中,多维混合编码和该多维混合编码中的时空混合编码映射的时空格网为同一个格网,从而使得多维混合编码可以一一映射到时空格网模型的时空格网中。
服务器获取到各个轨迹的多维混合编码之后,根据这些多维混合编码构建索引数据库和轨迹数据库,具体的构建方法可以参见上述S1004和S1005中相应地描述,此处不再赘述。需要说明的是,本实施例二构建的索引数据库中可以不再添加轨迹的属性信息。
实施例三
基于上述构建的索引数据库,可以进行相似轨迹的查询,下面介绍相似轨迹查询的数据处理方法。参见图13,该方法可以包括但不限于如下步骤:
S1301、服务器获取第一信息,该第一信息包括第一轨迹的一个或多个轨迹点的空间位置数据和时间数据。
在具体实施例中,该第一信息可以是用户终端发送给该服务器,或者也可以是服务器通过自身设备显示的用户界面(user interface,UI)获取到的来自用户输入的信息。上述第一轨迹可以为任意一个需要为其查询相似轨迹的轨迹。上述轨迹点的空间位置数据可以包括该轨迹点的经纬度信息等,上述轨迹点的时间数据包括该产生该第一轨迹的对象在该轨迹点所在的空间位置时的时刻信息。
示例性地,对于在顺风车服务场景中,上述第一轨迹可以是用户在手机或智能手表等用户终端输入的行程,进而服务器以该行程为第一轨迹,查找当前可载客车辆行程与该第一轨迹相似的车辆。行程可以包括出发地点、目的地点和出发的时间等,那么出发地点和目的地点为该轨迹的两个轨迹点。在同行人分析场景中,第一轨迹可以是某一位具体用户在某个时间段内的轨迹,可以通过查询相应的数据库获取到,进而服务器以该轨迹为第一轨迹,查询在相同时间段与该用户同行(即轨迹相似)的用户有哪些。
上述服务器例如可以是图1所示的服务器100,上述用户终端例如可以是图1所示的用户终端110。
在一种可能的实施方式中,上述第一信息还可以包括上述第一轨迹的关联的属性数据,该属性数据即为前述介绍过的轨迹的属性信息,此处不再赘述。
S1302、服务器根据该第一信息获取第一混合编码集合,该第一混合编码集合用于在上述索引数据库中查询到与该第一轨迹的相似轨迹。
索引数据库即为上述实施例一和实施例二所述的索引树。
一种可能的实施方式中,该第一混合编码集合包括上述第一信息中的每个轨迹点各自在索引数据库中预设层级的时空混合编码,时空混合编码的相关描述可以参见上述实施例一;在另一种可能的实施方式中,在上述第一信息还包括上述第一轨迹的关联的属性数据的情况下,该第一混合编码集合包括上述第一轨迹的每个轨迹点各自在索引数据库中预设层级的多维混合编码,多维混合编码的相关描述可以参见上述实施例二。下面分两种情况分别介绍。
第一种情况、该第一混合编码集合包括上述第一信息中的每个轨迹点各自在索引数据库中预设层级的时空混合编码。这种情况可以基于上述实施例一构建的索引数据库来实现。
在具体实施例中,服务器可以根据上述第一轨迹的一个或多个轨迹点的空间位置数据和时间数据进行编码得到该一个或多个轨迹点的时空混合编码。具体的,服务器可以先确定编码为哪一个时空格网层级的编码,由于时空格网层级与索引数据库即索引树的层级有映射关系,因此确定出时空格网层级之后,索引树的层级也随之确定了,假设确定出的索引树的层级为上述预设层级,该预设层级可以是索引树中的任意一个层级。然后分别对第一轨迹的各个轨迹点进行空间编码和时间编码,再将每个轨迹点的空间编码和时间编码合并得到该轨迹点的时空混合编码。编码的具体过程可以参见上述实施例一中S1002中的描述,此处不再赘述。
第二种情况、该第一混合编码集合包括上述第一信息中的每个轨迹点各自在索引数据库中预设层级的多维混合编码。这种情况可以基于上述实施例二构建的索引数据库来实现。
基于实施例二的描述可知,多维混合编码是轨迹点的时空编码、空间编码和属性编码合并得到的,具体的多维混合编码的编码过程可以参见上述实施例二中的描述,此处不再赘述。
S1303、服务器根据上述第一混合编码集合在该索引数据库中查询与该第一轨迹相似的m个候选相似轨迹的轨迹信息,该m为整数。
在具体实施例中,服务器获取上述第一轨迹的第一混合编码集合之后,服务器可以在索引数据库中查找与该第一混合编码集合中的编码相同的编码。查找到的混合编码映射有轨迹信息,那么可以称这些查找到的映射有轨迹信息的多个混合编码为第二混合编码集合。
下面以该第一混合编码集合中的某一个编码为例介绍具体的查找过程,假设称该某一个编码为第一编码。
基于前述的描述可知不管是时空混合编码还是多维混合编码,在索引树中高层级的混合编码中的空间编码的前缀包括对应的低层级的空间编码,且高层级的混合编码中的时间编码的前缀包括对应的低层级的时间编码。下面将时空混合编码和多维混合编码统称为混合编码。那么,服务器可以根据从索引树的最低层级即第一层级的混合编码开始,查找到与第一编码的空间前缀和时间前缀均相同的混合编码,然后再在第二层级中的以该混合编码的节点为父节点的混合编码中继续查找与第一编码的空间前缀和时间前缀均相同的混合编码,如此逐层查找直至找到与该第一编码完全相同的编码。
为了便于理解,可以参见图12。假设第一编码为00000120180512,那么,服务器可以将第1层级的编码的空间编码即前两位编码与该第一编码为00000120180512的空间编码前2位即00比较,并将第1层级的编码的时间编码即后4位编码与该第一编码为00000120180512的时间编码前4位即2018比较,确定出002018为其匹配的第1层级的混合编码。然后,在以002018为父节点的第2层级的混合编码中即0000201805和0011201808,服务器可以将该2个编码的空间编码即前4位编码与该第一编码为00000120180512的空间编码前4位即0000比较,并将该2个编码的时间编码即后6位编码与该第一编码为00000120180512的时间编码前六位即201805比较,确定出0000201805为其匹配的第2层级的混合编码。然后,在以0000201805为父节点的第3层级的混合编码中即00000120180512、00001020180520和00001120180528,服务器可以将该3个编码的空间编码即前6位编码与该第一编码为00000120180512的空间编码前6位即000012比较,并将该3个编码的时间编码即后8位编码与该第一编码为00000120180512的时间编码前8位即20180512比较,最终查找到该第一编码00000120180512。
或者,服务器可以根据索引树各个层级的混合编码的编码规则,基于该第一编码获取到该第一编码对应的低层级的混合编码,然后,根据获取的低层级的混合编码逐层级地查询比较,最终查找到该第一编码对应的层级的候选混合编码,然后将该第一编码与该候选的混合编码比较直到查找到与该第一编码完全相同的编码。
为了便于理解,可以参见图12。假设第一编码为00000120180512,那么可以基于该第一编码获取到其对应的低层级的混合编码,即获取到第2层级的编码为0000201805,获取到第1层级的编码为002018。然后,服务器可以在第一层级中查找到002018,然后再在002018对应的第二层级的编码中即0000201805和0011201808这两个编码中查找到0000201805,然后再在0000201805对应的第3层级的编码中即00000120180512、00001020180520和00001120180528中比较查找到00000120180512。
若比较完均没查找到与该第一编码完全相同的编码,则表明索引树中不存在该第一编码。
按照上述描述的方式在索引树中对上述第一混合编码集合的每一个编码进行查找,若能够在索引树中查找到相同的编码,则在该相同编码的节点存储空间中读取存储有的所有轨迹标识和轨迹长度。在读取完所有相同编码的节点中存储的轨迹标识和轨迹长度,服务器可以通过轨迹标识来区分每一条轨迹,这些轨迹即为候选相似轨迹。
在另一种可能的实施方式中,候选相似轨迹的轨迹信息不一定都存储在索引树中与上述第一混合编码集合的编码相同的编码的节点对应的存储空间中,也可以存储在这些相同编码对应的低层级和/或高层级的编码节点的存储空间中。
基于前面实施例的描述可知,对于速度较快和移动范围较广的轨迹中的轨迹点,可以按照较低层级的时空格网编码规则来进行编码,映射到索引树中也为较低层级的节点,而对于速度较慢和移动范围较窄的轨迹中的轨迹点,可以按照较高层级的时空格网编码规则来进行编码,映射到索引树中也为较高层级的节点。那么,服务器可以将索引树中与上述第一混合编码集合的编码相同的编码的节点对应的低层级和/或高层级的节点的存储空间中存储的轨迹标识对应的轨迹作为候选相似轨迹。
例如,对于低层级的,假设索引树中第五层级的某个编码与第一混合编码集合的某个编码相同,且该第五层级的某个编码的节点的父节点的存储空间中存储有轨迹标识和轨迹长度等信息,那么服务器可以将该父节点的存储空间中存储有的轨迹标识对应的轨迹确定为候选相似轨迹。若该父节点的存储空间中仍然存储有轨迹标识和轨迹长度,那么也可以将其确定为候选相似轨迹。
再例如,对于高层级的,假设索引树中第五层级的某个编码与第一混合编码集合的某个编码相同,且该第五层级的某个编码的节点的子节点即对应的下一层级的节点的存储空间中存储有轨迹标识和轨迹长度等信息,那么服务器可以将该子节点的存储空间中存储有的轨迹标识对应的轨迹确定为候选相似轨迹。若该子节点的存储空间中仍然存储有轨迹标识和轨迹长度,那么也可以将其确定为候选相似轨迹。
在一种可能的实施方式中,对于上述S1302中的第一种情况,第一混合编码集合中的编码为时空混合编码,不包括第一轨迹的属性信息,而上述第一信息还包括上述第一轨迹的属性信息,且需要基于该属性信息筛选出与该属性信息匹配的候选相似轨迹,那么,服务器可以在上述查找到的多个轨迹的基础上,再次基于该第一轨迹的属性信息进行筛选。
具体的,若索引数据库中是直接将轨迹的属性信息存储在混合编码的节点对应的存储空间中,那么服务器可以将该第一轨迹的属性信息直接与上述查找到的多个轨迹的属性信息进行比较,若该第一轨迹的属性信息和某个轨迹的属性信息相同或者属于该某个轨迹的属性信息包括的范围内,那么可以确定该某个轨迹为候选相似轨迹。
若索引数据库中是将轨迹的属性信息的编码存储在混合编码的节点对应的存储空间中,那么服务器需要先对第一轨迹的属性信息进行编码,具体的编码过程参加上述实施例一S1004中的具体描述,此处不再赘述。然后,将该第一轨迹的属性信息的编码与上述查找到的多个轨迹的属性信息的编码进行比较,若该第一轨迹的属性信息的编码和某个轨迹的属性信息的编码相同,那么可以确定该某个轨迹为候选相似轨迹。
如果索引数据库中没有存储有上述查找到的多个轨迹中某个轨迹的属性信息,那么服务器可以将该某个轨迹确定为候选相似轨迹,或者服务器可以确定该某个轨迹不属于候选相似轨迹。
通过上述的方法,服务器可以筛选出上述m个候选相似轨迹,并可以在对应的编码节点的存储空间中获取到候选相似轨迹的轨迹信息。
S1304、服务器根据该第一轨迹的轨迹长度和该m个候选相似轨迹的轨迹信息计算该第一轨迹分别与该m个候选相似轨迹之间的相似度。
上述服务器获取到候选相似轨迹之后,基于这些候选相似轨迹的各个轨迹的标识和轨迹长度以及上述第一轨迹的轨迹长度来计算上述第一轨迹与候选相似轨迹的相似度。下面以候选相似轨迹中的其中一条轨迹(可以称为第一候选轨迹)为例介绍计算相似度的过程。
具体的,服务器可以在上述读取到的轨迹标识中计算该第一候选轨迹的轨迹标识出现的次数,即计算在读取到的所有轨迹标识中该第一候选轨迹的轨迹标识出现的次数。或者说,服务器可以计算上述获取到的第二混合编码集合中映射有该第一候选轨迹的轨迹标识的混合编码的个数。由于读取到的每一个轨迹标识对应一个混合编码,每一个混合编码对应一个轨迹点,那么,该第一候选轨迹的轨迹标识的出现次数即为该第一候选轨迹与第一轨迹中的相同混合编码的个数,也是该第一候选轨迹与第一轨迹中的相同轨迹点的个数。然后,服务器根据不同场景的实际需要基于该相同混合编码的个数和第一候选轨迹与第一轨迹的轨迹长度计算这两个轨迹的相似度。
在介绍相似度的计算之前,先定义好相应的计算量。
假设该第一轨迹的第一混合编码集合用CA来表示,另外,假设上述读取到的第一候选轨迹的轨迹长度为|CB|,CB表示该第一候选轨迹的编码集合。该第一候选轨迹的混合编码与第一轨迹的混合编码中相同混合编码的个数为|CA∩CB|。下面示例性地介绍几种场景的轨迹相似度的计算。
第一种场景、无特别关注的特征,一般应用的场景。
在这种场景下,可以通过如下公式计算上述第一候选轨迹与第一轨迹的相似度:
该公式中GSIM表示相似度,K大于0。这里增加系数K是考虑到不同层级的混合编码对应的轨迹之间进行相似计算的情况。当K等于1时,则表明第一轨迹的混合编码与第一候选轨迹的混合编码为索引树中相同层级的混合编码。当K大于1时,则表明第一候选轨迹的混合编码在索引树中的层级比第一轨迹的混合编码在索引树中的层级低,当K大于0且小于1时,则表明第一候选轨迹的混合编码在索引树中的层级比第一轨迹的混合编码在索引树中的层级高。K大于1和K大于0且小于1这两种情况则对应上述S1303中描述的“服务器可以将索引树中与上述第一混合编码集合的编码相同的编码的节点对应的低层级和/或高层级的节点的存储空间中存储的轨迹标识对应的轨迹作为候选相似轨迹”的情况。
可选的,上述K可以是2q,其中q为整数。q表示第一候选轨迹的混合编码和第一轨迹的混合编码在索引树中的层级差。当q为负整数时对应K大于0且小于1的情况,当q为0时对应K等于1的情况,当q为正整数时对应K大于1的情况。K可以用于平衡不同层级间轨迹映射的时空格网数量以及真实路径长度不一致带来的影响。
第二种场景、关注轨迹间伴随特征的场景,例如顺风车或者犯罪追踪等场景。
在这种场景下,可以通过如下公式计算上述第一候选轨迹与第一轨迹的相似度:
通过该计算可以提升在该第二种场景下,两个轨迹之间的相似度计算的准确度。
第三种场景、关注与源轨迹相似度的场景,例如疫情分析与追踪等场景。
在这种场景下,可以通过如下公式计算上述第一候选轨迹与第一轨迹的相似度:
本申请实施例中相似计算的公式不限于上述介绍的几种,具体的计算公式根据实际情况确定,本方案对此不做限制。
S1305、服务器筛选出N个相似轨迹的轨迹数据,该N为大于或等于m的整数。
基于上述的描述,服务器根据对应的场景计算出各个候选相似轨迹与第一轨迹的相似度之后,可以将这些相似度从高到低排序,筛选出前N个相似度对应的N个候选相似轨迹,该N个候选相似轨迹即为最终查询到的N个相似轨迹。为了便于理解相似度与候选轨迹的对应关系,示例说明,假设上述第一候选轨迹与第一轨迹的相似度为第一相似度,那么该第一相似度对应的候选轨迹即为该第一候选轨迹。
在另一种可能的实施方式中,服务器也可以根据预设的阈值筛选出上述N个相似轨迹,例如,假设相似度的预设阈值为0.6,那么,只要计算出两个轨迹的相似度大于或等于该0.6,该相似度对应的候选轨迹即为与第一轨迹相似的轨迹。
这里只是示例性地介绍筛选相似轨迹的方式,本方案对具体的筛选方式不做限定。
服务器筛选出上述N个相似轨迹之后,若上述第一信息是来自用户终端,服务器可以将该N个相似轨迹的轨迹数据,例如轨迹标识和轨迹的属性信息等发送给该用户终端。若上述第一信息是来自服务器自身设备的UI界面,服务器可以将该N个相似轨迹的轨迹数据显示在自身设备的显示界面中。
另外,需要说明的是,上述N可以是由用户指定的,例如该N的具体数值可以和上述第一信息一起发送或者输入给服务器。或者,该N的具体数值也可以是用户终端另外从用户输入的指令中获取并发送给服务器,或服务器自身另外从用户输入的指令中获取等等。
实施例四
在另一种可能的实施方式中,为了保证轨迹相似性查询算法的鲁棒性,避免遗漏潜在的相似轨迹,上述实施例三中第一轨迹的第一混合编码集合为对该第一轨迹扩展之后的混合编码组成的集合。
在具体实施例中,服务器可以根据预设的轨迹扩展规则对第一轨迹进行扩展。示例性地,该预设的轨迹扩展规则例如可以是:时空格网模型中,与该第一轨迹的混合编码映射的时空格网直接相邻的时空格网对应的混合编码均为基于该第一轨迹扩展的混合编码。那么,第一轨迹扩展的混合编码与扩展前的混合编码一起组成上述第一混合编码集合。该直接相邻指的是两个格网之间有共同的边界或顶点接触,例如可以参见图14,图14中的(a)、(b)、(c)和(d)示例性示出了两个时空格网直接相邻的几个示意图。
或者,示例性地,该预设的轨迹扩展规则例如可以是基于预设时空结构对第一轨迹进行扩展。该预设时空结构表示一系列彼此临近的时空格网集合,预设时空结构的形状根据应用场景不同而定,常见为多个时空格网组成的格网立方体。该预设时空结构中的格网结构表示为该结构中各格网相对于该结构的中心格网的偏移量。例如可以参见图15中的(b)所示的结构,本实施例中对上述第一轨迹的扩展可以采用结构大小为3×3×3时空格网的预设时空结构。该预设时空结构的格网在时空格网模型中的空间层级和时间划分粒度需要与第一轨迹的混合编码对应空间层级和时间划分粒度相同,即该预设时空结构的格网所属的时空格网层级与第一轨迹的混合编码映射的时空格网层级相同。
在具体实施例中,首先,服务器可以基于上述第一轨迹的第一信息编码和插值得到该第一轨迹映射的连续相邻的时空格网,例如可以参见图15中的(a),假设该图15中(a)所示为第一轨迹的混合编码映射的连续相邻的时空格网。假设图15中的(b)所示的结构为预设时空结构,然后,服务器可以用图15中的(b)所示的结构遍历图15中的(a)的时空格网。具体的,该遍历操作包括:可以将该预设时空结构的中心格网分别与图15中的(a)的时空格网重叠,然后,将预设时空结构中不与图15中的(a)的时空格网重叠的时空格网作为扩展的时空格网。最终,将第一轨迹的时空格网扩展得到的格网结构可以参见图15中的(c)所示的结构。
那么,图15中的(c)所示结构包括的时空格网对应的混合编码即为扩展后的第一轨迹的编码,即图15中的(c)所示结构包括的时空格网对应的混合编码组成上述第一混合编码集合。可以看到,图15(a)中轨迹映射的时空格网的个数为5个,经过扩展之后,可以将该轨迹映射的时空格网个数扩展至69个,如图15(c)所示。即该轨迹的混合编码集合包括的混合编码由原来的5个扩展为69个。
由于每一个混合编码可以看成是对应有一个轨迹点,那么上述对第一轨迹的混合编码的个数的扩展也可以说是对第一轨迹的轨迹点的个数的扩展。
在基于本实施例四上述方法获得第一轨迹的第一混合编码集合之后,同样地,服务器可以基于该第一混合编码集合查询候选相似轨迹,具体的查询过程可以参见上述实施例三中S1303的对应描述,此处不再赘述。
查询到候选相似轨迹之后,则计算这些候选相似轨迹与第一轨迹的相似度,下面介绍基于上述扩展后的第一轨迹的编码集合来计算轨迹相似度的过程。同样地,以上述实施例三中所述的第一候选轨迹与第一轨迹之间的相似度计算为例介绍。
同样的,在介绍相似度的计算之前,先定义好相应的计算量。
假设该第一轨迹的第一混合编码集合用CA来表示,根据本实施例四中上述描述的第一轨迹的扩展过程中可知,该第一混合编码集合包括服务器一开始获取的第一轨迹的轨迹点的混合编码以及服务器基于这些一开始获取的轨迹点的轨迹数据扩展得到的混合编码。假设服务器一开始获取的第一轨迹的轨迹点的混合编码的集合用CA1来表示,服务器基于这些一开始获取的轨迹点的轨迹数据扩展得到的混合编码的集合用CA2来表示,CA=CA1+CA2。
另外,假设上述读取到的第一候选轨迹的轨迹长度为|CB|,CB表示该第一候选轨迹的编码集合。该第一候选轨迹与服务器一开始获取的第一轨迹的轨迹点的混合编码中相同混合编码的个数为|CA1∩CB|,该第一候选轨迹与服务器基于这些一开始获取的轨迹点的轨迹数据扩展得到的混合编码中相同混合编码的个数为|CA2∩CB|。
下面示例性地介绍几种场景的轨迹相似度的计算。
第一种场景、无特别关注的特征,一般应用场景。
在这种场景下,可以通过如下公式计算上述第一候选轨迹与第一轨迹的相似度:
该公式中GSIM表示相似度,K大于或等于1。这里增加系数K是考虑到不同层级的混合编码对应的轨迹之间进行相似计算的情况。当K等于1时,则表明第一轨迹的混合编码与第一候选轨迹的混合编码为索引树中相同层级的混合编码。当K大于1时,则表明第一候选轨迹的混合编码在索引树中的层级比第一轨迹的混合编码在索引树中的层级低,这种情况则对应上述S1303中描述的“服务器可以将索引树中与上述第一混合编码集合的编码相同的编码的节点对应的低层级的节点的存储空间中存储的轨迹标识对应的轨迹作为候选相似轨迹”的情况。
可选的,上述K可以是2q,其中q为大于或等于0的整数。q表示第一候选轨迹的混合编码和第一轨迹的混合编码在索引树中的层级差。K可以用于平衡不同层级间轨迹映射的时空格网数量以及真实路径长度不一致带来的影响。
第二种场景、关注轨迹间伴随特征的场景,例如顺风车或者犯罪追踪等场景。
在这种场景下,可以通过如下公式计算上述第一候选轨迹与第一轨迹的相似度:
通过该计算可以提升在该第二种场景下,两个轨迹之间的相似度计算的准确度。
第三种场景、关注与源轨迹相似度的场景,例如疫情分析与追踪等场景。
在这种场景下,可以通过如下公式计算上述第一候选轨迹与第一轨迹的相似度:
本申请实施例中相似计算的公式不限于上述介绍的几种,具体的计算公式根据实际情况确定,本方案对此不做限制。
在计算出各个候选相似轨迹与第一轨迹的相似度之后,服务器可以根据这些相似度筛选出上述N个相似轨迹的轨迹数据,具体的实现过程可以参见上述实施例三中S1305的具体描述,此处不再赘述。
综上所述,本申请实施例首先通过将时空进行格网剖分,采用时空网格编码方式对轨迹进行多尺度时空网格编码表达,实现轨迹高维时空信息的降维共线,降低了组织管理与分析难度,降低存储空间占用;进一步提出了多级多维索引数据库构建方案,使轨迹相似查询同时面向时间和空间,还可以面向属性多个维度进行。此外,提出采用轨迹多维相似性度量方法,实现轨迹的多维相似性查询,并针对不同场景提出适应性相似性算法,提升轨迹相似性匹配准确度。算法可基于不同层级计算,提升计算效率,降低算法复杂度。
上述主要对本申请实施例提供的数据处理方法进行了介绍。可以理解的是,各个设备为了实现上述对应的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图16示出了设备的一种可能的逻辑结构示意图,该设备可以是上述各个实施例中的服务器,或者可以是上述服务器中的芯片,或者可以是上述服务器中的处理系统等。该设备1600包括第一获取单元1601、第二获取单元1602、查询单元1603和第三获取单元1604。其中:
第一获取单元1601,用于获取第一信息,该第一信息包括第一轨迹的一个或多个轨迹点的空间位置数据和时间数据;
第二获取单元1602,用于根据该第一信息获取第一混合编码集合,该第一混合编码集合包括该第一信息的每个轨迹点各自的混合编码,该混合编码为根据索引数据库中的预设层级的混合编码规则编码获得;该混合编码包括轨迹点的时间编码和轨迹点的空间编码,该时间编码是根据该时间数据获得,该空间编码是根据该空间位置数据获得;该索引数据库为多级索引结构,包括多个层级的混合编码,每个层级的混合编码根据其所归属的层级的混合编码进行集合划分,该每个层级的混合编码和其所归属的层级的混合编码之间存在所索引关系,该多个层级的混合编码中包括具有轨迹信息的混合编码,该轨迹信息用于指示该混合编码所属轨迹的轨迹标识和所属轨迹的轨迹长度,一个轨迹的轨迹长度为该索引数据库中存储的轨迹标识为同一轨迹的混合编码的个数;
查询单元1603,用于根据该第一混合编码集合中的每个混合编码在该索引数据库中按照多级索引结构的查询设备进行查询,获得第二混合编码集合,该第二混合编码集合中的混合编码为具有轨迹信息的混合编码;该第二混合编码集合中的混合编码映射有m个候选相似轨迹的轨迹信息,该m为整数;
第三获取单元1604,用于根据该第一轨迹的轨迹长度和该m个候选相似轨迹的轨迹信息获取N个相似轨迹,该N为小于或等于m的整数。
在一种可能的实施方式中,该查询单元1603具体用于:
按照多级索引结构的查询设备将该第一混合编码集合中的每个混合编码与该索引数据库中的混合编码比较,获取该第二混合编码集合,该第二混合编码集合中的混合编码为该索引数据库中与该第一混合编码集合中的混合编码相同的混合编码,和/或该索引数据库中与该第一混合编码集合中的混合编码相同的混合编码对应的低层级和/或高层级混合编码。
在一种可能的实施方式中,该第一信息还包括该第一轨迹的属性数据,该轨迹信息还包括该轨迹信息指示的轨迹的属性信息,该属性信息根据该轨迹信息指示的轨迹的属性数据获得;
该查询单元1603具体用于:
按照多级索引结构的查询设备将该第一混合编码集合中的每个混合编码与该索引数据库中的混合编码比较,获取第一匹配的混合编码,该第一匹配的混合编码为该索引数据库中与该第一混合编码集合中的混合编码相同的混合编码,和/或该索引数据库中与该第一混合编码集合中的混合编码相同的混合编码对应的低层级和/或高层级混合编码;
根据该第一匹配的混合编码获取该第二混合编码集合,该第二混合编码集合中的混合编码为该第一匹配的混合编码中属性信息包含该第一轨迹的属性信息的混合编码。
在一种可能的实施方式中,该查询单元1603具体用于:
根据该第一混合编码集合中的第一混合编码确定目标层级的混合编码,该目标层级为该预设层级归属的层级;
根据该目标层级的混合编码进行查找,获取第一候选混合编码集;
将该第一混合编码与该第一候选混合编码集比较。
在一种可能的实施方式中,该第二获取单元1602具体用于:
根据该预设层级中混合编码的空间编码的编码规则,对该一个或多个轨迹点的空间位置数据进行编码得到该一个或多个轨迹点各自的空间编码;
根据该预设层级中混合编码的时间编码的编码规则,对该一个或多个轨迹点的时间数据进行编码得到该一个或多个轨迹点各自的时间编码;
将该一个或多个轨迹点中每一个轨迹点的空间编码和时间编码合并得到该每一个轨迹点的混合编码。
在一种可能的实施方式中,该第一信息还包括该第一轨迹的属性数据,该第二获取单元1602具体用于:
根据该预设层级中混合编码的空间编码的编码规则,对该一个或多个轨迹点的空间位置数据进行编码得到该一个或多个轨迹点各自的空间编码;
根据该预设层级中混合编码的时间编码的编码规则,对该一个或多个轨迹点的时间数据进行编码得到该一个或多个轨迹点各自的时间编码;
对该第一轨迹的属性数据进行编码得到该第一轨迹的属性编码;
将该一个或多个轨迹点中每一个轨迹点的空间编码、时间编码和属性编码合并得到该每一个轨迹点的混合编码。
在一种可能的实施方式中,该第三获取单元1604具体用于:
计算第i编码个数,该第i编码个数为根据该第二混合编码集合中映射有第i标识的混合编码的个数计算得到,该第i标识为第i个候选相似轨迹的轨迹标识,该i的取值为从1到m;
获取第i长度,该第i长度为基于该第一轨迹的轨迹长度,或基于该第i个候选相似轨迹的轨迹长度与该第一轨迹的轨迹长度计算得到;
计算该第i编码个数和该第i长度的比值,该比值为该第i个候选相似轨迹与该第一轨迹之间的相似度;
根据该计算得到的m个相似度筛选出该N个相似轨迹。
在一种可能的实施方式中,该第一混合编码集合还包括插值轨迹点的混合编码,该插值轨迹点为基于该一个或多个轨迹点根据预设插值设备得到。
在一种可能的实施方式中,该第一混合编码集合还包括扩展轨迹点的混合编码,该扩展轨迹点为基于该一个或多个轨迹点和该插值轨迹点通过预设的扩展设备得到。
在一种可能的实施方式中,该索引数据库为基于时空格网模型构建的数据库,该时空格网模型包括多个层级的时空格网,每一个时空格网层级根据设定的空间层级和时间划分粒度来确定,每一个时空格网映射有一个混合编码;该索引数据库的多个层级为r个层级,该r大于1,该索引数据库的r个层级分别对应r个时空格网层级。
在一种可能的实施方式中,该索引数据库与轨迹数据库映射,该轨迹数据库用于存储该索引数据库中包括的多个轨迹的原始数据,该原始数据包括该多个轨迹的时间数据、空间位置数据和属性数据中的多项数据。
图16所示设备1600中各个单元的具体操作以及有益效果可以参见上述图13所述方法及其可能的实施方式中的描述,此处不再赘述。
在采用对应各个功能划分各个功能模块的情况下,图17示出了设备的一种可能的逻辑结构示意图,该设备可以是上述各个实施例中的服务器,或者可以是上述服务器中的芯片,或者可以是上述服务器中的处理系统等。该设备1700包括获取单元1701和编码单元1702。其中:
获取单元1701,用于获取第二轨迹的轨迹数据,该轨迹数据包括该第二轨迹的一个或多个轨迹点的空间位置数据和时间数据;
编码单元1702,用于根据该轨迹数据编码得到表达该第二轨迹的第三混合编码集合,该第三混合编码集合包括该第二轨迹的每个轨迹点各自的混合编码,该混合编码为根据索引数据库中的预设层级的混合编码规则编码获得;该混合编码包括轨迹点的时间编码和轨迹点的空间编码,该时间编码是根据该时间数据获得,该空间编码是根据该空间位置数据获得;该索引数据库包括r个层级的混合编码,该r大于1,该r个层级的混合编码分别为r个时空格网层级中的时空格网映射的混合编码,该r个层级与该r个时空格网层级一一映射,该r个时空格网层级为预先设定的时空格网模型包括的多个层级中的r个层级,该时空格网模型中每一个时空格网层级根据设定的空间层级和时间划分粒度来确定。
在一种可能的实施方式中,该编码单元1702具体用于:
根据该预设层级中混合编码的空间编码的编码规则对该一个或多个轨迹点的空间位置数据编码得到该一个或多个轨迹点各自的空间编码;
根据该预设层级中混合编码的时间编码的编码规则对该一个或多个轨迹点的时间数据编码得到该一个或多个轨迹点各自的时间编码;
将该一个或多个轨迹点中每一个轨迹点的空间编码和时间编码合并得到该每一个轨迹点的混合编码,该一个或多个轨迹点的混合编码组成该第三混合编码集合。
在一种可能的实施方式中,该轨迹数据还包括该第二轨迹的属性数据,该编码单元1702具体用于:
根据该预设层级中混合编码的空间编码的编码规则对该一个或多个轨迹点的空间位置数据编码得到该一个或多个轨迹点各自的空间编码;
根据该预设层级中混合编码的时间编码的编码规则对该一个或多个轨迹点的时间数据编码得到该一个或多个轨迹点各自的时间编码;
对该第二轨迹的属性数据编码得到该第二轨迹的属性编码;
将该一个或多个轨迹点中每一个轨迹点的空间编码、时间编码和该属性编码合并得到该每一个轨迹点的混合编码,该一个或多个轨迹点的混合编码组成该第三混合编码集合。
在一种可能的实施方式中,该第三混合编码集合还包括插值轨迹点的混合编码,该插值轨迹点的混合编码为基于该一个或多个轨迹点的混合编码,根据预设插值设备计算得到的轨迹点的混合编码。
图17所示设备1700中各个单元的具体操作以及有益效果可以参见上述图10所述方法及其可能的实施方式中的描述,此处不再赘述。
图18所示为本申请提供的设备的一种可能的硬件结构示意图,该设备可以是上述实施例所述方法中的服务器。该设备1800包括:处理器1801、存储器1802和通信接口1803。处理器1801、通信接口1803以及存储器1802可以相互连接或者通过总线1804相互连接。
示例性的,存储器1802用于存储设备1800的计算机程序和数据,存储器1802可以包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-onlymemory,ROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)或便携式只读存储器(compact disc read-only memory,CD-ROM)等。在实现图16所示实施例的情况下,且图16实施例中所描述的各单元为通过软件实现的情况下,执行图16中的各个单元的功能所需的软件或程序代码存储在存储器1802中。
通信接口1803用于支持设备1800进行通信,例如接收或发送数据或信号等。
示例性的,处理器1801可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器1801可以用于读取上述存储器1802中存储的程序,执行上述图13所述的方法以及可能的实施方式所述的方法中服务器所做的操作。
图18所示设备1800所执行的具体操作以及有益效果可以参见上述各个方法实施例及其可能的实施方式中的描述,此处不再赘述。
图19所示为本申请提供的设备的一种可能的硬件结构示意图,该设备可以是上述实施例所述方法中的服务器。该设备1900包括:处理器1901、存储器1902和通信接口1903。处理器1901、通信接口1903以及存储器1902可以相互连接或者通过总线1904相互连接。
示例性的,存储器1902用于存储设备1900的计算机程序和数据,存储器1902可以包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-onlymemory,ROM)、可擦除可编程只读存储器(erasable programmable read only memory,EPROM)或便携式只读存储器(compact disc read-only memory,CD-ROM)等。在实现图17所示实施例的情况下,且图17实施例中所描述的各单元为通过软件实现的情况下,执行图17中的各个单元的功能所需的软件或程序代码可以存储在存储器1902中。
通信接口1903用于支持设备1900进行通信,例如接收或发送数据或信号等。
示例性的,处理器1901可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器1901可以用于读取上述存储器1902中存储的程序,执行上述图10所述的方法以及可能的实施方式所述的方法中设备所做的操作。
图19所示设备1900所执行的具体操作以及有益效果可以参见上述各个方法实施例及其可能的实施方式中的描述,此处不再赘述。
本申请实施例还提供一种装置,该装置包括处理器、通信接口和存储器,该装置被配置为执行上述图13及其可能的实施例所述的方法。
在其中一种可能的实施方式中,该装置为芯片或系统芯片(System on a Chip,SoC)。
本申请实施例还提供一种装置,该装置包括处理器和通信接口,该装置被配置为执行上述图10及其可能的实施例所述的方法。
在其中一种可能的实施方式中,该装置为芯片或系统芯片SoC。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述图13及其可能的实施例所述的方法。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行以实现上述图10及其可能的实施例所述的方法。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,上述图13及其可能的实施例所述的方法将被执行。
本申请实施例还提供一种计算机程序产品,当该计算机程序产品被计算机读取并执行时,上述图10及其可能的实施例所述的方法将被执行。
本申请实施例还提供一种计算机程序,当该计算机程序在计算机上执行时,将会使该计算机实现上述图13及其可能的实施例所述的方法。
本申请实施例还提供一种计算机程序,当该计算机程序在计算机上执行时,将会使该计算机实现上述图10及其可能的实施例所述的方法。
综上所述,本申请结合轨迹的轨迹点的时间信息和空间信息编码得到混合编码,并基于该混合编码为索引构建多层级的索引数据库,并在索引数据库的混合编码映射上述轨迹信息,在此基础上在该索引数据库中查询目标轨迹的相似轨迹,从而能够提高轨迹查询的准确度,同时降低轨迹相似性计算的复杂度,并提高相似轨迹的查询效率。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离各种所述示例的范围的情况下,第一轨迹可以被称为第二轨迹,并且类似地,第二轨迹可以被称为第一轨迹。第一轨迹和第二轨迹都可以是轨迹,并且在某些情况下,可以是单独且不同的轨迹。
还应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
还应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (27)
1.一种数据处理方法,其特征在于,包括:
获取第一信息,所述第一信息包括第一轨迹的一个或多个轨迹点的空间位置数据和时间数据;
根据所述第一信息获取第一混合编码集合,所述第一混合编码集合包括所述第一信息的每个轨迹点各自的混合编码,所述混合编码为根据索引数据库中的预设层级的混合编码规则编码获得;所述混合编码包括轨迹点的时间编码和轨迹点的空间编码,所述时间编码是根据所述时间数据获得,所述空间编码是根据所述空间位置数据获得;所述索引数据库为多级索引结构,包括多个层级的混合编码,每个层级的混合编码根据其所归属的层级的混合编码进行集合划分,所述每个层级的混合编码和其所归属的层级的混合编码之间存在所索引关系,所述多个层级的混合编码中包括具有轨迹信息的混合编码,所述轨迹信息用于指示所述混合编码所属轨迹的轨迹标识和所属轨迹的轨迹长度,一个轨迹的轨迹长度为所述索引数据库中存储的轨迹标识为同一轨迹的混合编码的个数;
根据所述第一混合编码集合中的每个混合编码在所述索引数据库中按照多级索引结构的查询方法进行查询,获得第二混合编码集合,所述第二混合编码集合中的混合编码为具有轨迹信息的混合编码;所述第二混合编码集合中的混合编码映射有m个候选相似轨迹的轨迹信息,所述m为整数;
根据所述第一轨迹的轨迹长度和所述m个候选相似轨迹的轨迹信息获取N个相似轨迹,所述N为小于或等于m的整数。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一混合编码集合中的每个混合编码在所述索引数据库中按照多级索引结构的查询方法进行查询,获得第二混合编码集合,包括:
按照多级索引结构的查询方法将所述第一混合编码集合中的每个混合编码与所述索引数据库中的混合编码比较,获取所述第二混合编码集合,所述第二混合编码集合中的混合编码为所述索引数据库中与所述第一混合编码集合中的混合编码相同的混合编码,和/或所述索引数据库中与所述第一混合编码集合中的混合编码相同的混合编码对应的低层级和/或高层级混合编码。
3.根据权利要求1所述的方法,其特征在于,所述第一信息还包括所述第一轨迹的属性数据,所述轨迹信息还包括所述轨迹信息指示的轨迹的属性信息,所述属性信息根据所述轨迹信息指示的轨迹的属性数据获得;
所述根据所述第一混合编码集合中的每个混合编码在所述索引数据库中按照多级索引结构的查询方法进行查询,获得第二混合编码集合,包括:
按照多级索引结构的查询方法将所述第一混合编码集合中的每个混合编码与所述索引数据库中的混合编码比较,获取第一匹配的混合编码,所述第一匹配的混合编码为所述索引数据库中与所述第一混合编码集合中的混合编码相同的混合编码,和/或所述索引数据库中与所述第一混合编码集合中的混合编码相同的混合编码对应的低层级和/或高层级混合编码;
根据所述第一匹配的混合编码获取所述第二混合编码集合,所述第二混合编码集合中的混合编码为所述第一匹配的混合编码中属性信息包含所述第一轨迹的属性信息的混合编码。
4.根据权利要求2或3所述的方法,其特征在于,所述按照多级索引结构的查询方法将所述第一混合编码集合中的每个混合编码与所述索引数据库中的混合编码比较,包括:
根据所述第一混合编码集合中的第一混合编码确定目标层级的混合编码,所述目标层级为所述预设层级归属的层级;
根据所述目标层级的混合编码进行查找,获取第一候选混合编码集;
将所述第一混合编码与所述第一候选混合编码集比较。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述第一信息获取第一混合编码集合,包括:
根据所述预设层级中混合编码的空间编码的编码规则,对所述一个或多个轨迹点的空间位置数据进行编码得到所述一个或多个轨迹点各自的空间编码;
根据所述预设层级中混合编码的时间编码的编码规则,对所述一个或多个轨迹点的时间数据进行编码得到所述一个或多个轨迹点各自的时间编码;
将所述一个或多个轨迹点中每一个轨迹点的空间编码和时间编码合并得到所述每一个轨迹点的混合编码。
6.根据权利要求1或2所述的方法,其特征在于,所述第一信息还包括所述第一轨迹的属性数据,所述根据所述第一信息获取第一混合编码集合,包括:
根据所述预设层级中混合编码的空间编码的编码规则,对所述一个或多个轨迹点的空间位置数据进行编码得到所述一个或多个轨迹点各自的空间编码;
根据所述预设层级中混合编码的时间编码的编码规则,对所述一个或多个轨迹点的时间数据进行编码得到所述一个或多个轨迹点各自的时间编码;
对所述第一轨迹的属性数据进行编码得到所述第一轨迹的属性编码;
将所述一个或多个轨迹点中每一个轨迹点的空间编码、时间编码和属性编码合并得到所述每一个轨迹点的混合编码。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述根据所述第一轨迹的轨迹长度和所述m个候选相似轨迹的轨迹信息获取N个相似轨迹,包括:
计算第i编码个数,所述第i编码个数为根据所述第二混合编码集合中映射有第i标识的混合编码的个数计算得到,所述第i标识为第i个候选相似轨迹的轨迹标识,所述i的取值为从1到m;
获取第i长度,所述第i长度为基于所述第一轨迹的轨迹长度,或基于所述第i个候选相似轨迹的轨迹长度与所述第一轨迹的轨迹长度计算得到;
计算所述第i编码个数和所述第i长度的比值,所述比值为所述第i个候选相似轨迹与所述第一轨迹之间的相似度;
根据所述计算得到的m个相似度筛选出所述N个相似轨迹。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述第一混合编码集合还包括插值轨迹点的混合编码,所述插值轨迹点为基于所述一个或多个轨迹点根据预设插值方法得到。
9.根据权利要求8所述的方法,其特征在于,所述第一混合编码集合还包括扩展轨迹点的混合编码,所述扩展轨迹点为基于所述一个或多个轨迹点和所述插值轨迹点通过预设的扩展方法得到。
10.根据权利要求1至9任一项所述的方法,其特征在于,所述索引数据库为基于时空格网模型构建的数据库,所述时空格网模型包括多个层级的时空格网,每一个时空格网层级根据设定的空间层级和时间划分粒度来确定,每一个时空格网映射有一个混合编码;所述索引数据库的多个层级为r个层级,所述r大于1,所述索引数据库的r个层级分别对应r个时空格网层级。
11.根据权利要求1至10任一项所述的方法,其特征在于,所述索引数据库与轨迹数据库映射,所述轨迹数据库用于存储所述索引数据库中包括的多个轨迹的原始数据,所述原始数据包括所述多个轨迹的时间数据、空间位置数据和属性数据中的多项数据。
12.一种数据处理设备,其特征在于,包括:
第一获取单元,用于获取第一信息,所述第一信息包括第一轨迹的一个或多个轨迹点的空间位置数据和时间数据;
第二获取单元,用于根据所述第一信息获取第一混合编码集合,所述第一混合编码集合包括所述第一信息的每个轨迹点各自的混合编码,所述混合编码为根据索引数据库中的预设层级的混合编码规则编码获得;所述混合编码包括轨迹点的时间编码和轨迹点的空间编码,所述时间编码是根据所述时间数据获得,所述空间编码是根据所述空间位置数据获得;所述索引数据库为多级索引结构,包括多个层级的混合编码,每个层级的混合编码根据其所归属的层级的混合编码进行集合划分,所述每个层级的混合编码和其所归属的层级的混合编码之间存在所索引关系,所述多个层级的混合编码中包括具有轨迹信息的混合编码,所述轨迹信息用于指示所述混合编码所属轨迹的轨迹标识和所属轨迹的轨迹长度,一个轨迹的轨迹长度为所述索引数据库中存储的轨迹标识为同一轨迹的混合编码的个数;
查询单元,用于根据所述第一混合编码集合中的每个混合编码在所述索引数据库中按照多级索引结构的查询设备进行查询,获得第二混合编码集合,所述第二混合编码集合中的混合编码为具有轨迹信息的混合编码;所述第二混合编码集合中的混合编码映射有m个候选相似轨迹的轨迹信息,所述m为整数;
第三获取单元,用于根据所述第一轨迹的轨迹长度和所述m个候选相似轨迹的轨迹信息获取N个相似轨迹,所述N为小于或等于m的整数。
13.根据权利要求12所述的设备,其特征在于,所述查询单元具体用于:
按照多级索引结构的查询设备将所述第一混合编码集合中的每个混合编码与所述索引数据库中的混合编码比较,获取所述第二混合编码集合,所述第二混合编码集合中的混合编码为所述索引数据库中与所述第一混合编码集合中的混合编码相同的混合编码,和/或所述索引数据库中与所述第一混合编码集合中的混合编码相同的混合编码对应的低层级和/或高层级混合编码。
14.根据权利要求12或13所述的设备,其特征在于,所述第一信息还包括所述第一轨迹的属性数据,所述轨迹信息还包括所述轨迹信息指示的轨迹的属性信息,所述属性信息根据所述轨迹信息指示的轨迹的属性数据获得;
所述查询单元具体用于:
按照多级索引结构的查询设备将所述第一混合编码集合中的每个混合编码与所述索引数据库中的混合编码比较,获取第一匹配的混合编码,所述第一匹配的混合编码为所述索引数据库中与所述第一混合编码集合中的混合编码相同的混合编码,和/或所述索引数据库中与所述第一混合编码集合中的混合编码相同的混合编码对应的低层级和/或高层级混合编码;
根据所述第一匹配的混合编码获取所述第二混合编码集合,所述第二混合编码集合中的混合编码为所述第一匹配的混合编码中属性信息包含所述第一轨迹的属性信息的混合编码。
15.根据权利要求13或14所述的设备,其特征在于,所述查询单元具体用于:
根据所述第一混合编码集合中的第一混合编码确定目标层级的混合编码,所述目标层级为所述预设层级归属的层级;
根据所述目标层级的混合编码进行查找,获取第一候选混合编码集;
将所述第一混合编码与所述第一候选混合编码集比较。
16.根据权利要求12至15任一项所述的设备,其特征在于,所述第二获取单元具体用于:
根据所述预设层级中混合编码的空间编码的编码规则,对所述一个或多个轨迹点的空间位置数据进行编码得到所述一个或多个轨迹点各自的空间编码;
根据所述预设层级中混合编码的时间编码的编码规则,对所述一个或多个轨迹点的时间数据进行编码得到所述一个或多个轨迹点各自的时间编码;
将所述一个或多个轨迹点中每一个轨迹点的空间编码和时间编码合并得到所述每一个轨迹点的混合编码。
17.根据权利要求12或13所述的设备,其特征在于,所述第一信息还包括所述第一轨迹的属性数据,所述第二获取单元具体用于:
根据所述预设层级中混合编码的空间编码的编码规则,对所述一个或多个轨迹点的空间位置数据进行编码得到所述一个或多个轨迹点各自的空间编码;
根据所述预设层级中混合编码的时间编码的编码规则,对所述一个或多个轨迹点的时间数据进行编码得到所述一个或多个轨迹点各自的时间编码;
对所述第一轨迹的属性数据进行编码得到所述第一轨迹的属性编码;
将所述一个或多个轨迹点中每一个轨迹点的空间编码、时间编码和属性编码合并得到所述每一个轨迹点的混合编码。
18.根据权利要求12-17任一项所述的设备,其特征在于,所述第三获取单元具体用于:
计算第i编码个数,所述第i编码个数为根据所述第二混合编码集合中映射有第i标识的混合编码的个数计算得到,所述第i标识为第i个候选相似轨迹的轨迹标识,所述i的取值为从1到m;
获取第i长度,所述第i长度为基于所述第一轨迹的轨迹长度,或基于所述第i个候选相似轨迹的轨迹长度与所述第一轨迹的轨迹长度计算得到;
计算所述第i编码个数和所述第i长度的比值,所述比值为所述第i个候选相似轨迹与所述第一轨迹之间的相似度;
根据所述计算得到的m个相似度筛选出所述N个相似轨迹。
19.根据权利要求12至18任一项所述的设备,其特征在于,所述第一混合编码集合还包括插值轨迹点的混合编码,所述插值轨迹点为基于所述一个或多个轨迹点根据预设插值设备得到。
20.根据权利要求19所述的设备,其特征在于,所述第一混合编码集合还包括扩展轨迹点的混合编码,所述扩展轨迹点为基于所述一个或多个轨迹点和所述插值轨迹点通过预设的扩展设备得到。
21.根据权利要求12至20任一项所述的设备,其特征在于,所述索引数据库为基于时空格网模型构建的数据库,所述时空格网模型包括多个层级的时空格网,每一个时空格网层级根据设定的空间层级和时间划分粒度来确定,每一个时空格网映射有一个混合编码;所述索引数据库的多个层级为r个层级,所述r大于1,所述索引数据库的r个层级分别对应r个时空格网层级。
22.根据权利要求12至21任一项所述的设备,其特征在于,所述索引数据库与轨迹数据库映射,所述轨迹数据库用于存储所述索引数据库中包括的多个轨迹的原始数据,所述原始数据包括所述多个轨迹的时间数据、空间位置数据和属性数据中的多项数据。
23.一种数据处理设备,其特征在于,包括处理器、通信接口和存储器,其中,所述存储器用于存储程序指令和/或数据,所述处理器用于执行所述存储器中存储的程序指令,使得所述设备执行如权利要求1至11任一项所述的方法。
24.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现权利要求1至11任意一项所述的方法。
25.一种计算机程序产品,其特征在于,当所述计算机程序产品被计算机读取并执行时,如权利要求1至11任意一项所述的方法将被执行。
26.一种装置,所述装置包括处理器、通信接口和存储器,其特征在于,所述装置被配置为执行权利要求1至11任意一项所述的方法。
27.根据权利要求26所述的装置,其特征在于,所述装置为芯片或系统芯片SoC。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011066444.7A CN114357313A (zh) | 2020-09-30 | 2020-09-30 | 数据处理方法及设备 |
PCT/CN2021/120792 WO2022068745A1 (zh) | 2020-09-30 | 2021-09-26 | 数据处理方法及设备 |
EP21874405.0A EP4206611A4 (en) | 2020-09-30 | 2021-09-26 | DATA PROCESSING METHOD AND DEVICE |
US18/191,860 US20230237113A1 (en) | 2020-09-30 | 2023-03-28 | Data processing method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011066444.7A CN114357313A (zh) | 2020-09-30 | 2020-09-30 | 数据处理方法及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114357313A true CN114357313A (zh) | 2022-04-15 |
Family
ID=80951231
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011066444.7A Pending CN114357313A (zh) | 2020-09-30 | 2020-09-30 | 数据处理方法及设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230237113A1 (zh) |
EP (1) | EP4206611A4 (zh) |
CN (1) | CN114357313A (zh) |
WO (1) | WO2022068745A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116415079A (zh) * | 2023-03-22 | 2023-07-11 | 电子科技大学 | 一种隐私保护的top-K轨迹相似性查询方法 |
CN117591757A (zh) * | 2023-10-31 | 2024-02-23 | 和智信(山东)大数据科技有限公司 | 轨迹数据处理方法及装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115357656A (zh) * | 2022-10-24 | 2022-11-18 | 太极计算机股份有限公司 | 基于大数据的信息处理方法、设备和存储介质 |
CN117407481B (zh) * | 2023-12-15 | 2024-02-27 | 北京易诚高科科技发展有限公司 | 一种针对地理信息数据的多尺度泊松盘采样方法 |
CN117876980B (zh) * | 2024-03-12 | 2024-05-28 | 浙江大华技术股份有限公司 | 一种轨迹构建方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10108637B2 (en) * | 2016-03-08 | 2018-10-23 | International Business Machines Corporation | Spatial-temporal storage system, method, and recording medium |
WO2017156443A1 (en) * | 2016-03-10 | 2017-09-14 | Rutgers, The State University Of New Jersey | Global optimization-based method for improving human crowd trajectory estimation and tracking |
CN109165215B (zh) * | 2018-07-27 | 2020-07-28 | 苏州视锐信息科技有限公司 | 一种云环境下时空索引的构建方法、装置及电子设备 |
CN111141294B (zh) * | 2019-12-27 | 2021-09-07 | 西安交通大学 | 一种基于位置编码运动轨迹比对的方法 |
CN111159107B (zh) * | 2019-12-30 | 2023-03-21 | 北京明略软件系统有限公司 | 数据处理方法和服务器集群 |
CN111475596B (zh) * | 2020-04-05 | 2023-04-07 | 中国人民解放军国防科技大学 | 一种基于多层级轨迹编码树的子段相似性匹配方法 |
CN111724586B (zh) * | 2020-05-11 | 2022-03-11 | 清华大学 | 通勤时间预测方法、通勤时间预测模型的训练方法和装置 |
-
2020
- 2020-09-30 CN CN202011066444.7A patent/CN114357313A/zh active Pending
-
2021
- 2021-09-26 WO PCT/CN2021/120792 patent/WO2022068745A1/zh unknown
- 2021-09-26 EP EP21874405.0A patent/EP4206611A4/en active Pending
-
2023
- 2023-03-28 US US18/191,860 patent/US20230237113A1/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116415079A (zh) * | 2023-03-22 | 2023-07-11 | 电子科技大学 | 一种隐私保护的top-K轨迹相似性查询方法 |
CN116415079B (zh) * | 2023-03-22 | 2024-04-02 | 电子科技大学 | 一种隐私保护的top-K轨迹相似性查询方法 |
CN117591757A (zh) * | 2023-10-31 | 2024-02-23 | 和智信(山东)大数据科技有限公司 | 轨迹数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP4206611A4 (en) | 2024-03-13 |
US20230237113A1 (en) | 2023-07-27 |
EP4206611A1 (en) | 2023-07-05 |
WO2022068745A1 (zh) | 2022-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114357313A (zh) | 数据处理方法及设备 | |
US11882317B2 (en) | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device | |
US20210099697A1 (en) | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device | |
US11206426B2 (en) | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device using occupancy patterns | |
US20210082153A1 (en) | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device | |
CN112181991B (zh) | 基于快速构建kd树的地球模拟系统网格重映射方法 | |
US20220345732A1 (en) | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device | |
US11902576B2 (en) | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device | |
US20230344983A1 (en) | Three-dimensional data encoding method, three-dimensional data decoding method, three-dimensional data encoding device, and three-dimensional data decoding device | |
CN111260784A (zh) | 一种城市三维空间网格压缩编码方法、装置及终端设备 | |
WO2021189897A1 (zh) | 道路匹配方法、装置、电子设备及可读存储介质 | |
CN112579921B (zh) | 基于倒排序索引及前缀树的轨迹索引和查询方法及系统 | |
CN103744861A (zh) | 一种轨迹数据中的频繁子轨迹查找方法及装置 | |
CN116860905B (zh) | 一种城市信息模型的空间单元编码生成方法 | |
Chang et al. | iTaxi: Context-aware taxi demand hotspots prediction using ontology and data mining approaches | |
CN111914043A (zh) | 时空数据编码方法及装置、存储介质、计算设备 | |
CN112395745A (zh) | 地下暗河储集体地质模型建立方法、处理设备 | |
CN113642313A (zh) | 地址文本的处理方法、装置、设备、存储介质及程序产品 | |
CN111597279A (zh) | 基于深度学习的信息预测方法及相关设备 | |
Wu et al. | A spatiotemporal trajectory data index based on the Hilbert curve code | |
CN107798215B (zh) | 基于ppi网络层次结构预测功能模块及作用的方法 | |
Zhang et al. | Clustering with implicit constraints: A novel approach to housing market segmentation | |
Ai et al. | A map generalization model based on algebra mapping transformation | |
CN114664104B (zh) | 一种路网匹配方法和装置 | |
CN111414444A (zh) | 一种时空轨迹信息的处理方法和装置 |
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 |