基于空间索引的邻近分析方法、装置、设备及介质与流程

文档序号:20113109发布日期:2020-03-17 19:26阅读:133来源:国知局
基于空间索引的邻近分析方法、装置、设备及介质与流程

本发明涉及地理信息技术领域,尤其涉及一种基于空间索引的邻近分析方法、装置、设备及介质。



背景技术:

knn(k-nearestneighbor)即邻近算法,或者说k最近邻分类算法是数据挖掘分类技术中最简单的方法之一。所谓k最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代表。根据邻近算法可以实现邻近分析,邻近分析是一种常见的gis分析功能,邻近分析算法的一般思路是:以输入位置为中心,设置缓冲半径,迭代查找,直到找到距离输入位置最近的k个要素。

但是,现有的邻近分析算法存在一些问题:通过串行方式来实现,当数据量大时,相比并行实现,实现训练比较低;缓冲半径不确定性较高,当查找要素过多时,缓冲次数会增加,最终迭代次数呈几何增长,这样对分析效率的影响非常大,而且已经不能满足显示的需求。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

有鉴于此,本发明提出了一种基于空间索引的邻近分析方法、装置、设备及介质,旨在解决现有技术无法通过多线程、多任务方式来实现邻近分析的技术问题。

本发明的技术方案是这样实现的:

一方面,本发明提供了一种基于空间索引的邻近分析方法,所述基于空间索引的邻近分析方法包括以下步骤:

s1,建立r-tree算法,获取空间数据,通过r-tree算法对该空间数据进行计算,根据计算数据建立r-tree索引结构,对r-tree索引结构中的计算数据进行数据分片,并根据各分片数据建立对应的数据分片索引;

s2,获取数据分片索引以及初始位置的距离,根据数据分片索引计算初始位置的距离到各个分片数据之间的距离数值,根据距离数值以及对应的分片数据建立队列;

s3,设置初始距离,从队列中的分片数据中提取几何图形,计算初始位置的距离到各几何图形的图形距离,将该图形距离与初始距离进行比较,根据比较结果,将该图形距离与该几何图形对应的标签存入队列中;

s4,设置标签数量阈值,实时获取队列中标签数量,当队列中标签数量大于标签数量阈值时,从队列中提取数值最小的图形距离对初始距离进行更新。

在以上技术方案的基础上,优选的,步骤s1中,建立r-tree算法,还包括以下步骤,所述r-tree算法为,设定空间数据数为n以及扇区的大小定义为fan,估计叶结点数k=n/fan,将所有空间数据按照其矩形外框中心点的x值排序,将排序后的空间数据分组,每组大小为*fan,且最后一组可能不满员,将每一个空间数据分组内的数据按照空间数据矩形外框中心点的y值排序,将排序后的每一个分组再分组,每组大小为fan,将每一小组作为叶结点,叶子结点数为nn。

在以上技术方案的基础上,优选的,步骤s1中,对r-tree索引结构中的计算数据进行数据分片,并根据各分片数据建立对应的数据分片索引,还包括以下步骤,所述数据分片索引包括:分片数据最小外包矩形、分片数据最小外包矩形包围的几何图形以及该几何图形对应的标签。

在以上技术方案的基础上,优选的,步骤s2中,获取数据分片索引以及初始位置的距离,根据数据分片索引计算初始位置的距离到各个分片数据之间的距离数值,根据距离数值以及对应的分片数据建立队列,还包括以下步骤,获取数据分片索引以及初始位置的距离,根据该数据分片索引获取分片数据最小外包矩形的位置,计算初始位置的距离到分片数据最小外包矩形的位置之间的距离数值,根据该距离数值以及对应的分片数据建立队列,根据距离数值按照从小到大的顺序对分片数据进行排列。

