基于ArcEngine的DEM地形可视化自增强方法与实现
2014-02-19王方雄
张 翔,王方雄
(1.辽宁师范大学 辽宁省自然地理与空间信息科学重点实验室,辽宁 大连 116029;2.辽宁师范大学 城市与环境学院,辽宁 大连 116029)
数字高程模型(DEM)本身含有丰富的地形特征和结构信息,这些信息从不同的侧面刻画了地形地貌的本质特征,如果把这些信息再次和DEM本身进行融合,即可实现不需要借助任何外部数据的DEM地形可视化自增强[1],为用户提供更加直观、准确、精细的地形认知,增强DEM的地形可视化效果。DEM地形可视化自增强是将数字地形分析(DTA)[2]的解译结果(如坡度、坡向、曲率、变率等)与等高线、地形晕渲等进行有效融合,凸显不同地形特征和细节,实现同时具备可量测性和直观性的3维地形信息表达方法。本文基于Visual C#.NET开发平台与ArcEngine组件技术来探索DEM地形可视化自增强方法,研究集准确性与灵活性于一体的DEM地形可视化自增强实现技术。
1 DEM地形可视化自增强方法
DEM地形可视化自增强方法的总体流程如图1所示,分为提取坡面因子、生成晕渲图和融合显示3个步骤。首先通过DTA技术对DEM表面进行分析,提取坡度、坡向、曲率、变率等坡面因子模型,然后利用晕渲技术分别对坡面因子模型和原始DEM进行处理,得到DEM晕渲模型(光照模拟晕渲和彩色分区晕渲模型),最后通过融合技术调整DEM晕渲模型的透明度,从而形成具有更强立体感、易于地形信息认知的3维地形可视化模型。
图1 DEM地形可视化自增强总体流程图
DEM地形可视化自增强方法采用Visual C#.NET开发平台与ArcEngine组件技术[3-5]进行开发,通过使用ISurfaceOp、IRasterDataset、IAlgorithmicColorRamp、IExport等主要接口完成。其中,提取有效的坡面因子是该方法的关键。按照坡面因子所描述的空间区域范围,可以将坡面因子划分为微观坡面因子与宏观坡面因子2种基本类型[6],DEM地形可视化自增强主要针对微观坡面因子进行提取。常用的微观坡面因子有:坡度、坡向、坡度变率、坡向变率、剖面曲率、平面曲率等。由于坡度、坡向因子的提取是变率计算方法中的一部分,因此本文主要对基于坡度变率、坡向变率、剖面曲率和平面曲率的DEM地形可视化自增强方法作详细介绍。这4个坡面因子的计算公式如表1所示。
2 DTA技术的实现
在DEM地形可视化自增强中,DTA技术主要用于完成变率因子和曲率因子的提取。利用ArcEngine提供的坡度计算、坡向计算和栅格运算等相关接口,结合变率和曲率的计算公式来实现。
2.1 变率因子提取
根据坡度变率和坡向变率计算公式,变率因子提取的关键在于坡度和坡向的计算方法。DEM 是地形曲面的微分模拟,算法设计必然存在各种各样的假设,不同假设和前提导致不同的坡度坡向计算模型和结果,但对地形特征的可视化和地形分类影响不大[7]。DEM可视化增强是地形特征可视化的一种,为了计算方便,本文直接采用ArcGIS提供的3阶反距离平方权差分法计算。
?
坡度变率提取的实质是对原有DEM进行2次坡度计算,生成坡度变率模型。先利用IRasterDataset接口获取DEM数据,然后调用ISurfaceOp接口的Slope()方法计算坡度,将结果保存于IGeoDataset接口对象中,作为再次调用Slope()方法的输入参数,最后利用IRasterBandCollection接口的SaveAs()方法,根据该方法的参数保存坡度图到指定工作空间。
坡向变率提取过程主要涉及坡度计算、坡向计算和栅格运算。首先将DEM数据赋到IRasterDataset接口对象中,使用BindRaster方法为IRasterDataset绑定一个名为“DEM”的特征标记,以ImapAlgebraOp接口中Execute方法作为主要函数,向其中传入栅格计算公式“0-[DEM]”,借助IRasterBandCollection接口中SaveAs()方法导出-DEM。然后参照计算公式调用Slope()方法和Aspect()方法对DEM和-DEM进行处理得到SOA1和SOA2。再次执行栅格计算代码,使用BindRaster方法为IRasterDataset绑定一个名为“SOA1”和“SOA2”的特征标记,向Execute方法中传入栅格计算公式,最后借助IRasterBandCollection接口中SaveAs方法导出最终计算结果SOA。
变率因子提取的关键代码如下:
//坡度计算
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”)
2.2 曲率因子提取
平面曲率和剖面曲率的提取使用同一接口方法来实现,即ISurfaceOp接口的Curvature()方法。Curvature()方法含有3个参数,通过后2个参数来区分平面曲率和剖面曲率,若为平面曲率则将第2个参数设为false,第3个参数设为ture,反之则为剖面曲率。首先利用IRasterDataset接口获取DEM数据,然后调用Curvature()方法并传入相应参数计算曲率,最后利用IRasterBandCollection接口的SaveAs()方法,根据该方法的参数保存坡度图到指定工作空间。关键实现代码如下:
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");
3 晕渲及融合技术的实现
晕渲技术和融合技术的实现是富含技术与艺术的过程,主观的选择与调整对实现结果有很大影响,实现的关键在于如何完成艺术与精度的完美结合,有效地凸显所要表达的地物信息。晕渲技术分为光照模拟晕渲和彩色分区晕渲2种,前者的目的在于逼真呈现地形起伏效果,使地形图具有立体感;后者不仅可以对DEM模型,也可以对坡面因子模型进行晕渲,其目的在于直观再现地形的空间分异。融合技术的目的在于将坡面因子模型和DEM晕渲模型进行完美结合,生成DEM地形可视化自增强图。
光照模拟晕渲使用ISurfaceOp接口的HillShade()方法,通过设置azimuth和altitude参 数来调整太阳高度角和太阳方位角。彩色分区晕渲通过IAlgorithmicColorRamp接口选择合适色带,最后利用IRasterRenderer接口完成渲染。融合技术通过ILayerEffects接口的Transparency()方法调整透明度,在SceneControl控件中显示融合效果,最后利用IExport接口导出最终可视化自增强图。由于区域、地形的不同,融合参数也大不相同。以某区域为例,分别设置太阳高度角、太阳方位角为315°、30°,设置坡面因子彩色分区晕渲模型、光照模拟晕渲模型的透明度为50、0,最终DEM地形可视化自增强图如图2所示。
图2 DEM地形可视化自增强图
4 结 语
本文介绍了DEM地形可视化自增强的方法,以提取坡面因子、生成晕渲图和融合显示为总体流程,根据坡度变率、坡向变率、剖面曲率和平面曲率4个坡面因子的计算公式,借助C#开发语言和ArcEngine开发工具完成了DTA技术、晕渲技术和融合技术,形成具有更强立体感、易于地形信息认知的3维地形可视化模型,最终实现了集准确性、可测量性、直观性和灵活性于一体的DEM地形可视化自增强实现技术。
关于DEM地形可视化自增强,除本文提到的静态自增强技术以外,还有动态自增强技术,如动态漫游技术、动态显示技术等,这方面还有待进一步研究与深化。
[1]王春,王占宏,李鹏,等.DEM地形可视化自增强技术[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的三维地形可视化系统设计与实现[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]杨昕, 汤国安, 刘学军, 等.数字地形分析的理论, 方法与应用[J].地理学报, 2009, 64(9): 1 058-1 070
[7]刘学军.基于规则格网数字高程模型解译算法误差分析与评价[D].武汉: 武汉大学, 2002