張廣弟 汪秀兵 胡亞磊
(江西理工大學建筑與測繪工程學院 江西 贛州 341000)
數字高程模型(DEM)是一定范圍內規則格網點的平面坐標(X,Y)及其高程(Z)的數據集,由于采集的數據都是海量的離散化隨即分布的,無法利用直接生成地面模型,所以一般需要將離散的高程數據網格化[1]。其中規則格網是建立DEM表面的主要方法。根據地形的復雜性和非線性,一個數學模型很難模擬大范圍的地形,因此目前構建規則網格的基本方法:對某一區域進行格網劃分,利用已獲得的離散高程數據進行局部內插計算,求的網格的高程值[2]。
通過采集的海量數據模擬出大范圍地形,需要進行大量計算,而傳統串行模式的DEM內插計算的處理速度已經成為DEM快速建立的瓶頸,不能滿足實際需要,且單純通過算法上面的改進也很難大幅度提高對海量離散點建立格網的效率。所以為了提高計算和處理效率,多機集群方式逐步在DEM分析中得到較多應用[5]。開放式云平臺Hadoop的出現,提供了一個能夠對海量數據進行分布式處理的軟件框架,且具有高效、可擴展、經濟、可靠等特點。
Hadoop是Apach下的一個開源軟件,它最早是作為一個開源搜索引擎項目Nutch的基礎平臺而開發的[3]。其最底部是Hadoop Distributed File System (HDFS),它存儲Hadoop集群中所有存儲節點上的文件。HDFS(對于本文)的上一層是MapReduce引擎,該引擎由JobTrackers和TaskTrackers組成。
HDFS是Hadoop應用中必不可少的一個分布式文件系統,它將海量數據分布存儲在一個大集群的多臺計算機上并且采用Master/Slave架構,一個HDFS集群由一個管理節點(Namenode)和一定數目數據節點 (Datanode)組成。Namenode是中心服務器,管理文件系統的Namespace和客戶端對文件的訪問。Datanode在集群中一般是一個節點一個,負責管理節點上附帶的存儲[7]。HDFS將文件劃分為許多塊序列,每個文件劃分除了最后一個分塊外其他所有分塊都具有相同的大小。文件所分的塊大小及復制比例可以依據每個文件進行設置[4]。
MapReduce是一種可用于數據處理的編程模型,其分為Map和Reduce兩個處理階段,Map就是把一個任務分解成多個任務,reduce就是將分解后的多個任務處理的結果匯總起來,得出最后的結果。對于擁有海量處理信息的任務來說,分布式系統中機器群看做硬件資源池,它將任務拆分成多個相同的任務,然后交給集群上的機器去處理,這樣做能夠極大地提高計算效率。
本實驗構建的hadoop環境(如圖1)是由一臺內存為4G處理器為Intel Core I3 M 390@2.67HZ的普通機通過虛擬機技術構建出1個Namenode和3個datanode的集群環境,其中其服務器環境為Linux Ubuntu 11.04,開發環境為 window 7 ,云端軟件采用 hadoop 0.20.1 進行環境架構。
通過測繪原始的DEM數據就是基礎txt文本數據,數據為每個采樣點一行,依次下去符合hadoop數據的逐行讀取形式。本實驗的數據來自某地的3000mx3000m范圍的數據。
分別取出離散點的最大或最小X和Y值,建立單個格網大小為10mx10m,則每個分割的區域的格網數為10000個,總共的格網數大約為10000*n(n為HDFS的塊的數目,在本實驗中其值為3)。

圖1 hadoop集群框架圖
本實驗根據離散的高程,通過IDW(距離加權內插)求任意一格網點P(x,y)的高程值Z(x,y)。因離散點與P點因分布位置的差異,對P影響不同,以Wi來代表這種影響。
因此本實驗根據IDW公式結合MapReduce設計了DEM建立的核心算法代碼如下:



圖2 DEM建模測試

圖3 10mx10m的部分DEM結果圖
實驗中設計了在同樣的IDW算法下,測試上述hadoop(擁有3個datanode)完全分布模式下和基于單機下DEM格網的建模時間隨數據量的變化圖,結果如圖2。
從圖2中可以看出對于在一定數據量下單機模式下DEM建模的所需的時間要小于3個datanode的hadoop集群所需的時間,隨著DEM數據量的增大(并保證每個塊的大小于64M),集群處理的所需的時間漸漸高于單機模式所需時間。
在進行Mapduce運算時對于小量DEM數據的計算能力默認是按塊來分配Map任務的,且在數據在處理后在不同的datanode上需要一定的網絡傳輸將結果顯示到開發端的window上。所以DEM建模的時間在DEM數據達到一定量的時候才顯現出單機上處理的大數據集的無法達到的優勢。
[1]葉海建 .DEM生成效率的分析[J].中國農業大學學報,北京:1999,4(6):81-84.
[2]張治木,蔡寅峰.基于TIN和格網的DEM表面建模的比較[J].銅業工程,2005(2):8-10.
[3]向小軍,高陽,商琳,等.基于Hadoop平臺的海量文本分類的并行化[J].計算機科學,2011,38(10):184-188.
[4]多雪松,張晶,高強.基于Hadoop的海量數據管理系統[J].微計算機信息,2010,26(5-1):202-204.
[5]黃先鋒,孫巖標,張帆.多核計算環境下的LiDAR數據DEM內插方法研究.山東科技大學學報:自然科學版,青島:2011,30(1):1-6.
[6]呂建峰,劉定生,焦偉利,等.DEM生成算法并行化研究[J].中國圖象圖形學報,2002,7(5):506-512.
[7]楊代慶,張智雄.基于Hadoop的海量共現矩陣生成方法[J].現代圖書情報技術,北京:2009(4):23-26.