CN105426491B - 一种时空地理大数据的检索方法及系统 - Google Patents
一种时空地理大数据的检索方法及系统 Download PDFInfo
- Publication number
- CN105426491B CN105426491B CN201510818539.2A CN201510818539A CN105426491B CN 105426491 B CN105426491 B CN 105426491B CN 201510818539 A CN201510818539 A CN 201510818539A CN 105426491 B CN105426491 B CN 105426491B
- Authority
- CN
- China
- Prior art keywords
- time
- space
- lon
- lat
- longitude
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种时空地理大数据的检索方法及系统,存储时空数据时,根据时空数据生成时空编码,然后存入数据库,所述时空数据包含空间属性及时间属性,生成时空编码时,依次计算经度、纬度、时间三个维度的二叉树的叶子节点的范围,并将经度、纬度、时间的二进制编码交叉编码;进行时空范围查询时,根据所要查询的时间及空间范围,转换生成相应时空编码,然后通过与数据库中存储的时空编码进行字符串模糊匹配,得到查询结果。本发明适于对海量的时空数据进行索引,将时间信息与空间信息相融合,从而把时空维度进行降维,能够大幅提高时空查询的效率。
Description
技术领域
本发明涉及时空数据检索与查询技术领域,主要涉及一种面向海量时空地理大数据的检索方法及系统。
背景技术
在地理信息领域,随着传感器技术的发展,采集数据的空间分辨率和时间分辨率显著提高,导致所获取的数据规模呈指数级快速上升,以TB,甚至PB计量的观测数据给空间数据存储和处理带来巨大的压力。此外,物联网、移动互联网和云计算技术及应用的蓬勃发展,使得空间数据在处理的数据量和应用模式上发生了转变。这些因素都在宣示时空大数据时代的来临。时空大数据除了具备普通大数据的“4V”特征外,时空大数据还具备时间和空间上的强关联特性,这也正是时空大数据的核心价值所在。
时空大数据来源主要包括原位传感器实时数据、GPS动态轨迹数据、视频流数据等。这些观测数据具有结构复杂且结构不统一、观测密集且观测频率不一致、分布广泛且密集程度不一致特点。
当前,传感网数据的索引技术还存在着诸多问题,主要体现在:
传统的空间数据库和时空数据库常使用基于树的索引(如R-Tree、四叉树等)进行索引。在时空数据库中,这两种索引结构尤其是R-Tree系列繁衍成了众多的家族树。在时空数据库研究领域中,R-Tree的变种(3DR-Tree、RT-Tree、HR-Tree等)在学术领域中获得认可和肯定,但是在商业应用却并不广泛。此外,在时空大数据背景下,R-Tree及其变种并不适用于数据高并发、时空高维度的情况。这是由于随着数据的爆炸性增长及维度的增加,R-Tree及变种树的维护变得异常复杂,其索引性能也随之急剧地恶化,令到树的操作成本也随之变高。
为了提高时空数据检索与查询的效率,需要引入行之有效的时空索引技术。传统的时空索引技术通常借鉴于空间索引技术,不同之处在于时空索引中的维度除了空间维度之外还包括时间维度。常用的一些空间索引方法不能直接应用于时空数据索引。这是因为,传统的空间索引方法主要用来快速检索静态的空间对象,在静态数据库中更新的数据较少,索引方法更多地只是考虑查询效率。而在移动对象数据库等应用中,时空对象的位置频繁更新会引起索引结构的动态变化,所以时空索引除了要考虑数据的查询效率,还必须考虑索引的更新问题。但目前尚未有行之有效的技术方案出现。
发明内容
针对现有技术不足,本发明融合时空编码技术,提供一种时空地理大数据的检索方法及系统。
本发明的技术方案提供一种时空地理大数据的检索方法,存储时空数据时,根据时空数据生成时空编码,然后存入数据库,所述时空数据包含空间属性及时间属性;进行时空范围查询时,根据所要查询的时间及空间范围,转换生成相应时空编码,然后通过与数据库中存储的时空编码进行字符串模糊匹配,得到查询结果;
所述生成时空编码,包括以下步骤,
①根据精度要求,依次计算经度、纬度、时间三个维度的二叉树的叶子节点的范围如下,
其中,r表示最底层叶子节点二分范围的大小,[Xmin,,Xmax]表示根节点的范围,h表示二叉树的层数;
②根据步骤①所得结果数值,分别对经度、纬度、时间转换成十进制编码如下,
其中,Xi表示输入的数值,Cd表示十进制的编码;
③将步骤②所得的十进制编码转换成二进制编码;
④将经度、纬度、时间的二进制编码按照预定顺序交叉编码,获得交叉的二进制编码;
⑤将交叉的二进制编码转换成Base64字符串;
⑥在Base64字符串前面添加年份信息;
进行时空范围查询时,实现方式为,设输入空间范围Es及时间范围Et,搜索返回符合查询条件Q(Es,Et)的时空点集合,其中,Q(Es,Et)对应的时空范围为(Lonmin,Latmin,Timemin),(Lonmax,Latmax,Timemax);Lonmin为时空范围中的最小经度值,Latmin为时空范围的最小纬度值,Timemin为时空范围的最小时间值;Lonmax为时空范围的最大经度值,Latmax为时空范围的最大纬度值,Timemax为时空范围的最大时间值;根据查询条件Q(Es,Et)进行搜索的过程如下,
步骤1,在八叉树上找能够包含Q(Es,Et)的最小包围盒:
1A)根据给定的空间范围Es及时间范围Et,计算经度、纬度、时间的差值dlon、dlat、dtime如下,
1B)根据步骤1A)所得结果,得到经度、纬度、时间的分辨率rlon、rlat、rtime,包括令rlon=dlon、rlat=dlat、rtime=dtime;
1C)根据步骤1B)所得分辨率rlon、rlat、rtime,得到每一个维度在各自的二叉树上的深度hlon、hlat、htime;
1D)比较hlon、hlat、htime得到最小值hmin;
1E)根据查询条件Q(Es,Et)的时空立方体,基于1D)所得hmin生成时空立方体八个端点的时空编码相应的字符串集合,记为字符串集合a;
1F)根据步骤1E)中的字符串集合,对时空立方体八个端点原始的经度、纬度、时间继续分割两次,生成新的字符串集合,记为字符串集合b;
步骤2,精简步骤字符串集合;
2A)比较查询条件Q(Es,Et)的时空立方体与步骤1F)中所得字符串集合b的交集;
2B)根据交集结果,对步骤1F)中所得字符串集合b去交集中重复的字符串;
如果去除重复的字符串后,数目少于64,则采用当前的字符串集合b作为匹配依据,进入步骤2C);
否则,比较查询条件Q(Es,Et)的时空立方体与步骤1的E)中所得字符串集合a的交集,对字符串集合a去交集中重复的字符串,采用当前的字符串集合a作为匹配依据,进入步骤2C);
2C)根据步骤2B)的结果,和数据库中存储的时空编码进行字符串模糊匹配;
步骤3,根据查询条件Q(Es,Et)对匹配的记录进行过滤。
而且,步骤1C)中,根据分辨率计算二叉树上的深度采用以下公式,
其中,h=2l,l表示Base64编码字符串的长度,r表示最底层叶子节点二分范围的大小,采用分辨率。
而且,步骤2C)中,设匹配的记录值为(Lon,Lat,Time),相应过滤条件如下,
其中,Lon,Lat,Time分别为记录值的经度、纬度、时间。
本发明还相应提供一种时空地理大数据的检索系统,包括时空数据存储模块和时空范围查询模块,
所述时空数据存储模块,用于根据时空数据生成时空编码,然后存入数据库,所述时空数据包含空间属性及时间属性;所述生成时空编码,包括以下步骤,
①根据精度要求,依次计算经度、纬度、时间三个维度的二叉树的叶子节点的范围如下,
其中,r表示最底层叶子节点二分范围的大小,[Xmin,,Xmax]表示根节点的范围,h表示二叉树的层数;
②根据步骤①所得结果数值,分别对经度、纬度、时间转换成十进制编码如下,
其中,Xi表示输入的数值,Cd表示十进制的编码;
③将步骤②所得的十进制编码转换成二进制编码;
④将经度、纬度、时间的二进制编码按照预定顺序交叉编码,获得交叉的二进制编码;
⑤将交叉的二进制编码转换成Base64字符串;
⑥在Base64字符串前面添加年份信息;
所述时空范围查询模块,用于根据所要查询的时间及空间范围,转换生成相应时空编码,然后通过与数据库中存储的时空编码进行字符串模糊匹配,得到查询结果;进行时空范围查询时,实现方式为,设输入空间范围Es及时间范围E,搜索返回符合查询条件Q(Es,Et)的时空点集合,其中,Q(Es,Et)对应的时空范围为(Lonmin,Latmin,Timemin),(Lonmax,Latmax,Timemax);Lonmin为时空范围中的最小经度值,Latmin为时空范围的最小纬度值,Timemin为时空范围的最小时间值;Lonmax为时空范围的最大经度值,Latmax为时空范围的最大纬度值,Timemax为时空范围的最大时间值;根据查询条件Q(Es,Et)进行搜索的过程如下,
步骤1,在八叉树上找能够包含Q(Es,Et)的最小包围盒:
1A)根据给定的空间范围Es及时间范围Et,计算经度、纬度、时间的差值dlon、dlat、dtime如下,
1B)根据步骤1A)所得结果,得到经度、纬度、时间的分辨率rlon、rlat、rtime,包括令rlon=dlon、rlat=dlat、rtime=dtime;
1C)根据步骤1B)所得分辨率rlon、rlat、rtime,得到每一个维度在各自的二叉树上的深度hlon、hlat、htime;
1D)比较hlon、hlat、htime得到最小值hmin;
1E)根据查询条件Q(Es,Et)的时空立方体,基于1D)所得hmin生成时空立方体八个端点的时空编码相应的字符串集合,记为字符串集合a;
1F)根据步骤1E)中的字符串集合,对时空立方体八个端点原始的经度、纬度、时间继续分割两次,生成新的字符串集合,记为字符串集合b;
步骤2,精简步骤字符串集合;
2A)比较查询条件Q(Es,Et)的时空立方体与步骤1F)中所得字符串集合b的交集;
2B)根据交集结果,对步骤1F)中所得字符串集合b去交集中重复的字符串;
如果去除重复的字符串后,数目少于64,则采用当前的字符串集合b作为匹配依据,进入步骤2C);
否则,比较查询条件Q(Es,Et)的时空立方体与步骤1的E)中所得字符串集合a的交集,对字符串集合a去交集中重复的字符串,采用当前的字符串集合a作为匹配依据,进入步骤2C);
2C)根据步骤2B)的结果,和数据库中存储的时空编码进行字符串模糊匹配;
步骤3,根据查询条件Q(Es,Et)对匹配的记录进行过滤。
而且,步骤1C)中,根据分辨率计算二叉树上的深度采用以下公式,
其中,h=2l,l表示Base64编码字符串的长度,r表示最底层叶子节点二分范围的大小,采用分辨率。
而且,步骤2C)中,设匹配的记录值为(Lon,Lat,Time),相应过滤条件如下,
其中,Lon,Lat,Time分别为记录值的经度、纬度、时间。
本发明提出一种命名为ST-Hash(spatiotemporal hash,时空哈希)的方法对海量的时空数据进行索引。ST-Hash是基于Geohash的时空编码,该方法将时间信息与空间信息相融合,从而把时空维度进行降维,能够大幅提高时空查询的效率。
附图说明
图1是本发明实施例时空数据库整体组成示意图;
图2是本发明实施例进行二分的纬度示意图;
图3是本发明实施例时空索引示意图;
图4是本发明实施例利用ST-Hash进行时空范围查询的过程示意图。
具体实施方式
以下结合附图和实施例对本发明技术方案进行具体描述。
在大数据应用背景下,传统的时空索引方法不能完全适用。相较于二维索引,一维索引发展得更为成熟,适用范围更为广阔,所以对空间数据进行降维处理,映射到一维空间进行编码,可以重复利用已有的B-Tree索引、Hash索引等技术针对一维空间进行查询,而且比二维索引更简单。因此,本发明对时空大数据的时空信息进行降维编码,将时空信息映射到一维空间,从而利用成熟的索引技术对时空大数据进行时空查询,从而提高时空查询的效率。
本发明存储时空数据时,根据时空数据生成时空编码,然后存入数据库,所述时空数据包含空间属性及时间属性;进行时空范围查询时,根据所要查询的时间及空间范围,采用一致的方式转换生成相应时空编码,然后通过与数据库中存储的时空编码进行字符串模糊匹配,得到查询结果。
本发明主要改进在于:提出一种名为ST-Hash的时空编码方法,对时空大数据的时空信息进行降维编码,将时空信息映射到一维空间,从而提高时空查询的效率。
本发明实施例的具体实施步骤:
首先,在计算机集群上安装Oracle NoSQL数据库。具体实施时,计算机的集群规模不限,数量大于或等于一。计算机的系统也不限,可以是Windows系统,也可以是Linux系统。只要计算机集群的配置满足Oracle NoSQL官方的最低机器要求即可。
然后,时空数据入库。例如时空数据是GPS数据。时空数据至少要包含空间属性及时间属性。空间属性即是经纬度,时间属性即是时间。时空数据要包含时空属性是为了生成ST-Hash编码。参见图3,根据时空数据的空间信息和时间信息所得时刻编码,结合OracleNoSQL自带的索引(B树索引)存储。数据入库的过程如下:
1)解析原始时空数据,提取每一条原始时空数据记录的时空信息。原始的时空数据可以是实时在线的传感器数据,也可以是离线的文本数据,只要时空数据包含空间属性及时间属性即可。例如,原始的时空数据是离线的文本数据,这些离线数据提取后获得的属性及对应的数值如下。
属性ObjectID,对应的数值为时空对象ID;
属性Cared,对应的数值为车牌号;
属性Lat,对应的数值为纬度;
属性Lon,对应的数值为经度;
属性State_time,对应的数值为记录的时间;
属性STHash,对应的数值为St-hash字符串;
属性Attributes,对应的数值为其他属性,例如车速,车向等。
2)生成ST—Hash字符串
在提取信息的过程中,需要把时空信息转换成ST—Hash字符串。字符串的转换过程如下:
①根据精度要求,根据公式(1),依次计算经度、纬度、时间三个维度的二叉树的叶子节点的范围;
②将步骤①的数值代入公式(2),根据公式(2),分别将经度、纬度、时间转换成十进制编码;
③将步骤②的十进制编码转换成二进制编码;
④将经度、纬度、时间的二进制编码交叉编码,获得交叉的二进制编码;
⑤将交叉的二进制编码转换成Base64字符串;
⑥在Base64字符串前面添加年份信息。
3)按照分布式时空数据存储方案存储数据;
并且,对ST—Hash字段建立索引,本实施例中建立索引的数据库采用OracleNoSQL,实际应用中可根据项目所采用的数据库对该字段建立索引。对ST-Hash建立索引的目的是加快时空查询的速度。
基于以上存储方式,可以进行时空查询。查询记录的时候,只要提供给所要查询的时间及空间范围,并将其转换成ST—Hash,然后通过与数据库中ST-Hash字符串进行模糊匹配,就可以进行时空点及时空范围查询了。
为便于实施参考起见,以下对具体实现进行说明:
一、分布式时空数据存储方案
本发明面向海量时空数据的存储方案存储数据,主要利用Oracle NoSQL和预设的库表结构,具体实施时,本领域技术人员可自行设定库表结构。本发明实施例采用的库表结构包括将空间数据按层次结构进行组织,分为空间数据库、图层集合、图层和时空地理对象四个层次。空间数据库由多个图层集合构成,图层集合由具有相同的空间参考坐标系的图层组成,图层包含了多个具有时空状态的地理对象。时空数据库整体组成见附图1。
本发明实施例的存储方案采用Oracle NoSQL数据库存储时空数据。它是基于Oracle Berkeley DB Java Edition的新键-值存储系统,设计时考虑到了高扩展性和高可用性,并可部署于多个互相复制的节点上,以便进行快速故障切换及负载均衡。
本发明的存储方案也可使用其他非关系型数据库或关系型数据库进行数据存储。
二、基于八叉树对时空对象进行标识---STHash
本发明主要研究的是二维平面下的时空对象,时空编码把时间维度看作是空间维度的另外一维。假定数据库中存储了时空对象的二维平面地理坐标(二维平面信息)及时间戳信息(一维时间信息)。鉴于Geohash的本质是采用四叉树把空间划分,因此,本发明设计的时空编码STHash本质上可视为是基于八叉树对时空对象进行标识。因此,在本文的STHash中,二维的平面地理坐标及时间信息采用以下参考坐标:
经纬度:经纬度采用的是WGS84参考坐标系,因此,在时空编码中,纬度λ∈<-90°,90°>,经度∈<-180°,180°>;
时间:时间采用的是世界标准时间(UTC)。由于时间并不像二维空间具有明确的范围值,因此,本文将时间以年为单位进行分割,一年包括527040分钟(527040=366×24×60)。
(1)编码思想
STHash的思想是把经度、纬度、时间不断地进行二分,然后将每两次二分分割的二进制编码转换成Base64编码。包括对经度、纬度、时间不断地交替进行二分;二分之后分别对经度、纬度、时间采用字符‘0’或‘1’进行标记,标记之后经度、纬度、时间交叉组合成一个二进制的字符串,然后二进制的字符串转换成Base64编码,最后将Base64编码添加年份信息,得到STHash编码结果,即最终的时空编码。
(2)时空信息的二进制编码
STHash是对经度、纬度、时间不断地交替进行二分。以经度为例,经度的范围为[-180°,180°]。假定原始的经度为40°,二分的次数为4。第一次二分,会把经度二分为[-180°,0],以及[0,180°],假如原始经度属于[-180°,0],则该经度会用字母‘0’代替,否则用‘1’代替。明显地,-40°属于[-180°,0],所以第一次二分得到的字符是‘0’。然后[-180°,0]再二分,分为[-180°,-90°]与[-90°,0°],由于-40°属于[-90°,0°],则第二次得到的字符是‘1’。继续进行第三、第四次二分,则得到的二进制编码Cb=0110。二分的过程见附图2。
由于纬度、经度的二分方法类似,所以不再重复描述。
以r表示最底层叶子节点二分范围的大小,[Xmin,Xmax]表示根节点的范围,其中,Xmin为范围最小值,Xmax为范围最大值,h表示二叉树的层数:
Xi表示输入的数值,Cd表示十进制的编码:
最后就可以把十进制编码Cd转换成二进制编码Cb。
以输入纬度Xi=-40°为例,Xmax=180°,Xmin=-180°,h=4表示划分的层次,代入(1)中得到r=22.5;代入(2)中得到Cd=5;最后将十进制编码Cd转换成二进制编码Cb=0110。
(3)二进制编码转Base64编码
得到经度、纬度、时间三者的二进制编码后,将三者的二进制编码各位数字不断地交错写入,就得到了STHash的二进制形式,然后每两次的划分数字转换成Base64编码。二进制编码与Base64编码对照表如表1所示:
表1二进制编码与Base64编码对照表
由于Base64编码是每一个字母代表了8个字节,因此,一个字母代表了两次二分分割,因此,对于Base64编码,对应的二叉树的叶子节点的二分范围为:
其中,二叉树的层数h=2l(h∈<2,4,6,8…>),l表示Base64编码字符串的长度。因此对于Base64编码,一个字母中每个维度划分的次数为:
其中,ln是对数符号。
(4)例子
假设需要编码的原始时空数据为:纬度λ=140°,经度φ=20°,时间t=2015-6-100:00:00,假设划分的层次h=10;根据公式(1),根据公式(2),代入相应的数值,则得到对应的二进制编码:
●经度:0001110001
●纬度:1001110001
●时间:0110100111
将经度、纬度、时间三个维度的二进制编码交叉组合,则得到时空数据的二进制码:
010 001 001 110 111 110 000 001 001 111
本实施例中,二进制编码的交叉顺序是经度、纬度、时间。实际应用中,经度、纬度、时间交叉的顺序无特殊规定,但最好是规定交叉顺序。将二进制编码转换成Base64编码:
因此得到的时空编码为:Re+BP。最后,年份信息可以作为前缀添加到时空编码前,因此最后的时空编码形式为:2015-Re+BP。
三、时空范围查询参见图4,设时空范围查询的定义是:输入空间范围Es及时间范围Et,返回符合查询条件Q(Es,Et)的时空点集合Sk。其中,Q(Es,Et)对应的时空范围为(Lonmin,Latmin,Timemin),(Lonmax,Latmax,Timemax);Lonmin为时空范围中的最小经度值,Latmin为时空范围的最小纬度值,Timemin为时空范围的最小时间值;Lonmax为时空范围的最大经度值,Latmax为时空范围的最大纬度值,Timemax为时空范围的最大时间值。时空范围查询的重点在于寻找完全包含Q(Es,Et)的时空立方体。
基于上述存储及编码方案,利用ST—Hash进行时空查询的过程如下:
步骤1,在八叉树上找能够包含Q(Es,Et)的时空立方体,也就是能够包含Q(Es,Et)的最小包围盒:
A)根据给定的空间范围Es及时间范围Et,计算经度、纬度、时间的差值dlon、dlat、dtime:
B)根据A)步骤中的三个差值,得到了经度、纬度、时间的分辨率rlon、rlat、rtime,即令rlon=dlon、rlat=dlat、rtime=dtime。
C)把rlon、rlat、rtime代入公式(4),得到每一个维度在各自的二叉树上的深度hlon、hlat、htime。公式(4)中,r表示最底层叶子节点二分范围的大小,分别采用分辨率rlon、rlat、rtime即可得到相应深度hlon、hlat、htime。
D)比较hlon、hlat、htime得到最小值hmin;
E)根据查询条件Q(Es,Et)的时空立方体,基于步骤D)的最小二叉树深度hmin,生成时空立方体八个端点的ST-Hash字符串集合,记为字符串集合a;
F)根据E)中的字符串集合,对时空立方体八个端点原始的经度、纬度、时间继续分割两次,生成比E)中字符串还要长两个层次(即深度为hmin+2)的字符串集合,记为字符串集合b;
步骤2,精简字符串集合。
A)比较查询条件Q(Es,Et)的时空立方体与步骤1的F)中所得字符串集合b的交集;
B)根据交集结果,对步骤1的F)中生成的字符串集合b去交集中重复的字符串。如果去除重复的字符串后,字符串集合b中剩余字符串数目少于64,则采用当前的字符串集合b(级数为hmin+2)作为匹配依据,直接进入C);
否则,即数目大于等于64,利用步骤1的E)所生成时空立方体八个端点的ST-Hash字符串集合a,按照步骤2的A)、B)同样的方式,比较查询条件Q(Es,Et)的时空立方体与步骤1的E)中所得字符串集合a的交集,对字符串集合a去交集中重复的字符串,此时字符串集合a中剩余字符串数目一般会少于64,采用当前的字符串集合a(级数为hmin)作为匹配依据,进入C);
C)与数据库中存储的时空编码进行字符串模糊匹配,包括根据步骤2的B)的结果(当前的字符串集合a或b)到数据库中去查询,查询数据库中的STHash属性与这些结果匹配的记录。
步骤3,查到的记录过滤。最后,根据查询条件Q(Es,Et)对匹配的记录进行过滤。假定匹配的记录值为(Lon,Lat,Time),其中过滤条件为:
其中,Lon,Lat,Time分别为记录值的经度、纬度、时间。
以本发明实施例所提供技术方案应用于武汉出租车GPS数据的管理与查询为例,所需管理的出租车数量为6000台左右,每天GPS的数据记录数大概是一千两百万条,每天的数据量是3GB左右,目前已实验累计将近1TB的数据,存储管理效率大大高于现有技术。
具体实施时,本发明所提供方法可采用计算机技术实现自动运行,也可以采用模块化方式提供相应系统。
实施例所提供一种时空地理大数据的检索系统,包括时空数据存储模块和时空范围查询模块,
所述时空数据存储模块,用于根据时空数据生成时空编码,然后存入数据库,所述时空数据包含空间属性及时间属性;
所述时空范围查询模块,用于根据所要查询的时间及空间范围,转换生成相应时空编码,然后通过与数据库中存储的时空编码进行字符串模糊匹配,得到查询结果;
具体生成时空编码和进行时空范围查询时的实现方式与方法一致,本发明不予赘述。具体实施时,可以进行更细致的模块划分,为每个步骤提供相应模块。
本发明提供了本领域技术人员能够实现的技术方案。以上实施例仅供说明本发明之用,而非对本发明的限制,有关技术领域的技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变换或变型,因此所有等同的技术方案,都落入本发明的保护范围。
Claims (6)
1.一种时空地理大数据的检索方法,其特征在于:存储时空数据时,根据时空数据生成时空编码,然后存入数据库,所述时空数据包含空间属性及时间属性;进行时空范围查询时,根据所要查询的时间及空间范围,转换生成相应时空编码,然后通过与数据库中存储的时空编码进行字符串模糊匹配,得到查询结果;
所述生成时空编码,包括以下步骤,
①根据精度要求,依次计算经度、纬度、时间三个维度的二叉树的叶子节点的范围如下,
其中,r表示最底层叶子节点二分范围的大小,[Xmin,Xmax]表示根节点的范围,h表示二叉树的层数;
②根据步骤①所得结果数值,分别对经度、纬度、时间转换成十进制编码如下,
其中,Xi表示输入的数值,Cd表示十进制的编码;
③将步骤②所得的十进制编码转换成二进制编码;
④将经度、纬度、时间的二进制编码按照预定顺序交叉编码,获得交叉的二进制编码;
⑤将交叉的二进制编码转换成Base64字符串;
⑥在Base64字符串前面添加年份信息;
进行时空范围查询时,实现方式为,设输入空间范围Es及时间范围Et,搜索返回符合查询条件Q(Es,Et)的时空点集合,其中,Q(Es,Et)对应的时空范围为(Lonmin,Latmin,Timemin),(Lonmax,Latmax,Timemax);Lonmin为时空范围中的最小经度值,Latmin为时空范围的最小纬度值,Timemin为时空范围的最小时间值;Lonmax为时空范围的最大经度值,Latmax为时空范围的最大纬度值,Timemax为时空范围的最大时间值;根据查询条件Q(Es,Et)进行搜索的过程如下,
步骤1,在八叉树上找能够包含Q(Es,Et)的最小包围盒:
1A)根据给定的空间范围Es及时间范围Et,计算经度、纬度、时间的差值dlon、dlat、dtime如下,
1B)根据步骤1A)所得结果,得到经度、纬度、时间的分辨率rlon、rlat、rtime,包括令rlon=dlon、rlat=dlat、rtime=dtime;
1C)根据步骤1B)所得分辨率rlon、rlat、rtime,得到每一个维度在各自的二叉树上的深度hlon、hlat、htime;
1D)比较hlon、hlat、htime得到最小值hmin;
1E)根据查询条件Q(Es,Et)的时空立方体,基于1D)所得hmin生成时空立方体八个端点的时空编码相应的字符串集合,记为字符串集合a;
1F)根据步骤1E)中的字符串集合,对时空立方体八个端点原始的经度、纬度、时间继续分割两次,生成新的字符串集合,记为字符串集合b;
步骤2,精简步骤1所得字符串集合;
2A)比较查询条件Q(Es,Et)的时空立方体与步骤1F)中所得字符串集合b的交集;
2B)根据交集结果,对步骤1F)中所得字符串集合b去交集中重复的字符串;
如果去除重复的字符串后,数目少于64,则采用当前的字符串集合b作为匹配依据,进入步骤2C);
否则,比较查询条件Q(Es,Et)的时空立方体与步骤1的E)中所得字符串集合a的交集,对字符串集合a去交集中重复的字符串,采用当前的字符串集合a作为匹配依据,进入步骤2C);
2C)根据步骤2B)的结果,和数据库中存储的时空编码进行字符串模糊匹配;
步骤3,根据查询条件Q(Es,Et)对匹配的记录进行过滤。
2.根据权利要求1所述基于时空地理大数据的检索方法,其特征在于:步骤1C)中,根据分辨率计算二叉树上的深度采用以下公式,
其中,h=2l,l表示Base64编码字符串的长度,r表示最底层叶子节点二分范围的大小,采用分辨率。
3.根据权利要求1或2所述基于时空地理大数据的检索方法,其特征在于:步骤2C)中,设匹配的记录值为(Lon,Lat,Time),相应过滤条件如下,
其中,Lon,Lat,Time分别为记录值的经度、纬度、时间。
4.一种时空地理大数据的检索系统,其特征在于:包括时空数据存储模块和时空范围查询模块,
所述时空数据存储模块,用于根据时空数据生成时空编码,然后存入数据库,所述时空数据包含空间属性及时间属性;所述生成时空编码,包括以下步骤,
①根据精度要求,依次计算经度、纬度、时间三个维度的二叉树的叶子节点的范围如下,
其中,r表示最底层叶子节点二分范围的大小,[Xmin,Xmax]表示根节点的范围,h表示二叉树的层数;
②根据步骤①所得结果数值,分别对经度、纬度、时间转换成十进制编码如下,
其中,Xi表示输入的数值,Cd表示十进制的编码;
③将步骤②所得的十进制编码转换成二进制编码;
④将经度、纬度、时间的二进制编码按照预定顺序交叉编码,获得交叉的二进制编码;
⑤将交叉的二进制编码转换成Base64字符串;
⑥在Base64字符串前面添加年份信息;
所述时空范围查询模块,用于根据所要查询的时间及空间范围,转换生成相应时空编码,然后通过与数据库中存储的时空编码进行字符串模糊匹配,得到查询结果;进行时空范围查询时,实现方式为,设输入空间范围Es及时间范围E,搜索返回符合查询条件Q(Es,Et)的时空点集合,其中,Q(Es,Et)对应的时空范围为(Lonmin,Latmin,Timemin),(Lonmax,Latmax,Timemax);Lonmin为时空范围中的最小经度值,Latmin为时空范围的最小纬度值,Timemin为时空范围的最小时间值;Lonmax为时空范围的最大经度值,Latmax为时空范围的最大纬度值,Timemax为时空范围的最大时间值;根据查询条件Q(Es,Et)进行搜索的过程如下,
步骤1,在八叉树上找能够包含Q(Es,Et)的最小包围盒:
1A)根据给定的空间范围Es及时间范围Et,计算经度、纬度、时间的差值dlon、dlat、dtime如下,
1B)根据步骤1A)所得结果,得到经度、纬度、时间的分辨率rlon、rlat、rtime,包括令rlon=dlon、rlat=dlat、rtime=dtime;
1C)根据步骤1B)所得分辨率rlon、rlat、rtime,得到每一个维度在各自的二叉树上的深度hlon、hlat、htime;
1D)比较hlon、hlat、htime得到最小值hmin;
1E)根据查询条件Q(Es,Et)的时空立方体,基于1D)所得hmin生成时空立方体八个端点的时空编码相应的字符串集合,记为字符串集合a;
1F)根据步骤1E)中的字符串集合,对时空立方体八个端点原始的经度、纬度、时间继续分割两次,生成新的字符串集合,记为字符串集合b;
步骤2,精简步骤 1所得步骤字符串集合;
2A)比较查询条件Q(Es,Et)的时空立方体与步骤1F)中所得字符串集合b的交集;
2B)根据交集结果,对步骤1F)中所得字符串集合b去交集中重复的字符串;
如果去除重复的字符串后,数目少于64,则采用当前的字符串集合b作为匹配依据,进入步骤2C);
否则,比较查询条件Q(Es,Et)的时空立方体与步骤1的E)中所得字符串集合a的交集,对字符串集合a去交集中重复的字符串,采用当前的字符串集合a作为匹配依据,进入步骤2C);
2C)根据步骤2B)的结果,和数据库中存储的时空编码进行字符串模糊匹配;
步骤3,根据查询条件Q(Es,Et)对匹配的记录进行过滤。
5.根据权利要求4所述基于时空地理大数据的检索系统,其特征在于:步骤1C)中,根据分辨率计算二叉树上的深度采用以下公式,
其中,h=2l,l表示Base64编码字符串的长度,r表示最底层叶子节点二分范围的大小,采用分辨率。
6.根据权利要求4或5所述基于时空地理大数据的检索系统,其特征在于:步骤2C)中,设匹配的记录值为(Lon,Lat,Time),相应过滤条件如下,
其中,Lon,Lat,Time分别为记录值的经度、纬度、时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510818539.2A CN105426491B (zh) | 2015-11-23 | 2015-11-23 | 一种时空地理大数据的检索方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510818539.2A CN105426491B (zh) | 2015-11-23 | 2015-11-23 | 一种时空地理大数据的检索方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105426491A CN105426491A (zh) | 2016-03-23 |
CN105426491B true CN105426491B (zh) | 2018-12-14 |
Family
ID=55504703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510818539.2A Active CN105426491B (zh) | 2015-11-23 | 2015-11-23 | 一种时空地理大数据的检索方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105426491B (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095952A (zh) * | 2016-06-15 | 2016-11-09 | 公安部第三研究所 | 基于键值云存储的时空范围内海量过车记录快速查询方法 |
CN106294888B (zh) * | 2016-10-24 | 2018-10-26 | 北京亚控科技发展有限公司 | 一种基于时空数据库的对象数据的订阅方法 |
EP3531310A4 (en) * | 2016-10-24 | 2020-04-29 | Beijing Wellintech Co., Ltd. | METHOD FOR EXTRACTING A DATABASE BASED ON A SPATIO-TEMPORAL DATABASE |
CN106649668A (zh) * | 2016-12-14 | 2017-05-10 | 华南师范大学 | 一种基于向量模型的海量时空数据检索方法及系统 |
CN107045532A (zh) * | 2017-01-20 | 2017-08-15 | 中国科学院电子学研究所 | 时空地理空间可视化的分析方法 |
CN106934750B (zh) * | 2017-03-07 | 2020-08-25 | 北京青橙信息技术有限公司 | 一种健身房管理系统 |
CN107423368B (zh) * | 2017-06-29 | 2020-07-17 | 中国测绘科学研究院 | 一种非关系数据库中的时空数据索引方法 |
CN107729364A (zh) * | 2017-09-07 | 2018-02-23 | 浙江大学 | 一种基于地理实体编码的空间数据库检索方法 |
CN107766433B (zh) * | 2017-09-19 | 2021-05-14 | 昆明理工大学 | 一种基于Geo-BTree的范围查询方法及装置 |
US11429581B2 (en) | 2017-12-01 | 2022-08-30 | International Business Machines Corporation | Spatial-temporal query for cognitive IoT contexts |
CN107977458A (zh) * | 2017-12-19 | 2018-05-01 | 深圳马可孛罗科技有限公司 | 一种机场信息过滤方法及系统 |
JP6911877B2 (ja) * | 2018-02-19 | 2021-07-28 | 日本電信電話株式会社 | 情報管理装置、情報管理方法及び情報管理プログラム |
CN110209686A (zh) * | 2018-02-22 | 2019-09-06 | 北京嘀嘀无限科技发展有限公司 | 数据的存储、查询方法及装置 |
CN110647598A (zh) * | 2018-06-25 | 2020-01-03 | 北京嘀嘀无限科技发展有限公司 | 批量信息查询方法及批量信息查询系统 |
US11460307B2 (en) * | 2019-02-11 | 2022-10-04 | Wejo Ltd. | System and method for processing vehicle event data for journey analysis |
CN109992636B (zh) * | 2019-03-22 | 2021-06-08 | 中国人民解放军战略支援部队信息工程大学 | 时空编码方法、时空索引及查询方法及装置 |
CN110334290B (zh) * | 2019-06-28 | 2021-12-03 | 中南大学 | 一种基于MF-Octree的时空数据快速检索方法 |
CN110765331B (zh) * | 2019-07-08 | 2024-03-26 | 中国人民解放军战略支援部队信息工程大学 | 一种时空数据的检索方法及系统 |
CN110502599B (zh) * | 2019-08-23 | 2022-12-06 | 腾讯科技(深圳)有限公司 | 地图数据的查询方法、装置和计算机可读存储介质 |
CN112579714A (zh) * | 2019-09-30 | 2021-03-30 | 阿里巴巴集团控股有限公司 | 数据查询方法、装置、设备及机器可读存储介质 |
CN111046042A (zh) * | 2019-12-10 | 2020-04-21 | 厦门卫星定位应用股份有限公司 | 基于时空碰撞的快速检索方法及系统 |
CN111125282B (zh) * | 2019-12-13 | 2020-12-08 | 智慧足迹数据科技有限公司 | 信令数据匹配方法、装置及电子设备 |
CN111240361A (zh) * | 2020-01-19 | 2020-06-05 | 中国商用飞机有限责任公司北京民用飞机技术研究中心 | 一种基于四维数据的飞行控制方法、装置、设备及存储介质 |
CN111475597B (zh) * | 2020-03-31 | 2022-11-22 | 中国人民解放军战略支援部队信息工程大学 | 非刚性网格编码、空间对象唯一标识、查询方法及装置 |
CN111814328A (zh) * | 2020-07-07 | 2020-10-23 | 浙江工业大学 | 一种带有飞行区的时空数据立方体的建模与查询方法 |
CN114079498A (zh) * | 2020-08-18 | 2022-02-22 | 西安艾可萨科技有限公司 | 一种时空网格化星载数据存储方法及其系统 |
CN113806458A (zh) * | 2020-11-17 | 2021-12-17 | 京东城市(北京)数字科技有限公司 | 时空关联数据的查询方法、装置、电子设备和存储介质 |
CN112380222B (zh) * | 2020-11-26 | 2023-08-29 | 吉林师范大学 | 地理空间数据全局唯一标识生成处理方法及装置 |
CN113282584B (zh) * | 2021-05-28 | 2022-05-03 | 福州大学 | 一种对地观测影像时空立方体数据检索方法及系统 |
CN113434499A (zh) * | 2021-05-28 | 2021-09-24 | 西安电子科技大学 | 一种时空数据索引构建和查询方法、系统、数据库系统 |
CN114095390B (zh) * | 2021-11-11 | 2023-10-13 | 北京百度网讯科技有限公司 | 区域内对象流量的预测方法、装置、设备及存储介质 |
CN116414867B (zh) * | 2023-06-12 | 2023-08-22 | 中南大学 | 一种基于量化哈希编码的时空数据检索方法 |
CN117421460B (zh) * | 2023-12-18 | 2024-03-19 | 国家卫星海洋应用中心 | 一种时空数据的匹配方法、装置及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514243A (zh) * | 2012-06-18 | 2014-01-15 | 株式会社日立制作所 | 时空数据管理系统、时空数据管理方法及其程序 |
CN104750708A (zh) * | 2013-12-27 | 2015-07-01 | 华为技术有限公司 | 一种时空数据的索引建立方法、查询方法、装置及设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150019520A1 (en) * | 2013-07-15 | 2015-01-15 | Az.Mo.Sh Ltd. | System and method for conducting spatio-temporal search using real time crowd sourcing |
-
2015
- 2015-11-23 CN CN201510818539.2A patent/CN105426491B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103514243A (zh) * | 2012-06-18 | 2014-01-15 | 株式会社日立制作所 | 时空数据管理系统、时空数据管理方法及其程序 |
CN104750708A (zh) * | 2013-12-27 | 2015-07-01 | 华为技术有限公司 | 一种时空数据的索引建立方法、查询方法、装置及设备 |
Non-Patent Citations (2)
Title |
---|
Decomposition tree:a spatio-temporal indexing method for movement big data;Zhenwen He等;《Cluster Computing》;20150811;第18卷;全文 * |
一种集成R树、哈希表和B*树的高效轨迹数据索引方法;龚俊等;《测绘学报》;20150602;第44卷(第5期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105426491A (zh) | 2016-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105426491B (zh) | 一种时空地理大数据的检索方法及系统 | |
Lv et al. | BIM big data storage in WebVRGIS | |
Pfoser et al. | Indexing of network constrained moving objects | |
CN111367913A (zh) | 一种面向全空间的数据模型的建模方法 | |
CN104199827B (zh) | 基于局部敏感哈希的大规模多媒体数据的高维索引方法 | |
CN107423368A (zh) | 一种非关系数据库中的时空数据索引方法 | |
CN107153711A (zh) | 地理信息数据处理方法及装置 | |
CN106933833A (zh) | 一种基于空间索引技术的位置信息快速查询方法 | |
CN104199986A (zh) | 基于hbase和geohash的矢量数据空间索引方法 | |
CN109166615B (zh) | 一种随机森林哈希的医学ct图像存储与检索方法 | |
CN112685407A (zh) | 一种基于GeoSOT全球剖分网格编码的空间数据索引方法 | |
CN107766433A (zh) | 一种基于Geo‑BTree的范围查询方法及装置 | |
CN104346444B (zh) | 一种基于路网反空间关键字查询的最佳选址方法 | |
CN109408578A (zh) | 一种针对异构环境监测数据融合方法 | |
Du et al. | Spatio-temporal data index model of moving objects on fixed networks using hbase | |
CN108009265A (zh) | 一种云计算环境下的空间数据索引方法 | |
CN114820975B (zh) | 基于全要素参数符号化的三维场景仿真重构系统及方法 | |
CN116775661A (zh) | 基于北斗网格技术的空间大数据存储与管理方法 | |
CN113742505B (zh) | 一种海量合成孔径雷达干涉测量(InSAR)数据在线可视化方法 | |
Wang et al. | Space filling curve based point clouds index | |
CN113407542A (zh) | 一种城市路网车辆出行轨迹的检索方法及系统 | |
Wu et al. | A spatiotemporal trajectory data index based on the Hilbert curve code | |
CN106682173B (zh) | 一种社保大数据olap预处理方法及在线分析查询方法 | |
Faloutsos et al. | Analysis of n-dimensional quadtrees using the Hausdorff fractal dimension | |
Van Le et al. | A scalable spatio-temporal data storage for intelligent transportation systems based on HBase |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |