一种空间数据索引和拓扑方法、装置及存储介质与流程

文档序号:21929919发布日期:2020-08-21 14:53阅读:313来源:国知局
一种空间数据索引和拓扑方法、装置及存储介质与流程

本发明涉及海量空间数据处理技术领域,具体涉及一种空间数据索引和拓扑方法、装置及存储介质。



背景技术:

随着矢量空间数据获取与处理技术的迅猛发展,矢量空间数据日益增多,原始地图数据量呈现爆炸式增长,对地图数据处理的空间及时间效率提出了更高需求。

传统的gis数据存储大多是关系型数据库,但关系型数据库在海量空间数据的管理中面临许多问题,包括高并发读写、难扩展等,已成为制约海量处理能力发展的瓶颈。传统关系型数据库大多采用网格索引、四叉树、r树、金字塔索引等方式。然而,对于海量空间数据的处理,这些处理方式查询分析效率低。同时,目前的hadoop、hbase、spark等大数据处理技术本身缺少对地理空间数据的处理能力,导致海量空间数据库的查询与分析能力较差。



技术实现要素:

有鉴于此,本发明实施例提供了一种空间数据索引和拓扑方法、装置及存储介质,以解决现有技术中对于海量空间数据库的查询和分析能力较差的技术问题。

本发明提出的技术方案如下:

本发明实施例第一方面提供一种空间数据索引和拓扑方法,该方法包括:根据geohash编码构建hbase空间数据存储模型;根据geohash算法和所述hbase空间数据存储模型构建分布式空间索引,得到多个geohash矩形区域;根据geohash矩形区域内的数据构建r-tree索引;根据geotools工具对构建r-tree索引后的数据进行空间拓扑计算。

进一步地,根据geohash编码构建hbase空间数据存储模型,包括:根据经纬度值将经度数据和纬度数据分别转化为二进制数据;将转化的二进制数据进行合并;根据base32编码表对合并后的数据进行编码,得到hbase空间数据存储模型。

进一步地,根据geohash算法和所述hbase空间数据存储模型构建分布式空间索引,得到多个geohash矩形区域,包括:根据转化的二进制数据对空间区域进行划分,得到多个区域;根据转化的二进制数据对多个区域再次划分,直到得到所需区域。

进一步地,根据geohash矩形区域内的数据构建r-tree索引,包括:根据geohash空间区域编码的数据构建r-tree索引;索引geohash空间区域编码,检索至对应空间范围,映射到对应的r-tree索引;在r-tree索引中进行空间查询检索得到对应区域的空间数据。

本发明实施例第二方面提供一种空间数据索引和拓扑装置,该装置包括:模型构建模块,用于根据geohash编码构建hbase空间数据存储模型;划分模块,用于根据geohash算法和所述hbase空间数据存储模型构建分布式空间索引,得到多个geohash矩形区域;索引模块,用于根据geohash矩形区域内的数据构建r-tree索引;计算模块,用于根据geotools工具对构建r-tree索引后的数据进行空间拓扑计算。

进一步地,模型构建模块包括:转化模块,用于根据经纬度值将经度数据和纬度数据分别转化为二进制数据;合并模块,用于将转化的二进制数据进行合并;编码模块,用于根据base32编码表对合并后的数据进行编码,得到hbase空间数据存储模型。

进一步地,划分模块包括:第一划分子模块,用于根据转化的二进制数据对空间区域进行划分,得到多个区域;第二划分子模块,用于根据转化的二进制数据对多个区域再次划分,直到得到所需区域。

进一步地,索引模块包括:索引子模块,用于根据geohash空间区域编码的数据构建r-tree索引;映射模块,用于索引geohash空间区域编码,检索至对应空间范围,映射到对应的r-tree索引;检索模块,用于在r-tree索引中进行空间查询检索得到对应区域的空间数据。

本发明实施例第三方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如本发明实施例第一方面及第一方面任一项所述的空间数据索引和拓扑方法。

本发明实施例第四方面提供一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如本发明实施例第一方面及第一方面任一项所述的空间数据索引和拓扑方法。

本发明提供的技术方案,具有如下效果:

本发明实施例提供的空间数据索引和拓扑方法、装置及存储介质,针对hbase数据库,利用geohash算法构建了空间数据索引方法。具体通过建立以hbase列存储数据库作为海量空间数据的存储介质的hbase空间索引模型,同时利用geohash编码,构建空间索引。与传统的hbase行键为经纬度的查询方案相比,在数据规模较大的情况下该空间数据索引方法具有较高的查询效率。

