基于变粒度快速GeoHash编码的时空模式挖掘方法与流程

文档序号:11774701阅读:457来源:国知局
基于变粒度快速GeoHash编码的时空模式挖掘方法与流程

本发明属于计算机算法领域,尤其涉及基于变粒度快速geohash编码的时空模式挖掘方法。



背景技术:

时空图(stg)是一个有向图,其中顶点和边缘分别具有地理空间位置和空间长度,并与时空属性相关联。不同类型的人类活动数据,如出租车流量,地铁刷卡数据,自行车移动数据和通话详细记录(cdr),可以通过时空图(stg)建模。时空图的挖掘属于时空数据挖掘的一个分支。

时空数据挖掘是一个热门的研究领域,相关的研究成果十分丰富。mathioudakis等(m.mathioudakis,n.bansal,andn.koudas.identifying,attributinganddescribingspatialbursts.pvldb,3(1-2):1091–1102,2010.)介绍了一种可扩展的从用户自发布内容中挖掘空间模式的算法,能够有效地挖掘基于特定空间的信息剧增模式(informationburst),分析其人口统计学属性,并发现其描述性关键词集合;lappas等(t.lappas,m.r.vieira,d.gunopulos,andv.j.tsotras.onthespatiotemporalburstinessofterms.pvldb,5(9):836–847,2012.)提出了第一个能够同时追踪时间和空间信息剧增的框架,用于文档搜索引擎中的文档排序;pan等人(b.pan,y.zheng,d.wilkie,andc.shahabi.crowdsensingoftrafficanomaliesbasedonhumanmobilityandsocialmedia.inproc.ofgis,2013.)使用时空性的交通流数据来探测交通异常情况,并采集相关的社交媒体用户内容来对异常情况进行基于文本数据挖掘的描述,从而为驾驶者和交通部门提供参考;chen等(x.chen,y.liu,h.liu,andj.g.carbonell.learningspatial-temporalvaryinggraphswithapplicationstoclimatedataanalysis.inproc.ofaaai,2010.)开发了一种基于时空数据的非参数的学习算法来对动态图结构进行学习,高效地适用于气候变化等数据的分析。从这些研究看,时空数据挖掘可以覆盖到我们生活的各个方面,是一个极具应用价值的研究领域。本专利所提出的基于变粒度快速geohash编码的时空模式挖掘方法,能够适用于多种类型的时空数据挖掘场景,如交通大数据挖掘、轨道大数据挖掘等,具有重要的参考和应用价值。

时空模式挖掘中需解决的一个重要问题是对空间数据的离散和采集,而空间数据本身拥有多种特征,整体与局部之间也存在复杂的相关关系,而本专利的一个重要创新点也正是提出一种在没有道路交通道路等自然离散数据的条件下,对空间数据离散和采集的的改进方案。

在移动互联网中,基于地理信息的应用得到了广泛的使用,geohash为该应用提供了一个高效的地理编码方式。然而,随着基于地理信息的大数据应用的发展,我们对地理编码的效率提供了更高的要求。

但geohash本身存在问题:五位一编码的方式导致编码子父离散不均匀无法标准化,(即假设子级为正方形时,父级一定为矩形),不利于提取具有一致性特征的空间单位。固定的编码单位无法满足灵活的局部到整体粒度变化。



技术实现要素:

定义:

火山:是与黑洞相反的另一种时空子图,单位时间内,火山子图流出的总流量减去流入的总流量大于流出量阈值(outflow-threshold),呈现出人流大量涌出疏散的状态。

黑洞:是一种时空子图,单位时间内,流入该子图的总流量减去流出该子图的总流量大于流入量阈值(inflow-threshold),呈现出人流大量涌入聚集的状态。

本发明针对现有时空数据模式挖掘问题;提供了一种实时探测时空模式的快速算法。

对时空数据离散化方式和异常探测进行算法改进,大大提高模式挖掘以及异常探测的速度。本发明改进geohash进行数据离散,利用位图数组构造的中间缓冲,通过统计时间发生频率。

本发明的技术方案为一种离散化地理编码及空间数据注册方法,包含以下步骤:

基于变粒度快速geohash编码的时空模式挖掘方法,其特征在于,包含以下步骤:

