基于Hadoop的K-means遥感影像分类算法的研究
发布时间:2020-01-27 18:44
【摘要】: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算法对转换后影像数据的分类处理结果相比提高了平台的运算能力以及计算效率。
【图文】:
7图 2.1 Hadoop 生态系统图由于 Hadoop 系统对大规模数据分布式处理和存储能力,以及系统的兼容性和性,,并且近几年业界和应用行业在 Hadoop 开发和应用上已经进行了大量的投入了包含各种丰富工具软件的完整生态系统,同时 Hadoop 社区也会对新一代系统
图 2.2 HDFS 数据写入过程2、数据读取过程1)首先 client 调用 FileSystem 对象的 open()函数,获得对应数据的输入流(图步骤 1)。2)DistributedFileSystem 通过 RPC 远程调用 NameNode 获得此文件对应的数据块 DataNode 位置信息,包括各个副本的存储位置,这些存储位置按照 Hadoop 拓扑序,距离客户端近的排在前面(图 2.3 中的步骤 2)。3)前两步会返回的 FSDataInputStream 对象会被封装成 DFSInputStream 对象,nputStream可以方便的监管NameNode和DataNode数据流。客户端调用read()方nputStream 会连接距离客户端最近的 DataNode(图 2.3 中的步骤 3)。4)通过对文件流反复调用 read()方法,数据不断的传送到 clien(t图 2.3 中的步骤5)如果读取第一块的数据结束,DFSInputStream 就会断开与第一块的 DataNod,接着向下读取。这些操作对客户端来说是透明的,客户端的角度看来只是在读不断的流(图 2.3 中的步骤 5)。6)如果第一批数据块都读完了,DFSInputStream 就会通过 NameNode 找到下一
【学位授予单位】:江西理工大学
【学位级别】:硕士
【学位授予年份】:2017
【分类号】:P237
【图文】:
7图 2.1 Hadoop 生态系统图由于 Hadoop 系统对大规模数据分布式处理和存储能力,以及系统的兼容性和性,,并且近几年业界和应用行业在 Hadoop 开发和应用上已经进行了大量的投入了包含各种丰富工具软件的完整生态系统,同时 Hadoop 社区也会对新一代系统
图 2.2 HDFS 数据写入过程2、数据读取过程1)首先 client 调用 FileSystem 对象的 open()函数,获得对应数据的输入流(图步骤 1)。2)DistributedFileSystem 通过 RPC 远程调用 NameNode 获得此文件对应的数据块 DataNode 位置信息,包括各个副本的存储位置,这些存储位置按照 Hadoop 拓扑序,距离客户端近的排在前面(图 2.3 中的步骤 2)。3)前两步会返回的 FSDataInputStream 对象会被封装成 DFSInputStream 对象,nputStream可以方便的监管NameNode和DataNode数据流。客户端调用read()方nputStream 会连接距离客户端最近的 DataNode(图 2.3 中的步骤 3)。4)通过对文件流反复调用 read()方法,数据不断的传送到 clien(t图 2.3 中的步骤5)如果读取第一块的数据结束,DFSInputStream 就会断开与第一块的 DataNod,接着向下读取。这些操作对客户端来说是透明的,客户端的角度看来只是在读不断的流(图 2.3 中的步骤 5)。6)如果第一批数据块都读完了,DFSInputStream 就会通过 NameNode 找到下一
【学位授予单位】:江西理工大学
【学位级别】:硕士
【学位授予年份】:2017
【分类号】:P237
【相似文献】
相关期刊论文 前10条
1 袁如金;张敏;李世伟;;基于华浩超算平台遥感影像几何校正研究——以资源一号02C数据为例[J];测绘与空间地理信息;2017年01期
2 马慧云;吴晓京;赵国庆;姜丙波;;遥感影像反演的雾参数地区差异性分析[J];遥感信息;2017年03期
3 雒培磊;李国庆;曾怡;;一种改进的基于深度学习的遥感影像拼接方法[J];计算机工程与应用;2017年20期
4 鄢咏折;范晓燕;;遥感影像变化监测方法简述[J];城市建设理论研究(电子版);2017年22期
5 蔡红s
本文编号:2573717
本文链接:https://www.wllwen.com/kejilunwen/dizhicehuilunwen/2573717.html