本发明实施例提供的空间数据索引和拓扑方法、装置及存储介质,将geohash算法和r-tree索引结合使用,通过采用geohash算法将空间分割为网格区域后构建r-tree索引可以大量减少rtree在建立过程中产生的空白区域,提升rtree索引性能,该索引组织方式可以在叠加分析当中提升要素查找效率,增强拓扑分析能力。本发明实施例提供的空间数据索引和拓扑方法,可以通过建立索引查询计划,在大范围框选数据过程中采用geohash空间索引方式进行聚合查询检索,海量数据叠加分析可以采用geohash与rtree结合使用的二级索引、提高叠加分析的数据检索效率。

本发明实施例提供的空间数据索引和拓扑方法、装置及存储介质,通过建立hbase空间存储模型,可以提升数据入库和查询能力。同时将海量空间数据存储于hbase,设计矢量空间数据的rowkey,可以提升矢量空间数据写hbase速度,实现海量矢量空间数据进行高效存储、管理与检索。本发明实施例提供的空间数据索引和拓扑方法,采用geohash算法建立空间索引,对经纬度进行geohash降维后,不仅大大缩短了rowkey的长度,编码相似的距离也相近。同时扩大返回结果,解决geohash值相差很远,但实际位置很近而引起的数据突变问题。

本发明实施例提供的空间数据索引和拓扑方法、装置及存储介质,采用geotools工具包,解决了hbase存储技术在矢量空间数据存储方面的瓶颈,可以对矢量空间进行直接存取和展示,提高空间数据存储效率。符合ogc标准,实现了地理空间数据的操作与管理的规范性。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据本发明实施例的空间数据索引和拓扑方法的流程图;

图2是根据本发明实施例的空间数据索引和拓扑方法的区域划分原理图;

图3是根据本发明另一实施例的空间数据索引和拓扑方法的流程图;

图4是根据本发明实施例的空间数据索引和拓扑装置的结构框图;

图5是根据本发明另一实施例的空间数据索引和拓扑装置的结构框图;

图6是根据本发明另一实施例的空间数据索引和拓扑装置的结构框图;

图7是根据本发明另一实施例的空间数据索引和拓扑装置的结构框图;

图8是根据本发明实施例提供的计算机可读存储介质的结构示意图;

图9是根据本发明实施例提供的电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种空间数据索引和拓扑方法,如图1所示,该方法包括如下步骤:

步骤s101:根据geohash编码构建hbase空间数据存储模型;具体地,可以采用geohash编码作为键值,在hbase中以rowkey存储空间要素,即可以采用空间索引表存储空间要素数据集,从而构建适合hbase数据库的矢量空间数据存储模型,该模型包括空间坐标信息、属性信息、拓扑信息。

在一实施例中,步骤s101具体操作步骤如下:

步骤201:首先对目标纬度进行编码,由于地球纬度区间是(-90,90),因此可以将纬度范围(-90,90)平分成两个区间(-90,0)、(0,90),如果目标纬度位于前一个区间,则编码为0,否则编码为1。

步骤202:若步骤201编码为0,将纬度范围(-90,0)平分成两个区间(-90,-45)、(-45,0),如果目标纬度位于前一个区间,则编码为0,否则编码为1。

步骤203:若步骤201编码为1,同步骤2,将纬度范围(0,90)平均分区。

步骤204:依据步骤202和步骤203对纬度进行划分,直到精度符合要求为止,得到纬度编码,由于编码是由0和1构成,因此也可以将纬度编码表示为二进制编码。

步骤205:根据上述步骤s201至步骤s204,采用同纬度算法相同的方法对目标经度进行编码,由于地球经度区间是(-180,180),因此可以对(-180,180)依次细分,直到精度符合要求为止,得到经度编码。

步骤206:将经度和纬度的编码合并,奇数位是纬度,偶数位是经度。

步骤207:对步骤206合并的编码进行base32编码。base32编码表的其中一种如下,是用0-9、b-z(去掉a,i,l,o)这32个字母进行编码。具体操作是先将上一步得到的合并后二进制转换为10进制数据,然后对应生成base32码。

步骤s102:根据geohash算法和hbase空间数据存储模型构建分布式空间索引,得到多个geohash矩形区域;具体地,可以采用geohash算法作为hbase空间数据存储模型的分布式空间索引,对整个地图或者某个分割所得的区域进行区域划分。其中,由于hbase空间数据存储模型采用的是base32编码方式,即geohash中的每一个字母或者数字(如wx4g0e中的w)都是由5bits组成(2^5=32,base32),这5bits可以有32中不同的组合(0~31),这样可以将整个地图区域分为32个区域,通过00000~11111来标识这32个区域。

