基于分布式数据库的海量超大影像存取方法
【专利摘要】本发明提供一种基于分布式数据库的海量超大影像存取方法,包括:步骤S1,增加一种新的图片格式,方便原始影像按照这种新图片格式进行存取;步骤S2,扩展GDAL库,新增存取方法,使得GDAL库能够读写在分布式数据库中按新图片格式存储的影像。本发明1)提供了通过GDAL库读取存储在分布式数据库HBase中的影像图片的解决方案。2)支持可扩展存储空间,降低了存储成本。传统方案是存放在本地硬盘或者EMC磁盘阵列,价格昂贵且存储空间有限。本发明运行于廉价的商用机器集群上,可方便地扩展存储容量。
【专利说明】
基于分布式数据库的海量超大影像存取方法
技术领域
[0001]本发明涉及超大影像数据的存取方法,尤其是一种基于分布式数据库的海量超大影像存取方法。
【背景技术】
[0002]遥感、航测等直观反映地物地貌的影像数据(比如MG,JPG,TIFF等文件格式),包括数字航空照片、卫星影像、数字图片等等,统称为栅格数据。一张影像图可能超级大,比如30多GB—张,且数量非常多,一天最多可能有ITB的影像数据量。栅格数据可以用作地理地图和地形图,用来显示真实的对象。因此,实现快速读写栅格数据有着重大意义。
[0003]目前,已经有很多第三方的栅格数据管理模块,例如GDAL,(⑶AL全称GeospatialData Abstract1n Library,为OSGeo基金会的开源项目,是一个用于图像处理的库。)尽管这些栅格数据管理模块独立性强、功能全面,而且能够很好地封装栅格数据并能够互相转换格式,但是,大多数情况下它被用来处理计算机硬盘上的文件格式数据,其主要缺点为读写速度慢。
【发明内容】
[0004]本发明的目的在于解决现有技术所存在的存储量受限、存储成本较大、读写缓慢等技术问题,提出了一种基于分布式数据库的海量超大影像存取方法。本发明提出了新的方法扩展GDAL,使GDAL具有读取存储在分布式数据库中的海量超大影像图的能力,以及支持向分布式数据库集群中写入海量超大影像图。本发明采用的技术方案是:
一种基于分布式数据库的海量超大影像存取方法,包括:
步骤SI,增加一种新的图片格式,方便原始影像按照这种新图片格式进行存取;
步骤S2,扩展GDAL库,新增存取方法,使得GDAL库能够读写在分布式数据库中按新图片格式存储的影像。
[0005]进一步地,步骤SI中,增加新图片格式具体包括:
对原始影像计算切片,切片的大小基于计算机屏幕的查看窗口的大小,然后将原始影像按照切片大小进行切割,切成多个切片;
新图片格式包括元信息和切片索引文件,元信息和切片索引文件分开保存;元信息包括各切片尺寸和原始影像图片尺寸;切片索引文件中将切片号和切片上的原始图像数据作为键值对的键key和值value存储。
[0006]进一步地,步骤S2中,GDAL库读写在分布式数据库中按新图片格式存储的影像,具体包括:
GDAL库将原始影像写入分布式数据库过程:按照步骤SI中的方法计算切片并把原始影像分割为多个切片,然后把元信息和切片索引文件中的键值对分别按行存储到分布式数据库中;
GDAL库从分布式数据库中读取过程:根据要读取的影像图片计算要读取的切片号,SP根据要读取的影像图片判断出占据的相应切片号;从切片索引文件中读取需要的切片号;对读取到的切片号对应的切片进行拼接。
[0007]更进一步地,所述切片的大小基于计算机屏幕的查看窗口的大小,具体指:切片与查看窗口同样大小,或为查看窗口的倍数。
[0008]本发明的优点在于:
I)提供了通过GDAL库读取存储在分布式数据库HBase中的影像图片的解决方案。
[0009]2)支持可扩展存储空间,降低了存储成本。传统方案是存放在本地硬盘或者EMC磁盘阵列,价格昂贵且存储空间有限。本发明运行于廉价的商用机器集群上,可方便地扩展存储容量。
[0010]3)具有读写分布式数据库的能力,支持快速随机读取文件。随机读是指对一个文件中的某一段数据区域进行读操作。本发明可以根据要读取区域的位置,计算出所属的数据切片编号,所以参与读操作的只是一个或多个轻量级的小数据切片,而不是整个文件。本发明根据编号从存储节点上获取数据切片,实现高效随机读。
【附图说明】
[0011]图1为本发明的架构图。
[0012]图2为本发明的写入过程示意图。
[0013]图3为本发明的读取过程示意图。
【具体实施方式】
[0014]下面结合具体附图和实施例对本发明作进一步说明。
[0015]本发明提供的基于分布式数据库的海量超大影像存取方法,包括两部分:第一步是增加一种新的图片格式,方便原始影像按照这种新图片格式进行存取;第二步是扩展GDAL库,新增存取方法,使得GDAL库能够读写在分布式数据库中按新图片格式存储的影像。
[0016]本方法将栅格数据存储在分布式数据库HBase(HBase全称Hadoop Database,为Apache基金会下的开源项目,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统)中,HBase中的所有数据都存储在HDFS(全称Hadoop Distributed File System,也可称为Hadoop分布式文件系统,为Apache基金会下的开源项目,是Hadoop项目下的一个子项目。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能够提供高吞吐量的数据访问,非常适合大规模数据集上的应用)文件系统上,并以此获得高可靠性和可伸缩的特性。得益于底层的HDFS,HBase能够支持存储上10亿的行。
[0017]设计思路:通过GDAL库访问,且支持快速读,能快速加载一个随机窗口内的像素信息。读是随机的,相对高频率的,而写是一次性的。由于显示用的屏幕大部分是1024*1024或者1024*2048,考虑到,不需要每次都把整个大文件读取出来,可以采用分片存储,读取时也是分片读取。
[0018]最终结果是提供一个经过扩展的⑶AL库,通过依赖这个库,就可以在程序中读取保存在HBase集群中的海量超大影像图,以及支持向HBase集群中写入海量超大影像图。
[0019]本发明的架构如图1所示:
往Hbase中存的是,自定义大小的图像切片和切片索引文件,所有的信息都保存在Hbase中。写入数据时,GDAL打开一个原始影像文件,先将其切片,再存储;读取影像文件时,先按照要读取的影像图片大小,计算切片,再从切片索引文件读取数据,再把取得的切片拼接,完成读取过程。
[0020]数据切片大小:理论上,数据切片越多,随机读取效率越高,但读取整个文件效率会降低;数据块越少,读取整个文件效率高,但随机读取效率降低。所以,每个数据切片的大小应该基于计算机屏幕的“查看窗口”的大小来设定。
[0021]把分切片存储的图片定义为一种新的图片格式,GDAL支持扩展新的图片格式。新图片格式包括元信息和切片索引文件,元信息和切片索引文件分开保存;元信息包括各切片尺寸和原始影像图片尺寸;切片索引文件中将切片号和切片上的原始图像数据(比如像素信息)作为键值对的键key和值value存储。
[0022](—)写入过程:(I)计算切片,一张超大的原始影像图,按照一定的高和宽将原图切成很多的切片,每个切片可以看做一张小图,切片的尺寸大小可以自定义,每个切片的大小应该基于“查看窗口”的大小,比如切片与查看窗口同样大小,或为查看窗口的倍数。(2)存储切片,把元信息和切片索引文件中的键值对分别按行存储到分布式数据库中;键值对中的value值,就是切片小图的原始图像数据,如图2中所示,value值为二进制码;
一张原始影像图的写入过程如图2所示,图2中共划分了56个切片;图2中最右边的部分,包括元信息(切片尺寸和原始影像图片尺寸等,假如是来自卫星影像还可以包括波段数),以及切片号和切片上的原始图像数据的键值对。
[0023](二)读取过程:(I)计算要读取的切片号,在上面的例子中,假设经过计算,要读取的影像图片只占据了切片号11、12、13、19、20、21、27、28、29这9个切片。(2)读取,从Hbase中的切片索引文件中读取需要的切片号;(3)拼接,将读取到的切片号对应的切片进行拼接。返回给客户端所要读取的影像图片。读取过程如图3所示,虚线框代表要读取的影像图片。
【主权项】
1.一种基于分布式数据库的海量超大影像存取方法,其特征在于,包括: 步骤SI,增加一种新的图片格式,方便原始影像按照这种新图片格式进行存取; 步骤S2,扩展GDAL库,新增存取方法,使得GDAL库能够读写在分布式数据库中按新图片格式存储的影像。2.如权利要求1所述的基于分布式数据库的海量超大影像存取方法,其特征在于: 步骤SI中,增加新图片格式具体包括: 对原始影像计算切片,切片的大小基于计算机屏幕的查看窗口的大小,然后将原始影像按照切片大小进行切割,切成多个切片; 新图片格式包括元信息和切片索引文件,元信息和切片索引文件分开保存;元信息包括切片尺寸和原始影像图片尺寸;切片索引文件中将切片号和切片上的原始图像数据作为键值对的键key和值value存储。3.如权利要求2所述的基于分布式数据库的海量超大影像存取方法,其特征在于: 步骤S2中,GDAL库读写在分布式数据库中按新图片格式存储的影像,具体包括: GDAL库将原始影像写入分布式数据库过程:按照步骤SI中的方法计算切片并把原始影像分割为多个切片,然后把元信息和切片索引文件中的键值对分别按行存储到分布式数据库中; GDAL库从分布式数据库中读取过程:根据要读取的影像图片计算要读取的切片号,SP根据要读取的影像图片判断出占据的相应切片号;从切片索引文件中读取需要的切片号;对读取到的切片号对应的切片进行拼接。4.如权利要求2所述的基于分布式数据库的海量超大影像存取方法,其特征在于: 所述切片的大小基于计算机屏幕的查看窗口的大小,具体指:切片与查看窗口同样大小,或为查看窗口的倍数。
【文档编号】G06F17/30GK105893620SQ201610277801
【公开日】2016年8月24日
【申请日】2016年4月28日
【发明人】马珍珍, 李子星, 楚涌泉, 郎宝军
【申请人】江苏物联网研究发展中心