CN112765405B - 空间数据搜索结果的聚类和查询的方法及系统 - Google Patents
空间数据搜索结果的聚类和查询的方法及系统 Download PDFInfo
- Publication number
- CN112765405B CN112765405B CN201911001474.7A CN201911001474A CN112765405B CN 112765405 B CN112765405 B CN 112765405B CN 201911001474 A CN201911001474 A CN 201911001474A CN 112765405 B CN112765405 B CN 112765405B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- leaf
- tree
- query
- 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
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/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—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/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- 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/906—Clustering; Classification
-
- 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/907—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/909—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种空间数据搜索结果的聚类和查询方法、系统。该方法包括:获取选定区域范围内目标的位置数据集合;采用聚类算法将所述位置数据集合进行划分,为所述位置数据集合构建树,所述树的每个结点包括距离相近的若干个位置数据或子结点;根据用户输入在所述选定区域范围内建立查询矩形,并指定返回的结点的数量范围;从所述树的根结点开始查询,若当前结点的最小边界矩形与所述查询矩形有重叠,则向该结点的子结点遍历,直至所述查询区域内各层的结点数满足指定的所述数量范围。
Description
技术领域
本说明书一般涉及数据搜索技术领域,具体涉及一种空间数据搜索结果的聚类和查询方法、系统。
背景技术
随着计算机和信息技术的发展,产生了海量的多媒体数据,如何在海量的多媒体数据库中快速找到所需的信息是当前多媒体数据库领域研究的一个重点问题。传统的方法是由人工对多媒体数据进行标注,然后通过文本检索来实现多媒体信息检索。然而人工标注存在工作量大和主观性强的缺陷,对于爆炸式增长的多媒体数据来说,完全人工标注是不可实现的,因此需要研究基于内容的多媒体信息检索技术。
聚类分析是数据挖掘中广为研究的课题之一,是从数据中寻找数据间的相似性,并依此对数据进行分类,从而发现数据中隐含的有用信息或知识。搜索是指给定查询条件,对数据库中满足查询条件的数据进行查找的一种信息检索的关键。现有的技术方案主要过程是这样:先通过位置搜索,过滤得到满足条件的数据,然后对过滤后的数据进行聚类。例如专利文献“动态地理网格聚类算法(CN104021274A)”中描述,将搜索区域划分成大小相同的网格,对同一个网格内的数据进行聚类,然后合并相近网格的聚类。
每次当搜索矩形发生变化,针对返回聚类的颗粒度(对应地图的缩放级别)同时发生变化,落在此矩形范围内的数据发生了改变,导致聚类的结果需要重新计算。当数据量比较大,尤其是当输入的矩形范围比较大的时候,这种方法的效率就会比较低。
发明内容
本说明书提供了一种空间数据搜索结果的聚类和查询方法、系统,提升聚类搜索的效率。
本申请公开了一种空间数据搜索结果的聚类和查询方法,包括:
获取选定区域范围内目标的位置数据集合;
采用聚类算法将所述位置数据集合进行划分,为所述位置数据集合构建树,所述树的每个结点包括距离相近的若干个位置数据或子结点;
根据用户输入在所述选定区域范围内建立查询矩形,并指定返回的结点的数量范围;
从所述树的根结点开始查询,若当前结点的最小边界矩形与所述查询矩形有重叠,则向该结点的子结点遍历,直至所述查询区域内各层的结点数满足指定的所述数量范围。
在一个优选例中,所述结点及其包含的位置数据总和显示于该结点的包含的若干个位置数据或子结点的最小边界矩形的中心位置处。
在一个优选例中,所述树的根结点之外的所有结点的子结点数目范围为m至M,m=M/2;所述树的根结点个数小于m。
在一个优选例中,为所述位置数据集合构建树之后还包括:插入新的位置数据至所述树,其步骤包括:
找出与所述新的位置数据相似度最高的叶子结点;
如果该叶子结点的子结点的个数小于M,则所述新的位置数据直接插入该叶子结点,调整该叶子结点的最小边界矩形,并结束;
如果该叶子结点的子结点的个数等于M,则将该叶子结点分裂成两个叶子结点,并对分裂后的两个叶子节点沿着父结点进行树形调整。
在一个优选例中,如果该叶子结点的子结点的数目等于M,则将该叶子结点分裂为两个叶子结点的步骤包括:
在该叶子结点的所有子结点中选取相互距离最远的两个作为种子,所述两个种子分别代表两个分组;
更新所述两个分组的几何中心;
遍历该叶子结点的剩余待分类子结点,比较每个剩余待分类子结点与所述两个分组的几何中心的距离,将剩余待分类子结点归入距离几何中心比较近的一个分组;
重复上述更新、遍历的步骤,直到该叶子结点的分布不再发生变化,所述两个分组最终形成两个叶子节点。
在一个优选例中,对分裂后的两个叶子节点沿着父结点进行树形调整的步骤包括:
如果分裂前的叶子结点是根结点,则分裂后的两个叶子结点均为根结点,更新两个根结点的最小边界矩形;
如果分裂前的叶子结点不是根结点,调整该叶子结点的父结点指向该叶子结点的条目的最小边界矩形,并且在该父结点中插入一个指向分裂后的叶子结点的条目,并更新该条目的最小边界矩形;
当该父结点插入一个指向分裂后的叶子结点的条目之后,如果该父结点的子结点个数超过M,则将该父节点分裂成两个结点,并对分裂后的两个节点沿着父结点进行树形调整。
在一个优选例中,所述树为R树。
本申请还公开了一种空间数据搜索结果的聚类和查询系统包括:
获取单元,用于获取选定区域范围内目标的位置数据集合;
树创建单元,配置为根据空间相近性采用聚类算法将所述位置数据集合进行划分,为所述位置数据集合构建树;
输入单元,根据用户输入在所述选定区域范围内建立查询矩形,并指定返回的结点的数量范围;
查询单元,配置为从所述树的根结点开始查询,若当前结点的最小边界矩形与所述查询矩形有重叠,则向该结点的子结点遍历,直至获得所述查询区域内各层的结点数满足指定的所述数量范围。
在一个优选例中,所述结点及其包括的位置数据总和显示于该结点的包含的若干个位置数据或子结点的最小边界矩形的中心位置处。
在一个优选例中,所述树的根结点之外的所有结点的子结点数目范围为m至M,m=M/2;所述树的根结点个数小于m。
在一个优选例中,还包括插入单元,其被配置为:为所述位置数据集合构建树之后,插入新的位置数据至所述树,所述插入的步骤包括:
找出与所述新的位置数据相似度最高的叶子结点;
如果该叶子结点的子结点的个数小于M,则所述新的位置数据直接插入该叶子结点,调整该叶子结点的最小边界矩形,并结束;
如果该叶子结点的子结点的个数等于M,则将该叶子结点分裂成两个叶子结点,并对分裂后对两个叶子节点沿着父结点进行树形调整。
在一个优选例中,还包括分裂单元,被配置为:如果该叶子节点的子节点的数目等于M,则将该叶子节点分裂为两个叶子节点,所述分裂的步骤包括:
在该叶子结点的所有子结点中选取相互距离最远的两个作为种子,所述两个种子分别代表两个分组;
更新所述两个分组的几何中心;
遍历该叶子结点的剩余待分类子结点,比较每个剩余待分类子结点与所述两个分组的几何中心的距离,将剩余待分类子结点归入距离几何中心比较近的一个分组;
重复上述更新、遍历的步骤,直到该叶子结点的分布不再发生变化,所述两个分组最终形成两个叶子节点。
在一个优选例中,还包括调整单元,其被配置为:对分裂后对两个叶子节点沿着父结点进行树形调整,所述调整的步骤包括:
如果分裂前的叶子结点是根结点,则分裂后的两个叶子结点均为根结点,更新两个根结点的最小边界矩形;
如果分裂前的叶子结点不是根结点,调整该叶子结点的父结点指向该叶子结点的条目的最小边界矩形,并且在该父结点中插入一个指向分裂后的叶子结点的条目,并更新该条目的最小边界矩形;
当该父结点插入一个指向分裂后的叶子结点的条目之后,如果该父结点的子结点个数超过M,则将该父节点分裂成两个结点,并对分裂后的两个节点沿着父结点进行树形调整。
在一个优选例中,所述树为R树。
相对于现有技术,本申请具有以下有益效果:
本说明书实施方式中,充分利用了R树空间索引的特点,通过一个搜索的步骤完成了搜索和聚类两个目的,构建R树的过程相当于一个离线聚类的过程,省去了每次搜索完之后的实时在线聚类的性能消耗,极大地提升海量位置点检索性能。
本说明书中记载了大量的技术特征,分布在各个技术方案中,如果要罗列出本申请所有可能的技术特征的组合(即技术方案)的话,会使得说明书过于冗长。为了避免这个问题,本说明书上述发明内容中公开的各个技术特征、在下文各个实施方式和例子中公开的各技术特征、以及附图中公开的各个技术特征,都可以自由地互相组合,从而构成各种新的技术方案(这些技术方案均应该视为在本说明书中已经记载),除非这种技术特征的组合在技术上是不可行的。例如,在一个例子中公开了特征A+B+C,在另一个例子中公开了特征A+B+D+E,而特征C和D是起到相同作用的等同技术手段,技术上只要择一使用即可,不可能同时采用,特征E技术上可以与特征C相组合,则,A+B+C+D的方案因技术不可行而应当不被视为已经记载,而A+B+C+E的方案应当视为已经被记载。
附图说明
图1是根据本说明书一实施方式空间数据搜索结果的聚类和查询方法的流程示意图。
图2是根据本说明书一实施方式聚类结果的示意图。
图3是根据本说明书一实施方式查询结果的示意图。
图4是根据本说明书另一实施方式空间数据搜索结果的聚类和查询系统的框图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
下面将结合附图对本说明书的实施方式作进一步地详细描述。
本说明书的第一实施方式涉及一种空间数据搜索结果的聚类和查询方法,其流程图参考图1所示,包括如下步骤:
在步骤101中,获取选定区域范围内目标的位置数据集合。
在步骤102中,采用聚类算法将所述位置数据集合进行划分,为所述位置数据集合构建树,所述树的每个结点包括距离相近的若干个位置数据或子结点。在一个优选例中,所述结点及其包含的位置数据总和显示于该结点的包含的若干个位置数据或子结点的最小边界矩形的中心位置处。
在一个优选例中,所述树的根结点之外的所有结点的子结点数目范围为m至M,m=M/2;所述树的根结点个数小于m。
在一个优选例中,为所述位置数据集合构建树之后还包括:插入新的位置数据至所述树,其步骤包括:
找出与所述新的位置数据相似度最高的叶子结点;
如果该叶子结点的子结点的个数小于M,则所述新的位置数据直接插入该叶子结点,调整该叶子结点的最小边界矩形,并结束;
如果该叶子结点的子结点的个数等于M,则将该叶子结点分裂成两个叶子结点,并对分裂后的两个叶子节点沿着父结点进行树形调整。
在一个优选例中,如果该叶子结点的子结点的数目等于M,则将该叶子结点分裂为两个叶子结点的步骤包括:
在该叶子结点的所有子结点中选取相互距离最远的两个作为种子,所述两个种子分别代表两个分组;
更新所述两个分组的几何中心;
遍历该叶子结点的剩余待分类子结点,比较每个剩余待分类子结点与所述两个分组的几何中心的距离,将剩余待分类子结点归入距离几何中心比较近的一个分组;
重复上述更新、遍历的步骤,直到该叶子结点的分布不再发生变化,所述两个分组最终形成两个叶子节点。
在一个优选例中,对分裂后的两个叶子节点沿着父结点进行树形调整的步骤包括:
如果分裂前的叶子结点是根结点,则分裂后的两个叶子结点均为根结点,更新两个根结点的最小边界矩形;
如果分裂前的叶子结点不是根结点,调整该叶子结点的父结点指向该叶子结点的条目的最小边界矩形,并且在该父结点中插入一个指向分裂后的叶子结点的条目,并更新该条目的最小边界矩形;
当该父结点插入一个指向分裂后的叶子结点的条目之后,如果该父结点的子结点个数超过M,则将该父节点分裂成两个结点,并对分裂后的两个节点沿着父结点进行树形调整。
在一个优选例中,所述树为R树或四叉树。本实施例中,优选所述树为R树。
为了能够更好地理解本说明书的技术方案,下面结合一个具体的例子来进行说明,该例子中罗列的细节主要是为了便于理解,不作为对本申请保护范围的限制。
首先,输入位置数据集合P={p1,p2,……,pn},初始化T为空树,调用insert(p,T)算法,遍历集合中的每一个将其插入T。
调用算法n=chooseLeaf(p,T),找到位置数据需要插入的叶子结点。具体步骤包括:
(1)n=T的根结点
(2)如果n是叶子结点,直接返回n
(3)在n的孩子结点中,找出插入p后最小边界矩形(mininal bouding rectangle,MBR)扩展面积最小的结点f,如果面积都一样,则选择本身面积最小的结点
(4)如果叶子结点n空间足够(子结点的个数小于M),则直接插入,调整插入后该结点的MBR,然后结束。如果叶子结点n剩余空间不足(子结点的个数等于M),需要调用splitNode(n)分裂该结点,分裂成L和LL两个叶子结点。具体步骤包括:
(1)对于位置数据集合中的每一对结点<x,y>,挑选出相互距离d=distance(center(x),center(y))最大的一对结点,标识为聚类1和聚类2
(2)更新聚类1和聚类2的几何中心Center_C1,Cencter_C2
(3)遍历剩下的结点e,比较e跟Center_C1,Center_C2的距离,将e归入距离比较近的一个聚类
(4)重复进入步骤(2)、(3),直到结点的聚类分布不再发生变化
之后,调用AdjustTree(L,LL),调整分裂后的两个结点。具体步骤包括:
(1)设N=L,NN=LL
(2)如果N是根结点,则新生成一个根结点,新的根结点含有分裂的两个子结点N和NN,返回
(3)设P是N的父结点,E_N是父结点中指向N的那个条目,调整E_N的MBR矩形
(4)针对结点NN,创建条目E_NN指向NN,初始化其MBR,如果P的结点个数小于M,则将E_NN直接加入到P的条目中去;否则将加入E_NN之后的P结点分裂成新的P和PP两个结点。
加入E_NN之后的P结点分裂成P和PP两个结点的具体分裂方式参照上述splitNode(n)分裂方法。
(5)设N=P,NN=PP,重复进入步骤(2),对分裂后的节点进行调整
接着,在步骤103中,根据用户输入在所述选定区域范围内建立查询矩形,并指定返回的结点的数量范围。
在步骤104中,从所述树的根结点开始查询,若当前结点的最小边界矩形与所述查询矩形有重叠,则向该结点的子结点遍历,直至所述查询区域内各层的结点数满足指定的所述数量范围。
参考图2、图3,本实施例的查询方法采用广度优先的查询方法,将根结点记录其深度(为0),插入一个先进先出的队列,并记录队列中该深度的结点的计数。取出队列头部第一个结点,若结点的最小边界矩形对应的空间范围跟查询矩形对应的空间范围有重合,则根据结点的指向往下一层子结点遍历,依次将最小边界矩形跟查询矩形有重合的子结点,记录深度为当前结点加一,依次插入到队列中,同时更新队列中该结点深度的结点计数。按此步骤一直循环处理,直到满足以下条件中的任一个条件停止遍历:1)队列为空,则表示没有任何结点满足跟查询矩阵有重合;2)队列中的结点最大的深度对应的结点计数达到或超过输入的聚类个数,说明已经得到够数的聚类。
通过该方法,得到R8、R9、R10、R12、R15、R16这6个深度为2的结点,满足搜索的结束条件,得到的聚类在图3中分别用点表示。
本说明书的第二实施方式涉及一种空间数据搜索结果的聚类和查询系统,参考图4所示,包括:
获取选定区域范围内目标的位置数据集合;
采用聚类算法将所述位置数据集合进行划分,为所述位置数据集合构建树,所述树的每个结点包括距离相近的若干个位置数据或子结点;
根据用户输入在所述选定区域范围内建立查询矩形,并指定返回的结点的数量范围;
从所述树的根结点开始查询,若当前结点的最小边界矩形与所述查询矩形有重叠,则向该结点的子结点遍历,直至所述查询区域内各层的结点数满足指定的所述数量范围。
在一个优选例中,所述结点及其包含的位置数据总和显示于该结点的包含的若干个位置数据或子结点的最小边界矩形的中心位置处。
在一个优选例中,所述树的根结点之外的所有结点的子结点数目范围为m至M,m=M/2;所述树的根结点个数小于m。
在一个优选例中,为所述位置数据集合构建树之后还包括:插入新的位置数据至所述树,其步骤包括:
找出与所述新的位置数据相似度最高的叶子结点;
如果该叶子结点的子结点的个数小于M,则所述新的位置数据直接插入该叶子结点,调整该叶子结点的最小边界矩形,并结束;
如果该叶子结点的子结点的个数等于M,则将该叶子结点分裂成两个叶子结点,并对分裂后的两个叶子节点沿着父结点进行树形调整。
在一个优选例中,如果该叶子结点的子结点的数目等于M,则将该叶子结点分裂为两个叶子结点的步骤包括:
在该叶子结点的所有子结点中选取相互距离最远的两个作为种子,所述两个种子分别代表两个分组;
更新所述两个分组的几何中心;
遍历该叶子结点的剩余待分类子结点,比较每个剩余待分类子结点与所述两个分组的几何中心的距离,将剩余待分类子结点归入距离几何中心比较近的一个分组;
重复上述更新、遍历的步骤,直到该叶子结点的分布不再发生变化,所述两个分组最终形成两个叶子节点。
在一个优选例中,对分裂后的两个叶子节点沿着父结点进行树形调整的步骤包括:
如果分裂前的叶子结点是根结点,则分裂后的两个叶子结点均为根结点,更新两个根结点的最小边界矩形;
如果分裂前的叶子结点不是根结点,调整该叶子结点的父结点指向该叶子结点的条目的最小边界矩形,并且在该父结点中插入一个指向分裂后的叶子结点的条目,并更新该条目的最小边界矩形;
当该父结点插入一个指向分裂后的叶子结点的条目之后,如果该父结点的子结点个数超过M,则将该父节点分裂成两个结点,并对分裂后的两个节点沿着父结点进行树形调整。
在一个优选例中,所述树为R树。
本申请还公开了一种空间数据搜索结果的聚类和查询系统包括:
获取单元,用于获取选定区域范围内目标的位置数据集合;
树创建单元,配置为根据空间相近性采用聚类算法将所述位置数据集合进行划分,为所述位置数据集合构建树;
输入单元,根据用户输入在所述选定区域范围内建立查询矩形,并指定返回的结点的数量范围;
查询单元,配置为从所述树的根结点开始查询,若当前结点的最小边界矩形与所述查询矩形有重叠,则向该结点的子结点遍历,直至获得所述查询区域内各层的结点数满足指定的所述数量范围。
在一个优选例中,所述结点及其包括的位置数据总和显示于该结点的包含的若干个位置数据或子结点的最小边界矩形的中心位置处。
在一个优选例中,所述树的根结点之外的所有结点的子结点数目范围为m至M,m=M/2;所述树的根结点个数小于m。
在一个优选例中,还包括插入单元,其被配置为:为所述位置数据集合构建树之后,插入新的位置数据至所述树,所述插入的步骤包括:
找出与所述新的位置数据相似度最高的叶子结点;
如果该叶子结点的子结点的个数小于M,则所述新的位置数据直接插入该叶子结点,调整该叶子结点的最小边界矩形,并结束;
如果该叶子结点的子结点的个数等于M,则将该叶子结点分裂成两个叶子结点,并对分裂后对两个叶子节点沿着父结点进行树形调整。
在一个优选例中,还包括分裂单元,被配置为:如果该叶子节点的子节点的数目等于M,则将该叶子节点分裂为两个叶子节点,所述分裂的步骤包括:
在该叶子结点的所有子结点中选取相互距离最远的两个作为种子,所述两个种子分别代表两个分组;
更新所述两个分组的几何中心;
遍历该叶子结点的剩余待分类子结点,比较每个剩余待分类子结点与所述两个分组的几何中心的距离,将剩余待分类子结点归入距离几何中心比较近的一个分组;
重复上述更新、遍历的步骤,直到该叶子结点的分布不再发生变化,所述两个分组最终形成两个叶子节点。
在一个优选例中,还包括调整单元,其被配置为:对分裂后对两个叶子节点沿着父结点进行树形调整,所述调整的步骤包括:
如果分裂前的叶子结点是根结点,则分裂后的两个叶子结点均为根结点,更新两个根结点的最小边界矩形;
如果分裂前的叶子结点不是根结点,调整该叶子结点的父结点指向该叶子结点的条目的最小边界矩形,并且在该父结点中插入一个指向分裂后的叶子结点的条目,并更新该条目的最小边界矩形;
当该父结点插入一个指向分裂后的叶子结点的条目之后,如果该父结点的子结点个数超过M,则将该父节点分裂成两个结点,并对分裂后的两个节点沿着父结点进行树形调整。
在一个优选例中,所述树为R树。
第一实施方式是与本实施方式相对应的方法实施方式,第一实施方式中的技术细节可以应用于本实施方式,本实施方式中的技术细节也可以应用于第一实施方式。
需要说明的是,本领域技术人员应当理解,上述空间数据搜索结果的聚类和查询系统的实施方式中所示的各模块的实现功能可参照前述空间数据搜索结果的聚类和查询方法的相关描述而理解。上述空间数据搜索结果的聚类和查询系统的实施方式中所示的各模块的功能可通过运行于处理器上的程序(可执行指令)而实现,也可通过具体的逻辑电路而实现。本说明书实施例上述空间数据搜索结果的聚类和查询系统如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本说明书各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本说明书实施例不限制于任何特定的硬件和软件结合。
相应地,本说明书实施方式还提供一种计算机可读存储介质,其中存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现本说明书的各方法实施方式。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于,相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读存储介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
此外,本说明书实施方式还提供一种空间数据搜索结果的聚类和查询系统,其中包括用于存储计算机可执行指令的存储器,以及,处理器;该处理器用于在执行该存储器中的计算机可执行指令时实现上述各方法实施方式中的步骤。
在一个实施例中,该计算机可执行指令可以用于:
获取选定区域范围内目标的位置数据集合;
采用聚类算法将所述位置数据集合进行划分,为所述位置数据集合构建树,所述树的每个结点包括距离相近的若干个位置数据或子结点;
根据用户输入在所述选定区域范围内建立查询矩形,并指定返回的结点的数量范围;
从所述树的根结点开始查询,若当前结点的最小边界矩形与所述查询矩形有重叠,则向该结点的子结点遍历,直至所述查询区域内各层的结点数满足指定的所述数量范围。
在一个实施例中,其中,该处理器可以是中央处理单元(Central ProcessingUnit,简称“CPU”),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,简称“DSP”)、专用集成电路(Application Specific Integrated Circuit,简称“ASIC”)等。前述的存储器可以是只读存储器(read-only memory,简称“ROM”)、随机存取存储器(random access memory,简称“RAM”)、快闪存储器(Flash)、硬盘或者固态硬盘等。本发明各实施方式所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。在一个实施例中,该空间数据搜索结果的聚类和查询系统还包括总线和通信接口。处理器、存储器和通信接口都通过总线相互连接。通信接口可以是无线通信接口也可以是有线通信接口,用于使得处理器能够与其他的系统通信。
需要说明的是,在本专利的申请文件中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本专利的申请文件中,如果提到根据某要素执行某行为,则是指至少根据该要素执行该行为的意思,其中包括了两种情况:仅根据该要素执行该行为、和根据该要素和其它要素执行该行为。多个、多次、多种等表达包括2个、2次、2种以及2个以上、2次以上、2种以上。
在本说明书提及的所有文献都被认为是整体性地包括在本说明书的公开内容中,以便在必要时可以作为修改的依据。此外应理解,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描述的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
Claims (14)
1.一种空间数据搜索结果的聚类和查询方法,其特征在于,包括:
获取选定区域范围内目标的位置数据集合;
采用聚类算法将所述位置数据集合进行划分,为所述位置数据集合构建树,所述树的每个结点包括距离相近的若干个位置数据或子结点;
根据用户输入在所述选定区域范围内建立查询矩形,并指定返回的结点的数量范围;
从所述树的根结点开始查询,若当前结点的最小边界矩形与所述查询矩形有重叠,则向该结点的子结点遍历,直至所述查询区域内各层的结点数满足指定的所述数量范围,其中,所述查询采用广度优先的查询方法:记录所述树的根结点的深度为0,插入一个先进先出的队列并记录队列中该深度对应的结点的计数,取出队列头部第一个结点,若结点的最小边界矩形对应的空间范围与查询矩形有重合,则根据结点的指向往下一层子结点遍历,将最小边界矩形跟查询矩形有重合的子结点的深度记录为当前结点的深度加一,依次插入到队列中,同时更新队列中该深度对应的结点的计数,循环处理直到队列中最大深度对应的结点的计数达到或超过指定的所述数量范围。
2.如权利要求1所述的方法,其特征在于,所述结点及其包含的位置数据总和显示于该结点的包含的若干个位置数据或子结点的最小边界矩形的中心位置处。
3.如权利要求1所述的方法,其特征在于,所述树的根结点之外的所有结点的子结点数目范围为m至M,m=M/2;所述树的根结点个数小于m。
4.如权利要求1所述的方法,其特征在于,为所述位置数据集合构建树之后还包括:插入新的位置数据至所述树,其步骤包括:
找出与所述新的位置数据相似度最高的叶子结点;
如果该叶子结点的子结点的个数小于M,则所述新的位置数据直接插入该叶子结点,调整该叶子结点的最小边界矩形,并结束;
如果该叶子结点的子结点的个数等于M,则将该叶子结点分裂成两个叶子结点,并对分裂后的两个叶子节点沿着父结点进行树形调整。
5.如权利要求4所述的方法,其特征在于,如果该叶子结点的子结点的数目等于M,则将该叶子结点分裂为两个叶子结点的步骤包括:
在该叶子结点的所有子结点中选取相互距离最远的两个作为种子,所述两个种子分别代表两个分组;
更新所述两个分组的几何中心;
遍历该叶子结点的剩余待分类子结点,比较每个剩余待分类子结点与所述两个分组的几何中心的距离,将剩余待分类子结点归入距离几何中心比较近的一个分组;
重复上述更新、遍历的步骤,直到该叶子结点的分布不再发生变化,所述两个分组最终形成两个叶子节点。
6.如权利要求5所述的方法,其特征在于,对分裂后的两个叶子节点沿着父结点进行树形调整的步骤包括:
如果分裂前的叶子结点是根结点,则分裂后的两个叶子结点均为根结点,更新两个根结点的最小边界矩形;
如果分裂前的叶子结点不是根结点,调整该叶子结点的父结点指向该叶子结点的条目的最小边界矩形,并且在该父结点中插入一个指向分裂后的叶子结点的条目,并更新该条目的最小边界矩形;
当该父结点插入一个指向分裂后的叶子结点的条目之后,如果该父结点的子结点个数超过M,则将该父节点分裂成两个结点,并对分裂后的两个节点沿着父结点进行树形调整。
7.如权利要求1所述的方法,其特征在于,所述树为R树。
8.一种空间数据搜索结果的聚类和查询系统,其特征在于,包括:
获取单元,用于获取选定区域范围内目标的位置数据集合;
树创建单元,配置为根据空间相近性采用聚类算法将所述位置数据集合进行划分,为所述位置数据集合构建树;
输入单元,根据用户输入在所述选定区域范围内建立查询矩形,并指定返回的结点的数量范围;
查询单元,配置为从所述树的根结点开始查询,若当前结点的最小边界矩形与所述查询矩形有重叠,则向该结点的子结点遍历,直至获得所述查询区域内各层的结点数满足指定的所述数量范围,其中,所述查询采用广度优先的查询方法:记录所述树的根结点的深度为0,插入一个先进先出的队列并记录队列中该深度对应的结点的计数,取出队列头部第一个结点,若结点的最小边界矩形对应的空间范围与查询矩形有重合,则根据结点的指向往下一层子结点遍历,将最小边界矩形跟查询矩形有重合的子结点的深度记录为当前结点的深度加一,依次插入到队列中,同时更新队列中该深度对应的结点的计数,循环处理直到队列中最大深度对应的结点的计数达到或超过指定的所述数量范围。
9.如权利要求8所述的系统,其特征在于,所述结点及其包括的位置数据总和显示于该结点的包含的若干个位置数据或子结点的最小边界矩形的中心位置处。
10.如权利要求8所述的系统,其特征在于,所述树的根结点之外的所有结点的子结点数目范围为m至M,m=M/2;所述树的根结点个数小于m。
11.如权利要求8所述的系统,其特征在于,还包括插入单元,其被配置为:为所述位置数据集合构建树之后,插入新的位置数据至所述树,所述插入的步骤包括:
找出与所述新的位置数据相似度最高的叶子结点;
如果该叶子结点的子结点的个数小于M,则所述新的位置数据直接插入该叶子结点,调整该叶子结点的最小边界矩形,并结束;
如果该叶子结点的子结点的个数等于M,则将该叶子结点分裂成两个叶子结点,并对分裂后对两个叶子节点沿着父结点进行树形调整。
12.如权利要求11所述的系统,其特征在于,还包括分裂单元,被配置为:如果该叶子节点的子节点的数目等于M,则将该叶子节点分裂为两个叶子节点,所述分裂的步骤包括:
在该叶子结点的所有子结点中选取相互距离最远的两个作为种子,所述两个种子分别代表两个分组;
更新所述两个分组的几何中心;
遍历该叶子结点的剩余待分类子结点,比较每个剩余待分类子结点与所述两个分组的几何中心的距离,将剩余待分类子结点归入距离几何中心比较近的一个分组;
重复上述更新、遍历的步骤,直到该叶子结点的分布不再发生变化,所述两个分组最终形成两个叶子节点。
13.如权利要求11所述的系统,其特征在于,还包括调整单元,其被配置为:对分裂后对两个叶子节点沿着父结点进行树形调整,所述调整的步骤包括:
如果分裂前的叶子结点是根结点,则分裂后的两个叶子结点均为根结点,更新两个根结点的最小边界矩形;
如果分裂前的叶子结点不是根结点,调整该叶子结点的父结点指向该叶子结点的条目的最小边界矩形,并且在该父结点中插入一个指向分裂后的叶子结点的条目,并更新该条目的最小边界矩形;
当该父结点插入一个指向分裂后的叶子结点的条目之后,如果该父结点的子结点个数超过M,则将该父节点分裂成两个结点,并对分裂后的两个节点沿着父结点进行树形调整。
14.如权利要求8所述的系统,其特征在于,所述树为R树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911001474.7A CN112765405B (zh) | 2019-10-21 | 2019-10-21 | 空间数据搜索结果的聚类和查询的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911001474.7A CN112765405B (zh) | 2019-10-21 | 2019-10-21 | 空间数据搜索结果的聚类和查询的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112765405A CN112765405A (zh) | 2021-05-07 |
CN112765405B true CN112765405B (zh) | 2022-11-25 |
Family
ID=75691682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911001474.7A Active CN112765405B (zh) | 2019-10-21 | 2019-10-21 | 空间数据搜索结果的聚类和查询的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112765405B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113254724B (zh) * | 2021-06-02 | 2021-10-15 | 北京达佳互联信息技术有限公司 | 网络空间发现方法、装置、电子设备及存储介质 |
CN114218215B (zh) * | 2021-12-15 | 2023-04-14 | 中国民用航空飞行学院 | 一种大规模gis数据的优化渲染方法 |
CN114443914B (zh) * | 2022-04-11 | 2022-07-12 | 湖南视觉伟业智能科技有限公司 | 元宇宙空间服务器的数据索引、查询方法及系统 |
CN114648259B (zh) * | 2022-05-23 | 2022-09-13 | 科大天工智能装备技术(天津)有限公司 | 一种城市道路井盖管理方法 |
CN116361516B (zh) * | 2023-06-02 | 2023-08-29 | 交通运输部天津水运工程科学研究所 | 一种基于多级矩形分块查询目标点所属单元的搜索方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996242A (zh) * | 2010-11-02 | 2011-03-30 | 江西师范大学 | 基于三维r树索引扩展结构的三维城市模型自适应方法 |
CN104731984A (zh) * | 2015-04-22 | 2015-06-24 | 山东理工大学 | R树上溢结点分裂问题的增量式聚类优化求解方法 |
CN106095968A (zh) * | 2016-06-20 | 2016-11-09 | 山东理工大学 | n维海量点云的R树形位多目标结点分裂方法 |
CN110110186A (zh) * | 2018-01-23 | 2019-08-09 | 微软技术许可有限责任公司 | 空间划分树与邻近图结合的向量检索技术 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7636713B2 (en) * | 2007-01-31 | 2009-12-22 | Yahoo! Inc. | Using activation paths to cluster proximity query results |
-
2019
- 2019-10-21 CN CN201911001474.7A patent/CN112765405B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996242A (zh) * | 2010-11-02 | 2011-03-30 | 江西师范大学 | 基于三维r树索引扩展结构的三维城市模型自适应方法 |
CN104731984A (zh) * | 2015-04-22 | 2015-06-24 | 山东理工大学 | R树上溢结点分裂问题的增量式聚类优化求解方法 |
CN106095968A (zh) * | 2016-06-20 | 2016-11-09 | 山东理工大学 | n维海量点云的R树形位多目标结点分裂方法 |
CN110110186A (zh) * | 2018-01-23 | 2019-08-09 | 微软技术许可有限责任公司 | 空间划分树与邻近图结合的向量检索技术 |
Non-Patent Citations (1)
Title |
---|
"空间数据索引RTree(R树)完全解析及Java实现";佳佳牛;《博客园》;20170404;正文第1-19页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112765405A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112765405B (zh) | 空间数据搜索结果的聚类和查询的方法及系统 | |
Rai et al. | A survey of clustering techniques | |
CN102521386B (zh) | 基于集群存储的空间元数据分组方法 | |
CN106528787B (zh) | 一种基于海量数据多维分析的查询方法及装置 | |
KR102005343B1 (ko) | 분할 공간 기반의 공간 데이터 객체 질의처리장치 및 방법, 이를 기록한 기록매체 | |
CN104408163B (zh) | 一种数据分级存储方法和装置 | |
CN111639075B (zh) | 一种基于扁平化r树的非关系数据库矢量数据管理方法 | |
CN114691721A (zh) | 图数据的查询方法、装置、电子设备及存储介质 | |
US20230252012A1 (en) | Method for indexing data | |
WO2013001070A1 (en) | Data base indexing | |
CN104166736A (zh) | 倒排索引文件的存储方法和装置 | |
CN102955808A (zh) | 一种数据获取方法和分布式文件系统 | |
CN109657060B (zh) | 安全生产事故案例推送方法及系统 | |
US12026162B2 (en) | Data query method and apparatus, computing device, and storage medium | |
Schuh et al. | Mitigating the curse of dimensionality for exact knn retrieval | |
CN115757896A (zh) | 向量检索方法、装置、设备及可读存储介质 | |
Vespa et al. | Efficient bulk-loading on dynamic metric access methods | |
Rslan et al. | Spatial R-tree index based on grid division for query processing | |
CN110019192A (zh) | 数据库的检索方法及装置 | |
Levchenko et al. | Spark-parsketch: a massively distributed indexing of time series datasets | |
CN113742344A (zh) | 电力系统数据的索引方法及装置 | |
WO2020215436A1 (zh) | 应用于电子地图的空间关键字查询的搜索方法 | |
CN112632118A (zh) | 查询数据的方法、装置、计算设备和存储介质 | |
CN108073596B (zh) | 一种olap数据库的数据删除方法及装置 | |
Harikumar et al. | Implementation of projected clustering based on SQL queries and UDFs in relational databases |
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 |