張廣弟 汪秀兵 胡亞磊
(江西理工大學建筑與測繪工程學院 江西 贛州 341000)
數(shù)字高程模型(DEM)是一定范圍內規(guī)則格網(wǎng)點的平面坐標(X,Y)及其高程(Z)的數(shù)據(jù)集,由于采集的數(shù)據(jù)都是海量的離散化隨即分布的,無法利用直接生成地面模型,所以一般需要將離散的高程數(shù)據(jù)網(wǎng)格化[1]。其中規(guī)則格網(wǎng)是建立DEM表面的主要方法。根據(jù)地形的復雜性和非線性,一個數(shù)學模型很難模擬大范圍的地形,因此目前構建規(guī)則網(wǎng)格的基本方法:對某一區(qū)域進行格網(wǎng)劃分,利用已獲得的離散高程數(shù)據(jù)進行局部內插計算,求的網(wǎng)格的高程值[2]。
通過采集的海量數(shù)據(jù)模擬出大范圍地形,需要進行大量計算,而傳統(tǒng)串行模式的DEM內插計算的處理速度已經(jīng)成為DEM快速建立的瓶頸,不能滿足實際需要,且單純通過算法上面的改進也很難大幅度提高對海量離散點建立格網(wǎng)的效率。所以為了提高計算和處理效率,多機集群方式逐步在DEM分析中得到較多應用[5]。開放式云平臺Hadoop的出現(xiàn),提供了一個能夠對海量數(shù)據(jù)進行分布式處理的軟件框架,且具有高效、可擴展、經(jīng)濟、可靠等特點。
Hadoop是Apach下的一個開源軟件,它最早是作為一個開源搜索引擎項目Nutch的基礎平臺而開發(fā)的[3]。其最底部是Hadoop Distributed File System (HDFS),它存儲Hadoop集群中所有存儲節(jié)點上的文件。HDFS(對于本文)的上一層是MapReduce引擎,該引擎由JobTrackers和TaskTrackers組成。
HDFS是Hadoop應用中必不可少的一個分布式文件系統(tǒng),它將海量數(shù)據(jù)分布存儲在一個大集群的多臺計算機上并且采用Master/Slave架構,一個HDFS集群由一個管理節(jié)點(Namenode)和一定數(shù)目數(shù)據(jù)節(jié)點 (Datanode)組成。Namenode是中心服務器,管理文件系統(tǒng)的Namespace和客戶端對文件的訪問。Datanode在集群中一般是一個節(jié)點一個,負責管理節(jié)點上附帶的存儲[7]。HDFS將文件劃分為許多塊序列,每個文件劃分除了最后一個分塊外其他所有分塊都具有相同的大小。文件所分的塊大小及復制比例可以依據(jù)每個文件進行設置[4]。
MapReduce是一種可用于數(shù)據(jù)處理的編程模型,其分為Map和Reduce兩個處理階段,Map就是把一個任務分解成多個任務,reduce就是將分解后的多個任務處理的結果匯總起來,得出最后的結果。對于擁有海量處理信息的任務來說,分布式系統(tǒng)中機器群看做硬件資源池,它將任務拆分成多個相同的任務,然后交給集群上的機器去處理,這樣做能夠極大地提高計算效率。
本實驗構建的hadoop環(huán)境(如圖1)是由一臺內存為4G處理器為Intel Core I3 M 390@2.67HZ的普通機通過虛擬機技術構建出1個Namenode和3個datanode的集群環(huán)境,其中其服務器環(huán)境為Linux Ubuntu 11.04,開發(fā)環(huán)境為 window 7 ,云端軟件采用 hadoop 0.20.1 進行環(huán)境架構。
通過測繪原始的DEM數(shù)據(jù)就是基礎txt文本數(shù)據(jù),數(shù)據(jù)為每個采樣點一行,依次下去符合hadoop數(shù)據(jù)的逐行讀取形式。本實驗的數(shù)據(jù)來自某地的3000mx3000m范圍的數(shù)據(jù)。
分別取出離散點的最大或最小X和Y值,建立單個格網(wǎng)大小為10mx10m,則每個分割的區(qū)域的格網(wǎng)數(shù)為10000個,總共的格網(wǎng)數(shù)大約為10000*n(n為HDFS的塊的數(shù)目,在本實驗中其值為3)。
圖1 hadoop集群框架圖
本實驗根據(jù)離散的高程,通過IDW(距離加權內插)求任意一格網(wǎng)點P(x,y)的高程值Z(x,y)。因離散點與P點因分布位置的差異,對P影響不同,以Wi來代表這種影響。
因此本實驗根據(jù)IDW公式結合MapReduce設計了DEM建立的核心算法代碼如下:
圖2 DEM建模測試
圖3 10mx10m的部分DEM結果圖
實驗中設計了在同樣的IDW算法下,測試上述hadoop(擁有3個datanode)完全分布模式下和基于單機下DEM格網(wǎng)的建模時間隨數(shù)據(jù)量的變化圖,結果如圖2。
從圖2中可以看出對于在一定數(shù)據(jù)量下單機模式下DEM建模的所需的時間要小于3個datanode的hadoop集群所需的時間,隨著DEM數(shù)據(jù)量的增大(并保證每個塊的大小于64M),集群處理的所需的時間漸漸高于單機模式所需時間。
在進行Mapduce運算時對于小量DEM數(shù)據(jù)的計算能力默認是按塊來分配Map任務的,且在數(shù)據(jù)在處理后在不同的datanode上需要一定的網(wǎng)絡傳輸將結果顯示到開發(fā)端的window上。所以DEM建模的時間在DEM數(shù)據(jù)達到一定量的時候才顯現(xiàn)出單機上處理的大數(shù)據(jù)集的無法達到的優(yōu)勢。
[1]葉海建 .DEM生成效率的分析[J].中國農(nóng)業(yè)大學學報,北京:1999,4(6):81-84.
[2]張治木,蔡寅峰.基于TIN和格網(wǎng)的DEM表面建模的比較[J].銅業(yè)工程,2005(2):8-10.
[3]向小軍,高陽,商琳,等.基于Hadoop平臺的海量文本分類的并行化[J].計算機科學,2011,38(10):184-188.
[4]多雪松,張晶,高強.基于Hadoop的海量數(shù)據(jù)管理系統(tǒng)[J].微計算機信息,2010,26(5-1):202-204.
[5]黃先鋒,孫巖標,張帆.多核計算環(huán)境下的LiDAR數(shù)據(jù)DEM內插方法研究.山東科技大學學報:自然科學版,青島:2011,30(1):1-6.
[6]呂建峰,劉定生,焦偉利,等.DEM生成算法并行化研究[J].中國圖象圖形學報,2002,7(5):506-512.
[7]楊代慶,張智雄.基于Hadoop的海量共現(xiàn)矩陣生成方法[J].現(xiàn)代圖書情報技術,北京:2009(4):23-26.