楊 博,楚要欽,施辰光
(中國航空工業(yè)集團公司西安航空計算技術研究所,陜西 西安 710065)
隨著地理信息系統(tǒng)(Geographic Information System, GIS)的快速發(fā)展,數字地圖的應用越來越廣泛,包含的信息量越來越巨大。數字地圖是地形、建筑物等地面要素的準確坐標和其它屬性的離散數據集[1]。它以GIS巨大的數據庫作為基礎,如今在計算機、手機上可以呈現出越來越精細、準確的顯示結果,并且如果使用統(tǒng)一的數字地圖格式,可以很方便地對數字地圖進行組合以生成新的地圖。數字地圖具有多種數據格式,主要可以分為兩大類:矢量型數字地圖和柵格型數字地圖[2]。其中,柵格型數字地圖以數字高程模型(Digital Elevation Model, DEM)為代表,應用的最多也最為重要,是最主要的數字地圖形式。從檢索國內外地形建模的相關文獻來看,目前可將地形建模方法大致分為三類[3]:
1)以DEM數據為基礎,構建一系列網格元面片逼近起伏地形,網格元面片以三角形或正方形為主;
2)使用遞歸算法,從而可以用簡單的規(guī)則來生成相對復雜的地形模型;
3)使用二次曲面、三次曲面和樣條曲面等對起伏地形進行擬合。
其中,后兩種方法計算量較大,第一種方法用的最多。本文采用第一種方法完成了對起伏地形的三維建模。
地形的起伏特征是研究山川、丘陵等地區(qū)交通、通信等方面需要考慮的重要因素。數字高程模型是研究地形起伏特征的重要基礎數據,可以非常方便準確地表示不規(guī)則地形的起伏特征。數字高程模型也是研究地形起伏特征最主要的工具和方法[4]。它的核心思想是:無論地形的起伏程度及大小如何,都可以將該片地形分成很多小區(qū)域,通過每一個小區(qū)域的高度信息來表示該小區(qū)域的起伏特性,從而得到整片地形的起伏特征。
數字高程模型是通過一系列按照一定順序排列存放的地形離散高度值,來表示地形起伏信息的數據模型[5]。這些有序的離散高度值又稱為地形高程值,表達出了地形的起伏程度,用數學形式描述為:
Vi=(Xi,Yi,Zi).
(1)
其中,(Xi,Yi)是二維坐標信息;Zi是(Xi,Yi)相對應的高程值。
以數據格式作為劃分依據,數字高程模型主要可以分為規(guī)則網格(Grid)模型和不規(guī)則三角網格(TIN)模型[6]。規(guī)則網格數字高程模型是將起伏地形曲面用一系列正方形規(guī)則格網單元進行劃分,每個正方形規(guī)則格網單元有一個高程值Z與之相對應,將這些高程值Z沿著X方形和Y方向等間隔排列,即可得到該地形的規(guī)則網格數字高程模型,其數學表達式為:
DEM={Zi,j}(i=1,2,...m;j=1,2,...n).
(2)
規(guī)則網格數字高程模型在數據存儲時可以省去大量的X,Y坐標,因為它的地形高程值是按照固定的間隔順序排列的,因此它的數據格式只包括了地形X,Y坐標的起始值、數字高程模型精度、以及所有地形點的高程值即可。數字高程模型精度即采用的規(guī)則網格單元的步長。規(guī)則網格模型的數據格式相對簡單,存儲地形數據時比較容易進行數據處理和三維建模,是數字高程模型最廣泛使用的格式。它的缺點是對于地形細節(jié)不能非常準確地表示,需要通過插值等方法附加地形特征數據,且數字高程精度太高會導致數據量過大。
不規(guī)則三角網格模型是另一種常用格式的數字高程模型。上文介紹的規(guī)則網格數字高程模型雖然具有數據格式簡單易處理等優(yōu)勢,但是也存在缺點:在地形平坦區(qū)域會存在數據冗余,而在地形復雜區(qū)域可能不能完全準確表達地形起伏特征。不規(guī)則三角網格數字高程模型是將地形高程點的三維坐標用線段相連而形成一個個緊密相連的三角形,這些三角形根據地形的平緩陡峭不同,其大小、形狀、疏密均不同,但是可以無重疊布滿整個地形。因此,不規(guī)則三角網格模型的優(yōu)勢是采用了不同分辨率表示不同的地貌特征,在地形較平坦處,可以采用低分辨率模型,在地形起伏劇烈區(qū)域,可以采用高分辨率來表示,地形地貌的存儲較為精準。缺點是存儲結構復雜,高程值提取計算量大。因為它的數據結構不僅要包括各個地形高程點的三維坐標,還要包含各個高程點連接的拓撲狀況以及三角形的鄰接關系等信息。
本文基于規(guī)則網格數字高程模型數據對地形進行建模,圖1是本文采用的規(guī)則網格數字高程模型數據格式存儲示意圖。Step表示數字高程模型精度,即每個小正方形邊長,數據存儲時先按照從左列到右列、再按照由下行往上行的順序,依次有序存儲每個小正方形網格中心點上的高程值。
圖1 數據存儲格式示意圖
這里以一片12 km×12 km大小區(qū)域的起伏地形數字高程模型數據文件為例具體介紹本文使用的數據格式,數字高程模型數據如下,第一行數據為頭信息行,包含該片地形數字高程模型的二維坐標和精度等信息,其余行是地形具體高程值。具體來看第一行:第一個值0為X方向坐標起始,第二個值12000為X方向坐標結束,第三個值0為Y方向坐標起始,第四個值12000為Y方向坐標結束,第五個值120為數字高程模型精度,即網格大小,第六個值100為X方向的網格數量,第七個數據100為Y方向網格數量,從第二行開始為高程數據,高程值的排列順序是先按X軸由左往右排列,再按Y軸正方向排列。坐標、精度和高程值的單位均為米。
0 12000 0 12000 120 100 100
2.9 3.0 3.1 3.2 3.3 3.4 3.5
3.6 3.7 3.7 3.8 3.9 3.9 3.9
4.0 4.0 4.0 4.0 4.0 4.0 4.0
3.9 3.9 3.8 3.8 3.7 3.6 3.5
3.5...
利用Matlab讀取上述高程文件數據信息,建立的地形的三維模型如圖2和圖3所示。
圖2 地形三維模型圖
圖3 地形數字高程模型
文章主要研究了基于數字高程模型的起伏地形建模方法,首先介紹了主要的地形建模方法,接著對數字高程模型的數據格式進行了分析,包括規(guī)則網格模型和不規(guī)則三角網絡模型,然后對基于規(guī)則網格數字高程模型的地形建模技術進行了研究。完成了基于規(guī)則網格數字高程模型的地形幾何建模工作。本文給出的地形建模方法數據格式簡單易處理、數據量小、建??焖贉蚀_,可以為復雜地理環(huán)境下的交通、通信等研究提供重要的地形模型支持。