在以上技术方案的基础上,优选的,步骤s3中,设置初始距离,从队列中的分片数据中提取几何图形,计算初始位置的距离到各几何图形的图形距离,还包括以下步骤,设置初始距离以及分片数据数量阈值,遍历队列中的分片数据的数量,当分片数据的数量大于分片数据数量阈值时,将该分片数据对应的距离数值与初始距离进行比较,当该距离数值不大于初始距离时,从队列中取出该分片数据,并从该分片数据中提取分片数据最小外包矩形包围的几何图形以及该几何图形对应的标签,并计算初始位置的距离到各几何图形的图形距离。

在以上技术方案的基础上,优选的,步骤s3中,将该图形距离与初始距离进行比较,根据比较结果,将该图形距离与该几何图形对应的标签存入队列中,还包括以下步骤,将图形距离与初始距离进行比较,当图形距离不大于初始距离时,将该图形距离与该几何图形对应的标签存入队列中。

在以上技术方案的基础上,优选的,步骤s4中,设置标签数量阈值,实时获取队列中标签数量,当队列中标签数量大于标签数量阈值时,从队列中提取数值最小的图形距离对初始距离进行更新,还包括以下步骤,设置标签数量阈值,实时获取队列中标签数量,将标签数量与标签数量阈值进行比较,当标签数量不小于标签数量阈值时,从队列中提取数值最小的图形距离对初始距离进行更新;当标签数量小于标签数量阈值时,重新选择新的分片数据。

更进一步优选的,所述基于空间索引的邻近分析装置包括:

数据分片索引建立模块,用于建立r-tree算法,获取空间数据,通过r-tree算法对该空间数据进行计算,根据计算数据建立r-tree索引结构,对r-tree索引结构中的计算数据进行数据分片,并根据各分片数据建立对应的数据分片索引;

队列建立模块,用于获取数据分片索引以及初始位置的距离,根据数据分片索引计算初始位置的距离到各个分片数据之间的距离数值,根据距离数值以及对应的分片数据建立队列;

图形距离计算模块,用于设置初始距离,从队列中的分片数据中提取几何图形,计算初始位置的距离到各几何图形的图形距离,将该图形距离与初始距离进行比较,根据比较结果,将该图形距离与该几何图形对应的标签存入队列中;

初始距离更新模块,用于设置标签数量阈值,实时获取队列中标签数量,当队列中标签数量大于标签数量阈值时,从队列中提取数值最小的图形距离对初始距离进行更新。

第二方面,所述基于空间索引的邻近分析方法还包括一种设备,所述设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的基于空间索引的邻近分析方法程序,所述基于空间索引的邻近分析方法程序配置为实现如上文所述的基于空间索引的邻近分析方法的步骤。

第三方面,所述基于空间索引的邻近分析方法还包括一种介质,所述介质为计算机介质,所述计算机介质上存储有基于空间索引的邻近分析方法程序,所述基于空间索引的邻近分析方法程序被处理器执行时实现如上文所述的基于空间索引的邻近分析方法的步骤。

本发明的一种基于空间索引的邻近分析方法相对于现有技术具有以下有益效果:

(1)通过建立r-tree索引结构,并对空间数据进行分片,并建立对应的分片索引,然后通过分片查找替代缓冲查找,能够满足多个要素进行查找,同时查找的精确度也很高,提高了整个分析过程的效率;

(2)通过将具有排序功能的队列用于中间过程的数据存储,能够实现多线程、多任务的分析过程,同时排序功能也可以直接准确、快速提取需要的数据,提高了整个分析过程的效率。

附图说明

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

图1是本发明实施例方案涉及的硬件运行环境的设备的结构示意图;

图2为本发明基于空间索引的邻近分析方法第一实施例的流程示意图;

图3为本发明基于空间索引的邻近分析方法第一实施例的功能模块示意图。

具体实施方式

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