步骤1:改进geohash对地理信息进行编码,通常geohash编码为每5位编码,即不断01二分地球区域,二分到指定精度后,每5位编码为一位,这种编码方式非常不利于构建层级索引,因为前一位编码所包含的区域与后一位编码所包含的区域在区域形状上并不相同,无法抽取统一的特征,进一步探寻不同层级的关系。故对其进行改进,首先确定缩放比例c(c=4n,n=1,2,3…)和最大精度k,缩放比例值前一位编码相对后一位编码所扩大的区域范围,由所要观察的时空事件决定,大范围现象如动物迁徙可选较大的值以减少计算量,小范围现象如人流聚集可选择较小的值以提高信息熵,最大精度由观察的事件范围决定,最大精度决定编码的停止条件。在决定缩放比例后,为了减少计算量,将以c进制对经纬度进行交替编码,即每n(n=log4c)位纬度与每n位经度以c进制编码,直到到达指定精确度k。

步骤2:构造多层级查询树。在步骤1中,实际已经实现子父级关系,但是为了快速索引,和对特征进行实时提取,构造出多级查询树,该查询树包含两部分,管理逻辑顶层节点的b+树与管理逻辑节点(逻辑节点是主要进行数据处理的节点)的层级查询树,每层放置用于管理节点的映射表,实时位图数组排序,层级查询树的查询行为与quadtree相似,优势在于可以通过改进的geohash按缩放比例c直接在该层映射表直接扩大检索范围,而不需要通过父节点来多次查询。

步骤3:统计大规模单位时间空间模式,构造空间数据集。数据根据时间不断向树根流入,当到达时间片限制时,沿着逻辑顶层向下逐层输出数据到文件,得到单位时间片的空间数据集,该数据集以本专利改进的geohash编码为主要字段,可以直接表示空间区域。每n(n=0.5)个小时设计为一个时间片,统计不同时间,构造时间数据集。

步骤4:统计时空模式(如火山、黑洞模式)数据,并将统计结果输出至数据库,该结果包括时空数据流入流出节点的次数,从其他节点流入及流出至其他同级节点的比例,产生时间,节点本身的编码,以及节点所处层级,并用位图数组缓冲对高频事件快速排序,等待下一个时间片流入时实时挖掘长期模式和异常事件。

首先本发明提出了一种数据离散方案,该离散方案主要实现以下几点基本要求:

1.粒度可变,即我们在采集更细粒度的时空模式特征时,保证粗粒度时空模式特征不会丢失。当前满足要求的编码方案有,正八面体,十二面体,二十面体,geohash编码,quadtree等。但前三种编解码速度不利于大规模数据的快速编解码。

2.子父离散均匀,即假设细粒度为正三角形或者正四边形时,粗粒度因同为正三角形或正四边形,这种编码方式可以保证子父级特征具有一致性,可随时切换参考纬度。符合要求的编码有正二十面体,quadtree等,但正二十面体方案编解码速度较慢。

3.粒度可控,使子父级可以保持任意2n倍数关系,符合要求的编码方案有正八面体,十二面体,二十面体编码方案,但三种方案编解码速度均比较慢。

4.可快速去除冗余,子父级之间需要能够建立相关性关系,对时空模式采集的过程中及时剔除冗余信息,大量减少计算量。

5.速度快,满足当前实时大数据收集的基本需求。

