CN105354291A - 一种栅格数据索引及查询方法 - Google Patents
一种栅格数据索引及查询方法 Download PDFInfo
- Publication number
- CN105354291A CN105354291A CN201510733308.1A CN201510733308A CN105354291A CN 105354291 A CN105354291 A CN 105354291A CN 201510733308 A CN201510733308 A CN 201510733308A CN 105354291 A CN105354291 A CN 105354291A
- Authority
- CN
- China
- Prior art keywords
- tile
- data
- tile data
- integer
- cell group
- 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
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/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- 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/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种索引及查询方法,属于地理信息数据处理领域,具体涉及一种栅格数据索引及查询方法。包括:将瓦片数据划分为若干个大小相同的单元格组,所述单元格组内的瓦片数据在位置上相邻,利用状态整数表示单元格组内瓦片数据的状态,其中,所述状态整数属于计算机整数,其每一位对应单元格组内的一个瓦片数据的状态。该栅格数据索引及查询方法存储密度高且存储容量稳定,在瓦片数据连续存在或者非连续存在的情况下都能够存储的数据结构一致,且计算量完全恒定;在实现具有空间相关性的检索时有更高的性能;并且可以充分利用计算机的数据结构,计算量低,效率更高。
Description
技术领域
本发明涉及一种索引及查询方法,属于地理信息数据处理领域,具体涉及一种栅格数据索引及查询方法。
背景技术
随着互联网技术和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整数,这样可以充分利用计算机的数据结构因此能达到更高的效率。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
Claims (6)
1.一种栅格数据索引及查询方法,其特征在于,包括:将瓦片数据划分为若干个大小相同的单元格组,所述单元格组内的瓦片数据在位置上相邻,利用状态整数表示单元格组内瓦片数据的状态,其中,所述状态整数属于计算机整数,其每一位对应单元格组内的一个瓦片数据的状态。
2.根据权利要求1所述的一种栅格数据索引及查询方法,其特征在于,所述单元格组内所包含的瓦片数据的行数和列数相等。
3.根据权利要求2所述的一种栅格数据索引及查询方法,其特征在于,所述单元格组内包含的瓦片数据的数量是4行×4列或8行×8列。
4.根据权利要求1所述的一种栅格数据索引及查询方法,其特征在于,包括以下步骤:
步骤1,获取瓦片数据所属的行列位置,计算该瓦片数据所属单元格组的行列位置;
步骤2,根据单元格组的行列位置获取该单元格组所对应的状态整数;
步骤3,获取瓦片数据在状态整数中所对应的位偏移,通过整数位运算设置瓦片状态或者获取状态。
5.根据权利要求4所述的一种栅格数据索引及查询方法,其特征在于,所述步骤1中,通过以下公式计算瓦片数据所属单元格组的行列位置:
GroupRow=Row÷RowSize;
GroupCol=Col÷ColSize;
式中,GroupRow,GroupCol分别为单元格组所属的行和列,Row,Col分别为瓦片数据在整个瓦片数据中所属的行和列,RowSize,ColSize分别为单元格组内包含的瓦片数据的行数和列数;
并且,所述步骤2中的状态整数是一个位数为RowSize×ColSize的整数。
6.根据权利要求5所述的一种栅格数据索引及查询方法,其特征在于,所述步骤3中通过以下公式计算瓦片数据在状态整数中所对应的位偏移:
I=R×ColSize+C;
式中,R,C分别为瓦片数据在其所属的单元格组内的相对行列位置,并且,R,C基于以下公式获得:
R=RowmodRowSize,C=ColmodeColSize;
式中,mod为计算整数取余数运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510733308.1A CN105354291B (zh) | 2015-11-02 | 2015-11-02 | 一种栅格数据索引及查询方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510733308.1A CN105354291B (zh) | 2015-11-02 | 2015-11-02 | 一种栅格数据索引及查询方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105354291A true CN105354291A (zh) | 2016-02-24 |
CN105354291B CN105354291B (zh) | 2018-06-19 |
Family
ID=55330263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510733308.1A Active CN105354291B (zh) | 2015-11-02 | 2015-11-02 | 一种栅格数据索引及查询方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105354291B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106991143A (zh) * | 2017-03-22 | 2017-07-28 | 苏州中科图新网络科技有限公司 | 多层级图像文件、生成方法及装置、读取方法及装置 |
CN107784001A (zh) * | 2016-08-26 | 2018-03-09 | 北京计算机技术及应用研究所 | 基于cuda的并行空间查询方法 |
CN109492060A (zh) * | 2018-09-28 | 2019-03-19 | 湖南国科图创信息科技有限公司 | 一种基于MBTiles的地图瓦片存储方法 |
CN109992636A (zh) * | 2019-03-22 | 2019-07-09 | 中国人民解放军战略支援部队信息工程大学 | 时空编码方法、时空索引及查询方法及装置 |
CN113834494A (zh) * | 2021-10-15 | 2021-12-24 | 珠海一微半导体股份有限公司 | 一种基于模板覆盖的栅格地图处理方法及芯片 |
WO2024087537A1 (zh) * | 2022-10-24 | 2024-05-02 | 济南新语软件科技有限公司 | 一种基于可动态定义的复杂数据包操作方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6879980B1 (en) * | 2001-06-29 | 2005-04-12 | Oracle International Corporation | Nearest neighbor query processing in a linear quadtree spatial index |
CN103279487A (zh) * | 2013-04-25 | 2013-09-04 | 中国科学院遥感与数字地球研究所 | 一种地图瓦片缓存的组织和管理方法 |
-
2015
- 2015-11-02 CN CN201510733308.1A patent/CN105354291B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6879980B1 (en) * | 2001-06-29 | 2005-04-12 | Oracle International Corporation | Nearest neighbor query processing in a linear quadtree spatial index |
CN103279487A (zh) * | 2013-04-25 | 2013-09-04 | 中国科学院遥感与数字地球研究所 | 一种地图瓦片缓存的组织和管理方法 |
Non-Patent Citations (1)
Title |
---|
刘爱龙: "嵌入式环境下全球尺度瓦片地图", 《武汉大学学报·信息科学版》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107784001A (zh) * | 2016-08-26 | 2018-03-09 | 北京计算机技术及应用研究所 | 基于cuda的并行空间查询方法 |
CN106991143A (zh) * | 2017-03-22 | 2017-07-28 | 苏州中科图新网络科技有限公司 | 多层级图像文件、生成方法及装置、读取方法及装置 |
CN106991143B (zh) * | 2017-03-22 | 2019-07-19 | 苏州中科图新网络科技有限公司 | 多层级图像文件、生成方法及装置、读取方法及装置 |
CN109492060A (zh) * | 2018-09-28 | 2019-03-19 | 湖南国科图创信息科技有限公司 | 一种基于MBTiles的地图瓦片存储方法 |
CN109992636A (zh) * | 2019-03-22 | 2019-07-09 | 中国人民解放军战略支援部队信息工程大学 | 时空编码方法、时空索引及查询方法及装置 |
CN109992636B (zh) * | 2019-03-22 | 2021-06-08 | 中国人民解放军战略支援部队信息工程大学 | 时空编码方法、时空索引及查询方法及装置 |
CN113834494A (zh) * | 2021-10-15 | 2021-12-24 | 珠海一微半导体股份有限公司 | 一种基于模板覆盖的栅格地图处理方法及芯片 |
WO2024087537A1 (zh) * | 2022-10-24 | 2024-05-02 | 济南新语软件科技有限公司 | 一种基于可动态定义的复杂数据包操作方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105354291B (zh) | 2018-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105354291A (zh) | 一种栅格数据索引及查询方法 | |
CN101059949B (zh) | 海量图像数据的压缩、存储和显示方法 | |
CN103336772B (zh) | 一种单景影像瓦片数据组织方法 | |
US9877031B2 (en) | System and method for multi-resolution raster data processing | |
CN113626550B (zh) | 基于三元组双向索引与优化缓存的影像瓦片地图服务方法 | |
CN109979008B (zh) | 一种基于属性的点云条带划分方法 | |
CN110781325A (zh) | 一种高分辨率遥感数据格网精细化管理模型及其构建方法 | |
CN104217023B (zh) | 一种利用打包技术解决地图瓦片存储的方法 | |
CN102411616A (zh) | 一种数据存储方法和系统及数据管理方法 | |
CN103034677B (zh) | 多时相瓦片数据集组织和游程编码索引方法 | |
CN101833780A (zh) | 一种基于游程表达和运算的地图成图方法 | |
CN106991143A (zh) | 多层级图像文件、生成方法及装置、读取方法及装置 | |
CN103927424A (zh) | 利用体网格简化建筑三维模型结构的方法 | |
CN115687675A (zh) | 一种机载矢量地图数据处理方法 | |
CN103593447B (zh) | 用于数据库表的数据处理方法和装置 | |
CN101957839A (zh) | 一种地图文件格式 | |
CN102654830B (zh) | 利用纹理排料方式优化显存空间的方法 | |
CN101415119B (zh) | 用以压缩图像数据的装置及方法 | |
CN106777107A (zh) | 一种数字标本瓦片数据存储的方法 | |
CN102508853A (zh) | 一种填充栅格数据的方法及系统 | |
CN110765298B (zh) | 矢量数据几何属性解耦的瓦片编码方法 | |
CN103093413A (zh) | 一种遥感影像数据写入及读取的方法和装置 | |
CN102129664B (zh) | 一种rgb空间图像区域像素信息压缩存储和还原方法 | |
CN116932795A (zh) | 一种全数字切片图像储存方法、存储介质、装置及系统 | |
CN108510441B (zh) | 一种基于交错网格的影像多分辨率显示方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 430000 Wuda science and Technology Park, Jiangxia Avenue, Miaoshan District, Donghu Development Zone, Wuhan City, Hubei Province Patentee after: Geospace Information Technology Co., Ltd. Address before: 430223 Wuda science and Technology Park, Jiangxia Avenue, Miaoshan community, Donghu Development Zone, Wuhan City, Hubei Province Patentee before: WUDA GEOINFORMATICS Co.,Ltd. |