如图1所示,该设备可以包括:处理器1001,例如中央处理器(centralprocessingunit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(randomaccessmemory,ram)存储器,也可以是稳定的非易失性存储器(non-volatilememory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的结构并不构成对设备的限定,在实际应用中设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及基于空间索引的邻近分析方法程序。

在图1所示的设备中,网络接口1004主要用于建立设备与存储基于空间索引的邻近分析方法系统中所需的所有数据的服务器的通信连接;用户接口1003主要用于与用户进行数据交互;本发明基于空间索引的邻近分析方法设备中的处理器1001、存储器1005可以设置在基于空间索引的邻近分析方法设备中,所述基于空间索引的邻近分析方法设备通过处理器1001调用存储器1005中存储的基于空间索引的邻近分析方法程序,并执行本发明实施提供的基于空间索引的邻近分析方法。

结合图2,图2为本发明基于空间索引的邻近分析方法第一实施例的流程示意图。

本实施例中,所述基于空间索引的邻近分析方法包括以下步骤:

s10:建立r-tree算法,获取空间数据,通过r-tree算法对该空间数据进行计算,根据计算数据建立r-tree索引结构,对r-tree索引结构中的计算数据进行数据分片,并根据各分片数据建立对应的数据分片索引。

应当理解的是,r-tree算法也可以称为是r树算法,r树是b树向多维空间发展的另一种形式,它将对象空间按范围划分,每个节点都对应一个区域和一个磁盘页,非叶结点的磁盘页中存储有其他所有子节点的区域范围,非叶结点的所有子结点的区域都落在它的区域范围之内;叶结点的磁盘页中存储其区域范围之内所有空间对象的外接矩形,r树是一种动态索引结构。r树和b树都是用来做空间数据存储的树状数据结构。

应当理解的是,本实施中r-tree算法的描述为:设定空间数据数为n以及扇区的大小定义为fan,估计叶结点数k=n/fan,将所有空间数据按照其矩形外框中心点的x值排序,将排序后的空间数据分组,每组大小为*fan,且最后一组可能不满员,此处不满员值的是,数据可能无法填满大小为*fan的空间数据分组,将每一个空间数据分组内的数据按照空间数据矩形外框中心点的y值排序,将排序后的每一个分组再分组,每组大小为fan,将每一小组作为叶结点,叶子结点数为nn。

应当理解的是,系统在获取到空间数据之后,会对空间数据进行重采样,重采样是指根据一类象元的信息内插出另一类象元信息的过程,在本实施中,重采样是从空间数据中提取需要的空间数据的过程,通过这样的方式,可以减少数据运算的数量,提高分析效率。

应当理解的是,在构建出r-tree索引结构,且对r-tree索引结构中的计算数据进行数据分片之后,还会构建两级索引标签,其中,一级索引标签为数据分片索引标签,数据分片索引标签的内容包括:分片数据最小外包矩形、分片数据最小外包矩形包围的几何图形、该几何图形对应的标签,分片id、分片包含的记录数、分片文件的大小以及分片文件名;二级索引标签是r-tree索引标签。分片id、分片包含的记录数、分片文件的大小以及分片文件名有助于用户更加直观了解整个分片过程,r-tree索引标签有助于系统更加快速找到对应的分片,提高了分析效率。

应当理解的是,数据分片是指分布式数据库中的数据可以被复制在网络场地的各个物理数据库中。数据分片是通过关系代数的基本运算实现的,本实施例中,对r-tree索引结构中的计算数据进行数据分片是为了获取更多结点,便于分析过程的运行。

s20:获取数据分片索引以及初始位置的距离,根据数据分片索引计算初始位置的距离到各个分片数据之间的距离数值,根据距离数值以及对应的分片数据建立队列。

应当理解的是,分析过程中,系统会获取数据分片索引以及初始位置的距离,此处初始位置的距离由用户自行设定,然后系统会计算初始位置到各个分片之间的距离数值,系统会计算初始位置到各个分片之间的距离数值,即点到分片数据最小外包矩形的距离,再获取到这个距离之后,系统会根据该距离数值以及对应的分片数据建立队列,然后将各个距离数值按从小到大的顺序排列,数值最小的距离数据排在队列的顶部,这样可以很直观获取最小距离,能够提高分析效率。

s30:设置初始距离,从队列中的分片数据中提取几何图形,计算初始位置的距离到各几何图形的图形距离,将该图形距离与初始距离进行比较,根据比较结果,将该图形距离与该几何图形对应的标签存入队列中。

应当理解的是,在队列组合完成之后,系统会设定一个初始距离以及分片数据数量阈值,这个分片数据数量阈值由用户自行设定,一般都是0,此时系统会遍历队列中的分片数据,当队列中的分片数据的数量大于分片数据数量阈值时,系统会直接提取队列中第一个分片数据对应的距离数值,这个距离数值是队列中最小的距离数值,然后系统会将这个距离数值与初始距离进行比较,只有当距离数值不大于初始距离时,系统才会提取这个分片数据。

应当理解的是,在提取到分片数据之后,系统会从这个分片数据之中提取分片数据最小外包矩形包围的几何图形以及该几何图形对应的标签,然后计算初始位置到这个几何图形之间的图形距离,这个几何图形由空间数据组成,在获取到图形距离之后,系统会将图形距离与设定的初始距离进行比较,当图形距离不大于初始距离时,将该图形距离与该几何图形对应的标签存入队列中,同时仍旧会根据队列中所有图形距离的数值将图形距离按照从小到大的顺序排列,最小的图形距离排在队列的顶端,这样在提取数据时,能够更加快速的提取,提高了分析效率。

s40:设置标签数量阈值,实时获取队列中标签数量,当队列中标签数量大于标签数量阈值时,从队列中提取数值最小的图形距离对初始距离进行更新。

应当理解的是,系统会设定一个标签数量阈值,这个阈值由用户自行设定,系统会实时获取整个队列中的标签的数量,并将这个标签数量与标签数量阈值进行比较,当标签数量小于标签数量阈值时,重新选择新的分片数据,来补充队列中的标签数量;当标签数量不小于标签数量阈值时,从队列中提取数值最小的图形距离对初始距离进行更新,通过这样的方式就完成了整个分析过程,而且提高了分析效率。

需要说明的是,以上仅为举例说明,并不对本申请的技术方案构成任何限定。

通过上述描述不难发现,本实施例通过建立r-tree算法,获取空间数据,通过r-tree算法对该空间数据进行计算,根据计算数据建立r-tree索引结构,对r-tree索引结构中的计算数据进行数据分片,并根据各分片数据建立对应的数据分片索引;获取数据分片索引以及初始位置的距离,根据数据分片索引计算初始位置的距离到各个分片数据之间的距离数值,根据距离数值以及对应的分片数据建立队列;设置初始距离,从队列中的分片数据中提取几何图形,计算初始位置的距离到各几何图形的图形距离,将该图形距离与初始距离进行比较,根据比较结果,将该图形距离与该几何图形对应的标签存入队列中;设置标签数量阈值,实时获取队列中标签数量,当队列中标签数量大于标签数量阈值时,从队列中提取数值最小的图形距离对初始距离进行更新。本实施例通过以分片查找替代缓冲器查找,利用具有排序功能的队列用于中间过程数据存储,可以实现以多线程以及多任务的方式进行邻近分析,提高了分析效率。

此外,本发明实施例还提出一种基于空间索引的邻近分析装置。如图3所示,该基于空间索引的邻近分析装置包括:数据分片索引建立模块10、队列建立模块20、图形距离计算模块30、初始距离更新模块40。

数据分片索引建立模块10,用于建立r-tree算法,获取空间数据,通过r-tree算法对该空间数据进行计算,根据计算数据建立r-tree索引结构,对r-tree索引结构中的计算数据进行数据分片,并根据各分片数据建立对应的数据分片索引;

队列建立模块20,用于获取数据分片索引以及初始位置的距离,根据数据分片索引计算初始位置的距离到各个分片数据之间的距离数值,根据距离数值以及对应的分片数据建立队列;

图形距离计算模块30,用于设置初始距离,从队列中的分片数据中提取几何图形,计算初始位置的距离到各几何图形的图形距离,将该图形距离与初始距离进行比较,根据比较结果,将该图形距离与该几何图形对应的标签存入队列中;

初始距离更新模块40,用于设置标签数量阈值,实时获取队列中标签数量,当队列中标签数量大于标签数量阈值时,从队列中提取数值最小的图形距离对初始距离进行更新。

此外,需要说明的是,以上所描述的装置实施例仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的,此处不做限制。

另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的基于空间索引的邻近分析方法,此处不再赘述。

此外,本发明实施例还提出一种介质,所述介质为计算机介质,所述计算机介质上存储有基于空间索引的邻近分析方法程序,所述基于空间索引的邻近分析方法程序被处理器执行时实现如下操作:

s1,建立r-tree算法,获取空间数据,通过r-tree算法对该空间数据进行计算,根据计算数据建立r-tree索引结构,对r-tree索引结构中的计算数据进行数据分片,并根据各分片数据建立对应的数据分片索引;

s2,获取数据分片索引以及初始位置的距离,根据数据分片索引计算初始位置的距离到各个分片数据之间的距离数值,根据距离数值以及对应的分片数据建立队列;

s3,设置初始距离,从队列中的分片数据中提取几何图形,计算初始位置的距离到各几何图形的图形距离,将该图形距离与初始距离进行比较,根据比较结果,将该图形距离与该几何图形对应的标签存入队列中;

s4,设置标签数量阈值,实时获取队列中标签数量,当队列中标签数量大于标签数量阈值时,从队列中提取数值最小的图形距离对初始距离进行更新。

进一步地,所述基于空间索引的邻近分析方法程序被处理器执行时还实现如下操作:

所述r-tree算法为,设定空间数据数为n以及扇区的大小定义为fan,估计叶结点数k=n/fan,将所有空间数据按照其矩形外框中心点的x值排序,将排序后的空间数据分组,每组大小为*fan,且最后一组可能不满员,将每一个空间数据分组内的数据按照空间数据矩形外框中心点的y值排序,将排序后的每一个分组再分组,每组大小为fan,将每一小组作为叶结点,叶子结点数为nn。

进一步地,所述基于空间索引的邻近分析方法程序被处理器执行时还实现如下操作:

所述数据分片索引包括:分片数据最小外包矩形、分片数据最小外包矩形包围的几何图形以及该几何图形对应的标签。

进一步地,所述基于空间索引的邻近分析方法程序被处理器执行时还实现如下操作:

获取数据分片索引以及初始位置的距离,根据该数据分片索引获取分片数据最小外包矩形的位置,计算初始位置的距离到分片数据最小外包矩形的位置之间的距离数值,根据该距离数值以及对应的分片数据建立队列,根据距离数值按照从小到大的顺序对分片数据进行排列。

进一步地,所述基于空间索引的邻近分析方法程序被处理器执行时还实现如下操作:

设置初始距离以及分片数据数量阈值,遍历队列中的分片数据的数量,当分片数据的数量大于分片数据数量阈值时,将该分片数据对应的距离数值与初始距离进行比较,当该距离数值不大于初始距离时,从队列中取出该分片数据,并从该分片数据中提取分片数据最小外包矩形包围的几何图形以及该几何图形对应的标签,并计算初始位置的距离到各几何图形的图形距离。

进一步地,所述基于空间索引的邻近分析方法程序被处理器执行时还实现如下操作:

将图形距离与初始距离进行比较,当图形距离不大于初始距离时,将该图形距离与该几何图形对应的标签存入队列中。

进一步地,所述基于空间索引的邻近分析方法程序被处理器执行时还实现如下操作:

设置标签数量阈值,实时获取队列中标签数量,将标签数量与标签数量阈值进行比较,当标签数量不小于标签数量阈值时,从队列中提取数值最小的图形距离对初始距离进行更新;当标签数量小于标签数量阈值时,重新选择新的分片数据。

以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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