论文部分内容阅读
随着栅格数据获取技术的不断提高,人们所获取的栅格数据正以指数级增长。传统的栅格数据存储与管理方案已无法很好的处理海量栅格数据。如何高效地存储管理与分析处理这些海量栅格数据,已成为一个亟待解决的重要问题。云计算作为一种新的计算模式,其资源池化、快速部署、弹性收缩、按需使用的特点为解决这一问题提供了思路。 Hadoop作为Google云计算模式的开源实现,其核心是分布式文件系统HDFS和分布式计算框架MapReduce。HDFS具有容错性、可伸缩、快速部署、成本低的优点,MapReduce框架具有内在的并行性。Pydoop提供了编写Python风格MapReduce应用的API,相对于其他Python风格的MapReduce编程方式具有较明显的优势。本文旨在研究基于Hadoop平台的栅格存储与计算框架实现,提供一种高可靠、可伸缩、易使用、低成本的栅格数据存储方案,并将MapReduce计算模型运用到栅格数据的分析处理中,同时以方便快捷的使用方式提供给用户。 栅格数据像元的分布即代表其空间关系,HDFS不能直接用于栅格数据的存储。为在HDFS中保留栅格数据的空间关系,本文采用基于tile的栅格数据存储方案,即栅格数据按矩形块划分存入block,block中栅格数据以tile为基本单位进行组织。同时采取分布式缓存元数据、构建索引数据结构、保留重叠区和基于tile的数据压缩等技术实现基于HDFS的栅格数据存储,数据入库采用Hadoop提供的HDFS API。 根据栅格数据的特点,其计算模式可分为像元级、邻域级、区域级和全局级,Hadoop平台只适合处理像元级计算和邻域级计算。本文针对这两种计算模式,提出了栅格数据的MapReduce计算模型,阐述了其基本计算单元和内在并行模式。通过Pydoop封装,屏蔽MapReduce计算框架的底层细节,并分别介绍了像元级计算和邻域级计算在Pydoop中的实施过程。 本文以SPOT数据为例,在Hadoop平台上进行NDVI指数计算实验和空间滤波实验,实验取得了较好的加速比,验证了方案的可行性。