遥感影像云存储方法技术

技术编号:14239422 阅读:71 留言:0更新日期:2016-12-21 14:54
本发明专利技术提供一种遥感影像云存储方法,包括下述步骤:步骤S1,拓展GDAL文件访问接口,使GDAL能够读写HDFS上的影像;步骤S2,提供一套本地缓存机制,即建立本地缓存,用于实现GDAL需要随机写的需要。本发明专利技术1)实现了GDAL直接修改HDFS中的影像文件;2)在有重复读的情况时,减少了对HDFS的请求次数,提高了文件读取速度。

Remote sensing image cloud storage method

The invention provides a remote sensing image cloud storage method, which comprises the following steps: step S1, expand GDAL file access interface, which allows the GDAL to read and write on the HDFS image; step S2, a local cache mechanism, namely the establishment of the local cache, for the realization of GDAL need random write. The invention realizes the GDAL to directly modify the image files in the HDFS; 2) when the situation of repeated reading is reduced, the number of requests for the HDFS is reduced, and the speed of reading the file is improved.

【技术实现步骤摘要】

本专利技术涉及遥感数据存储
,尤其是一种基于HDFS的遥感影像存储方案。
技术介绍
遥感影像是各种传感器所获信息的产物,是遥感探测目标的信息载体。航天遥感技术经过多年的发展,无论在光谱分辨率、空间分辨率、时间分辨率等方面都有了长足的进步。但与此同时,遥感影像的数据规模陡然攀升,传统的单机存储系统已经无法满足需求:1)单机存储系统无法承载如此大规模的影像数据,每天至少几TB的数据,单机硬盘会很快装满,这使得单机存储系统不易扩展的缺点暴露无遗;2)更重要的是,单机存储系统的可靠性不易保证,当有硬盘出现故障时,其中的数据也随之丢失。介于单机存储无法满足遥感影像大规模存储的现实情况,本专利技术提出了基于遥感影像常用库——GDAL与分布式文件系统——HDFS相结合的解决方案。要实现本方案需要解决以下两点问题:1)原生GDAL库不支持直接访问在HDFS上存储的影像;2)GDAL要修改影像,需要对影像文件进行随机写,但HDFS不支持随机写。
技术实现思路
本专利技术的目的在于克服现有技术中存在的不足,提供一种遥感影像云存储方法,基于GDAL与HDFS解决了遥感影像单机存储容量、可靠性不足的问题。本专利技术采用的技术方案是:一种遥感影像云存储方法,包括下述步骤:步骤S1,拓展GDAL文件访问接口,使GDAL能够读写HDFS上的影像;步骤S2,提供一套本地缓存机制,即建立本地缓存,用于实现GDAL需要随机写的需要。进一步地,步骤S1具体包括:1)实现继承自VSIFilesystemHandler用以访问HDFS的文件系统访问类,调用libhdfs提供的函数,完成VSIFilesystemHandler中定义的文件系统访问接口;2)在VSIFileManager中注册,即在VSIFileManager维护的映射表中加入一个新的键值对,新键值对的键为唯一标识HDFS文件系统访问句柄的字符串,键值为HDFS文件系统访问句柄。进一步地,步骤S2具体包括:对文件进行分块处理,每次从HDFS上按块读取存入本地缓存;所述本地缓存包括内存缓存和本地文件缓存;采用LRU策略来协调内存缓存与本地文件缓存:1)初始化内存缓存,内存缓存最多缓存N个文件块;2)初始化本地文件缓存,即创建一个本地文件;3)在内存缓存中维护一个LRU排序队列,最近用过的文件块排在LRU队列的队首,越久没有用到的文件块在队列中排得越靠后;4)当内存缓存已满时,从LRU排序队列中进行淘汰,将最久没有使用过的文件块写入本地文件缓存,空出新的缓存载入新的文件块。具体地,本地缓存机制的读文件块过程,包括以下步骤:步骤S101,判断文件块是否在本地缓存中,若是则进行步骤S102,否则进行步骤S104;步骤S102,判断文件块在内存缓存中还是在本地文件缓存中,若在本地文件缓存中进行步骤S103,若在内存缓存中进行步骤S109;步骤S103,向本地文件缓存读取该文件块;转步骤S105;步骤S104,向HDFS读取该文件块;步骤S105,判断内存缓存是否有空的内存缓存块;若是转步骤S107,若否进行步骤S106;步骤S106,将LRU队列中最末尾的文件块写入本地文件缓存,空出一个内存缓存块;步骤S107,向该空内存缓存块中载入读取的文件块数据;步骤S108,将经过步骤S107后的该内存缓存块排到LRU队列队首;步骤S109,返回该内存缓存块中的数据。具体地,本地缓存机制的写文件块过程,包括以下步骤:步骤S201,判断是否要写整个文件块;若是则进行步骤S209,若否则进行步骤S202;步骤S202,进一步判断文件块是否在本地缓存中,若是则进行步骤S204,若否则进行步骤S203;步骤S203,向HDFS读取该文件块;步骤S204,进一步判断文件块是否在内存缓存中,若是则进行步骤S211,若否则进行步骤S205;步骤S205,向本地文件缓存读取该文件块;步骤S206,判断内存缓存是否有空的内存缓存块;若是转步骤S208,若否进行步骤S207;步骤S207,将LRU队列中最末尾的文件块写入本地文件缓存,空出一个内存缓存块;步骤S208,向该空内存缓存块载入读取的文件块数据;转步骤S211;步骤S209,判断内存缓存是否有空的内存缓存块;若是转步骤S211,若否进行步骤S210;步骤S210,将LRU队列中最末尾的文件块写入本地文件缓存,空出一个内存缓存块;步骤S211,向步骤S209或S210中的空内存缓存块写文件块数据;步骤S212,将经过步骤S211后的该内存缓存块排到LRU队列队首。本专利技术的优点在于:1)本专利技术基于GDAL与HDFS解决了遥感影像单机存储容量、可靠性不足的问题;2)拓展了GDAL文件访问接口,方便遥感影像在HDFS上的存取;3)以本地缓存的方式实现了GDAL修改HDFS上影像文件的功能;4)增加了本地缓存,在重复读的情形下,提高了GDAL读取HDFS影像文件的速度。附图说明图1为本专利技术的整体框架图。图2为本专利技术的GDAL文件系统访问句柄继承关系图。图3为本专利技术的GDAL文件访问部分结构示意图。图4为本专利技术的读文件块流程图。图5为本专利技术的写文件块流程图。具体实施方式下面结合具体附图和实施例对本专利技术作进一步说明。如图1所示,遥感影像云存储方法,是一种基于遥感影像常用库——GDAL与分布式文件系统——HDFS相结合的解决方案;图1中的Cache是缓存;本专利技术的目标是:(一)拓展GDAL文件访问接口,使GDAL能够读写HDFS上的影像;(二)提供一套本地缓存机制,即建立本地缓存,用于解决GDAL需要随机写,而HDFS不支持的问题;同时尽可能提高命中,提高读写速度;所述本地缓存包括内存缓存和本地文件缓存。下面是本专利技术两个主要部分的详细描述;(一)拓展GDAL文件访问接口;作为遥感影像数据常用的图像处理库,GDAL主要包括以下四部分:1)抽象数据结构。此部分定义了“GDAL影像”的属性,以及针对“GDAL图像”可以进行的基本操作;2)图像格式解析器。GDAL打开图像文件时,通过此部分将不同格式的影像文件内容转换为内存中的“GDAL影像”;3)图像处理算法。此部分包含了一些图像处理算法,如几何校正、RPC校正、坐标投影变换等;4)文件访问部分。此部分定义了文件访问接口,用于访问不同“文件系统”上的“文件”。要能操作HDFS上的文件,需要做的就是扩展GDAL的文件访问部分。GDAL文件访问部分的代码在GDAL源代码的port目录下。GDAL可以访问的各个文件系统都以VSIFilesystemHandler为基类的,各个文件系统的句柄由一个叫VSIFileManager的类管理着,其内部维护了一个以文件系统句柄唯一绑定的字符串(string)为键(key),文件系统句柄为键值(value)的映射表(map),这样当访问不同的文件系统时,可以根据不同的key值选取不同的文件系统句柄。VSIFilesystemHandler和VSIFileManager都是GDAL中的类(class);因此为完成本方案设计需要以下步骤:1)实现继承自VSIFilesystemHandler用以访问HDFS的文件系统访问类,调用libhdfs提供的函数,完成VSIFilesystemHandler中定义本文档来自技高网...
遥感影像云存储方法

