CN113901156B - 三维自适应网格r+树混合索引构建、维护、查询方法 - Google Patents
三维自适应网格r+树混合索引构建、维护、查询方法 Download PDFInfo
- Publication number
- CN113901156B CN113901156B CN202111046287.8A CN202111046287A CN113901156B CN 113901156 B CN113901156 B CN 113901156B CN 202111046287 A CN202111046287 A CN 202111046287A CN 113901156 B CN113901156 B CN 113901156B
- Authority
- CN
- China
- Prior art keywords
- grid
- index
- tree
- dimensional
- algorithm
- 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
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000010276 construction Methods 0.000 title claims abstract description 16
- 238000012423 maintenance Methods 0.000 title claims abstract description 9
- 238000009826 distribution Methods 0.000 claims abstract description 51
- 238000003780 insertion Methods 0.000 claims abstract description 13
- 230000037431 insertion Effects 0.000 claims abstract description 13
- 238000012217 deletion Methods 0.000 claims abstract description 8
- 230000037430 deletion Effects 0.000 claims abstract description 8
- 238000012986 modification Methods 0.000 claims abstract description 7
- 230000004048 modification Effects 0.000 claims abstract description 7
- 230000003044 adaptive effect Effects 0.000 claims description 11
- 239000004302 potassium sorbate Substances 0.000 claims description 6
- 239000002151 riboflavin Substances 0.000 claims description 6
- 238000011160 research Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 4
- 239000004229 Alkannin Substances 0.000 claims description 3
- 108091026890 Coding region Proteins 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000007781 pre-processing Methods 0.000 claims description 3
- 238000013138 pruning Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000009827 uniform distribution Methods 0.000 abstract 1
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004283 Sodium sorbate Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000003344 environmental pollutant Substances 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 231100000719 pollutant Toxicity 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
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/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种三维自适应网格R+树混合索引构建、维护、查询方法,属于软件安全和计算机技术领域,构建方法包括采用基于正态分布的多级网格自动划分算法处理数据集,构建多级网格,达到快速分割整个数据空间的目的,然后建立R+树,构建混合索引结构;维护方法包括插入、删除和修改操作,保证索引结构的健壮性;查询方法包括精确点查询和k近邻查询。本发明首先利用基于正态分布的多级网格自动划分算法处理数据集,得到网格划分的长宽高,然后利用R+树兄弟结点零相交的优势,进行高效的空间索引,使得面对海量三维数据分布布均匀的情况下,无论是在索引结构的构建,还是查询方面都具有良好的性能。
Description
技术领域
本发明涉及软件安全和计算机技术领域,尤其是三维自适应网格R+树混合索引构建、维护、查询方法。
背景技术
随着地理信息系统(Geographic Information System,GIS)的广泛应用,空间索引技术作为提升海量数据检索和各种空间数据索引的主要手段,在一定程度上影响着空间数据查询和地理信息系统(GIS)检索的效率。一个合理的空间索引结构,能有效提高了空间数据库的存储效率和查询性能。尤其当面对大量的空间数据时,如果没有一个合理高效的索引结构,查找将花费较长时间。所以,建立一种高效的索引结构,对于空间数据的检索而言至关重要。
生活中,存在许多以下类似的情况,某些区域可能数据比较密集,而其他区域则比较稀疏,即数据量较大且数据分布不均匀。比如现实生活中,共享单车的分布,在一些城市中心地带,共享单车的投入量比较大,单车分布就比较密集,而在偏远的山区,共享单车则十分罕见,分布较少。再比如许多中心城市的高楼分布情况、大气污染物PM2.5的分布情况、植被覆盖情况、人口密度、降水分布等等。若采用单一的空间索引结构来存储管理这些数据,就会出现存储空间浪费和查询效率低下的情况。
为了解决这一问题,《基于三维网格-R树的混合索引方法研究》(刘永山,龚翔,孔德瀚,单磊敬.基于三维网格-R树的混合索引方法研究[J].燕山大学学报.2020,44(2):138-149.)提出一种基于三维网格-R树的混合索引结构,并基于该结构给出的空间查询算法与分析,在快速管理存储大规模数据的同时达到了较好的查询效果。
然而,基于三维网格-R树的混合索引结构存下以下问题:
1、单一网格划分技术由于采用均匀划分空间的方式,结构简单,查询效率较高,然而,对服务器的要求较高,且由于划分次数频繁,容易出现内存溢出的问题,算法也具有较大的空间复杂度。
2、R树兄弟结点有相交,索引时存在多路径问题,降低了索引的效率。
为了解决基于三维网格-R树的混合索引结构的数据溢出问题并提高索引的效率,需要对本发明人提出的基于三维网格-R树的混合索引结构进行进一步优化。
发明内容
本发明需要解决的技术问题是提供一种三维自适应网格R+树混合索引构建、维护、查询方法,能够解决软件工程领域中三维空间中分布不均匀的海量数据溢出问题,并且提高索引的合理性与高效性。
为解决上述技术问题,本发明所采用的技术方案是:
一种三维自适应网格R+树混合索引构建方法,包括以下步骤:
S1:多级网格结构的构建与划分;
S2:实际划分网格;
S3:利用基于正态分布的多级网格自动划分算法构建多级网格结构;
S4:网格划分完成后,网格结点的数量小于阈值ε,对网格中的结点构建R+树;
S5:构建整体三维自适应网格R+树混合索引结构。
本发明技术方案的进一步改进在于:S1中,多级网格结构的构建与划分,具体包括以下步骤:
S101:在三维空间中,将空间分成m×n×t块,一个m×n×t网格就有m×n×t个桶,第i个桶表示为Buck[index],其中,0<index≤m×n×t,Buck与Block的关系如下:
其中,Buck表示桶,Block表示块,i=index/(n×t)表示第index个桶在三维网格中的层数,j=(index-i×(index/(n×t))-1)/t表示第index个桶在三维网格中的行数,k=(index-i×(index/(n×t))-1)mod t表示第index个桶在三维网格中的列数;
S102:设定分布密度,用disd来表示,计算公式如下所示:
其中,count表示子网格内的对象个数,volume表示子网格的体积;
S103:这里密度分布大小阈值为ε,ε为人为设定的;
当子网格disd≥ε时,所述子网格被设定为稠密区间,需对其继续划分;
当子网格disd<ε时,所述子网格被设定为稀疏区间,不再继续往下划分。
本发明技术方案的进一步改进在于:S2中,实际划分网格,具体包括以下步骤:
S201:由所给的数据集可以得到其边界坐标:Xmax、Xmin、Ymax、Ymin、Zmax、Zmin,根结点在X轴,Y轴,Z轴上的长度如下所示:
LX=Xmax-Xmin
LY=Ymax-Ymin
LZ=Zmax-Zmin
其中,LX表示根结点在X轴上的长度,LY表示根节点在Y轴上的长度,LZ表示根节点在Z轴上的长度;
S202:网格划分,利用基于正态分布的多级网格自动划分算法,划分为m×n×t个基本网格G111、G112…Gijk…Gmnt,其中1≤i≤m,1≤j≤n,1≤k≤t;并按照Z→Y→X轴的顺序,依次对第一次网格划分后形成的子网格进行编码;子网格接下来的划分也按Z→Y→X轴的顺序优先对子网格进行划分,并将网格中不存在对象的子网格去掉,释放存储空间;
S203:子网格划分,统计各子网格空间中所包含的对象个数,计算此子网格内的分布密度,并根据密集程度,决定是否再对子网格进行划分,如果满足继续划分的条件,则进行划分并将其中所有的元素按照网格划分后的编码顺序将其划入对应的子集中;
S204:循环递归子网格划分操作,直至所有子集中分布密度小于所设定的阈值或者多级网格已经完成三次划分,则完成了多级网格的全部构建。
本发明技术方案的进一步改进在于:S3中,利用基于正态分布的多级网格自动划分算法构建多级网格结构,具体包括以下步骤:
S301:将三维空间实体的最小边界立方体MBB的长作为研究对象,先对样本进行快速排序,得到一组从小到大排序好的数组集合;
S302:求得样本的均值μ;
S303:求得样本的标准差σ;
S304:若数据服从Gauss分布,则μ+σ的值为网格划分的长,得到网格划分的行数M、网格划分的列数N与层数T;
S305:若数据不服从Gauss分布,则以μ+σ为网格划分的初始值,每次增加0.1σ,增加m次,最终以μ+σ+m×0.1σ作为网格划分的长,得到了网格划分的行数、列数、层数,这里的m由比例系数K决定。
本发明技术方案的进一步改进在于:S5中,构建整体三维自适应网格R+树混合索引结构,具体包括以下步骤:
S501:利用基于正态分布的多级网格自动划分算法对数据集进行预处理,得到网格划分后的子网格的长宽高,获得划分的网格数m×n×t;
S502:判断网格内的分布密度是否超过阈值,若超过且划分次数小于三次,则继续划分;若没超过,则开始建立R+树索引,三维自适应网格R+树混合索引结构的构建完成。
一种三维自适应网格R+树混合索引维护方法,包括以下步骤:
M1:三维自适应网格R+树混合索引结构的插入算法;
M2:三维自适应网格R+树混合索引结构的删除算法;
M3:三维自适应网格R+树混合索引结构的修改算法。
本发明技术方案的进一步改进在于:M1中,插入算法具体包括以下步骤:
M101:indexID←Get_MultGrid(P),根据点对象的坐标,查找该坐标所在的网格;
M102:判断N是不是叶子结点,若是,则继续判断是否叶子结点已满,若满,则进行结点分裂,否则,直接将对象插入到该结点;
M103:若N不是叶子结点,则选择空间对象或实体的最小边界矩形MBR扩张最小的结点进行插入,算法结束。
本发明技术方案的进一步改进在于:M2中,删除算法具体包括以下步骤:
M201:indexID←Get_MultGrid(P),根据点对象的坐标,查找该坐标所在的网格;
M202:判断N是不是叶子结点,若是,则继续判断该结点是否包含对象P;若包含,则直接将对象P从结点中删除,向上调整其父结点索引项,直至根结点为止;
M203:若N不是叶子结点,则遍历N的子结点,寻找包含对象P的叶子结点,然后将其删除,再调整父结点索引项,算法结束。
本发明技术方案的进一步改进在于:M3中,修改算法具体包括以下步骤:
M301:调用M2删除算法,删除原来的点;
M302:调用M1插入算法,插入更新后的值,算法结束。
一种三维自适应网格R+树混合索引查询方法,包括以下步骤:
E1:精确点查询;
E101:indexID←Get_MultGrid(P),根据点对象的坐标,查找该坐标所在的网格;
E102:将E101中网格的子网格作为二级结构R+树的根结点,然后从根结点开始遍历,直到遍历到叶子结点;
E103:如果该叶子结点包含查询点P的信息,则返回,否则继续遍历,直至遍历完该子树,算法结束;
E2:k近邻查询;
E201:利用自动划分算法,对网格进行划分,建立网格,得到桶结构;
E202:得到桶号后,判断桶中的对象个数是否大于k,若大于k,直接调用k近邻查询算法,进行k近邻查询,返回结果集;
E203:若小于k,则需进行剪枝查询,扩大候选集范围,E202,直至遍历完所有桶结构,返回k近邻查询的结果集,算法结束。
由于采用了上述技术方案,本发明取得的技术进步是:
1、本发明通过利用基于正态分布的多级网格自动划分算法对数据集进行处理,构建多级网格结构,实现快速有效的分割数据空间,解决了单一的一级网格所带来的人为划分不规范以及划分不彻底的弊端,避免了内存溢出的问题。
2、本发明根据用户定义的阈值条件进行二级结构R+树的构建,将结点数量控制在设定的阈值之内,利用R+树兄弟结点零相交的优点,提高索引效率,完成整体混合索引的构建。
3、本发明通过对该混合索引进行插入和删除算法的维护,保证了索引结构的健壮性。
4、本发明提出基于混合索引结构的精确点查询、k近邻查询的算法,在海量三维数据分布不均匀的情况下,使查询具有良好的性能。
附图说明
图1是本发明中三维自适应网格R+树混合索引构建、维护、查询方法流程图;
图2是本发明的构建混合索引结构流程图。
具体实施方式
下面结合附图及实施例对本发明做进一步详细说明:
如图1所示,本发明实施例中的三维自适应网格R+树混合索引的构建、维护、查询方法具体包括以下步骤:
如图2所示,采用基于正态分布的多级网格自动划分算法构建三维自适应网格R+树混合索引结构,具体包括以下步骤:
S1:多级网格结构的构建与划分;
多级网格基于哈希思想,其本质是通过数据的分块,将网格划分为m×n小块,降低维度再进行索引的建立,之后按照一定的方法对其进行编码存储。其结构简单,能快速的划分二维或者三维空间,进行高效的查询,具体包括以下步骤:
S101:在三维空间中,将空间分成m×n×t块,一个m×n×t网格就有m×n×t个桶,第i个桶表示为Buck[index],其中,0<index≤m×n×t,Buck与Block的关系如下:
其中,Buck表示桶,Block表示块,i=index/(n×t)表示第index个桶在三维网格中的层数,j=(index-i×(index/(n×t))-1)/t表示第index个桶在三维网格中的行数,k=(index-i×(index/(n×t))-1)mod t表示第index个桶在三维网格中的列数。
如果网格的划分等级过多或者阈值设定不合理,将浪费空间资源造成查询效率降低。通过总结各国学者对网格划分时的经验以及大量实验证明,网格最多划分为三级比较合理。如果对第二三级网格也采用桶的结构,那将消耗大量的存储空间。因此,为了减少不必要的存储空间,提高空间利用率,我们将二级和三级的空间索引用一个动态链表来表示。
S102:设定分布密度(The density of distribution),用来表示单位体积内元素分布的稠密程度,用disd来表示,计算公式如下所示:
其中,count表示子网格内的对象个数,volume表示子网格的体积;
S103:这里密度分布大小阈值为ε,ε为人为设定的,可根据实际情况进行改变;
当disd≥ε时,该子网格被设定为稠密区间,需对其继续划分;
当disd<ε时,该子网格被设定为稀疏区间,不再继续往下划分。
S2:实际划分网格;
S201:由所给的数据集可以得到其边界坐标:Xmax、Xmin、Ymax、Ymin、Zmax、Zmin,根结点在X轴,Y轴,Z轴上的长度如下所示:
LX=Xmax-Xmin
LY=Ymax-Ymin
LZ=Zmax-Zmin
其中,LX根结点在X轴上的长度,LY是根节点在Y轴上的长度,LZ是根节点在Z轴上的长度。
S202:网格划分,利用基于正态分布的多级网格自动划分算法,划分为m×n×t个基本网格G111、G112…Gijk…Gmnt,其中1≤i≤m,1≤j≤n,1≤k≤t;并按照(Z→Y→X)轴的顺序,依次对第一次网格划分后形成的子网格进行编码;子网格接下来的划分也按(Z→Y→X)轴的顺序优先对子网格进行划分,并将网格中不存在对象的子网格去掉,释放存储空间;
S203:子网格划分,统计各子网格空间中所包含的对象个数,计算此子网格内的分布密度,并根据密集程度,决定是否再对子网格进行划分,如果满足继续划分的条件,则进行划分并将其中所有的元素按照网格划分后的编码顺序将其划入对应的子集中,如划分为八个子网格,则将Gijk划分为Gijk1、Gijk2、Gijk3、Gijk4、Gijk5、Gijk6、Gijk7、Gijk8;
S204:循环递归子网格划分操作,直至所有子集中分布密度小于所设定的阈值或者多级网格已经完成三次划分,则完成了多级网格的全部构建。
S3:利用基于正态分布的多级网格自动划分算法构建一级多级网格结构;
S301:将三维空间实体的最小边界立方体MBB的长作为研究对象,也就是样本,先对样本进行快速排序,得到一组从小到大排序好的数组集合array[0],array[1],…,array[n-1];
其中,MBB的棱线垂直或者平行于坐标轴;
S302:利用公式求得样本的均值μ;
S303:利用公式求得样本的标准差σ;
S304:若数据服从Gauss分布,则μ+σ的值为网格划分的长,从而得到网格划分的行数M;同理,得到网格划分的列数N与层数T;
S305:若数据不服从Gauss分布,则以μ+σ为网格划分的初始值,每次增加0.1σ,增加m次,最终以μ+σ+m×0.1σ作为网格划分的长,从而得到了网格划分的行数、列数、层数,这里的m由比例系数K决定。
S4:网格划分完成后,网格结点的数量小于阈值ε,利用R+兄弟结点零重叠的优势,对网格中的结点构建R+树。即利用R+树索引构建三维自适应网格R+树混合索引结构的二级结构。
S5:构建整体三级自适应网格R+树混合索引结构;
S501:利用基于正态分布的多级网格自动划分算法对数据集进行预处理,得到网格划分后的子网格的长宽高,获得划分的网格数m×n×t;
S502:判断网格内的分布密度有没超过阈值,若超过且划分次数小于三次,则继续划分;若没超过,则开始建立R+树索引,三维自适应网格R+树混合索引结构的构建完成。
一种三维自适应网格R+树混合索引维护方法,具体包括以下步骤:
M1:三维自适应网格R+树混合索引结构的插入算法;
M101:indexID←Get_MultGrid(P),根据点对象的坐标,查找该坐标所在的网格;
M102:判断N是不是叶子结点,若是,则继续判断是否叶子结点已满,若满,则进行结点分裂,否则,直接将对象插入到该结点;
M103:若N不是叶子结点,则选择空间对象或实体的最小边界矩形MBR扩张最小的结点进行插入,算法结束;
其中,MBR的边平行或者垂直坐标轴。
M2:三维自适应网格R+树混合索引结构的删除算法;
M201:indexID←Get_MultGrid(P),根据点对象的坐标,查找该坐标所在的网格;
M202:判断N是不是叶子结点,若是,则继续判断该结点是否包含对象P;若包含,则直接将对象P从结点中删除,向上调整其父结点索引项,直至根结点为止;
M203:若N不是叶子结点,则遍历N的子结点,寻找包含对象P的叶子结点,然后将其删除,再调整父结点索引项,算法结束;
M3:三维自适应网格R+树混合索引结构的修改算法;
M301:调用删除算法,删除原来的点;
M302:调用插入算法,插入现在更新后的值,算法结束。
在三维空间中,空间对象除了点、线、面以外,还多了体类型,所以插入、删除和修改算法就是对这四种类型进行的描述。为了方便和清晰的描述,在这里,所有涉及到的插入、删除和修改操作都是对于点对象来说的。
一种三维自适应网格R+树混合索引结构进行索引查询方法,具体包括以下步骤:
E1:精确点查询;
E101:indexID←Get_MultGrid(P),根据点对象的坐标,查找该坐标所在的网格;
E102:将E101中网格的子网格作为二级结构R+树的根结点,然后从根结点开始遍历,直到遍历到叶子结点;
E103:如果该叶子结点包含查询点P的信息,则返回,否则继续遍历,直至遍历完该子树,算法结束;
E2:k近邻查询。
E201:利用自动划分算法,对网格进行划分,建立网格,得到桶结构;
E202:得到桶号后,判断桶中的对象个数是否大于k,若大于k,直接调用k近邻查询算法,进行k近邻查询,返回结果集;
E203:若小于k,则需进行剪枝查询,扩大候选集范围,跳到E202,直至遍历完所有桶结构,返回k近邻查询的结果集,算法结束。
在传统查询中,当确认查询点所在位置时,需要反复查询大量重叠空间才能确定,而基于三维自适应网格R+树混合索引结构查询时,因为网格的特性,可以快速地分割整个空间区域,然后通过S101中关系式可以确认查询对象所在的网格位置,进而如果进行k近邻查询,只需从该网格叶子结点或者该网格附近的子网格中查找即可,无需再进行反复的比较查询,提高了查询效率。
综上所述,本发明通过利用基于正态分布的多级网格自动划分算法对数据集进行处理,构建多级网格结构,实现快速有效的分割数据空间,解决了单一的一级网格所带来的人为划分不规范以及划分不彻底的弊端,避免了内存溢出的问题;根据用户定义的阈值条件进行二级结构R+树的构建,将结点数量控制在设定的阈值之内,利用R+树兄弟结点零相交的优点,提高索引效率,完成整体混合索引的构建;通过对该混合索引进行插入和删除算法的维护,保证了索引结构的健壮性;提出基于混合索引结构的精确点查询、k近邻查询的算法,在海量三维数据分布不均匀的情况下,使查询具有良好的性能。
Claims (8)
1.一种三维自适应网格R+树混合索引构建方法,其特征在于:包括以下步骤:
S1:多级网格结构的构建与划分;
S2:实际划分网格;
S3:利用基于正态分布的多级网格自动划分算法构建多级网格结构;
S3具体包括以下步骤:
S301:将三维空间实体的最小边界立方体MBB的长作为研究对象,先对样本进行快速排序,得到一组从小到大排序好的数组集合;
S302:求得样本的均值μ;
S303:求得样本的标准差σ;
S304:若数据服从Gauss分布,则μ+σ的值为网格划分的长,得到网格划分的行数M、网格划分的列数N与层数T;
S305:若数据不服从Gauss分布,则以μ+σ为网格划分的初始值,每次增加0.1σ,增加m次,最终以μ+σ+m×0.1σ作为网格划分的长,得到了网格划分的行数、列数、层数,这里的m由比例系数K决定;
S4:网格划分完成后,网格结点的数量小于阈值ε,对网格中的结点构建R+树;
S5:构建整体三维自适应网格R+树混合索引结构;
S5具体包括以下步骤:
S501:利用基于正态分布的多级网格自动划分算法对数据集进行预处理,得到网格划分后的子网格的长宽高,获得划分的网格数m×n×t;
S502:判断网格内的分布密度是否超过阈值,若超过且划分次数小于三次,则继续划分;若没超过,则开始建立R+树索引,三维自适应网格R+树混合索引结构的构建完成。
2.根据权利要求1所述的一种三维自适应网格R+树混合索引构建方法,其特征在于:S1中,多级网格结构的构建与划分,具体包括以下步骤:
S101:在三维空间中,将空间分成m×n×t块,一个m×n×t网格就有m×n×t个桶,第i个桶表示为Buck[index],其中,0<index≤m×n×t,Buck与Block的关系如下:
其中,Buck表示桶,Block表示块,i=index/(n×t)表示第index个桶在三维网格中的层数,j=(index-i×(index/(n×t))-1)/t表示第index个桶在三维网格中的行数,k=(index-i×(index/(n×t))-1)mod t表示第index个桶在三维网格中的列数;
S102:设定分布密度,用disd来表示,计算公式如下所示:
其中,count表示子网格内的对象个数,volume表示子网格的体积;
S103:这里密度分布大小阈值为ε,ε为人为设定的;
当子网格disd≥ε时,所述子网格被设定为稠密区间,需对其继续划分;
当子网格disd<ε时,所述子网格被设定为稀疏区间,不再继续往下划分。
3.根据权利要求1所述的一种三维自适应网格R+树混合索引构建方法,其特征在于:S2中,实际划分网格,具体包括以下步骤:
S201:由所给的数据集可以得到其边界坐标:Xmax、Xmin、Ymax、Ymin、Zmax、Zmin,根结点在X轴,Y轴,Z轴上的长度如下所示:
LX=Xmax-Xmin
LY=Ymax-Ymin
LZ=Zmax-Zmin
其中,LX表示根结点在X轴上的长度,LY表示根节点在Y轴上的长度,LZ表示根节点在Z轴上的长度;
S202:网格划分,利用基于正态分布的多级网格自动划分算法,划分为m×n×t个基本网格G111、G112…Gijk…Gmnt,其中1≤i≤m,1≤j≤n,1≤k≤t;并按照Z→Y→X轴的顺序,依次对第一次网格划分后形成的子网格进行编码;子网格接下来的划分也按Z→Y→X轴的顺序优先对子网格进行划分,并将网格中不存在对象的子网格去掉,释放存储空间;
S203:子网格划分,统计各子网格空间中所包含的对象个数,计算此子网格内的分布密度,并根据密集程度,决定是否再对子网格进行划分,如果满足继续划分的条件,则进行划分并将其中所有的元素按照网格划分后的编码顺序将其划入对应的子集中;
S204:循环递归子网格划分操作,直至所有子集中分布密度小于所设定的阈值或者多级网格已经完成三次划分,则完成了多级网格的全部构建。
4.一种三维自适应网格R+树混合索引维护方法,其特征在于:应用于如权利要求1~3任一项所述的三维自适应网格R+树混合索引构建方法构建的三维自适应网格R+树混合索引,包括以下步骤:
M1:三维自适应网格R+树混合索引结构的插入算法;
M2:三维自适应网格R+树混合索引结构的删除算法;
M3:三维自适应网格R+树混合索引结构的修改算法。
5.根据权利要求4所述的一种三维自适应网格R+树混合索引维护方法,其特征在于:M1中,插入算法具体包括以下步骤:
M101:indexID←Get_MultGrid(P),根据点对象的坐标,查找该坐标所在的网格;
M102:判断N是不是叶子结点,若是,则继续判断是否叶子结点已满,若满,则进行结点分裂,否则,直接将对象插入到该结点;
M103:若N不是叶子结点,则选择空间对象或实体的最小边界矩形MBR扩张最小的结点进行插入,算法结束。
6.根据权利要求4所述的一种三维自适应网格R+树混合索引维护方法,其特征在于:M2中,删除算法具体包括以下步骤:
M201:indexID←Get_MultGrid(P),根据点对象的坐标,查找该坐标所在的网格;
M202:判断N是不是叶子结点,若是,则继续判断该结点是否包含对象P;若包含,则直接将对象P从结点中删除,向上调整其父结点索引项,直至根结点为止;
M203:若N不是叶子结点,则遍历N的子结点,寻找包含对象P的叶子结点,然后将其删除,再调整父结点索引项,算法结束。
7.根据权利要求4所述的一种三维自适应网格R+树混合索引维护方法,其特征在于:M3中,修改算法具体包括以下步骤:
M301:调用M2删除算法,删除原来的点;
M302:调用M1插入算法,插入更新后的值,算法结束。
8.一种三维自适应网格R+树混合索引查询方法,其特征在于:应用于如权利要求1~3任一项所述的三维自适应网格R+树混合索引构建方法构建的三维自适应网格R+树混合索引,包括以下步骤:
E1:精确点查询;
E101:indexID←Get_MultGrid(P),根据点对象的坐标,查找该坐标所在的网格;
E102:将E101中网格的子网格作为二级结构R+树的根结点,然后从根结点开始遍历,直到遍历到叶子结点;
E103:如果该叶子结点包含查询点P的信息,则返回,否则继续遍历,直至遍历完二级结构R+树,算法结束;
E2:k近邻查询;
E201:利用自动划分算法,对网格进行划分,建立网格,得到桶结构;
E202:得到桶号后,判断桶中的对象个数是否大于k,若大于k,直接调用k近邻查询算法,进行k近邻查询,返回结果集;
E203:若小于k,则需进行剪枝查询,扩大候选集范围,E202,直至遍历完所有桶结构,返回k近邻查询的结果集,算法结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111046287.8A CN113901156B (zh) | 2021-09-08 | 2021-09-08 | 三维自适应网格r+树混合索引构建、维护、查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111046287.8A CN113901156B (zh) | 2021-09-08 | 2021-09-08 | 三维自适应网格r+树混合索引构建、维护、查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113901156A CN113901156A (zh) | 2022-01-07 |
CN113901156B true CN113901156B (zh) | 2024-05-10 |
Family
ID=79188726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111046287.8A Active CN113901156B (zh) | 2021-09-08 | 2021-09-08 | 三维自适应网格r+树混合索引构建、维护、查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113901156B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117331947B (zh) * | 2023-12-01 | 2024-03-08 | 中国人民解放军93184部队 | 一种多维自适应增量r树索引构建方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1838124A (zh) * | 2006-02-20 | 2006-09-27 | 南京联创科技股份有限公司 | 海量数据内存数据库中快速定位的网格+t树索引的方法 |
CN102073689A (zh) * | 2010-12-27 | 2011-05-25 | 东北大学 | 一种基于区域覆盖的动态最近邻查询方法 |
CN102289466A (zh) * | 2011-07-21 | 2011-12-21 | 东北大学 | 一种基于区域覆盖的k近邻查询方法 |
CN102682103A (zh) * | 2012-04-28 | 2012-09-19 | 北京建筑工程学院 | 一种面向海量激光雷达点云模型的三维空间索引方法 |
CN106095907A (zh) * | 2016-06-08 | 2016-11-09 | 江西理工大学 | 基于八叉树与三维r星树集成的激光点云数据管理方法 |
CN109284338A (zh) * | 2018-10-25 | 2019-01-29 | 南京航空航天大学 | 一种基于混合索引的卫星遥感大数据优化查询方法 |
CN111427978A (zh) * | 2019-11-22 | 2020-07-17 | 中国电子科技集团公司电子科学研究院 | 基于城市形态学和r树的三维模型索引方法 |
-
2021
- 2021-09-08 CN CN202111046287.8A patent/CN113901156B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1838124A (zh) * | 2006-02-20 | 2006-09-27 | 南京联创科技股份有限公司 | 海量数据内存数据库中快速定位的网格+t树索引的方法 |
CN102073689A (zh) * | 2010-12-27 | 2011-05-25 | 东北大学 | 一种基于区域覆盖的动态最近邻查询方法 |
CN102289466A (zh) * | 2011-07-21 | 2011-12-21 | 东北大学 | 一种基于区域覆盖的k近邻查询方法 |
CN102682103A (zh) * | 2012-04-28 | 2012-09-19 | 北京建筑工程学院 | 一种面向海量激光雷达点云模型的三维空间索引方法 |
CN106095907A (zh) * | 2016-06-08 | 2016-11-09 | 江西理工大学 | 基于八叉树与三维r星树集成的激光点云数据管理方法 |
CN109284338A (zh) * | 2018-10-25 | 2019-01-29 | 南京航空航天大学 | 一种基于混合索引的卫星遥感大数据优化查询方法 |
CN111427978A (zh) * | 2019-11-22 | 2020-07-17 | 中国电子科技集团公司电子科学研究院 | 基于城市形态学和r树的三维模型索引方法 |
Non-Patent Citations (1)
Title |
---|
基于三维网格-R树的混合索引方法研究;刘永山;龚翔;孔德瀚;单磊敬;;燕山大学学报;20200331(02);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113901156A (zh) | 2022-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107220285B (zh) | 面向海量轨迹点数据的时空索引构建方法 | |
Shen et al. | The TP-Index: A dynamic and efficient indexing mechanism for temporal databases | |
CN102289466A (zh) | 一种基于区域覆盖的k近邻查询方法 | |
CN112765405B (zh) | 空间数据搜索结果的聚类和查询的方法及系统 | |
CN110765331A (zh) | 一种时空数据的检索方法及系统 | |
CN111104457A (zh) | 基于分布式数据库的海量时空数据管理方法 | |
CN110069500B (zh) | 一种非关系型数据库动态混合索引方法 | |
CN113901156B (zh) | 三维自适应网格r+树混合索引构建、维护、查询方法 | |
CN112925789B (zh) | 一种基于Spark的空间矢量数据内存存储查询方法及系统 | |
CN101692230A (zh) | 顾及多细节层次的三维r树空间索引方法 | |
CN111552694A (zh) | 一种自适应地理空间网格索引方法 | |
CN112035586A (zh) | 基于可扩展学习索引的空间范围查询方法 | |
CN101430693B (zh) | 三角网格曲面模型的空间查询方法 | |
Singh et al. | SWST: A disk based index for sliding window spatio-temporal data | |
Tian et al. | A survey of spatio-temporal big data indexing methods in distributed environment | |
CN116860905A (zh) | 一种城市信息模型的空间单元编码生成方法 | |
CN113326343B (zh) | 基于多级网格和文件索引的路网数据存储方法及系统 | |
Lin et al. | On bulk loading TPR-tree | |
CN113407542B (zh) | 一种城市路网车辆出行轨迹的检索方法及系统 | |
CN114372058A (zh) | 一种空间数据管理方法、装置、存储介质及区块链系统 | |
CN111782663B (zh) | 一种提升聚合查询效率的聚合索引结构及聚合索引方法 | |
Liu et al. | Research on hybrid index based on 3D multi-level adaptive grid and R+ Tree | |
Wang et al. | Distributed retrieval for massive remote sensing image metadata on spark | |
CN112052359B (zh) | 一种基于mno树的实时点云编辑方法 | |
EP4030312A1 (en) | Method and apparatus for querying data, computing device, and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |