论文部分内容阅读
K-Means算法是一种数据挖掘分析方法,由于其简单高效的优点,并且在缺乏先验知识的情况下,可将具有相似光谱特征的对象聚集在一起,因此在遥感图像分类中得到广泛应用。但对于海量遥感影像的分类,传统并行计算框架MPI对硬件基础设施性能要求较高,且编程复杂,具有较大的应用局限性。因此具有高效性、高扩展性以及高容错性等优势的Hadoop分布式系统平台,在解决海量数据的存储与计算问题方面得到了广泛的应用。但由于遥感影像数据格式的特殊性,目前基于Hadoop云平台实现K-means算法对遥感影像数据的分类处理都需要对其进行数据格式转换,将其转换为CLILAB格式像素点的文本文件,造成Map和Reduce数目分配过多,出现网络传输耗时过多和内存分配不足的问题。因此如何对海量遥感数据进行有效组织、快速读取以及高效分类处理成为当前遥感领域研究的热点。本文利用Hadoop云平台强大的存储和计算能力,结合GDAL(栅格空间开源数据库)快速读取栅格图像能力,实现在Hadoop云平台上利用K-means算法直接对遥感影像数据进行分类处理,在保证分类精度的前提下,提高在Hadoop平台上利用K-means算法对海量遥感影像数据的分类效率。本文主要研究内容包括以下几个方面:(1)设计遥感影像的输入输出格式:由于Hadoop内置的数据输入输出格式不能实现对遥感影像数据的传输,本文继承Hadoop提供的数据输入输出格式的基类,在不破坏遥感影像数据结构的情况下,实现在Hadoop上对遥感影像数据的输入和输出,保证遥感影像数据信息的完整性。(2)提出基于Hadoop平台的遥感影像数据组织方式并采用相应的数据存取方法:结合HDFS和HBase各自的优点,将影像文件存储在HDFS,元数据信息存储在HBase,并采用相对应的基于特定分割粒度的遥感影像数据的存取方法,有效提高了云平台上对海量影像数据的存取效率。(3)提出基于Hadoop的K-means遥感影像分类算法:结合MapReduce分布式计算框架的编程模型以及GDAL对影像数据的快速读写能力,并对影响K-means算法分类的三个基本因素进行详细的分析,实现了K-means算法在Hadoop平台上直接对遥感影像数据的分类处理。利用搭建的Hadoop平台对不同数据量大小的影像数据进行了分类实验,从分类精度和平台性能两方面进行了分析。实验结果表明:本文方法分类结果的精度比ENVI软件K-means算法的处理结果有所提高,并与在Hadoop平台上利用K-means算法对转换后影像数据的分类处理结果相比提高了平台的运算能力以及计算效率。