一种基于网格划分的并行空间查询方法及其系统的制作方法

文档序号:10687062阅读:259来源:国知局
一种基于网格划分的并行空间查询方法及其系统的制作方法
【专利摘要】本发明提供一种基于网格划分的并行空间查询方法及其系统,方法包括依据四叉树对查询空间对象以及目标空间对象集合所处的空间范围进行网格划分并编号;对各个空间对象构建空间分片索引,依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象。本发明使用四叉树进行空间网格划分和网格编号,使每个空间对象都被包含在一个对应的四叉树网格中,从而消除边界对象处理问题;同时,依据四叉树编码中隐含的空间拓扑关系,筛除明显不符合查询条件的空间对象,实现对候选目标空间对象的预过滤,从而减少任务候选集,再次提高并行查询效率。
【专利说明】
一种基于网格划分的并行空间查询方法及其系统
技术领域
[0001] 本发明涉及并行空间数据分析处理领域,具体说的是一种基于网格划分的并行空 间查询方法及其系统。
【背景技术】
[0002] 如今主流的GIS地理信息系统仍以串行计算为基础框架,难以充分利用和发挥当 前新型硬件构架计算机资源的能力,难以满足实际应用的规模与高效需求。并行化成为当 今提高地理计算效率的重要方式。对基于矢量数据的并行化地理数据计算,难点多体现在 空间划分、任务调度、并行性分析等方面。空间任务分配是并行空间查询(并行范围查询、并 行连接查询等)的基础,可分为空间划分(space declustering)和数据划分(data part it ion)两种方案。
[0003] 空间划分主要是通过将空间范围划分成空间对象数量相等或者大致相等的分片 集合,然后分配给不同的处理器进行本地化连接操作。针对基于拓扑关系的空间分析应用 中,在分片时需要对处于边界的对象进行特殊处理,即边界对象处理问题(Boundary Object Handling),当前有四种处理方案解决边界对象:1、副本拷贝:该方案将与空间对象 相交的所有分片都保存完整的副本,在并行处理完成时,再消除并行连接过程中产生的重 复结果;2、空间对象片段代理:该方案将与多分片相交的空间对象分配到某个特定分片上, 并将空间对象在其余分片上的相交部分的MBR及该空间对象的指针0ID(对象编号)分配给 其余相交分片,该方案同样必须进行重复结果消除工作;3、副本避免:一种称为参考点方法 的方案,来自不同空间关系R和S的每一对空间对象Tr和Ts,如果均被复制到多个分片中,那 么Tr和Ts的空间关系判断只在二者均有副本的分片中进行。该方法计算Tr和Ts的MBR的特 定参考点(对象相交角点),并只在参考点所在的分片中进行连接计算,以避免副本。参考分 片法是参考点方法的改进,该类算法必须将与多分片相交的空间对象进行复制备份;4、空 间对象分割:直接将与多分片相交的空间对象沿着空间分片的边界进行分割,并将得到的 空间对象片段的几何对象信息保存在索引中,在连接运算中,对各片段分别运算。该方案在 分片数量很多的情况下索引结构增长,将导致大量的1/0,并且对空间对象进行分割的过程 也需要额外的几何运算。
[0004] 上述现有技术能够解决边界对象问题的空间划分方案中,前两种在划分阶段和结 果集中都有冗余副本;第三种虽然避免了结果集中的副本,但是必须将边界对象分别拷贝 到各个分区;第四种方案还需要对对象进行划分,增加了额外的分割运算过程和存储空间, 当边界对象随着空间划分的进行而增多时,其额外的分割和存储消耗不可忽视。
[0005] 空间划分产生的分片是生成并行空间查询任务候选集的基础,当前已有的方案 中,划分完成后,直接利用生成的分片集合生成空间任务候选集,进行并行任务分配,未对 候选集中不符合空间查询限定的空间拓扑关系的分片集合进行筛选过滤,产生一些不必要 的候选集,影响了查询效率。
[0006] 专利公开号CN 101515284A的中国专利公开了一种基于离散网格的并行空间拓扑 分析方法,具体公开了先加载数据,在由Root进程对空间对象进行数据划分,将划分后的子 数据传送给多个Sub进行空间拓扑分析的技术方案。该方案中,还是需要对对象进行划分, 还是存在需要额外增加分割运算和存储空间的问题,并不能很好的解决边界对象问题;以 此,据此获取的空间任务候选集还是存在查询效率低的问题。

【发明内容】

