張 弓同,李四海,焦紅波,曲 輝
(國家海洋信息中心,天津300171)
LiDAR(激光雷達測量)是美國航天局(NASA)1970年開發的三維激光掃描測量技術,它通過位置、距離、角度等觀測直接獲取對象表面點三維坐標,直接獲取真實地表的高精度三維信息[1],已廣泛應用于道路工程、海岸線海島礁、特殊地形測繪、數字城市等領域,被認為是測量領域的又一次技術革命。
由于激光光束能夠接收多次回波,通過一定的數據后處理算法,可以有效地剔除植被的影響,獲得高精度數字高程模型(DEM)[2],與數字正射影像圖(DOM)疊加,可以快速獲得研究區域地面的三維信息。利用LiDAR產生的DEM,在三維城市建模、鐵路勘察設計、地形景觀的顯現等領域有很好的應用。在災害調查與環境監測中,可以迅速獲得災害現場的情況,對制定災害的預防及補救方法、災后評估等有著重要的意義[3]。
但是,由于LiDAR光束無法穿透水體,導致水體內部的激光點數量很少,因此在擬合數字高程模型等產品時,水面會出現空洞或崎嶇不平的現象,影響了數字高程模型等產品的使用效果。本文就水面置平問題展開研究。
目前,關于水面置平有不同的方法和技術。要解決這個問題,方法之一就是水體信息的提取。在國外,Brzank等分析了水體在LiDAR數據中所呈現出的特征,通過監督分類區分水體和濕泥地,提取水體和結構線[4]。在國內,王宗躍等采用雙層格網模式,基于LiDAR點云數據提取較窄的水體,并以朝向水體的邊界點作為擬合輪廓線的關鍵點提取更精確的輪廓線,取得較好的效果[5];張永軍等提出將LiDAR數據對水體的敏感性與航空影像的高分辨率特征相結合的水體自動提取方法,并用數學形態學的方法進行邊緣信息區域生長運算,最終獲得水體區域[6]。
本文以LiDAR激光點云數據為基礎,使用相鄰點旋轉角最小原理,對水體輪廓信息進行有效識別之后,再對水面進行合理的填充和置平處理,有效提高了數字高程模型等產品的應用效果。在數據處理中,筆者使用C#語言編程序實現。
在對LiDAR數據進行地面點提取時,首先要分析LiDAR數據的格式[7],實現讀寫。
首先提取LiDAR數據末次濾波的地面點,對LiDAR數據空白處考慮為水面點,提取基本的(x,y,z)坐標,生成ArcGIS文件,按照平面邊界點的旋轉角最小原理,提取水面和島嶼邊界,按照填補水面坐標點的方法轉成DEM,達到水面置平的目的。本文的島嶼指的是水面里的點集,可能是真實的島嶼或水里的地物。具體流程如圖1所示。
(1)提取數據整個邊界
對整個數據的邊界范圍進行提取,生成ArcGIS文件,對邊界進行編輯修改,得到自己感興趣部分的范圍。
(2)數據存儲方法
首先對激光點云分塊處理,本文采用等格網分割方法[8]對海量點云數據進行分塊處理。

圖1 算法流程
(3)水面和島嶼邊界提取方法
由于水面為空數據點,因此適當調整網格寬度在水面部分就會產生一個空數據網格。將所有為空數據網格組成一個集合,從集合中的第一個空網格開始,依照網格向左查找,直到網格內部不為空為止,如圖2所示。
在找到這個網格k后,取網格k內最右邊的點a0,從這一點開始,以角度為0°、旋轉半徑為r,順時針旋轉,遇到第一個點即為下一點a1,其旋轉角θ為最小值,如圖3所示。這是得到第一個點的方法。

圖3 第二個點的選擇方法
以后點的選取如圖4所示,以點am為圓心,按照am到am-1方向開始,依據選好的半徑r,沿著順時針的方向,遇到第一個點即為下一點am+1,其旋轉角θ為最小值。依次類推,得到一系列的點,每個水面構成一個點集,得到一個點集合,稱這個點集合就是一個水面或島嶼。

