CN110765130A - 一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法 - Google Patents
一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法 Download PDFInfo
- Publication number
- CN110765130A CN110765130A CN201910912399.3A CN201910912399A CN110765130A CN 110765130 A CN110765130 A CN 110765130A CN 201910912399 A CN201910912399 A CN 201910912399A CN 110765130 A CN110765130 A CN 110765130A
- Authority
- CN
- China
- Prior art keywords
- space
- time
- point
- points
- ripley
- 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.)
- Granted
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法,首先配置面向时空对象与时空索引的定制序列化器,然后,建立时空KDB树,对观测点进行数据重分区,接着构建局部时空R树索引,构造一系列点对;接着对于每个点对,在双层缓存中查找与点对对应的时空权重;然后计算观测点对应的不同时空距离阈值下时空Ripley’s K函数计算结果;然后基于观测点生成模拟点,得到模拟点对应的不同时空距离阈值下的时空Ripley’s K函数计算结果;再获得时空Ripley’s K函数模拟的上下界;最后,根据时空Ripley’s K函数模拟的上下界,获得最终的数据分布输出结果。本发明的方法可以大大提高时空POI数据点模式分析的效率。
Description
技术领域
本发明涉及时空大数据挖掘、空间统计领域,具体涉及一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法。
背景技术
点模式分析是空间统计的重要组成部分,旨在一定空间范围内研究点数据的分布模式,挖掘点所代表的现象本身以及产生过程。随着传感器技术的广泛应用、通讯技术的飞跃发展以及信息基础设施的日渐成熟,针对点数据的分析逐渐从空间维度扩展至时空维度。时空Ripley’s K函数是Ripley’s K函数在时空维度的扩展,相比于其他点模式分析方法,其主要优势在于:它将时空尺度作为输入变量,能够研究点数据在不同时空尺度下的分布模式;其输入参数可以结合点数据特征决定,对主观经验依赖较小;且不会受到可变面元问题(Modifiable Areal Unit Problem,MAUP)的影响。然而,由于Ripley’s K函数计算量较大,通常需要耗费大量时间来获得Ripley’s K函数结果。而在大数据时代,数据规模的集聚增长进一步提升Ripley’s K函数的应用门槛。
现有技术中,Ripley’s K函数优化与加速研究主要包含流程优化与并行加速两个方面。其中,流程优化主要针对空间Ripley’s K函数,通过空间点的预排序减少点对过滤的比较次数,同时利用单程缓存避免重复的空间权重计算;而并行加速主要借助OpenMP、MPI、CUDA等CPU与GPU并行框架,将空间Ripley’s K函数分配给CPU与GPU的多个核心上同步计算,以提升整体计算效率。
本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
现有的流程优化方法只适用于特定边界校正方法以及点模拟方法的空间Ripley’s K函数,并且现有优化方法对算法复杂度的降低程度仍有改善空间。同时,并行计算框架的伸缩性局限难以应对越来越庞大的时空点数据。尽管近几年,发展出了Parallel-Secondo、HadoopGIS、SpatialHadoop、SpatialSpark、GeoMesa、Magellan、Simba、GeoSpark等分布式空间处理系统。但是现有系统无法支持时空维度的数据模型、数据分区、索引构建及查询操作,难以满足时空Ripley’s K函数的需求,同时分布式环境的额外消耗将对时空Ripley’s K函数的实际效率产生影响,上述不足将对时空POI数据的点模式分析形成阻碍。
由此可知,现有技术中的方法存在效率较低的技术问题。
发明内容
有鉴于此,本发明提供了一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法,用以解决或者至少部分解决现有技术中的方法存在的效率较低的技术问题。
为了解决上述技术问题,本发明提供了一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法,包括:
步骤S1:在分布式集群环境中,配置面向时空对象与时空索引的定制序列化器,用以支持时空点、时空圆柱、时空包围盒、时空KDB树、时空R树以预设精简的字节结构进行传输,其中,分布式集群环境中包括主节点和工作节点;
步骤S2:通过主节点根据各工作节点抽样的时空POI数据集合,建立时空KDB树,将KDB树数据传输至各工作节点,以使各工作节点利用时空KDB树的叶子节点对应的时空立方体对观测点进行数据重分区,其中,抽样的时空POI数据集合由各工作节点抽样后的时空POI数据构成,抽样后的时空POI数据由各工作节点读取本地的时空POI数据并随机抽样后传输至主节点,KDB树包括根节点、非叶子节点和叶子节点,根节点包含时空POI数据全集对应的时空立方体,非叶子节点包含子节点所在时空立方体的并集,叶子节点包含最小时空分区以及分区内的时空点数据;
步骤S3:在对观测点进行数据重分区得到的数据分区内,以每个时空点为中心、空间距离阈值为半径、2倍时间距离阈值为高,构建一系列时空圆柱,其中,时空圆柱数量与时空点数量相同,空间距离阈值与时间距离阈值为预设输入参数,并采用递归网格排序算法批量导入时空点,构建局部时空R树索引,对时空圆柱与时空R树索引的最小外包时空立方体进行时空连接,获得时空圆柱所包含的邻近时空点,由各时空圆柱的中心时空点与其所包含的邻近时空点,构造时空点对,其中,时空R树中,根节点包含当前分区的时空POI数据的最小外包时空立方体,非叶子节点包含所有子节点对应最小外包时空立方体集合的最小外包时空立方体,叶子节点包含时空点数据;
步骤S4:对于每个点对,根据中心点的空间位置、时间戳、点对空间距离以及点对时间距离,在双层缓存中查找与点对对应的时空权重,若存在则取出权重,否则计算对应时空权重,并插入双层缓存,其中,双层缓存中用以存储已知点对的时空权重;
步骤S5:根据得到的数据分区的时空权重,计算观测点对应的不同时空距离阈值下时空Ripley’s K函数计算结果,其中,时空Ripley’s K函数计算结果用以表征POI数据点的分布情况;
步骤S6:基于观测点生成模拟点,对模拟点进行抽样,建立时空KDB树,利用时空KDB树的叶子节点对模拟点进行数据重分区后,对模拟点产生的数据分区进行步骤S3~步骤S5的操作,得到模拟点对应的不同时空距离阈值下的时空Ripley’s K函数计算结果;
步骤S7:根据模拟点对应的不同时空距离阈值下的时空Ripley’s K函数计算结果,获取时空Ripley’s K函数模拟的上下界;
步骤S8:根据观测点对应的不同时空距离阈值下时空Ripley’s K函数计算结果与时空Ripley’s K函数模拟的上下界,获得最终的数据分布输出结果。
在一种实施方式中,步骤S1具体包括:
在分布式集群环境中,配置面向时空对象与时空索引的定制序列化器,覆盖时空点、时空圆柱、时空包围盒、时空KDB树、时空R树对象,以预设精简的字节结构进行传输为:当时空对象与时空索引于集群节点间交换传输时,判断对象所属类,提取关键信息构建字节数组,由发送方发出,接收方获得字节数组后,利用其中关键信息还原出发送方的对象。
在一种实施方式中,步骤S2具体包括:
步骤S21:通过集群中的各工作节点从分布式存储系统中,读取观测的时空点数据至内存,获得时空点分区数据,其中,分区数与分布式环境CPU核数成正比;
步骤S22:集群中的各工作节点对各分区的时空点进行随机抽样,获得各分区的时空点样本,并传输至集群的主节点;
步骤S23:主节点合并所有工作节点传输的抽样时空点数据,根据输入的KDB构建参数对抽样时空点构建时空KDB树,KDB树将对时空POI集合所在的时空立方体按照X、Y、时间方向平分,其中,KDB构建参数包括子结点数目上限和结点附带对象数目上限;
步骤S24:主节点构建时空KDB树后,清除树结点所附带的时空点对象,保留时空POI数据重分区所需的各结点对应时空立方体,并将保留的时空立方体分发至集群的各工作节点;
步骤S25:集群中的各工作节点根据时空KDB树的叶子节点时空立方体,将各分区的时空点赋予叶子节点的ID,构建一系列键值对<id,p>,其中,id为叶子节点的唯一性标识符,p为时空点对象;
步骤S26:根据键值对的键进行重分区,将id相同的键值对划分至同一分区,取出键值对的值,将键值对转换为时空点。
在一种实施方式中,步骤S3具体包括:
步骤S31:在各分区内,以时空点为中心、空间距离阈值s为半径、2倍时间距离阈值2t为高,构建一系列时空圆柱;
步骤S32:在各分区内,采用STR算法批量导入时空点,根据输入的R构建参数:子结点数目上限建立局部时空R树索引,其中,各分区的时空POI数据首先按照子结点数目上限沿X、Y、时间方向均分,形成各自的最小外包时空立方体,然后以按照同样的子节点数目上限对上述时空立方体进行合并,形成新的最小外包时空立方体,直到合并为一个时空立方体,且时空立方体与时空R树的根节点相对应;
步骤S33:在各分区内,以时空圆柱为查询条件,在时空R树索引中进行范围查询,当时空圆柱与时空R树结点的最小外包时空立方体相交时,则继续判断子节点,直到获得所有相交叶子结点所包含的时空点,其中,时空点为时空圆柱所包含的邻近时空点;
步骤S34:由时空圆柱的中心时空点与邻近时空点,构造一系列点对。
在一种实施方式中,时空权重包括时间权重和空间权重,步骤S4具体包括:
步骤S41:在各分区内,对于每个点对,计算中心点空间坐标psi与时间戳pti在结合时空属性容忍阈值后的哈希值,从第一层缓存的键值对<psi,<dij,ω>>与<pti,<uij,υ>>中查找相同的键,如果能够找到对应的键,则从第二层缓存中取出键值对<dij,ω>与<uij,υ>,执行S42,否则直接计算时空权重,并执行S43;
步骤S42:计算点对空间距离dij、点对时间距离uij以及与时空距离容忍阈值结合后的哈希值,并与第二层缓存的键值对<dij,ω>以及<uij,υ>进行比较,如果能够找到相同的键,则直接取出对应的空间权重ω和时间权重υ,否则直接计算时空权重,并执行S43;
步骤S43:将计算出的时空权重组织为新键值对<psi,<dij,ω>>与<pti,<uij,υ>>,插入到双层缓存中。
在一种实施方式中,步骤S5具体包括:
汇总所有分区的时空权重,获得当前空间距离阈值s与时间距离阈值t下的时空Ripley’s K函数计算结果;调整时空距离阈值,重复执行步骤S2至S4,直到获得所有输入时空距离阈值下的时空Ripley’s K函数计算结果。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本发明提供的分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法,采用多种改进策略组合对分布式时空Ripley’s K函数进行优化与加速,该方法利用时空R树与双层缓存降低原始算法的时间复杂度,并结合时空分区与定制序列化来减少分布式环境的额外消耗。其中,时空R树索引可缩小点对比较范围,快速获取满足时空阈值的点对;双层缓存可复用时空校正权重,避免重复计算;基于时空KDB树来优化数据分区流程,可减少分布式环境中各节点的数据冗余;面向时空对象与时空索引的定制序列化方法,可精简二进制序列内容,减少数据传输量,降低序列化与反序列化的CPU负荷。本发明方法可应用于具有时空属性标签的各类海量POI数据集,以期大幅缩短时空Ripley’s K函数的求解时间,并辅助分析显著聚集尺度及挖掘时空聚集模式。例如,基于全国工商企业注册数据的产业时空聚集模式挖掘,基于全球地震数据的地震带时空分布及演化模式分析,以及基于社交媒体数据的人类活动时空分布与聚集模式挖掘等。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法的流程示意图;
图2为具体实施方式中时空POI数据点模式分析方法的计算流程图;
图3为时空对象的定制序列化方法示意图;
图4为时空索引的定制序列化方法示意图;
图5为基于时空KDB树的数据分区示意图;
图6为基于时空R树的点对过滤示意图;
图7为基于双层缓存的权重计算示意图;
图8为时空Ripley’s K函数单次迭代平均耗时对比示意图;
图9为具体实施例中时空Ripley’s K函数计算结果示意图。
具体实施方式
本发明的目的在于针对现有系统无法支持时空维度的数据模型、数据分区、索引构建及查询操作,难以满足时空Ripley’s K函数的需求,同时分布式环境的额外消耗将对时空Ripley’s K函数的实际效率产生影响,而导致的时空POI数据点模式分析效率低下的技术问题,提供一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法,从而达到提高分析效率的目的。
为达到上述目的,本发明的主要构思如下:
首先,在分布式集群环境中,配置面向时空对象与时空索引的定制序列化器;然后,对输入的观测点进行抽样,建立时空KDB树,利用时空KDB树的叶子节点对观测点进行数据重分区;接着,在各分区内,以时空点为中心,以空间距离阈值为圆面半径,以时间距离阈值的2倍为高,生成时空圆柱,并采用Sort-Tile-Recursive(STR)算法批量导入时空点,建立局部时空R树索引,对各分区的时空圆柱与时空R树索引进行时空连接,获得满足时空距离阈值的时空点对;接着对于各分区的点对,在双层权重缓存中查找其时空权重,若存在则返回权重查询结果,否则计算对应时空权重并插入该双层缓存;接下来,汇总所有分区的时空权重,并计算当前时空距离阈值下的时空Ripley’s K函数值;并调整时空距离阈值,直到获得所有输入距离阈值下的时空Ripley’s K函数计算结果;接下来,基于观测点生成模拟点,对模拟点进行抽样,建立时空KDB树,利用时空KDB树的叶子节点对模拟点进行数据重分区后,对模拟点产生的数据分区进行观测点类似的操作,得到模拟点对应的不同时空距离阈值下的时空Ripley’s K函数计算结果;再根据模拟点对应的不同时空距离阈值下的时空Ripley’s K函数计算结果,获取时空Ripley’s K函数模拟的上下界;最后根据观测点对应的不同时空距离阈值下时空Ripley’s K函数计算结果与时空Ripley’s K函数模拟的上下界,获得最终的数据分布输出结果。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本实施例提供了一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法,请参见图1,该方法包括:
步骤S1:在分布式集群环境中,配置面向时空对象与时空索引的定制序列化器,用以支持时空点、时空圆柱、时空包围盒、时空KDB树、时空R树以预设精简的字节结构进行传输,其中,分布式集群环境中包括主节点和工作节点。
具体来说,定制序列化器可以根据本发明的时空对象与时空索引来进行配置,通过定制序列化器,可以支持数据以预设的精简的字节结构进行传输,从而提高传输效率。
在一种实施方式中,步骤S1具体包括:
在分布式集群环境中,配置面向时空对象与时空索引的定制序列化器,覆盖时空点、时空圆柱、时空包围盒、时空KDB树、时空R树对象,以预设精简的字节结构进行传输为:当时空对象与时空索引于集群节点间交换传输时,判断对象所属类,提取关键信息构建字节数组,由发送方发出,接收方获得字节数组后,利用其中关键信息还原出发送方的对象。
步骤S2:通过主节点根据各工作节点抽样的时空POI数据集合,建立时空KDB树,将KDB树数据传输至各工作节点,以使各工作节点利用时空KDB树的叶子节点对应的时空立方体对观测点进行数据重分区,其中,抽样的时空POI数据集合由各工作节点抽样后的时空POI数据构成,抽样后的时空POI数据由各工作节点读取本地的时空POI数据并随机抽样后传输至主节点,KDB树包括根节点、非叶子节点和叶子节点,根节点包含时空POI数据全集对应的时空立方体,非叶子节点包含子节点所在时空立方体的并集,叶子节点包含最小时空分区以及分区内的时空点数据。
具体来说,分布式集群环境包括主节点和多个工作节点,由各个工作节点获取本地的时空POI数据并进行随机抽样后传输给主节点。时空KDB树中,时空邻近的点将被划分至同一个叶子节点,通过KDB树算法将保持各叶子节点的点数目相近。
在一种实施方式中,步骤S2具体包括:
步骤S21:通过集群中的各工作节点从分布式存储系统中,读取观测的时空点数据至内存,获得时空点分区数据,分区数据的数量与分布式环境CPU核数成正比;
步骤S22:集群中的各工作节点对各分区的时空点进行随机抽样,获得各分区地时空点样本,并传输至集群的主节点;
步骤S23:主节点合并所有工作节点传输的抽样时空点数据,根据输入的KDB构建参数对抽样时空点构建时空KDB树,KDB树将对时空POI集合所在的时空立方体按照X、Y、时间方向平分,其中,KDB构建参数包括子结点数目上限和结点附带对象数目上限;
步骤S24:主节点构建时空KDB树后,清除树结点所附带的时空点对象,保留时空POI数据重分区所需的各结点对应时空立方体,并将保留的时空立方体分发至集群的各工作节点;
步骤S25:集群中的各工作节点根据时空KDB树的叶子节点时空立方体,将各分区的时空点赋予叶子节点的ID,构建一系列键值对<id,p>,其中,id为叶子节点的唯一性标识符,p为时空点对象;
步骤S26:根据键值对的键进行重分区,将id相同的键值对划分至同一分区,取出键值对的值,将键值对转换为时空点。
具体来说,步骤S21中获取的一系列的时空点分区数据即为观测点数据,其中观测点数据的数量(一系列)可以根据实际情况设置,例如获取1000个、10000个、20000个等等。当观测点数据确定后,结合输入的抽样比例可确定样本数量,结合输入的空间距离阈值与时间距离阈值,可确定双层缓存的键值对数量。步骤S23中,根据输入的KDB构建参数对抽样时空点构建时空KDB树时,迭代地进行,直到满足构建参数要求。步骤26将键值对转换为时空点,至此完成时空分区,后续的计算过程可由各分区独立完成,无需依赖其他分区数据,避免了分区间的数据传输。
步骤S3:在对观测点进行数据重分区得到的数据分区内,以每个时空点为中心、空间距离阈值为半径、2倍时间距离阈值为高,构建一系列时空圆柱(时空圆柱数量与时空点数量相同,空间距离阈值与时间距离阈值来自预设输入参数),并采用递归网格排序算法批量导入时空点,构建局部时空R树索引,对时空圆柱与时空R树索引的最小外包时空立方体进行时空连接,获得时空圆柱所包含的邻近时空点,由各时空圆柱的中心时空点与其(即时空圆柱)所包含的邻近时空点,构造点对,其中,时空R树中,根节点包含当前分区的时空POI数据的最小外包时空立方体,非叶子节点包含所有子节点对应最小外包时空立方体集合的最小外包时空立方体,叶子节点包含时空点数据。
在一种实施方式中,步骤S3具体包括:
步骤S31:在各分区内,以时空点为中心、空间距离阈值s为半径、2倍时间距离阈值2t为高,构建一系列时空圆柱;
步骤S32:在各分区内,采用STR算法批量导入时空点,根据输入的R构建参数:子结点数目上限建立局部时空R树索引,其中,各分区的时空POI数据首先按照子结点数目上限沿X、Y、时间方向均分,形成各自的最小外包时空立方体,然后以按照同样的子节点数目上限对上述时空立方体进行合并,形成新的最小外包时空立方体,直到合并为一个时空立方体,且时空立方体与时空R树的根节点相对应;
步骤S33:在各分区内,以时空圆柱为查询条件,在时空R树索引中进行范围查询,当时空圆柱与时空R树结点的最小外包时空立方体相交时,则继续判断子节点,直到获得所有相交叶子结点所包含的时空点,其中,时空点为时空圆柱所包含的邻近时空点;
步骤S34:由时空圆柱的中心时空点与邻近时空点,构造一系列点对。
具体来说,空间距离阈值和时间距离阈值可以根据情况进行设置,递归网格排序算法为Sort-Tile-Recursive(STR)算法。步骤S33中,只有当时空圆柱与时空R树结点的最小外包时空立方体相交时,才继续判断子节点,直到获得所有相交叶子结点所包含的时空点,获取的时空点也就是时空圆柱所包含的邻近时空点,时空R树将避免时空圆柱与不相交时空立方体内时空点的包含关系判断,提升了查询效率。步骤S34中构造的一系列点对作为下一步权重计算的基本单元。
步骤S4:对于每个点对,根据中心点的空间位置、时间戳、点对空间距离以及点对时间距离,在双层缓存中查找与点对对应的时空权重,若存在则取出权重,否则计算对应时空权重,并插入双层缓存,其中,双层缓存中用以存储已知点对的时空权重。
具体来说,对于每个点对,根据中心点的空间位置、时间戳,计算点对空间距离,如果时空点已进行投影处理,可直接计算欧式距离,否则采用haversine半正矢公式计算大地距离。点对时间距离可以根据输入的时间单位计算时间戳之差得到。相同点对空间距离的空间权重相同,相同点对时间距离的时间权重也相同,利用缓存可避免重复缓存计算,节省计算耗时。
在一种实施方式中,时空权重包括时间权重和空间权重,步骤S4具体包括:
步骤S41:在各分区内,对于每个点对,计算中心点空间坐标psi与时间戳pti在结合时空属性容忍阈值后的哈希值,从第一层缓存的键值对<psi,<dij,ω>>与<pti,<uij,υ>>中查找相同的键,如果能够找到对应的键,则从第二层缓存取出键值对<dij,ω>与<uij,υ>,执行S42,否则直接计算时空权重,并执行S43;
步骤S42:计算点对空间距离dij、点对时间距离uij以及与时空距离容忍阈值结合后的哈希值,并与第二层缓存的键值对<dij,ω>以及<uij,υ>进行比较,如果能够找到相同的键,则直接取出对应的空间权重ω和时间权重υ,否则直接计算时空权重,并执行S43;
步骤S43:将计算出的时空权重组织为新键值对<psi,<dij,ω>>与<pti,<uij,υ>>,插入到双层缓存中。
具体来说,如果能够找到相同的键,则直接取出对应的空间权重ω和时间权重υ,可以节省权重计算时间。通过利用时空R树与双层缓存降低原始算法的时间复杂度,并结合时空分区与定制序列化从而可以减少分布式环境的额外消耗。
步骤S5:根据得到的数据分区的时空权重,计算观测点对应的不同时空距离阈值下时空Ripley’s K函数计算结果,其中,时空Ripley’s K函数计算结果用以表征POI数据点的分布情况。
其中,步骤S5具体包括:
汇总所有分区的时空权重,获得当前空间距离阈值s与时间距离阈值t下的时空Ripley’s K函数计算结果;调整时空距离阈值,重复执行步骤S2至S4,直到获得所有输入时空距离阈值下的时空Ripley’s K函数计算结果。
具体来说,所有输入时空距离阈值下的时空Ripley’s K函数计算结果即为所有观测点对应的POI数据点的分布情况。
步骤S6:基于观测点生成模拟点,对模拟点进行抽样,建立时空KDB树,利用时空KDB树的叶子节点对模拟点进行数据重分区后,对模拟点产生的数据分区进行步骤S3~步骤S5的操作,得到模拟点对应的不同时空距离阈值下的时空Ripley’s K函数计算结果。
具体来说,对于模拟点的分析与观测点类似,基于观测点生成模拟点,利用时空KDB树的叶子节点对模拟点进行数据重分区,则可以得到模拟点对应的数据分区。接着对模拟点执行与观测点类似的操作,首先获得满足时空距离阈值的时空点对,然后对于各分区的点对,在双层权重缓存中查找其时空权重,若存在则返回权重查询结果,否则计算对应时空权重并插入该双层缓存;再根据得到的数据分区的时空权重,计算模拟点对应的不同时空距离阈值下时空Ripley’s K函数计算结果。
由于模拟点计算过程可复用观测点过程建立的时空权重缓存,由于模拟点的时空信息全部来源于观测点,因此绝大部分权重计算可通过时空权重缓存避免,节省大量时间。
步骤S7:根据模拟点对应的不同时空距离阈值下的时空Ripley’s K函数计算结果,获取时空Ripley’s K函数模拟的上下界。
具体来说,时空Ripley’s K函数模拟的上下界即为模拟点对应分布情况的范围。
步骤S8:根据观测点对应的不同时空距离阈值下时空Ripley’s K函数计算结果与时空Ripley’s K函数模拟的上下界,获得最终的数据分布输出结果。
具体来说,根据观测点对应的不同时空距离阈值下时空Ripley’s K函数计算结果与时空Ripley’s K函数模拟的上下界的比较情况,可以得到最终的结果,例如:如果特定时空距离阈值的观测点的Ripley’s K函数计算结果大于时空Ripley’s K函数模拟的上界,则POI数据点分布在该距离上呈现为聚集模式;如果特定时空距离阈值的观测点的Ripley’sK函数计算结果小于时空Ripley’s K函数模拟的下界,则POI数据点分布在该距离上呈现为离散模式;如果特定时空距离阈值的观测点的Ripley’s K函数计算结果处于时空Ripley’sK函数模拟的上下界之间,则POI数据点分布在该距离上呈现为随机模式。
本发明的方法对原始时空Ripley’s K的计算方法及流程进行分布式优化与加速,其时间复杂度较原始时空Ripley’s K函数大幅降低,并具有较强的横向扩展性,能满足海量点数据的时空模式分析需求。本发明方法可应用于具有时空属性标签的各类海量POI数据集,以期分析显著聚集尺度及挖掘时空聚集模式。例如,基于全国工商企业注册数据的产业时空聚集模式挖掘,基于全球地震数据的地震带时空分布及演化模式分析,以及基于社交媒体数据的人类活动时空分布与聚集模式挖掘等。
为了更清楚地说明本发明提供的方法的实现过程和有益效果,下面通过具体的示例来予以详细介绍。
现有三十七万湖北省企业兴趣点(Point of Interest,POI)数据,包含各企业实体的注册时间与注册地点,需要对上述企业POI进行时空点模式分析,从而得到不同时空尺度下企业的时空分布模式(聚集模式、随机模式或离散模式)。结合Ripley经验法则与实际点数据规模,选取湖北省行政边界最小外包矩形较短边的1/24为空间距离阈值上限,研究时间范围的1/32为时间距离阈值上限,时空距离阈值步长均为20,模拟次数选择为100次。由于时空Ripley’s K函数的时间复杂度较高,在单机环境下完成上述输入的计算需要约400小时完成,在8台节点的分布式集群中计算只需约17小时完成。下面将以Apache Spark为例对实施过程进行说明,计算流程如图2,其中,左边为主流程,右边为Ripley’s K函数计算结果K(s,t)计算过程。
本发明提供的一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法,通过分布式时空Ripley’s K函数优化与加速方法,避免原始算法流程中不必要的计算负荷,减少分布式环境下数据冗余与数据传输的额外消耗,实现高性能、可伸缩的时空Ripley’s K函数计算。
下面将结合本发明中的附图,对本发明的算法过程进行详细阐述,具体步骤如下:
1)在Apache Spark环境中注册面向时空对象与时空索引的定制序列化器,其中对于时空点、时空圆柱以及时空包围盒的定制序列化方法如图3所示,对于时空索引的定制序列化方法如图4所示;
2)集群中的各工作节点读取观测的时空点,各自进行随机抽样,汇总至主节点,主节点根据抽样时空点建立时空KDB树,并分发至各工作节点,利用时空KDB树的叶子节点对观测点进行数据重分区,如图5所示;
3)在各分区内,以时空点为中心、空间距离阈值为半径、2倍时间距离阈值为高,构建一系列时空圆柱,同时采用Sort-Tile-Recursive(STR)算法批量导入时空点,建立局部时空R树索引,对时空圆柱与时空R树索引进行时空连接,获得时空圆柱所包含的邻近时空点,由时空圆柱的中心时空点与邻近时空点,构造一系列点对,如图6所示;
4)在各分区内,对于每个点对,根据中心点的空间位置、时间戳、点对空间距离与点对时间距离,在双层缓存中查找点对对应的时空权重,若存在则取出权重,否则计算对应时空权重,并插入双层缓存,如图7所示;
5)汇总所有分区的时空权重,获得当前时空距离阈值下的时空Ripley’s K函数计算结果,时空Ripley’s K函数单次估计平均耗时对比如图8所示;
6)选取新的时空距离阈值,重复S3至S5,直到获得所有输入距离阈值下的时空Ripley’s K函数计算结果;
7)基于观测点生成模拟点,对模拟点进行抽样,建立时空KDB树,利用时空KDB树的叶子节点对模拟点进行数据重分区,重复S3至S6,时空Ripley’s K函数单次模拟平均耗时对比如图8所示;
8)重复S7,直至模拟次数达到输入值要求,获得模拟点对应的时空Ripley’s K函数计算结果,如图9所示。最后则可以对观测点的时空Ripley’s K函数计算结果与拟点对应的时空Ripley’s K函数计算结果进行比较,得到聚类程度的分析结果。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (6)
1.一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法,其特征在于,包括:
步骤S1:在分布式集群环境中,配置面向时空对象与时空索引的定制序列化器,用以支持时空点、时空圆柱、时空包围盒、时空KDB树、时空R树以预设精简的字节结构进行传输,其中,分布式集群环境中包括主节点和工作节点;
步骤S2:通过主节点根据各工作节点抽样的时空POI数据集合,建立时空KDB树,将KDB树数据传输至各工作节点,以使各工作节点利用时空KDB树的叶子节点对应的时空立方体对观测点进行数据重分区,其中,抽样的时空POI数据集合由各工作节点抽样后的时空POI数据构成,抽样后的时空POI数据由各工作节点读取本地的时空POI数据并随机抽样后传输至主节点,KDB树包括根节点、非叶子节点和叶子节点,根节点包含时空POI数据全集对应的时空立方体,非叶子节点包含子节点所在时空立方体的并集,叶子节点包含最小时空分区以及分区内的时空点数据;
步骤S3:在对观测点进行数据重分区得到的数据分区内,以每个时空点为中心、空间距离阈值为半径、2倍时间距离阈值为高,构建一系列时空圆柱,其中,时空圆柱数量与时空点数量相同,空间距离阈值与时间距离阈值为预设输入参数,并采用递归网格排序算法批量导入时空点,构建局部时空R树索引,对时空圆柱与时空R树索引的最小外包时空立方体进行时空连接,获得时空圆柱所包含的邻近时空点,由各时空圆柱的中心时空点与其所包含的邻近时空点,构造时空点对,其中,时空R树中,根节点包含当前分区的时空POI数据的最小外包时空立方体,非叶子节点包含所有子节点对应最小外包时空立方体集合的最小外包时空立方体,叶子节点包含时空点数据;
步骤S4:对于每个点对,根据中心点的空间位置、时间戳、点对空间距离以及点对时间距离,在双层缓存中查找与点对对应的时空权重,若存在则取出权重,否则计算对应时空权重,并插入双层缓存,其中,双层缓存中用以存储已知点对的时空权重;
步骤S5:根据得到的数据分区的时空权重,计算观测点对应的不同时空距离阈值下时空Ripley’s K函数计算结果,其中,时空Ripley’s K函数计算结果用以表征POI数据点的分布情况;
步骤S6:基于观测点生成模拟点,对模拟点进行抽样,建立时空KDB树,利用时空KDB树的叶子节点对模拟点进行数据重分区后,对模拟点产生的数据分区进行步骤S3~步骤S5的操作,得到模拟点对应的不同时空距离阈值下的时空Ripley’s K函数计算结果;
步骤S7:根据模拟点对应的不同时空距离阈值下的时空Ripley’s K函数计算结果,获取时空Ripley’s K函数模拟的上下界;
步骤S8:根据观测点对应的不同时空距离阈值下时空Ripley’s K函数计算结果与时空Ripley’s K函数模拟的上下界,获得最终的数据分布输出结果。
2.如权利要求1所述的方法,其特征在于,步骤S1具体包括:
在分布式集群环境中,配置面向时空对象与时空索引的定制序列化器,覆盖时空点、时空圆柱、时空包围盒、时空KDB树、时空R树对象,以预设精简的字节结构进行传输为:当时空对象与时空索引于集群节点间交换传输时,判断对象所属类,提取关键信息构建字节数组,由发送方发出,接收方获得字节数组后,利用其中关键信息还原出发送方的对象。
3.如权利要求1所述的方法,其特征在于,步骤S2具体包括:
步骤S21:通过集群中的各工作节点从分布式存储系统中,读取观测的时空点数据至内存,获得时空点分区数据,其中,分区数与分布式环境CPU核数成正比;
步骤S22:集群中的各工作节点对各分区的时空点进行随机抽样,获得各分区的时空点样本,并传输至集群的主节点;
步骤S23:主节点合并所有工作节点传输的抽样时空点数据,根据输入的KDB构建参数对抽样时空点构建时空KDB树,KDB树将对时空POI集合所在的时空立方体按照X、Y、时间方向平分,其中,KDB构建参数包括子结点数目上限和结点附带对象数目上限;
步骤S24:主节点构建时空KDB树后,清除树结点所附带的时空点对象,保留时空POI数据重分区所需的各结点对应时空立方体,并将保留的时空立方体分发至集群的各工作节点;
步骤S25:集群中的各工作节点根据时空KDB树的叶子节点时空立方体,将各分区的时空点赋予叶子节点的ID,构建一系列键值对<id,p>,其中,id为叶子节点的唯一性标识符,p为时空点对象;
步骤S26:根据键值对的键进行重分区,将id相同的键值对划分至同一分区,取出键值对的值,将键值对转换为时空点。
4.如权利要求1所述的方法,其特征在于,步骤S3具体包括:
步骤S31:在各分区内,以时空点为中心、空间距离阈值s为半径、2倍时间距离阈值2t为高,构建一系列时空圆柱;
步骤S32:在各分区内,采用STR算法批量导入时空点,根据输入的R构建参数:子结点数目上限建立局部时空R树索引,其中,各分区的时空POI数据首先按照子结点数目上限沿X、Y、时间方向均分,形成各自的最小外包时空立方体,然后以按照同样的子节点数目上限对上述时空立方体进行合并,形成新的最小外包时空立方体,直到合并为一个时空立方体,且时空立方体与时空R树的根节点相对应;
步骤S33:在各分区内,以时空圆柱为查询条件,在时空R树索引中进行范围查询,当时空圆柱与时空R树结点的最小外包时空立方体相交时,则继续判断子节点,直到获得所有相交叶子结点所包含的时空点,其中,时空点为时空圆柱所包含的邻近时空点;
步骤S34:由时空圆柱的中心时空点与邻近时空点,构造一系列点对。
5.如权利要求1所述的方法,其特征在于,时空权重包括时间权重和空间权重,步骤S4具体包括:
步骤S41:在各分区内,对于每个点对,计算中心点空间坐标psi与时间戳pti在结合时空属性容忍阈值后的哈希值,从第一层缓存的键值对<psi,<dij,ω>>与<pti,<uij,υ>>中查找相同的键,如果能够找到对应的键,则从第二层缓存中取出键值对<dij,ω>与<uij,υ>,执行S42,否则直接计算时空权重,并执行S43;
步骤S42:计算点对空间距离dij、点对时间距离uij以及与时空距离容忍阈值结合后的哈希值,并与第二层缓存的键值对<dij,ω>以及<uij,υ>进行比较,如果能够找到相同的键,则直接取出对应的空间权重ω和时间权重υ,否则直接计算时空权重,并执行S43;
步骤S43:将计算出的时空权重组织为新键值对<psi,<dij,ω>>与<pti,<uij,υ>>,插入到双层缓存中。
6.如权利要求1所述的方法,其特征在于,步骤S5具体包括:
汇总所有分区的时空权重,获得当前空间距离阈值s与时间距离阈值t下的时空Ripley’s K函数计算结果;调整时空距离阈值,重复执行步骤S2至S4,直到获得所有输入时空距离阈值下的时空Ripley’s K函数计算结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910912399.3A CN110765130B (zh) | 2019-09-25 | 2019-09-25 | 一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910912399.3A CN110765130B (zh) | 2019-09-25 | 2019-09-25 | 一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110765130A true CN110765130A (zh) | 2020-02-07 |
CN110765130B CN110765130B (zh) | 2021-01-01 |
Family
ID=69330009
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910912399.3A Active CN110765130B (zh) | 2019-09-25 | 2019-09-25 | 一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110765130B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925789A (zh) * | 2021-02-24 | 2021-06-08 | 东北林业大学 | 一种基于Spark的空间矢量数据内存存储查询方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6735744B2 (en) * | 2001-02-07 | 2004-05-11 | Nec Corporation | Power mode based macro-models for power estimation of electronic circuits |
CN102426806A (zh) * | 2011-11-07 | 2012-04-25 | 同济大学 | 一种基于动态小区划分的区域路网无人机巡航方法 |
US20130166188A1 (en) * | 2011-12-21 | 2013-06-27 | Microsoft Corporation | Determine Spatiotemporal Causal Interactions In Data |
US20130226539A1 (en) * | 2012-02-29 | 2013-08-29 | BVI Networks, Inc. | Method and system for statistical analysis of customer movement and integration with other data |
CN103279572A (zh) * | 2013-06-19 | 2013-09-04 | 广东电网公司江门供电局 | 用于实现雷电时空聚类的方法 |
CN103617163A (zh) * | 2013-10-18 | 2014-03-05 | 中国电子科技集团公司第十研究所 | 基于聚类分析的目标快速关联方法 |
CN105138668A (zh) * | 2015-09-06 | 2015-12-09 | 中山大学 | 基于poi数据的城市商业中心与零售业态集聚区识别方法 |
US20150363108A1 (en) * | 2011-05-03 | 2015-12-17 | Space-Time Insight | Space-time-node engine signal structure |
CN106774314A (zh) * | 2016-12-11 | 2017-05-31 | 北京联合大学 | 一种基于行走轨迹的家庭服务机器人路径规划方法 |
-
2019
- 2019-09-25 CN CN201910912399.3A patent/CN110765130B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6735744B2 (en) * | 2001-02-07 | 2004-05-11 | Nec Corporation | Power mode based macro-models for power estimation of electronic circuits |
US20150363108A1 (en) * | 2011-05-03 | 2015-12-17 | Space-Time Insight | Space-time-node engine signal structure |
CN102426806A (zh) * | 2011-11-07 | 2012-04-25 | 同济大学 | 一种基于动态小区划分的区域路网无人机巡航方法 |
US20130166188A1 (en) * | 2011-12-21 | 2013-06-27 | Microsoft Corporation | Determine Spatiotemporal Causal Interactions In Data |
US20130226539A1 (en) * | 2012-02-29 | 2013-08-29 | BVI Networks, Inc. | Method and system for statistical analysis of customer movement and integration with other data |
CN103279572A (zh) * | 2013-06-19 | 2013-09-04 | 广东电网公司江门供电局 | 用于实现雷电时空聚类的方法 |
CN103617163A (zh) * | 2013-10-18 | 2014-03-05 | 中国电子科技集团公司第十研究所 | 基于聚类分析的目标快速关联方法 |
CN105138668A (zh) * | 2015-09-06 | 2015-12-09 | 中山大学 | 基于poi数据的城市商业中心与零售业态集聚区识别方法 |
CN106774314A (zh) * | 2016-12-11 | 2017-05-31 | 北京联合大学 | 一种基于行走轨迹的家庭服务机器人路径规划方法 |
Non-Patent Citations (2)
Title |
---|
LEONARDO S. KURY A: ""Content Based Mammography Images Retrieval using"", 《PROCEEDINGS OF THE 2ND INTERNATIONAL CONFERENCE ON INTERACTION SCIENCES: INFORMATION TECHNOLOGY》 * |
张东菊等: ""基于加权 Ripley"s K-function 的多尺度景观格局分析"", 《生态学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112925789A (zh) * | 2021-02-24 | 2021-06-08 | 东北林业大学 | 一种基于Spark的空间矢量数据内存存储查询方法及系统 |
CN112925789B (zh) * | 2021-02-24 | 2022-12-20 | 东北林业大学 | 一种基于Spark的空间矢量数据内存存储查询方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110765130B (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106709067B (zh) | 一种基于Oracle数据库的多源异构空间数据流转方法 | |
CN111199214B (zh) | 一种残差网络多光谱图像地物分类方法 | |
CN104091301B (zh) | 一种基于MapReduce的瓦片金字塔并行构建方法 | |
Zhang et al. | A GPU-accelerated adaptive kernel density estimation approach for efficient point pattern analysis on spatial big data | |
CN103281376A (zh) | 一种云环境下海量时序遥感影像的自动缓存构建方法 | |
CN110222029A (zh) | 一种大数据多维分析计算效率提升方法及系统 | |
CN111260784B (zh) | 一种城市三维空间网格压缩编码方法、装置及终端设备 | |
CN113946700A (zh) | 一种时空索引构建方法、装置、计算机设备及存储介质 | |
CN111090712A (zh) | 一种数据处理方法、装置、设备及计算机存储介质 | |
CN104008420A (zh) | 一种基于自动编码机的分布式离群点检测方法及系统 | |
CN108009265B (zh) | 一种云计算环境下的空间数据索引方法 | |
CN102890703A (zh) | 一种网络异质多维标度方法 | |
CN113570275A (zh) | 基于bim和数字高程模型的水资源实时监测系统 | |
CN106204719B (zh) | 基于二维邻域检索的三维场景中海量模型实时调度方法 | |
CN114048204A (zh) | 基于数据库倒排索引的北斗网格空间索引方法和装置 | |
CN114049462A (zh) | 一种三维模型单体化方法及装置 | |
CN110765130B (zh) | 一种分布式环境下基于Ripley’s K函数的时空POI数据点模式分析方法 | |
CN111626311B (zh) | 一种异构图数据处理方法和装置 | |
CN116721228B (zh) | 一种基于低密度点云的建筑物高程提取方法及系统 | |
CN109255004A (zh) | 面向地理空间数据的精度保证的在线交互式可视化方法 | |
CN111080080B (zh) | 一种村镇地质灾害风险预估方法及系统 | |
CN104951752A (zh) | 一种从机载激光点云数据提取房屋的方法 | |
CN112184900B (zh) | 高程数据的确定方法、装置及存储介质 | |
CN116775971A (zh) | 基于退化四叉树的时空网格索引查询方法和系统 | |
CN116051699A (zh) | 动捕数据的处理方法、装置、设备及存储介质 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220513 Address after: 430223 Optical Valley, 303 Guanggu Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province No. A1 (2), floor 9, R & D building, 4-03, phase 3-3, core center Patentee after: Wuhan Kongqing Information Technology Co.,Ltd. Address before: 430072 Hubei Province, Wuhan city Wuchang District of Wuhan University Luojiashan Patentee before: WUHAN University |