[0007] 本发明所要解决的技术问题是:提供一种基于网格划分的并行空间查询方法及其 系统,不仅能够有效解决空间划分时产生的边界对象处理问题,而且能够预先筛除无关空 间对象,显著提高并行数据分析效率。
[0008] 为了解决上述技术问题,本发明采用的技术方案为:
[0009] -种基于网格划分的并行空间查询方法,包括:
[0010] 获取查询空间对象以及目标空间对象;获取目标空间对象集合;
[0011] 依据四叉树对所述查询空间对象以及目标空间对象集合所处的空间范围进行网 格划分;依据四叉树对网格进行编号;
[0012] 对查询空间对象以及目标空间对象集合内的各个空间对象构建空间分片索引,所 述空间分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对 象的最小外包矩形MBR;
[0013] 依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与查 询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成第一目标空间对象集 合。
[0014] 本发明提供的另一个技术方案为:
[0015] -种基于网格划分的并行空间查询系统,包括:
[0016] 第一获取模块,用于确定查询空间对象以及目标空间对象;
[0017]第二获取模块,用于获取目标空间对象集合;
[0018] 网格划分模块,用于依据四叉树对所述查询空间对象集合以及第二目标空间对象 集合所处的空间范围进行网格划分;
[0019] 网格编号模块,用于依据四叉树对网格进行编号;
[0020] 第一构建模块,用于对所述空间内每一个空间对象构建空间分片索引,所述空间 分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最 小外包矩形MBR;
[0021] 第三获取模块,用于依据空间分片索引中的所述最小网格的编号,从目标空间对 象集合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成 第一目标空间对象集合。
[0022] 本发明的有益效果在于:区别于现有技术的并行空间查询方案中的空间分片过程 会存在边界对象处理问题,同时也未对分片集合进行筛选过滤,将产生额外分割运算和存 储消耗,并行查询效率低的问题。本发明依据四叉树对空间进行网格划分,以及编码;确定 能够包含空间对象的最小外包矩形的四叉树网格,构建以该四叉树网格编号为主键的空间 分片索引;由于每个空间对象都包含在一个对应的四叉树网格中;因此,基于空间分片索引 的空间并行运算过程,便不会出现边界对象问题的发生。同时,又能依据所述空间分片索引 中隐含的空间拓扑关系,对目标空间对象进行预过滤,直接过滤掉明显不满足查询条件的 空间对象;从而减少依据空间对象构建的任务候选集。相较于现有技术,能够显著提高并行 查询处理的效率,同时缩减数据存储空间。
【附图说明】
[0023] 图1为本发明一种基于网格划分的并行空间查询方法的流程示意图;
[0024] 图2为本发明实施例一的方法流程示意图;
[0025] 图3(a)为本发明实施例一中基于四叉树模型的空间划分及编码规则示意图;
[0026] 图3(b)为本发明实施例一中基于四叉树模型的空间划分及编码规则中第一层级 划分后生成一级网格的示意图;
[0027] 图3(c)为本发明实施例一中基于四叉树模型的空间划分及编码规则中第二层级 划分后生成二级网格示意图;
[0028] 图4为发明一种基于网格划分的并行空间查询系统的结构组成示意图;
[0029] 图5为实施例四的系统结构示意图。
[0030] 标号说明:
[0031 ] 1、第一获取模块;2、第二获取模块;3、网格划分模块;
[0032] 4、网格编号模块;5、第一构建模块;6、第三获取模块;
[0033] 7、第四获取模块;8、第二构建模块;9、统计模块;丨〇、分配模块;
[0034] 11、一级划分编号单元;12、二级划分编号单元;13、划分编号单元。
【具体实施方式】
[0035] 为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附 图予以说明。
[0036] 本发明最关键的构思在于:依据四叉树进行空间网格划分和网格编号,基于能够 包含空间对象最小外包矩形的网格,构建以网格编号为主键的空间分片索引,并据此对明 显不符合查询条件的空间对象进行预筛除,不仅能够消除边界对象处理问题,还能提高并 行查询效率。
[0037]本发明涉及的技术术语解释:
[0039] 请参照图1,本发明提供一种基于网格划分的并行空间查询方法,包括:
[0040] 获取查询空间对象以及目标空间对象;获取目标空间对象集合;
[0041] 依据四叉树对所述查询空间对象以及目标空间对象集合所处的空间范围进行网 格划分;依据四叉树对网格进行编号;
[0042] 对查询空间对象以及目标空间对象集合内的各个空间对象构建空间分片索引,所 述空间分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对 象的最小外包矩形MBR;
[0043] 依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与查 询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成第一目标空间对象集 合。
[0044] 从上述描述可知,本发明的有益效果在于:使用四叉树模型对空间范围进行划分, 得到空间分片(网格),并对空间分片进行四叉树编码,划分过程中,对每个空间对象,寻找 能包含该空间对象最小外包矩形的四叉树格网,构建以格网编码为主键的空间分片索引。 该划分方法中,每个空间对象都包含在一个对应的四叉树格网中,避免了边界对象问题的 产生;依据四叉树编码中隐含的空间拓扑关系,筛除明显不符合查询条件的空间对象,实现 对候选目标空间对象的预过滤,从而减少任务候选集,再次提高并行查询效率。
[0045] 进一步的,所述构成第一目标空间对象集合,之后,进一步包括:
[0046] 依据空间分片索引中的所述最小外包矩形MBR,从第一目标空间对象集合中获取 与所述查询空间对象可能存在相交关系的目标空间对象,构成第二目标空间对象集合。
[0047] 由上述可知,依据空间对象的最小外包矩形MBR是否相交,进行无关空间对象的二 次筛选,再次缩减候选目标空间对象集合的数量,从而提高并行查询效率。
[0048] 进一步的,所述构成第二目标空间对象集合,之后,进一步包括:
[0049] 依据所述查询空间对象与所述第二目标空间对象集合中各个空间对象的对应关 系,构建两个以上的任务候选集;
[0050] 统计各个任务候选集的工作量;
[0051] 依据工作量分配相应的任务候选集至处理器。
[0052] 进一步的,所述统计各个任务候选集的工作量;依据工作量分配相应的任务候选 集至处理器,具体为:
[0053] 计算各个任务候选集中查询空间对象与目标空间对象的连接工作量;
[0054]将所述任务候选集放入异步任务队列中,并依据连接工作量对所述任务候选集进 tx排序;
[0055]依据负载均衡策略将所述异步任务队列中的任务候选集均分给不同处理器,或者 依序分配任务候选集给不同处理器进行并行连接处理。
[0056]由上述可知,依据静态负载均衡法或者动态负载均衡法合理分配任务至处理器进 行并行查询处理。相较现有技术,在负载均衡的提前下,显著减少并行处理的工作量,实现 高效并行分析处理。
[0057]进一步的,所述依据四叉树对网格进行编号之后,进一步包括:
[0058]选取所述空间范围的一边角作为坐标原点,构建坐标系;
[0059] 依据四叉树,计算各个网格的坐标。
[0060] 由上述可知,获取各个网格对应的坐标,作为后续并行处理中所述网格在空间中 位置的标示;通过对空间对象的空间分片索引中的网格编号进行分析,便可推算出该空间 对象在空间中所处的位置。
[0061] 进一步的,所述依据四叉树对所述查询空间对象集合以及第二目标空间对象集合 所处的空间范围进行网格划分;依据四叉树对网格进行编号,具体为:
[0062] 依据四叉树对所述查询空间对象集合以及第二目标空间对象集合所处的空间范 围进行四等分,获取四个一级网格,并分别对一级网格进行编号;
[0063] 对一级网格进行四等分,获取四个二级网格,并依据对应的一级网格的编号对二 级网格进行编号;
[0064]依据预设的网格划分次数继续对所述二级网格进行相应次数的划分并编号。
[0065] 由上述描述可知,本发明基于四叉树进行网格的划分和网格的编码,在前一次网 格划分结果上对每个网格继续进行网格划分,新划分的网格的编码是在前一次划分的网格 的编号后添加新的区域编号,从而建立区域关联,标示空间信息。
[0066] 请参阅图4,本发明提供的另一个技术方案为:
[0067] 第一获取模块1,用于确定查询空间对象以及目标空间对象;
[0068] 第二获取模块2,用于获取目标空间对象集合;
[0069] 网格划分模块3,用于依据四叉树对所述查询空间对象集合以及第二目标空间对 象集合所处的空间范围进行网格划分;
[0070] 网格编号模块4,用于依据四叉树对网格进行编号;
[0071] 第一构建模块5,用于对所述空间内每一个空间对象构建空间分片索引,所述空间 分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最 小外包矩形MBR;
[0072] 第三获取模块6,用于依据空间分片索引中的所述最小网格的编号,从目标空间对 象集合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成 第一目标空间对象集合。
[0073] 进一步的,还包括:
[0074]第四获取模块7,用于依据空间分片索引中的所述最小外包矩形MBR,从第一目标 空间对象集合中获取与所述查询空间对象可能存在相交关系的目标空间对象,构成第二目 标空间对象集合。
[0075] 进一步的,还包括:
[0076] 第二构建模块8,用于依据所述查询空间对象与所述第二目标空间集合中各个空 间对象的对应关系,构建两个以上的任务候选集;
[0077] 统计模块9,用于统计各个任务候选集的工作量;
[0078]分配模块10,用于依据工作量分配相应的任务候选集至处理器。
[0079] 进一步的,所述网格划分模块3和所述网格编号模块4具体包括:
[0080] -级划分编号单元11,用于依据四叉树对空间对象所在的空间进行四等分,获取 四个一级网格,并分别对一级网格进行编号;
[0081] 二级划分编号单元12,用于对一级网格进行四等分,获取四个二级网格,并依据对 应的一级网格的编号对二级网格进行编号;
[0082]划分编号单元13,用于依据预设的网格划分次数继续对所述二级网格进行相应次 数的划分并编号。
[0083] 进一步的,还包括:
[0084]第三构建模块,用于选取所述空间范围的一边角作为坐标原点,构建坐标系;
[0085]计算模块,用于依据四叉树,计算各个网格的坐标。
[0086]进一步的,所述第三构建模块具体包括:
[0087] 第一选取单元,用于选取所述空间的一边角作为坐标原点,构建坐标系;
[0088] 第二选取单元,用于选取所述网格的一边角对应所述坐标系的坐标作为所述网格 的坐标,依据四叉树网格编码规则,计算获取所述坐标。
[0089] 实施例一
[0090] 请参照图2、图3(a)至图3(c),本实施例提供一种基于网格划分的并行空间查询方 法,所述空间查询可以是连接查询或者是范围查询。以R与S并行连接查询为例,假设所述R 为公交路线,所述S为桥梁,通过对R与S进行并行连接查询,获取与该公交路线相交的所有 桥梁;
[0091] 首先,确定查询空间对象以及目标空间对象,即,查询空间对象为任意指定的一条 公交路线R1,目标空间对象为桥梁,并行查询条件为二者之间的空间拓扑关系为相交;
[0092] 然后获取查询空间的目标空间对象集合,即所有桥梁构成的集合;对参与并行空 间查询的空间数据集,即查询空间对象以及目标空间对象集合,所处的空间范围基于四叉 树模型进行网格划分,并依据网格划分规则,即四叉树模型对网格进行编号;具体的网格划 分和编号方式如下:
[0093] 1、将空间进行并行分层处理,分为0-N层,空间数据集所在的空间范围作为第0层, 不进行划分,第〇层如图3 (a)所示;
[0094] 2、对第一层的空间进行四等分划分,获取四个一级网格,然后按上下左右(即上 左、上右、下左、下右)的顺序分别给划分的一级网格区域编号A、B、C、D,将其作为第一层的 网格划分结果,如图3(b)所示;
[0095] 3、在第一层的四个一级网格区域上对每一个一级网格区域再继续做四等分划分, 一个一级网格划分得到四个二级网格;新划分网格区域的编号是在被切割网格区域(一级 网格区域)的编号后添加新的网格区域编号{A,B,C,D}其中之一获得,结果为AA,AB,AC,AD, BA,BB,BC,BD,CA,CB,CC,CD,DA,DB,DC,DD 16个区域,并作为第二层的划分结果,如图3(c) 所示;
[0096] 4、依据预设的网格划分次数在第二层的划分结果(二级网格)上继续进行四等分 和编号,直到达到预设的划分次数;所述网格划分次数可以依据空间对象的空间大小,或者 处理器的处理能力,或者并行分析处理的精度来设定。
[0097] 优选的,还可以对应所述空间构建坐标系,获取对应网格的行列号,即坐标,行号 对应坐标X,列号对应坐标y;该步骤可以在网格划分完毕后进行,也可以与网格划分过程同 步进行;具体过程可以包括:
[0098] 1、选取所述空间的一边角作为坐标原点,构建坐标系;优选的,可以选取空间左下 角作为笛卡尔坐标系的原点;同时也将网格的左下角位置作为该网格的坐标;
[0099] 2、选取所述网格的一边角对应所述坐标系的坐标作为所述网格的坐标;那么,一 级网格A、B、C、D四个区域对应的坐标为(1,0),(1,1),(0,0)和(0,1),二级网格六下的二级网 格AA、AB、AC和AD的坐标为(3,0),(3,1),(2,0)和(2,1);一级网格(:为坐标原点,坐标为(0, 0)〇
[0100] 可选的,对应网格的坐标只是为了标示网格在空间所处位置。因此,坐标系原点的 选取,以及选取网格哪一点的坐标作为网格的坐标都是可以依据需求灵活的设定的,比如, 还可以选取网格的中心点位置的坐标作为网格的坐标。
[0101] 进一步的,网格坐标的获取可以通过建立坐标系后,依据四叉树划分编码规则,计 算获取对应网格的坐标。具体的,能够直接依据公式:
[0104]其中,Row为行号,Col为列号,n为层号;rk是行判断函数,当将网格编号翻转后的 第k+1个字母(k从0开始)是A或B的时候,rk=l否则rk=0;ck是列判断函数,当将网格编号翻 转后的第k+1个字母是B或D的时候,c k=l否则ck = 0。
[0105]编码计算行列号运算实例:
[0106] -空间对象P的网格编号为B⑶;翻转后是DCB,经过上面的公式可以计算出它的行 列号为:
[0107] Row = 2° X 0+21 X 0+22 X 1 = 0+0+4 = 4
[0108] Col = 2° X 1+21 X 0+22 X 1 = 1+0+4 = 5 [0109] 可知,该空间对象的坐标为P(4,5)。
[0110]再然后,对查询空间对象以及目标空间对象集合内的各个空间对象都构建空间分 片索引,构建空间索引列表,将所有的空间分片索引添加到空间索引列表中,所述空间分片 索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最小外 包矩形MBR。
[0111] 具体的,以R为例,对R中每一个空间对象R1、R2和R3构建对应的空间分片索引;即 构建桥梁R1、桥梁R2、桥梁R3的空间分片索引。
[0112] 1、计算R1最小外包矩形MBR(R1)、R2最小外包矩形MBR(R2)以及R3最小外包矩形 MBR(R3);
[0113] 2、分别寻找更好能够完全覆盖所述MBR(R1)、MBR(R2)以及MBR(R3)的最低层级的 四叉树网格;如图3(c)所示,能够完全覆盖所述MBR(Rl)的网格刚好为处于第一层级的一级 网格A,MBR(R2)对应第二层级的二级网格CB;而MBR(R3)由于部分超出了网格CC,因此对应 的是第一层级的一级网格C;
[0114] 3、获取空间对象R1、R2和R3预设的指针0ID,即ID编号,所述ID编号指向数据库中 对应空间对象记录的具体数据;
[0115] 4、构建由能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象 的最小外包矩形MBR组成的空间分片索弓丨;如空间对象R1的空间分片索引项为<A,Rl_id, 1?以1?1)>,空间对象1?2和1?的索引项分别为〈08,1?2_1(1,冊1?(1?2)>和〈(:,1?_1(1,冊1?(1?)>。通 过空间对象所处四叉树格网的编号可以推算出该网格所在的层级号及行列号,进而可以算 出该网格在空间的范围,反之亦然。
[0116] 通过上述,已经对应每个空间对象都构建了空间分片索引,由于网格划分过程中, 每个空间对象都包含在一个对应的四叉树网格中。因此,便不存在边界对象处理问题,从而 明显减少并行分析处理的工作量,以及冗余、重叠副本而带来的额外存储空间。
[0117] 进一步的,利用四叉树编码中隐含的空间拓扑关系,能够依据空间拓扑关系判断 转换成字符串编码匹配运算,对目标空间对象进行预筛选,直接过来掉所有与查询空间对 象不相交的空间对象,从而减少依据空间对象生成的任务候选集,进而显著提高空间并行 分析处理的效率。具体的,可以包括:
[0118] 1、依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与 查询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成第一目标空间对象 集合。原理具体分析如下:根据四叉树格网编码规则,假设空间对象A的最小网格的编号为 A1A2. . .Ai,空间对象B的最小网格的编号为B1B2. . .Bj,其中i,j分别表示空间对象A,B所在 最低层次格网的层次编号。如果A1A2. . .Ai是B1B2. . .Bj的前缀,说明空间对象A所在格网包 含于B所在的网格中,反之亦然。
[0119] 具体的,上述可通过编码的字符串匹配运算确定二者的编号关系。
[0120] 因此,可以通过四叉树网格编码规则,即空间分片索引;对R中的任意对象Ri,通过 比较空间分片索引中的所述最小网格的编号,便可直接过滤掉所有与S不相交的空间对象, 即直接过滤掉远离指定公交路线S1的桥梁。R中剩余的空间对象所构成的第一目标空间对 象集合为经过第一次预筛选,依据最小网格是否相交而获取的,能够删除一大部分与查询 空间对象S无关的空间对象。
[0121]在此,为了帮助更好的理解基于四叉树的空间拓扑关系分析过程,请参阅图3(c), 下面分别以相交(Intersects )、包含(Contains)和相离(Disjoints)为例进行说明。
[0122] 1)相交(Intersects)判断方法
[0123] 如图3(c),来自S的空间对象S1的索引编号为C,在R的空间分片索引中查找C开头 的空间分片索引包含的空间对象,得到{R2,R3}。由于S1与R2,R3处在同一个空间分片中,可 知S1与来自R的空间对象R2、R3(编号C、CB)存在相交的可能,而与其他的来自R的空间对象 不存在相交的可能。因此,在构建与S1相交的并行任务候选集时,可以过滤掉除R2、R3所在 分片之外的其他所有分片组合。
[0124] 2)包含(Contains)判断方法
[0125] 包含是相交的子集,从相交判断中可得可能包含在S1(C)中的来自R的空间对象有 R2(C)和R3(CB),其过滤方法与相交判断方法一样。
[0126] 3)相离(Disjoints)判断方法
[0127] 相离是相交的补集,可以首先从相交判断中得到的候选集进行精确的过滤,得到 精确的相交的结果集,取其补集即可。
[0128] 该方法在减少索引空间的同时,可对并行任务候选集进行预过滤,从而提高并行 空间查询效率。
[0129] 本发明的实施例二为
[0130] 本实施例在实施例一的基础上进一步的延伸,相同之处不再复述,区别之处在于 对第一目标空间对象集合进行二次筛选,依据最小外包矩形MBR获取可能存在相交的目标 空间对象。具体可以包括:
[0131]依据空间分片索引中的所述最小外包矩形MBR,分析对第一目标空间对象集合中 各个空间对象队形的所述MBR是否与所述查询空间对象存在相交关系,具体可以通过平面 扫描算法进行分析,若否,则去除该目标空间对象,由剩下的目标空间对象构成第二目标空 间对象集合。
[0132] 通过实施例二,能够直接依据空间对象在空间中的占用面积,进一步筛除第一目 标对象集合中,与查询空间对象一定不存在相交关系的目标对象;进一步提高候选目标空 间对象的精确度。即,能够通过比对指定公交路线R1的最小外包矩形MBR与第一目标对象集 合中各个目标对象的MBR是否存在相交关系,再次剔除绝大部分与指定公交线路的桥梁;虽 然对于一些少数的特殊情况,如二者的MBR存在相交,但实际情况只是二者间隔距离很近, 并非真实相交的情况不能完全过滤掉,但经过二次筛选后得到的第二目标空间对象集合, 已经剔除了绝大部分无关对象空间,据此构建的任务候选集数量相较现有技术成倍缩减, 能够显著降低处理器的工作量。
[0133] 实施例三
[0134] 本实施例在实施例一和实施例二的基础上进一步的延伸,相同之处不再复述,区 别之处在于增加了基于空间对象的空间分片索引的负载均衡分配方案:
[0135] 1、依据所述查询空间对象与所述第二目标空间对象集合中各个空间对象的对应 关系,构建两个以上的任务候选集;如S1-R2的任务候选集;S1-R3的任务候选集;
[0136] 2、计算各个任务候选集中查询空间对象与目标空间对象的连接工作量,即S1到R1 的连接工作量Wt;
[0137] 3、将所述任务候选集放入异步任务队列中,并依据连接工作量对所述任务候选集 进行排序;对任务队列Task以Wt为关键字进行排序,设Wp=Wsum/N,
[0138] 其中Wsum为总工作量,N为并行工作线程数,Wp为平均工作量;
[0139] 4、依据负载均衡策略将所述异步任务队列中的任务候选集均分给不同处理器,或 者依序分配任务候选集给不同处理器进行并行连接处理。
[0140] 优选的,可以依据所配置的处理器的性能,如双核处理器、4核处理器或者6核处理 器来均分所要处理的任务;具体的,可以根据Wp对任务队列进行分割,然后分配给各工作线 程,进行本地连接。平均分配等量工作量的任务进行处理,实现多核并行处理空间任务,即 静态负载均衡法;
[0141]优选的,还可以由负载均衡控制器根据工作量大小,从工作量大的任务对开始依 次分配给各工作线程,当某个工作线程运算完毕,从剩余的任务队列中取工作量最大的任 务进行运算,直到队列为空,即动态负载均衡法。
[0142] 通过上述,能够实现基于空间分片索引的并行分析处理,不仅克服了边界对象处 理问题,而且对任务候选集进行了两次筛选,减少并行处理工作量;同时,还实现了均衡负 载,最终中实现高效地并行处理空间任务。
[0143] 实施例四
[0144] 请参阅图5,本实施例为对应实施例一至三的并行空间查询方法而提供的一种基 于网格划分的并行空间查询系统,具体包括:
[0145] 第一获取模块1,用于确定查询空间对象以及目标空间对象;
[0146] 第二获取模块2,用于获取目标空间对象集合;
[0147] 网格划分模块3,用于依据四叉树对所述查询空间对象集合以及第二目标空间对 象集合所处的空间范围进行网格划分;
[0148] 网格编号模块4,用于依据四叉树对网格进行编号;所述网格划分模块和网格编号 模块可以集成由一个功能模块实现,该模块具体包括:
[0149] -级划分编号单元11,用于依据四叉树模型对空间对象所在的空间进行四等分, 获取四个一级网格,并分别对一级网格进行编号;
[0150] 二级划分编号单元12,用于对一级网格进行四等分,获取四个二级网格,并依据对 应的一级网格的编号对二级网格进行编号;
[0151]划分编号单元13,用于按照预设的网格划分次数对所述二级网格进行相应次数的 划分和编号。
[0152] 进一步的,系统还包括:
[0153] 第一构建模块5,用于对所述空间内每一个空间对象构建空间分片索引,所述空间 分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最 小外包矩形MBR;
[0154] 第三获取模块6,用于依据空间分片索引中的所述最小网格的编号,从目标空间对 象集合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成 第一目标空间对象集合;
[0155] 第四获取模块7,用于依据空间分片索引中的所述最小外包矩形MBR,从第一目标 空间对象集合中获取与所述查询空间对象可能存在相交关系的目标空间对象,构成第二目 标空间对象集合。
[0156] 第二构建模块8,用于依据所述查询空间对象与所述第二目标空间集合中各个空 间对象的对应关系,构建两个以上的任务候选集;
[0157] 统计模块9,用于统计各个任务候选集的工作量;
[0158] 分配模块10,用于依据工作量分配相应的任务候选集至处理器。
[0159] 进一步的,还包括第三构建模块,用于选取所述空间范围的一边角作为坐标原点, 构建坐标系;
[0160] 计算模块,用于依据四叉树,计算各个网格的坐标。
[0161]所述第三构建模块具体包括:
[0162] 第一选取单元,用于选取所述空间的一边角作为坐标原点,构建坐标系;
[0163] 第二选取单元,用于选取所述网格的一边角对应所述坐标系的坐标作为所述网格 的坐标,依据四叉树网格编码规则,计算获取所述坐标。
[0164] 综上所述,本发明提供的一种基于网格划分的并行空间查询方法及其系统,能够 有效解决空间划分时产生的边界对象处理过程以及任务候选集无过滤而导致的需要额外 增加数据处理量和占用存储空间,从而影响并行数据分析效率的问题。通过依据四叉树对 空间进行网格划分和编码;基于能够包含空间对象最小外包矩形的网格,构建以网格编号 为主键的空间分片索引,使每个空间对象都包含在一个对应的四叉树网格中,从而消除边 界对象处理问题;依据空间分片索引对明显不符合查询条件的空间对象进行至少两次的预 筛选,大大减少依据目标空间对象获取的任务候选集的处理量,不仅显著提高并行分析处 理效率,同时缩减数据存储空间;进一步的,依据任务候选集对应的工作量进行并行任务分 配,实现了负载均衡,从而提高空间任务查询效率。
[0165] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发 明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括 在本发明的专利保护范围内。
【主权项】
1. 一种基于网格划分的并行空间查询方法,其特征在于,包括: 获取查询空间对象以及目标空间对象;获取目标空间对象集合; 依据四叉树对所述查询空间对象以及目标空间对象集合所处的空间范围进行网格划 分;依据四叉树对网格进行编号; 对查询空间对象以及目标空间对象集合内的各个空间对象构建空间分片索引,所述空 间分片索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的 最小外包矩形MBR; 依据空间分片索引中的所述最小网格的编号,从目标空间对象集合中,获取与查询空 间对象对应的所述最小网格存在相交关系的目标空间对象,构成第一目标空间对象集合。2. 如权利要求1所述的一种基于网格划分的并行空间查询方法,其特征在于,所述构成 第一目标空间对象集合,之后,进一步包括: 依据空间分片索引中的所述最小外包矩形MBR,从第一目标空间对象集合中获取与所 述查询空间对象可能存在相交关系的目标空间对象,构成第二目标空间对象集合。3. 如权利要求2所述的一种基于网格划分的并行空间查询方法,其特征在于,所述构成 第二目标空间对象集合,之后,进一步包括: 依据所述查询空间对象与所述第二目标空间对象集合中各个空间对象的对应关系,构 建两个以上的任务候选集; 统计各个任务候选集的工作量; 依据工作量分配相应的任务候选集至处理器。4. 如权利要求3所述的一种基于网格划分的并行空间查询方法,其特征在于,所述统计 各个任务候选集的工作量;依据工作量分配相应的任务候选集至处理器,具体为: 计算各个任务候选集中查询空间对象与目标空间对象的连接工作量; 将所述任务候选集放入异步任务队列中,并依据连接工作量对所述任务候选集进行排 序; 依据负载均衡策略将所述异步任务队列中的任务候选集均分给不同处理器,或者依序 分配任务候选集给不同处理器进行并行连接处理。5. 如权利要求1所述的一种基于网格划分的并行空间查询方法,其特征在于,所述依据 四叉树对网格进行编号之后,进一步包括: 选取所述空间范围的一边角作为坐标原点,构建坐标系; 依据四叉树,计算各个网格的坐标。6. 如权利要求1所述的一种基于网格划分的并行空间查询方法,其特征在于,所述依据 四叉树对所述查询空间对象集合以及第二目标空间对象集合所处的空间范围进行网格划 分;依据四叉树对网格进行编号,具体为: 依据四叉树对所述查询空间对象集合以及第二目标空间对象集合所处的空间范围进 行四等分,获取四个一级网格,并分别对一级网格进行编号; 对一级网格进行四等分,获取四个二级网格,并依据对应的一级网格的编号对二级网 格进行编号; 依据预设的网格划分次数继续对所述二级网格进行相应次数的划分并编号。7. -种基于网格划分的并行空间查询系统,其特征在于,包括: 第一获取模块,用于确定查询空间对象以及目标空间对象; 第二获取模块,用于获取目标空间对象集合; 网格划分模块,用于依据四叉树对所述查询空间对象集合以及第二目标空间对象集合 所处的空间范围进行网格划分; 网格编号模块,用于依据四叉树对网格进行编号; 第一构建模块,用于对所述空间内每一个空间对象构建空间分片索引,所述空间分片 索引包括能完全覆盖空间对象的最小网格的编号、空间对象的编号以及空间对象的最小外 包矩形MBR; 第三获取模块,用于依据空间分片索引中的所述最小网格的编号,从目标空间对象集 合中,获取与查询空间对象对应的所述最小网格存在相交关系的目标空间对象,构成第一 目标空间对象集合。8. 如权利要求7所述的一种基于网格划分的并行空间查询系统,其特征在于,还包括: 第四获取模块,用于依据空间分片索引中的所述最小外包矩形MBR,从第一目标空间对 象集合中获取与所述查询空间对象可能存在相交关系的目标空间对象,构成第二目标空间 对象集合。9. 如权利要求7所述的一种基于网格划分的并行空间查询系统,其特征在于,还包括: 第二构建模块,用于依据所述查询空间对象与所述第二目标空间集合中各个空间对象 的对应关系,构建两个以上的任务候选集; 统计模块,用于统计各个任务候选集的工作量; 分配模块,用于依据工作量分配相应的任务候选集至处理器。10. 如权利要求7所述的一种基于网格划分的并行空间查询系统,其特征在于,所述网 格划分模块和所述网格编号模块具体包括: 一级划分编号单元,用于依据四叉树对空间对象所在的空间进行四等分,获取四个一 级网格,并分别对一级网格进行编号; 二级划分编号单元,用于对一级网格进行四等分,获取四个二级网格,并依据对应的一 级网格的编号对二级网格进行编号; 划分编号单元,用于依据预设的网格划分次数继续对所述二级网格进行相应次数的划 分并编号。
【文档编号】G06F17/30GK106055563SQ201610333152
【公开日】2016年10月26日
【申请日】2016年5月19日
【发明人】范协裕, 邱龙霞, 张黎明
【申请人】福建农林大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1