首页> 中国专利> 一种栅格数据索引及查询方法

一种栅格数据索引及查询方法

摘要

本发明涉及一种索引及查询方法,属于地理信息数据处理领域,具体涉及一种栅格数据索引及查询方法。包括:将瓦片数据划分为若干个大小相同的单元格组,所述单元格组内的瓦片数据在位置上相邻,利用状态整数表示单元格组内瓦片数据的状态,其中,所述状态整数属于计算机整数,其每一位对应单元格组内的一个瓦片数据的状态。该栅格数据索引及查询方法存储密度高且存储容量稳定,在瓦片数据连续存在或者非连续存在的情况下都能够存储的数据结构一致,且计算量完全恒定;在实现具有空间相关性的检索时有更高的性能;并且可以充分利用计算机的数据结构,计算量低,效率更高。

著录项

  • 公开/公告号CN105354291A

    专利类型发明专利

  • 公开/公告日2016-02-24

    原文格式PDF

  • 申请/专利权人 武大吉奥信息技术有限公司;

    申请/专利号CN201510733308.1

  • 发明设计人 刘奕夫;贺楷锴;

    申请日2015-11-02

  • 分类号G06F17/30(20060101);

  • 代理机构11340 北京天奇智新知识产权代理有限公司;

  • 代理人蔡飞燕

  • 地址 430223 湖北省武汉市东湖开发区庙山小区江夏大道武大科技园

  • 入库时间 2023-12-18 14:21:19

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-08-23

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F17/30 专利号:ZL2015107333081 变更事项:专利权人 变更前:武大吉奥信息技术有限公司 变更后:吉奥时空信息技术股份有限公司 变更事项:地址 变更前:430223 湖北省武汉市东湖开发区庙山小区江夏大道武大科技园 变更后:430000 湖北省武汉市东湖开发区庙山小区江夏大道武大科技园

    专利权人的姓名或者名称、地址的变更

  • 2018-06-19

    授权

    授权

  • 2016-03-23

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20151102

    实质审查的生效

  • 2016-02-24

    公开

    公开

说明书

技术领域

本发明涉及一种索引及查询方法,属于地理信息数据处理领域,具体 涉及一种栅格数据索引及查询方法。

背景技术

随着互联网技术和GIS技术的高速发展,基于互联网技术的瓦片地图 得到了广泛的使用。

瓦片本身是一种非常简单的数据结构,同一级瓦片之间保持平铺,因 此利用简单的线性计算公式就可以轻易做各种计算,瓦片不同级别之间也 是一种线性的比率关系。瓦片地图这样非常易于计算的特性使得使用互联 网上提供的TMS(TiledMapService,瓦片地图服务)基本上不需要使用索 引,或者可以说瓦片的各种计算公式就是索引。

因此在常规使用情况下瓦片数据并不需要特别的索引来提升效率。但 在一些特殊的场合,瓦片数据仍然需要索引来提升效率。考虑到数据生产 成本,数据存储成本等因素,瓦片数据并不一定都存储为矩形的范围。如 图1所示,为了降低数据生产或者存储的成本或者考虑使用的业务需求, 瓦片数据可能会以行政区划边界作为瓦片边界,考虑到行政区划的不规则 性,因此瓦片的范围不能简单的以矩形范围定义。

对于边界不规则的瓦片数据可以使用适合对栅格数据进行压缩存储的 行程索引技术。如图1所示的湖北省境界瓦片通过这样的行程索引即可表 达,如图2所示。

瓦片数据如果按照行列以连续的方式存在,这样的瓦片数据非常适用 行程索引的方式存储其边界。如图3所示。边界不规则的瓦片数据,如果 边界内部的瓦片以连续的方式存在,那么使用行程索引数据存储结果非常 简单,数据存储的密度可以很高。例如某行的瓦片为1000个连续存储,那 么通过单个行程索引段[0-1000]即可表达,实际只花费了2个整数(64bit) 的存储空间。