故本发明对geohash编码进行改进,提出了一种变粒度快速geohash编码方案,geohash是一种地址编码,能够将一个二维的经纬度转换成一个可以比较排序和比较的字符串,在实际应用中,通常比直接使用经纬度更有高效((geohash.http://geohash.org/.))。

geohash具有以下三个特点:

1.geohash使用一个字符串同时表示两个坐标(经度、纬度),只占用一列的位置,从而避免了某些数据应用中无法同时在两列上应用索引的情况,例如,mysql的早期版本等。

2.geohash表示的是一个矩形的区域,而不是一个点。

3.geohash的前缀可以表示更大的区域。例如,wx4g0ec1,它的前缀wx4g0e表示包含编码wx4g0ec1在内的更大范围。这个特性可以用于附近地点搜索。

离散过程完成后,对收集到的数据进行采集分析,但空间数据中有大量的冗余无效数据。故需要一种子父关联的快速通知方式,本发明以类似quadtree的方式建立检索树,并在此树所有有子节点的节点上保存位图数组缓冲,已挖掘的时空模式不进行重新挖掘,多次重复冗余的时空模式行为数据直接剔除。

附图说明

图1是本发明在时间方向和空间方向上数据集的构造方式,其中时间方向以时间片为单位,时间片间隔长度根据实际情况决定。空间方向上不一定为4倍关系。

图2是本发明在时空模式发生时的快速统计方式说明。局部特征的变动立刻响应整体特征发生变动。

具体实施方式

一、首先介绍一下本发明的具体方法,包括:

步骤1:改进geohash对地理信息进行编码,通常geohash编码为每5位编码,非常不利于地理信息构建层级索引,探寻不同层级的关系,在确定所需最大精度后,首先确定经纬编码粒度,2分至16位时在中国范围内经度精度约为400m,2分至16位时纬度精度为305米(当处理到17、18位时处理方法相同,首位补0处理,16位并非特殊取数)。我们以此作为事件注册最小单位,在上海最多产生1.2万个数据区域。

其次对编码进行压缩,为了对区域进行快速检索和表示,使用4倍缩放,将两位纬度与两位经度以16进制编码,比原先32进制错位编码方式解码速度提高一倍以上。

步骤2:构造多层级查询树,在粒度改变后实时通知父级或通知子级。在第一步中,实际已经实现子父级关系,但是为了快速索引,和对特征进行实时提取,构造出此多级查询树,该查询树类似quadtree,节点属性以geohash取代,并为各层放置缓冲数组,用于在实时事件中减少计算量,快速输出结果。(如图2所示)

步骤3:统计大规模单位时间空间事件,构造空间数据集。随着空间数据向树根流入,生成单位时间片的空间数据集。每半个小时设计为一个时间片,统计不同时间,构造时间数据集。(如图1纵深方向所示)

步骤4:统计火山黑洞数据,并将结果输出至数据库,次数结果放置到构造位图数组缓冲中等待挖掘长期模式性事件和异常事件。同时,通过对编码粒度的实时改变,可以构造出局部-整体特征数据集。(如图1平面所示)

二、下面结合具体案例进行说明。

步骤1:改进geohash对地理信息进行编码,通常geohash编码为每5位编码,非常不利于地理信息构建层级索引,探寻不同层级的关系,在确定所需最大精度后,首先确定经纬编码粒度,2分至16位时在中国范围内经度精度约为400m,2分至16位时纬度精度为305米(当处理到17、18位时处理方法相同,首位补0处理,16位并非特殊取数)。我们以此作为事件注册最小单位,在上海最多产生1.2万个数据区域。

其次对编码进行压缩,为了对区域进行快速检索和表示,使用4倍缩放(实际使用过程可以任意倍数粒度缩放,用于挖掘全国性乃至世界性大范围时空模式,并分析其发展与演化),将两位纬度与两位经度以16进制编码,比原先32进制错位编码方式解码速度提高一倍以上。

实施例具体的实施过程说明如下:

经度范围为-180°~180°,纬度范围为-90°~90°,以二分方式对经纬度不停编码,

如:

lat:40.243,将被编码为10111001001111000000

lon:114.34,将被编码为11010001010011101111

geohash编码为(经纬交错,5位一组):1101101110000011000110101111010001010101改进编码为(双经纬交错,4位一组):1011110110000101000111001111001000110011压缩结果为:bd851cf233

步骤2:构造多层级查询树。在第一步中,实际已经实现子父级关系,但是为了快速索引,和对特征进行实时提取,构造出此多级查询树,该查询树类似quadtree,节点属性以geohash取代,并为各层放置缓冲数组,用于在实时事件中减少计算量,快速输出结果。

实施例具体的实施过程说明如下:

以编码的子父级结构作为节点依据,类似btree分为3级加头节点,减少索引层数以提高索引速度,第三级保存16位精度约300m*400m,第二级1200m*1600m,第一级4800m*6400m

步骤3:统计大规模单位时间空间事件,构造空间数据集。随着空间数据向树根流入,生成单位时间片的空间数据集。每半个小时设计为一个时间片,统计不同时间,构造时间数据集。

步骤4:统计火山黑洞数据,并将结果输出至数据库,次数结果放置到构造位图数组缓冲中等待挖掘长期模式和异常事件。

实施例具体的实施过程说明如下:

1.每个节点为整体时间统计单位

2.每个节点下时间片为单位时间统计单位

3.每辆汽车或人口注册在单位节点时间片中

4.汽车或人口流动时迅速通知父节点产生数据变化

5.父节点变化时通知变化目标子节点产生数据变化

6.每个时间片保留火山黑洞相关信息,及流向信息

7.每个时间片保留异常事件,进行模式映射

8.输出子父节点变化信息到数据库,得到动态网格,子父节点扩散与聚集基本信息,进行模式映射与异常映射

9.输出多粒度时间片数据,构造局部空间与整体空间数据。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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