同时,通过经纬度转化的二进制数据中的0、1串序列是经度0、1序列和纬度0、1序列中的数字交替进行排列的,偶数位对应的序列为经度序列,奇数位对应的序列为纬度序列,在进行第一次划分时,geohash0、1序列中的前5个bits(11100),那么这5bits中有3bits是表示经度,2bits表示纬度,所以第一次划分时,是将经度划分成8个区段(2^3=8),将纬度划分为4个区段(2^2=4),这样就形成了32个区域。如图2所示。

之后,可以按照第一次划分所采用的方式对第一次划分所得的32个区域各自再次划分,本发明对具体划分次数不做限定。

步骤s103:根据geohash矩形区域内的数据构建r-tree索引;具体地,在进行区域划分后,可以根据需求将geohash矩形区域内的要素注入到rtree。

在一实施例中,如图3所示,步骤s103可以按照以下过程实现:

步骤s301:根据geohash空间区域编码的数据构建r-tree索引;即将所选层级(或层级和区域)的geohash空间区域编码的数据构建局部索引r-tree。

步骤s302:索引geohash空间区域编码,检索至对应空间范围,映射到对应的r-tree索引;具体地,可以优先索引geohash空间区域编码,检索至对应空间范围,映射到对应的rtree索引。

步骤s303:在r-tree索引中进行空间查询检索得到对应区域的空间数据。具体地,在索引geohash空间区域编码后,可以在r-tree索引中进行空间查询检索得到对应区域的空间数据。

步骤s104:根据geotools工具对构建r-tree索引后的数据进行空间拓扑计算。具体地,可以采用geotools工具对矢量空间数据管理其空间拓扑关系。通过jts类库集成对几何拓扑的支持。其中jts是一个从ge(geometryengine)移植过来的java拓扑操作开发包,包含了“simplefeaturesforsql”规格说明书(由opengis组织规定)上所有的空间谓词操作和空间算子,同时也包含了jts所独有的拓扑操作函数。因此,在空间数据处理过程中,可以调用jts中的拓扑操作函数实现空间数据的拓扑。

本发明实施例提供的空间数据索引和拓扑方法,针对hbase数据库,利用geohash算法构建了空间数据索引方法。具体通过建立以hbase列存储数据库作为海量空间数据的存储介质的hbase空间索引模型,同时利用geohash编码,构建空间索引。与传统的hbase行键为经纬度的查询方案相比,在数据规模较大的情况下该空间数据索引方法具有较高的查询效率。

本发明实施例提供的空间数据索引和拓扑方法,将geohash算法和r-tree索引结合使用,通过采用geohash算法将空间分割为网格区域后构建r-tree索引可以大量减少rtree在建立过程中产生的空白区域,提升rtree索引性能,该索引组织方式可以在叠加分析当中提升要素查找效率,增强拓扑分析能力。本发明实施例提供的空间数据索引和拓扑方法,可以通过建立索引查询计划,在大范围框选数据过程中采用geohash空间索引方式进行聚合查询检索,海量数据叠加分析可以采用geohash与rtree结合使用的二级索引、提高叠加分析的数据检索效率。

本发明实施例提供的空间数据索引和拓扑方法,通过建立hbase空间存储模型,可以提升数据入库和查询能力。同时将海量空间数据存储于hbase,设计矢量空间数据的rowkey,可以提升矢量空间数据写hbase速度,实现海量矢量空间数据进行高效存储、管理与检索。本发明实施例提供的空间数据索引和拓扑方法,采用geohash算法建立空间索引,对经纬度进行geohash降维后,不仅大大缩短了rowkey的长度,编码相似的距离也相近。同时扩大返回结果,解决geohash值相差很远,但实际位置很近而引起的数据突变问题。

本发明实施例提供的空间数据索引和拓扑方法,采用geotools工具包,解决了hbase存储技术在矢量空间数据存储方面的瓶颈,可以对矢量空间进行直接存取和展示,提高空间数据存储效率。符合ogc标准,实现了地理空间数据的操作与管理的规范性。

本发明实施例还提供一种空间数据索引和拓扑装置,如图4所示,该装置包括:

模型构建模块1,用于根据geohash编码构建hbase空间数据存储模型;详细内容参见上述方法实施例中步骤s101的相关描述。

