APP下载

基于Arcgis Engine的立体灾害地质图生成方法研究

2009-01-18王丹丹

企业技术开发·中旬刊 2009年10期

刘 凯 王丹丹

摘要:灾害地质图是正确认识研究区域内地质灾害现象的一种重要手段。文章提出一种立体地质灾害图的生成方法,并在Arcgis Engine平台基础上使用C#编程语言开发出系统原型。利用TIN表面模型将不同来源、不同格式的数据集成叠加在一起,生成逼真的三维灾害地质视图,为在三维可视化框架下开展地质灾害的深入研究奠定了基础。

关键词:Arcgis Engine;TIN;灾害地质图

中图分类号:P208 文献标识码:A文章编号:1006-8937(2009)20-0086-02

灾害地质图是一种专业地质图件,是展示区域稳定性及地质灾害分布、控制因素、诱发因素和地质灾害的危害对象等信息的图种,重点在揭示地质灾害的分布规律和成生条件,以达到空间预测和防灾减灾的目的。传统灾害地质图是以二维平面图的方式来描述现实世界中的地质灾害现象,但是将三维事物以二维的方式来表示,具有很大的局限性,不能精确地反映、分析和显示有关信息,致使大量的三维甚至多维空间信息无法加以充分利用。随着研究和应用的深入,对三维立体灾害地质图的需求越来越迫切。三维可视化提高了解释的效率、精度和完整性,有利于不同学科、不同专业研究人员之间的沟通。文章探讨了利用大比例尺基础地理遥感影像、等高线及二维地质灾害空间数据,将地表灾害地质图展示成三维立体状态的方法,在将C#与Arcgis Engine相结合以发掘其在地学信息系统三维可视化应用中的潜力方面做了一些尝试性的工作。

1Arcgis Engine中的三维开发组件

1.1基于组件技术的Arcgis Engine开发工具包

Arcgis Engine是开发人员用于建立自定义应用程序的嵌入式地理信息系统(GIS)组件的一个完整类库。开发人员可以使用Arcgis Engine将GIS功能嵌入到现有的应用程序中,也可以建立能提供给众多用户的自定义高级GIS应用程序。Arcgis Engine由一个软件开发工具包(SDK)和一个为所有Arcgis应用程序提供平台的运行时(Runtime)组成。Arcgis Engine开发工具包是一个基于组件的软件开发产品,它提供了一系列嵌入式、应用于Arcgis Desktop应用程序框架之外的Arcgis可视化组件。用组件开发出的应用程序与传统的应用程序很不相同,每一个组件都是一个微小的应用程序。这样,单一整体的应用程序就不再存在,它被多个定制的组件所取代,多个组件在运行时相互链接形成一个完整的应用程序。组件结构最引人注目的优点是快速应用开发。我们可以从Arcgis Engine开发工具包中取出所需的组件,将其快速地组装在一起,构造成所需要的应用程序。这种开发方法一方面能将复杂的技术细节封装起来从而简化代码的编写,另一方面,它的代码执行速度快,占用内存小。

1.2三维开发组件SceneControl

为了能够快速构建一个具有GIS功能的独立应用程序,Arcgis Engine开发工具包给开发者提供了多个可视化的组件,如SceneControl、MapControl、TocControl、ToolbarControl和GlobeControl等,在本方法中,我们主要使用SceneControl组件。SceneControl组件对应于ArcGIS桌面应用程序产品ArcScene中的“场景”视图。ArcScene是ArcGIS三维分析模块3D Analyst所提供的一个三维场景工具,它可以更加高效地管理三维GIS数据、进行三维分析、创建三维要素以及建立具有三维场景属性的图层。SceneControl组件较好地封装了三维显示的技术细节,使用它可以方便地构建三维场景,开发人员使用它可以开发出高效可视化和分析表面数据的应用程序。在程序中,用户能够从多个视点查看表面、查询表面、确定表面上被选位置的可视区域和通过在表面上叠加栅格和矢量数据显示逼真的透视影像。

2生成立体灾害地质图的技术路线(如图1)

2.1根据等高线生成TIN表面模型

