胡 娟(湖南省国土资源信息中心,长沙 410000)
基于AO的秦淮河流域地形三维建模方法
胡 娟
(湖南省国土资源信息中心,长沙 410000)
摘 要:三维地形建模是实现流域仿真模拟的基础工作,快速智能地生成三维地形则是地形建模的关键技术。本文结合秦淮河流域地形模拟,利用AO和Visual Basic 6.0,编程实现三维数据的基本操作、数据加载、由点数据构TIN以及由TIN生成等高线。
关键词:ArcObjiects;三维建模;秦淮河流域
1998年戈尔提出“数字地球”的概念,各国政府和科学界都对此产生了浓厚的兴趣,接着一系列的名词如“数字国土”、“数字流域”等概念也随之产生[1]。数字流域的整体框架可分为三层:数据层、模型层和应用层。其中数据层的建设在我国已经初具规模;模型层中对分布式模型的研究较多,基于数字高程模型提取河网的技术已经比较成熟,在国内外许多小流域都建立了分布式水文模型;应用层由于缺乏全流域整体模型的支撑,目前的研究主要是提供数据服务以及一些专题的决策支持服务[2]。
秦淮河位于江苏省西南部,流域面积为2631km2,流域四周环山,东部为茅山山脉,北部为宁镇山系,南部有浮山、东芦山等,西部有云台山、牛首山等;山下均为丘陵地带,延伸与流域内平原圩区相连,地形降落坡度较大。依据不同的地形地貌和水文特性,秦淮河流域可以概化为两部分,山丘区和圩区[3]。
随着计算机软件技术的发展,GIS 组件化发展到了一个全新的阶段,出现了组件式GIS。ESRI 和MapInfo 分别推出了ArcObjects 和MapX。国产组件式GIS 软件-SuperMap 已经在“南宁市土地信息系统”、“香港之窗”等系统中成功应用,得到实践检验[4]。
ArcObjects是ESRI公司的ArcGIS家族中应用程序ArcMap、ArcCatalog和ArcScene的开发平台,开发人员可以在AO组件对象的基础上开发出适应用户需求的各种系统。本系统中主要使用了AOb组件中的ArcScene、TIN等对象,采用的VB语言(需在Reference中将需要的对象库文件参考进系统,如ESRI ArcScene Object Library、ESRI 3DAnalyst Object Library等)。
2.1 数据准备
为了能呈现秦淮河流域的地形特点,以及其流域景观,需要把地形数据和矢量的景观数据叠加。为了使地形起伏明显和达到良好的视觉效果,还要对TIN数据进行拉伸和渲染等操作;另外,准备好由点构成TIN的试验数据,即点Shapefile文件:Tin_Node;以及由TIN来生成等高线的TIN数据集:QHH_TIN。
2.2 三维显示
通过引用ArcObjects中的组件数据库,设置控件属性就可以实现对三维文档的加载。本建模功能中主要采用了ESRI SceneControl,ESRI TOCControl,和ESRI ToolbarControl这三个控件。
由点数据构成TIN: 该功能可以将输入的带有高程信息的点自动生成不规则三角网。
首 先 构TIN的 范 围:Dim pEnv As IEnvelope Set pEnv = pGeodataset.Extent
再定义高程字段:Dim pFld As IField Dim index As Integer
index = pTinFeatCls.Fields.FindField(strFldName)
Set pFld = pTinFeatCls.Fields.Field(index)
最后主要是需通过ITinEdit来实现TIN的初始化:Dim pTinEdit As ITinEdit
Set pTinEdit = New TIN pTinEdit.InitNew pEnv
pTinEdit.AddFromFeatureClass pTinFeatCls,Nothing,pFld,Nothing, esriTinMassPoint
当系统出现“TIN构建完成!”的提示后,打开结果数据,可以看见TIN的完成情况。
由TIN数据生成等高线:该功能可以将打开的TIN数据自动生成等高线。
首先利用TIN的空间参考作为等值线Shapefile的空间参考,需要用到以下接口:
Dim pSpatialRef As ISpatialReference Dim pTinSurf As ITinSurface
Dim pFeatCls As IFeatureClass Set pSpatialRef = pGeoDS. SpatialReference
Set pTinSurf = pTin
Set pFeatCls = CreateShapefile(strPath,strName,pSpatialRef)
pTinSurf.Contour FormatNumber(txtBase.Text), FormatNumber(txtInterval.Text), pFeatCls, "Height", 2(利用已经获取的信息创建等高线)
当系统出现"等值线构建完成!"的提示后,打开结果数据,可以看见等高线的完成情况。
三维可视化的研究是目前很多领域的研究热点,而地形是人类社会赖以生存并从事一切实践活动的根基,它是人们对自身生存环境认识和表示的基础。因此,对地形三维可视化的研究更是三维研究中的重点。由于独立开发难度太大,本系统以ESRI公司的ArcObjects组件作为开发工具,结合可视化开发语言,高效、方便地开发出了地形三维可视化分析系统。整个系统小巧稳定、可靠性好、易于移植、便于维护。
参考文献:
[1]李壁成,李世华,闫慧敏.数字流域三维地形景观构建的研究[J].水土保持研究,2005,12(03):112-114.
[2]刘家宏,王光谦,王开.数字流域研究综述[J].水利学报,2006,37(02):240-246.
[3]王倩,邹欣庆,朱大奎.基于GIS技术的秦淮河流域水系分维研究[J].水科学进展,2002,13(06):751-756.
[4]ArcGIS Engine 应用程序开发.河海大学水文水资源学院地理信息科学系,2007:22-28.