張 翔,王方雄
(1.遼寧師范大學 遼寧省自然地理與空間信息科學重點實驗室,遼寧 大連 116029;2.遼寧師范大學 城市與環(huán)境學院,遼寧 大連 116029)
數(shù)字高程模型(DEM)本身含有豐富的地形特征和結(jié)構(gòu)信息,這些信息從不同的側(cè)面刻畫了地形地貌的本質(zhì)特征,如果把這些信息再次和DEM本身進行融合,即可實現(xiàn)不需要借助任何外部數(shù)據(jù)的DEM地形可視化自增強[1],為用戶提供更加直觀、準確、精細的地形認知,增強DEM的地形可視化效果。DEM地形可視化自增強是將數(shù)字地形分析(DTA)[2]的解譯結(jié)果(如坡度、坡向、曲率、變率等)與等高線、地形暈渲等進行有效融合,凸顯不同地形特征和細節(jié),實現(xiàn)同時具備可量測性和直觀性的3維地形信息表達方法。本文基于Visual C#.NET開發(fā)平臺與ArcEngine組件技術(shù)來探索DEM地形可視化自增強方法,研究集準確性與靈活性于一體的DEM地形可視化自增強實現(xiàn)技術(shù)。
DEM地形可視化自增強方法的總體流程如圖1所示,分為提取坡面因子、生成暈渲圖和融合顯示3個步驟。首先通過DTA技術(shù)對DEM表面進行分析,提取坡度、坡向、曲率、變率等坡面因子模型,然后利用暈渲技術(shù)分別對坡面因子模型和原始DEM進行處理,得到DEM暈渲模型(光照模擬暈渲和彩色分區(qū)暈渲模型),最后通過融合技術(shù)調(diào)整DEM暈渲模型的透明度,從而形成具有更強立體感、易于地形信息認知的3維地形可視化模型。
圖1 DEM地形可視化自增強總體流程圖
DEM地形可視化自增強方法采用Visual C#.NET開發(fā)平臺與ArcEngine組件技術(shù)[3-5]進行開發(fā),通過使用ISurfaceOp、IRasterDataset、IAlgorithmicColorRamp、IExport等主要接口完成。其中,提取有效的坡面因子是該方法的關(guān)鍵。按照坡面因子所描述的空間區(qū)域范圍,可以將坡面因子劃分為微觀坡面因子與宏觀坡面因子2種基本類型[6],DEM地形可視化自增強主要針對微觀坡面因子進行提取。常用的微觀坡面因子有:坡度、坡向、坡度變率、坡向變率、剖面曲率、平面曲率等。由于坡度、坡向因子的提取是變率計算方法中的一部分,因此本文主要對基于坡度變率、坡向變率、剖面曲率和平面曲率的DEM地形可視化自增強方法作詳細介紹。這4個坡面因子的計算公式如表1所示。
在DEM地形可視化自增強中,DTA技術(shù)主要用于完成變率因子和曲率因子的提取。利用ArcEngine提供的坡度計算、坡向計算和柵格運算等相關(guān)接口,結(jié)合變率和曲率的計算公式來實現(xiàn)。
根據(jù)坡度變率和坡向變率計算公式,變率因子提取的關(guān)鍵在于坡度和坡向的計算方法。DEM 是地形曲面的微分模擬,算法設計必然存在各種各樣的假設,不同假設和前提導致不同的坡度坡向計算模型和結(jié)果,但對地形特征的可視化和地形分類影響不大[7]。DEM可視化增強是地形特征可視化的一種,為了計算方便,本文直接采用ArcGIS提供的3階反距離平方權(quán)差分法計算。
?
坡度變率提取的實質(zhì)是對原有DEM進行2次坡度計算,生成坡度變率模型。先利用IRasterDataset接口獲取DEM數(shù)據(jù),然后調(diào)用ISurfaceOp接口的Slope()方法計算坡度,將結(jié)果保存于IGeoDataset接口對象中,作為再次調(diào)用Slope()方法的輸入?yún)?shù),最后利用IRasterBandCollection接口的SaveAs()方法,根據(jù)該方法的參數(shù)保存坡度圖到指定工作空間。
坡向變率提取過程主要涉及坡度計算、坡向計算和柵格運算。首先將DEM數(shù)據(jù)賦到IRasterDataset接口對象中,使用BindRaster方法為IRasterDataset綁定一個名為“DEM”的特征標記,以ImapAlgebraOp接口中Execute方法作為主要函數(shù),向其中傳入柵格計算公式“0-[DEM]”,借助IRasterBandCollection接口中SaveAs()方法導出-DEM。然后參照計算公式調(diào)用Slope()方法和Aspect()方法對DEM和-DEM進行處理得到SOA1和SOA2。再次執(zhí)行柵格計算代碼,使用BindRaster方法為IRasterDataset綁定一個名為“SOA1”和“SOA2”的特征標記,向Execute方法中傳入柵格計算公式,最后借助IRasterBandCollection接口中SaveAs方法導出最終計算結(jié)果SOA。
變率因子提取的關(guān)鍵代碼如下:
//坡度計算
IGeoDataset pOutputRaster = pSurfaceOp.Slope(DEM, slopeType, ref zFactor);
//坡向計算
IGeoDataset pOutputRaster = pSurfaceOp.Aspect(DEM,slopeType, ref zFactor);
//柵格計算
IMapAlgebraOp pRsalgebra=new RasterMap AlgebraOpClass();
pRsalgebra.BindRaster(pGeoDT1, SOA1);
pRsalgebra.BindRaster(pGeoDT1, SOA2);
IGeoDataset pOutGeoDT = pRsalgebra.Execute(“([SOA1]+[SOA2]-Abs([SOA1]-[SOA2]))/2”)
平面曲率和剖面曲率的提取使用同一接口方法來實現(xiàn),即ISurfaceOp接口的Curvature()方法。Curvature()方法含有3個參數(shù),通過后2個參數(shù)來區(qū)分平面曲率和剖面曲率,若為平面曲率則將第2個參數(shù)設為false,第3個參數(shù)設為ture,反之則為剖面曲率。首先利用IRasterDataset接口獲取DEM數(shù)據(jù),然后調(diào)用Curvature()方法并傳入相應參數(shù)計算曲率,最后利用IRasterBandCollection接口的SaveAs()方法,根據(jù)該方法的參數(shù)保存坡度圖到指定工作空間。關(guān)鍵實現(xiàn)代碼如下:
IGeoDataset DEM = pRasterDataset as IGeoDataset;
//平面曲率
IGeoDataset pOutputRaster = pSurfaceOp.Curvature(DEM, false,ture);
outRasterName += ".tif";
IRaster pOutRaster = pOutputRaster as IRaster;
IRasterBandCollection rasterBandCollection =pOutRaster as IRasterBandCollection;
rasterBandCollection.SaveAs(outRasterName,outWorkspace, "TIFF");
暈渲技術(shù)和融合技術(shù)的實現(xiàn)是富含技術(shù)與藝術(shù)的過程,主觀的選擇與調(diào)整對實現(xiàn)結(jié)果有很大影響,實現(xiàn)的關(guān)鍵在于如何完成藝術(shù)與精度的完美結(jié)合,有效地凸顯所要表達的地物信息。暈渲技術(shù)分為光照模擬暈渲和彩色分區(qū)暈渲2種,前者的目的在于逼真呈現(xiàn)地形起伏效果,使地形圖具有立體感;后者不僅可以對DEM模型,也可以對坡面因子模型進行暈渲,其目的在于直觀再現(xiàn)地形的空間分異。融合技術(shù)的目的在于將坡面因子模型和DEM暈渲模型進行完美結(jié)合,生成DEM地形可視化自增強圖。
光照模擬暈渲使用ISurfaceOp接口的HillShade()方法,通過設置azimuth和altitude參 數(shù)來調(diào)整太陽高度角和太陽方位角。彩色分區(qū)暈渲通過IAlgorithmicColorRamp接口選擇合適色帶,最后利用IRasterRenderer接口完成渲染。融合技術(shù)通過ILayerEffects接口的Transparency()方法調(diào)整透明度,在SceneControl控件中顯示融合效果,最后利用IExport接口導出最終可視化自增強圖。由于區(qū)域、地形的不同,融合參數(shù)也大不相同。以某區(qū)域為例,分別設置太陽高度角、太陽方位角為315°、30°,設置坡面因子彩色分區(qū)暈渲模型、光照模擬暈渲模型的透明度為50、0,最終DEM地形可視化自增強圖如圖2所示。
圖2 DEM地形可視化自增強圖
本文介紹了DEM地形可視化自增強的方法,以提取坡面因子、生成暈渲圖和融合顯示為總體流程,根據(jù)坡度變率、坡向變率、剖面曲率和平面曲率4個坡面因子的計算公式,借助C#開發(fā)語言和ArcEngine開發(fā)工具完成了DTA技術(shù)、暈渲技術(shù)和融合技術(shù),形成具有更強立體感、易于地形信息認知的3維地形可視化模型,最終實現(xiàn)了集準確性、可測量性、直觀性和靈活性于一體的DEM地形可視化自增強實現(xiàn)技術(shù)。
關(guān)于DEM地形可視化自增強,除本文提到的靜態(tài)自增強技術(shù)以外,還有動態(tài)自增強技術(shù),如動態(tài)漫游技術(shù)、動態(tài)顯示技術(shù)等,這方面還有待進一步研究與深化。
[1]王春,王占宏,李鵬,等.DEM地形可視化自增強技術(shù)[J].地理信息世界,2009,2(1):39-45
[2]Wilson J P, Gallant J C.Digital Terrain Analysis[J].Terrain Analysis: Principles and Applications, 2000,6(12): 1-27
[3]王方雄,馬少君.基于ArcEngine的三維地形可視化系統(tǒng)設計與實現(xiàn)[J].地理空間信息,2011,9(3):38-40
[4]ESRI.Building a Geodatabase[M].USA:ESRI Press, 2004
[5]Booth B, Using ArcGIS 3D Analyst[M].USA: ESRI Press,2001
[6]楊昕, 湯國安, 劉學軍, 等.數(shù)字地形分析的理論, 方法與應用[J].地理學報, 2009, 64(9): 1 058-1 070
[7]劉學軍.基于規(guī)則格網(wǎng)數(shù)字高程模型解譯算法誤差分析與評價[D].武漢: 武漢大學, 2002