等高线地图是用二维平面表示三维地形的重要工具,等高线是地图学中最常用的地理要素,是地理信息系统中最基础的数。利用等高线进行三维地形建模与可视化应用近年来已成为地学信息系统的研究热点,其目标就是使地形特征和地学信息表现得更加直观,生成高真实感的三维立体图形。

表面是一个连续的值域,其变化可能涉及无数个点。这些值可以在三维的X、Y、Z坐标系统中用Z轴进行表示,所以通常被称之为Z值。表面模型通过对表面上不同位置的点进行采样,进而对采样点进行插值,对表面进行模拟和近似的拟合。通常使用两种表面模型:TIN模型和格网(栅格)模型。在三维建模和分析中,与规则格网数据模型相比,TIN模型在某一特定分辨率下能用更少的空间和时间更精确地表示更加复杂的表面,且表面唯一。

利用已得到shape格式等高线数据,通过在创建TIN表面对话框中选择等高线图层、含有高程数据的属性字段和TIN类型来生成TIN表面。在本方法中,供选择的TIN表面有点、直线和光滑线三种类型,它们都是由Arcgis Engine开发包提供的。由此生成的TIN表面如图2所示。

2.2设置遥感影像与地质灾害矢量数据的基准高程

数据在三维场景中立体显示的先决条件是必须以某种方式赋予高程值或其本身具有高程信息,这样的高程值或者高程信息叫做基准高程。具有三维几何的要素,在其属性中存储有高程值,可以直接使用其要素几何中或属性中的高程值,实现三维显示。例如文章中的等高线shape文件,其属性字段中就存储有高程数据。对缺少高程值的要素,可以通过叠加方式在三维场景中显示。所谓叠加,即将要素所在区域的表面模型的值作为要素的高程值。例如文章中的基础地理遥感影像数据和地质灾害矢量数据,就需要将所在区域TIN表面的值作为高程值对其做立体显示。设置基准高程后的地质灾害数据如图3所示。

2.3图层的叠加显示

设置了基准高程的基础地理遥感影像和地质灾害矢量数据进行叠加后(如图4所示),才能完成制作立体灾害地质图。在实现要素或者表面的三维可视化时,有一个重要的数据处理方面的问题需要注意,就是添加到场景中的图层必须具有统一的坐标系统才能正确显示。如果场景中要显示的数据都处于统一的坐标系统之下,则直接将数据添加显示即可,不需考虑图层的叠加是否正确。在设置了基准高程后,系统自动完成图层的叠加显示。否则,添加到场景中的图层就不能够正确地叠加在一起,而呈“孤立分离”状态。文章中所使用的数据,都经过了配准,空间校正和设置坐标系统等数据处理工作,是符合本方法要求的合格数据。

3结 语

与二维平面灾害地质图比较,三维立体灾害地质图使研究区域内的地形、地貌特征表现的更加生动、直观,对灾害体的位置、范围等信息表现的更加准确、清晰,并且可以对视图进行动态、多角度、多尺度的观察。当然,灾害地质图的最终目的是为了帮助人们有效地防灾减灾,避免损失,立体灾害地质图为此提供了更加有利的研究手段,但是如何在此基础上进行分析挖掘,例如模拟地质灾害发生过程,划定地质灾害影响范围,开展地质灾害危险性评价等,还需要进一步的研究探索。

参考文献:

[1] 汤国安,杨昕.ArcGIS地理信息系统空间分析实验教程[M].北京:科学出版社,2006.

[2] 徐立明,牛新生.地质体三维可视化模拟的现状与展望[J].西南民族大学学报(自然科学版),2006,32(1):151-154.

[2] 吴信才.地理信息系统原理与方法[M].北京:电子工业出版社,2002.

[3] 孙怡,杨宜进.地理信息系统中的三维可视化方法[J].吉林大学学报(信息科学版),2003,21(5):80-83.

[4] 刘坤良,朱莉.基于等高线的三维地形造型和可视化技术研究[J].现代计算机,2003,(173):25-28.

[5] 曾闽山,彭苏萍等.基于TIN的三维地质模型栅状图的可视化方法研究[J].微计算机信息,2006,22(3):286-289.