然而并非所有的瓦片数据都能够按照行列连续存在,一些特殊的瓦片 数据,如点、文字等数据比较稀疏,那么形成的瓦片数据将会是不连续的, 类似镂空的效果,这样类型的瓦片数据如图4所示。当瓦片数据不是连续 方式存在时,采用行程索引存储瓦片数据的范围会造成行程索引数据复杂 度增加,相应的检索效率实际上也会降低。过于稀疏的瓦片数据会让行程 索引的数据存储密度大大降低。如一个行程索引段[3-3],实际上只记录了 一个瓦片的存在,然而却花费了两个整数(64bit)的存储空间。

对于连续存在的瓦片数据采用行程索引可以非常高效,而非连续存在 的瓦片数据采用行程索引可能会效率降低,因此行程索引并不是一种在性 能上足够稳定的瓦片索引方法,本发明采用一种比行程索引更为直接、简 单的栅格索引方法来存储瓦片的边界,不论瓦片是否连续存在,采用本发 明的索引方法可以保证计算量的恒定,数据存储的密度也能保持恒定。

发明内容

本发明主要是解决现有技术所存在的数据存储密度较低,计算量变化 较大的技术问题,提供了一种栅格数据索引及查询方法。该栅格数据索引 及查询方法存储密度高且存储容量稳定,在瓦片数据连续存在或者非连续 存在的情况下都能够存储的数据结构一致,且计算量完全恒定;在实现具 有空间相关性的检索时有更高的性能;并且可以充分利用计算机的数据结 构,计算量低,效率更高。

本发明的上述技术问题主要是通过下述技术方案得以解决的:

一种栅格数据索引及查询方法,包括:将瓦片数据划分为若干个大小 相同的单元格组,所述单元格组内的瓦片数据在位置上相邻,利用状态整 数表示单元格组内瓦片数据的状态,其中,所述状态整数属于计算机整数, 其每一位对应单元格组内的一个瓦片数据的状态。

优化的,上述的一种栅格数据索引及查询方法,所述单元格组内所包 含的瓦片数据的行数和列数相等。

优化的,上述的一种栅格数据索引及查询方法,所述单元格组内包含 的瓦片数据的数量是4行×4列或8行×8列。

优化的,上述的一种栅格数据索引及查询方法,包括以下步骤:

步骤1,获取瓦片数据所属的行列位置,计算该瓦片数据所属单元格组 的行列位置;

步骤2,根据单元格组的行列位置获取该单元格组所对应的状态整数;

步骤3,获取瓦片数据在状态整数中所对应的位偏移,通过整数位运算 设置瓦片状态或者获取状态。

优化的,上述的一种栅格数据索引及查询方法,所述步骤1中,通过 以下公式计算瓦片数据所属单元格组的行列位置:

GroupRow=Row÷RowSize;

GroupCol=Col÷ColSize;

式中,GroupRow,GroupCol分别为单元格组所属的行和列,Row,Col 分别为瓦片数据在整个瓦片数据中所属的行和列,RowSize,ColSize分别 为单元格组内包含的瓦片数据的行数和列数;

并且,所述步骤2中的状态整数是一个位数为RowSize×ColSize的整 数。

优化的,上述的一种栅格数据索引及查询方法,所述步骤3中通过以 下公式计算瓦片数据在状态整数中所对应的位偏移:

I=R×ColSize+C;

式中,R,C分别为瓦片数据在其所属的单元格组内的相对行列位置, 并且,R,C基于以下公式获得:

R=RowmodRowSize,C=ColmodeColSize;

式中,mod为计算整数取余数运算。

因此,本发明具有如下优点:1.存储密度高且存储容量稳定的栅格索 引;2.在瓦片数据连续存在或者非连续存在的情况下都能够存储的数据结 构一致,且计算量完全恒定;3.采用相邻瓦片构成单元格组的方式符合瓦 片的空间相关性,因此在实现具有空间相关性的检索时可以有更高的性能; 4.利用4×4或8×8个相邻瓦片作为一个单元格组正好符合计算整数中的 16bit和64bit整数,这样可以充分利用计算机的数据结构因此能达到更高 的效率。