划分模块2,用于根据geohash算法和所述hbase空间数据存储模型构建分布式空间索引,得到多个geohash矩形区域;详细内容参见上述方法实施例中步骤s102的相关描述。

索引模块3,用于根据geohash矩形区域内的数据构建r-tree索引;详细内容参见上述方法实施例中步骤s103的相关描述。

计算模块4,用于根据geotools工具对构建r-tree索引后的数据进行空间拓扑计算。详细内容参见上述方法实施例中步骤s104的相关描述。

在一实施例中,如图5所示,模型构建模块1包括:

转化模块11,用于根据经纬度值将经度数据和纬度数据分别转化为二进制数据;

合并模块12,用于将转化的二进制数据进行合并;

编码模块13,用于根据base32编码表对合并后的数据进行编码,得到hbase空间数据存储模型。

在一实施例中,如图6所示,划分模块2包括:

第一划分子模块21,用于根据转化的二进制数据对空间区域进行划分,得到多个区域;

第二划分子模块22,用于根据转化的二进制数据对多个区域再次划分,直到得到所需区域。

在一实施例中,如图7所示,索引模块3包括:

索引子模块31,用于根据geohash空间区域编码的数据构建r-tree索引;

映射模块32,用于索引geohash空间区域编码,检索至对应空间范围,映射到对应的r-tree索引;

检索模块33,用于在r-tree索引中进行空间查询检索得到对应区域的空间数据。

本发明实施例提供的空间数据索引和拓扑装置,针对hbase数据库,利用geohash算法构建了空间数据索引装置。具体通过建立以hbase列存储数据库作为海量空间数据的存储介质的hbase空间索引模型,同时利用geohash编码,构建空间索引。与传统的hbase行键为经纬度的查询方案相比,在数据规模较大的情况下该空间数据索引装置具有较高的查询效率。

本发明实施例提供的空间数据索引和拓扑装置,将geohash算法和r-tree索引结合使用,通过采用geohash算法将空间分割为网格区域后构建r-tree索引可以大量减少rtree在建立过程中产生的空白区域,提升rtree索引性能,该索引组织方式可以在叠加分析当中提升要素查找效率,增强拓扑分析能力。本发明实施例提供的空间数据索引和拓扑装置,可以通过建立索引查询计划,在大范围框选数据过程中采用geohash空间索引方式进行聚合查询检索,海量数据叠加分析可以采用geohash与rtree结合使用的二级索引、提高叠加分析的数据检索效率。

本发明实施例提供的空间数据索引和拓扑装置,通过建立hbase空间存储模型,可以提升数据入库和查询能力。同时将海量空间数据存储于hbase,设计矢量空间数据的rowkey,可以提升矢量空间数据写hbase速度,实现海量矢量空间数据进行高效存储、管理与检索。本发明实施例提供的空间数据索引和拓扑装置,采用geohash算法建立空间索引,对经纬度进行geohash降维后,不仅大大缩短了rowkey的长度,编码相似的距离也相近。同时扩大返回结果,解决geohash值相差很远,但实际位置很近而引起的数据突变问题。

本发明实施例提供的空间数据索引和拓扑装置,采用geotools工具包,解决了hbase存储技术在矢量空间数据存储方面的瓶颈,可以对矢量空间进行直接存取和展示,提高空间数据存储效率。符合ogc标准,实现了地理空间数据的操作与管理的规范性。

本发明实施例提供的空间数据索引和拓扑装置的功能描述详细参见上述实施例中空间数据索引和拓扑方法描述。

本发明实施例还提供一种存储介质,如图8所示,其上存储有计算机程序601,该指令被处理器执行时实现上述实施例中空间数据索引和拓扑方法的步骤。该存储介质上还存储有音视频流数据,特征帧数据、交互请求信令、加密数据以及预设数据大小等。其中,存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。

本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。

本发明实施例还提供了一种电子设备,如图9所示,该电子设备可以包括处理器51和存储器52,其中处理器51和存储器52可以通过总线或者其他方式连接,图9中以通过总线连接为例。

处理器51可以为中央处理器(centralprocessingunit,cpu)。处理器51还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。

存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的对应的程序指令/模块。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的抓屏方法。

存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器51所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至处理器51。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述一个或者多个模块存储在所述存储器52中,当被所述处理器51执行时,执行如图1-3所示实施例中的空间数据索引和拓扑方法。

上述电子设备具体细节可以对应参阅图1至图3所示的实施例中对应的相关描述和效果进行理解,此处不再赘述。

虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1