圖4 第m+1個點的選擇方法
(4)具體分析
對于當前得到的am點可能有以下幾種情況:
1)噪聲點:當找到一系列點后,當前點am在半徑為r的圓范圍內查找點時發現,除了am-1外無法找到其他的點,或都是已經找到的點,則稱am點為噪聲點,將am點刪除或另行處理。使用圖4所示方法可得到新的am點,依次找到水面的所有點。
2)水面點:按照步驟(3)方法得到水面范圍,將水面范圍內(不包括邊界)所有的點提取出來構成一個集合list1,然后從list1中找到坐標點x方向坐標最大的點b0,從b0開始,依次考慮是噪聲還是島嶼,一直做到list1中的點全部解決完為止。然后,對查找到的噪聲點和島嶼點分別處理。
3)島嶼點:使用步驟(3)算法,很容易得到島嶼的外圍。在得到島嶼點的集合并保存后,將島嶼內部及邊界所有的點從網格內部刪除,這樣就不影響島嶼所在的水面的第一個邊界點的選取,直到將所有的水面都畫出來為止。
4)邊界點:使用步驟(3)算法,如果遇到整個數據邊界,就要邊界加點依次畫出水面的外圍。
這樣就生成了水面和島嶼的ArcGIS文件,如圖5所示。
圖5中的ArcGIS文件是參考Esri發布的Shapefile Technical Description格式,只保存水面和島嶼點的x、y、z坐標(如圖6所示)。

圖5 含有噪聲點、島嶼點、水面點和邊界點生成的面文件

圖6 生成的水面島嶼文件
畫出水面和島嶼之后,實現水面內部的加點,要求所加點的z值與水面邊界點及其內部點的最小z值一致。由于LiDAR數據在水面部分會有少量的點返回,因此這樣得到的z值即為水面的高度。添加的點生成新的ArcGIS點文件。水面部分在輸出到DEM時水面部分z值相同,而且為水面所圍范圍的高度,保證了水面部分是平的,也就是達到水面置平的目的。
將原始LiDAR數據生成的ArcGIS文件(如圖7所示)與水面加點后生成的新的ArcGIS文件(如圖8所示)相比,很容易看出水面密集的加點效果。

圖7 原始的LiDAR數據

圖8 水面均勻加點后的數據
原始LiDAR數據構建TIN時水面崎嶇不平的狀況很明顯,如圖9所示。經過水面置平技術處理后構建TIN時水面部分已經平坦,而且加氧機也顯現出來了,說明水面置平效果很明顯,如圖10所示。

圖9 原始LiDAR數據生成的TIN

圖10 LiDAR數據處理后生成的TIN
原始LiDAR數據轉成DEM時水面有空洞現象,如圖11所示;水面置平處理后LiDAR數據轉成DEM時水面平坦,水面內部的加氧機很明顯,如圖12所示。可以從區域的遙感影像中看出實際的地形情況,可以看出水面置平效果很顯著,如圖13所示。

圖11原始LiDAR數據生成的DEM(有空洞)

圖12 LiDAR數據處理后生成的DEM

圖13 研究區域的遙感影像圖
本文使用的LiDAR數據為2006年12月21日海南省老高原地區沿海數據,中心經緯度為108.97°E、18.395°N,數據大小約為2.7 MB,范圍約為0.54 km×0.53 km,在此范圍內的水面展開研究,建立了一種LiDAR數據提取水面范圍的方法,通過將LiDAR數據資料應用到上述方法中,所得到的置平結果比沒有處理過的結果有明顯改進,表明了該水面置平方法的有效性。
[1] 周淑芳.基于機載雷達LIDAR與航空像片的單木樹高提取研究[D].哈爾濱:東北林業大學,2007.
[2] 張良,馬洪超,鄔建偉.聯合機載LIDAR數據和潮汐數據自動提取潮位線[J].遙感學報,2012,16(2):411-416.
[3] 賴旭東.機載激光雷達基礎原理與應用[M].北京:電子工業出版社,2010.
[4] BRZANK A,HEIPKE C,GOEPFERT J,et a1.Aspects of Generating Precise Digital Terrain Models in the Wadden Sea from LiDAR-water Classification and Structure Line Extraction[J].ISPRS Journal of Photogrammetry and Remote Sensing,2008(5):510-528.
[5] 王宗躍,馬洪超,徐宏根,等.基于LIDAR點云數據的水體輪廓線提取方法研究[J].武漢大學學報:信息科學版,2010,35(4):432-435.
[6] 張永軍,吳磊,林立文,等.基于LIDAR數據和航空影像的水體自動提取[J].武漢大學學報:信息科學版,2010,35(8):936-940.
[7] 劉春,姚銀銀,吳杭彬.機載激光掃描(LIDAR)標準數據格式(LAS)的分析與數據提取[J].遙感信息,2009(4):38-42.
[8] 劉昌軍,丁留謙,孫東亞,等.海量激光點云的分塊處理及植被自動過濾技術研究[C]∥第一屆全國激光雷達對地觀測高級技術研討會論文集.北京:[s.n.],2010.