附图说明

附图1是边界不规则的瓦片数据示意图。

附图2是附图1中的湖北省境界瓦片行程索引结果示意图。

附图3是行列以连续方式存在的瓦片数据示意图。

附图4是行列以非连续方式存在的瓦片数据示意图。

附图5是数字图像中单色位图示意图。

附图6是用计算机无符号整数存储大小为4X4的单元格组的结构示意 图。

附图7是用计算机无符号整数存储大小为8X8的单元格组的结构示意 图。

附图8是将瓦片数据划分为大小为4X4的单元格组后的结构示意图。

附图9是将瓦片数据划分为大小为8X8的单元格组后的结构示意图。

具体实施方式

下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的 说明。

实施例:

数字图像(栅格图像)是一种行列格网形式记录图像信息的数据格式, 数字图像通常以一个像素为最小单元格,数字图像的格网记录形式和瓦片 数据非常的类似,一个瓦片类似数字图像中的一个像素。

数字图像最小可以使用一个bit记录一个像素的信息形成黑白两色的 图像数据。对于瓦片数据存在与否这样的数据可以采用数字图像单色图像 一样用一个bit来记录。

数字图像中单色位图以单个字节连续存储一行中的多个像素如,图5 所示,而本发明中单元格(瓦片)状态的存储采用连续4X4=16或者8X8=64 范围内的单元格用一个标准计算机无符号整数(unsignedshort,16bit或 unsignedlong,64bit)进行存储。如图6-7所示。

对于任何4×4或8×8单元格(瓦片)可以认为是一个单元格组, 因此对于任意行(Rows)和任意列(Cols)构成的瓦片数据可以理解为是 由(Row÷4)行,(Cols÷4)列或者(Row÷8)行,(Cols÷8)列的单元 格组构成。如图8-9所示。每个四方形单元格组也有其行、列编号。

对于任何4×4或8×8单元格构成的单元格组相当于对于瓦片存储状 态的二级索引。对于任意的瓦片单元格(Row,Col)要记录或者读取其状 态只需要进行以下运算:

步骤1,通过行列(Row,Col)计算单元格组的行列(GroupRow, GroupCol),计算公式为GroupRow=Row÷GroupSize,GroupCol=Col÷ GroupSize。其中,GroupSize为单元格组的大小4或者8,除法计算采用 计算机整数除法。

步骤2,通过第步骤1获取的单元格组的行列获取存储状态的状态整 数(16bit或者64bit)。

步骤3,获取瓦片数据在状态整数中所对应的位偏移,通过整数位运算 设置瓦片状态或者获取状态。

其中,步骤3中首先通过行列(Row,Col)计算瓦片数据在其所属的 单元格组内的相对行列位置(R,C),计算公式为R=RowmodGroupSize, C=ColmodeGroupSize,其中,mod为计算整数取余数算法。

然后通过获取的相对行列位置(R,C)计算瓦片数据在单元格组内的位 偏移I=R×GroupSize+C,最后再通过整数位运算设置瓦片状态或 者获取状态。

通过上述描述可知,本实施例具有以下优点:

(1)本实施例本质上是采用1bit存储一个瓦片的状态,其数据存储 占用的空间和要存储的瓦片数量成正比,1千万个瓦片的状态理论上只需要 1.19MB存储空间,因此本实施例是一种存储密度高且存储容量稳定的栅格 索引。

(2)本实施例所采用的方案在瓦片数据连续存在或者非连续存在的情 况下都能够存储的数据结构一致,且计算量完全恒定。因此可以用来完全 替换或者部分替换行程索引方案。

(3)本实施例采用相邻瓦片构成单元格组的方式符合瓦片的空间相关 性,因此再实现具有空间相关性的检索时可以有更高的性能。

(4)本实施例采用4×4或8×8个相邻瓦片作为一个单元格组正好符 号计算整数中的16bit和64bit整数,这样可以充分利用计算机的数据结 构因此能达到更高的效率。

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号