【技术保护点】
一种遥感影像云存储方法,其特征在于,包括下述步骤:步骤S1,拓展GDAL文件访问接口,使GDAL能够读写HDFS上的影像;步骤S2,提供一套本地缓存机制,即建立本地缓存,用于实现GDAL需要随机写的需要。

【技术特征摘要】
1.一种遥感影像云存储方法,其特征在于,包括下述步骤:步骤S1,拓展GDAL文件访问接口,使GDAL能够读写HDFS上的影像;步骤S2,提供一套本地缓存机制,即建立本地缓存,用于实现GDAL需要随机写的需要。2.如权利要求1所述的遥感影像云存储方法,其特征在于,步骤S1具体包括:1)实现继承自VSIFilesystemHandler用以访问HDFS的文件系统访问类,调用libhdfs提供的函数,完成VSIFilesystemHandler中定义的文件系统访问接口;2)在VSIFileManager中注册,即在VSIFileManager维护的映射表中加入一个新的键值对,新键值对的键为唯一标识HDFS文件系统访问句柄的字符串,键值为HDFS文件系统访问句柄。3.如权利要求1所述的遥感影像云存储方法,其特征在于,步骤S2具体包括:对文件进行分块处理,每次从HDFS上按块读取存入本地缓存;所述本地缓存包括内存缓存和本地文件缓存;采用LRU策略来协调内存缓存与本地文件缓存:1)初始化内存缓存,内存缓存最多缓存N个文件块;2)初始化本地文件缓存,即创建一个本地文件;3)在内存缓存中维护一个LRU排序队列,最近用过的文件块排在LRU队列的队首,越久没有用到的文件块在队列中排得越靠后;4)当内存缓存已满时,从LRU排序队列中进行淘汰,将最久没有使用过的文件块写入本地文件缓存,空出新的缓存载入新的文件块。4.如权利要求1、2或3所述的遥感影像云存储方法,其特征在于,本地缓存机制的读文件块过程,包括以下步骤:步骤S101,判断文件块是否在本地缓存中,若是则进行步骤S102,否则进行步骤S104;步骤S102,判断文件块在内存缓存中还是在本地文件缓存中,若在本地文件缓存中进行...

【专利技术属性】
技术研发人员:俞洋楚涌泉台宪青
申请(专利权)人:江苏物联网研究发展中心
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1