如前所述,分布式文件系统HDFS和并行计算框架MapReduce构成了Hadoop的核心框架。其中,HDFS是Hadoop解决海量数据存储和管理的基础。分布式存储包括遥感数据及特征的分布式存储。
一、基于HDFS的遥感图像数据分布式存储
基于HDFS的遥感数据分布式存储步骤如下(参见图6-19):
图6-19 基于HDFS的遥感图像分布式存储
(1)在主节点上将原始遥感图像文件上传至HDFS文件系统,由HDFS对每一幅遥感图像按照固定大小(如64M)进行数据分块(不足64M的图像则按照实际大小存储);
(2)数据备份,保证每个数据块有2个以上副本;(www.xing528.com)
(3)将每个数据块分发到集群中各个数据节点进行存储和管理,主节点上记录每个数据块的存储位置。当需要读取图像文件时,主节点通过记录的存储位置向数据节点请求数据块,汇总后拼接为一个完整的文件进行读取。
由于MapReduce本身并不提供对栅格影像格式的支持,可利用栅格空间数据开源库GDAL提供对多数栅格数据格式(如TIFF)的读写及处理能力。此外,由于MapReduce处理的数据都为<Key,Value>键值对,读取时将图像文件名作为Key,图像的RGB三个波段的值转化为二进制数据流作为Value。
二、基于HDFS的遥感特征分布式存储
HBase是一个构建在HDFS之上的用于存储海量结构化数据的分布式列存储系统,是Hadoop生态系统的一个重要组件。表6-1给出一种基于HBase的遥感图像特征存储方案。其中,特征选取全局纹理特征(GLCM)、局部特征(如SIFT)、中层视觉特征(BoVW特征)和高层特征(ConvNet特征)。其中,GLCM特征包括能量、对比度、逆差矩、熵和差异性5种参数,共5维;SIFT特征为128维;SIFT特征经聚类构建视觉词袋模型后生成BoVW特征,特征为256维;对在大规模自然图像数据集(一般为ImageNet)上预训练的卷积神经网络(如VGG-16)经过标准遥感图像数据集(如UCMD数据集)精调之后,提取ConvNet特征(如采用倒数第二个全连接层),共4096维。以上特征均以存入HBase的列簇中。
表6-1中,以遥感图像名称为行键进行存储,时间戳为存储特征的时刻,3个列簇中分别存储该幅图像的GLCM特征、BoVW特征和ConvNet特征。当需要对特征进行创建、更新、删除等时,以行键为关键词进行操作,操作完毕后更新时间戳。
表6-1 一种基于HBase的遥感图像特征存储方案
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。