论文部分内容阅读
近年来,DEM(Digital Elevation Model)获取技术发展迅速,数据精度与数据量都不断增大,如何处理和利用这些数据已经成为地理信息系统用户的一大挑战。传统地形因子提取方法大多采用串行处理方式,一方面处理大量数据时需要很长的时间(小时,甚至数天),另一方面几乎没有地形因子提取软件可以直接处理多于GB的数据。这两个方面限制了大数据量下地形因子的提取,因此研究如何快速高效提取地形因子成为必然。论文将八叉树结构和MapReduce模型与改进的通用土壤流失方程(Revised Universal Soil Loss Equation,RUSLE)相结合来解决传统地形因子提取过程中的平地处理、汇水面积及累计坡长的迭代频繁问题以及处理海量数据时的内存限制问题。论文的主要研究内容及成果如下:(1)设计并实现了基于八叉树的地形因子提取方法。本研究利用Deterministic 8(D8)算法沿着流路建立流向八叉树和平地矩阵来表示地形关系;利用平地区域栅格点皆为累计坡长截断点的特性简化平地流向的搜寻;利用流向八叉树和平地矩阵及先进先出队列计算汇水面积和累计坡长来解决传统正反向遍历算法迭代次数过多的问题。与传统地形因子提取方法DWSEL(Distributed Watershed Erosion Slope Length)对比,该方法只需要花费DWSEL方法的15%-25%的计算时间来提取地形因子,有效提升了计算效率。并且两种方法的计算误差在允许范围之内。但该方法仍旧是单机计算模式,对于海量数据的处理能力有限。(2)针对(1)中的单机处理能力限制问题,设计并实现了基于MapReduce模型的地形因子分布式提取方法。本研究利用最大坡降原理和B+树建立流向关系查找树实现各个栅格点的快速查找;利用MapReduce模型进行流路查找与栅格汇聚,以此来解决地形因子计算过程中汇水面积和累计坡长的计算效率问题;利用负载均衡脚本解决集群内各个机器之间在运行过程中出现的磁盘利用率不平衡问题。实验将该方法部署在大数据平台Hadoop和Spark上,采用与(1)中同样的评价指标和传统DWSEL方法进行对比。实验结果表明,在计算节点数目为4时,Hadoop平台下该方法平均需要花费DWSEL方法的40%的计算时间,Spark平台下该方法平均花费DWSEL方法16.8%的计算时间,因此有效提升了计算效率;当集群中机器数量小于16时,随着集群机器数量的增加,计算效率按照接近线性比例提高。