胡 娟(湖南省國(guó)土資源信息中心,長(zhǎng)沙 410000)
基于AO的秦淮河流域地形三維建模方法
胡 娟
(湖南省國(guó)土資源信息中心,長(zhǎng)沙 410000)
摘 要:三維地形建模是實(shí)現(xiàn)流域仿真模擬的基礎(chǔ)工作,快速智能地生成三維地形則是地形建模的關(guān)鍵技術(shù)。本文結(jié)合秦淮河流域地形模擬,利用AO和Visual Basic 6.0,編程實(shí)現(xiàn)三維數(shù)據(jù)的基本操作、數(shù)據(jù)加載、由點(diǎn)數(shù)據(jù)構(gòu)TIN以及由TIN生成等高線。
關(guān)鍵詞:ArcObjiects;三維建模;秦淮河流域
1998年戈?duì)柼岢觥皵?shù)字地球”的概念,各國(guó)政府和科學(xué)界都對(duì)此產(chǎn)生了濃厚的興趣,接著一系列的名詞如“數(shù)字國(guó)土”、“數(shù)字流域”等概念也隨之產(chǎn)生[1]。數(shù)字流域的整體框架可分為三層:數(shù)據(jù)層、模型層和應(yīng)用層。其中數(shù)據(jù)層的建設(shè)在我國(guó)已經(jīng)初具規(guī)模;模型層中對(duì)分布式模型的研究較多,基于數(shù)字高程模型提取河網(wǎng)的技術(shù)已經(jīng)比較成熟,在國(guó)內(nèi)外許多小流域都建立了分布式水文模型;應(yīng)用層由于缺乏全流域整體模型的支撐,目前的研究主要是提供數(shù)據(jù)服務(wù)以及一些專題的決策支持服務(wù)[2]。
秦淮河位于江蘇省西南部,流域面積為2631km2,流域四周環(huán)山,東部為茅山山脈,北部為寧鎮(zhèn)山系,南部有浮山、東蘆山等,西部有云臺(tái)山、牛首山等;山下均為丘陵地帶,延伸與流域內(nèi)平原圩區(qū)相連,地形降落坡度較大。依據(jù)不同的地形地貌和水文特性,秦淮河流域可以概化為兩部分,山丘區(qū)和圩區(qū)[3]。
隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展,GIS 組件化發(fā)展到了一個(gè)全新的階段,出現(xiàn)了組件式GIS。ESRI 和MapInfo 分別推出了ArcObjects 和MapX。國(guó)產(chǎn)組件式GIS 軟件-SuperMap 已經(jīng)在“南寧市土地信息系統(tǒng)”、“香港之窗”等系統(tǒng)中成功應(yīng)用,得到實(shí)踐檢驗(yàn)[4]。
ArcObjects是ESRI公司的ArcGIS家族中應(yīng)用程序ArcMap、ArcCatalog和ArcScene的開發(fā)平臺(tái),開發(fā)人員可以在AO組件對(duì)象的基礎(chǔ)上開發(fā)出適應(yīng)用戶需求的各種系統(tǒng)。本系統(tǒng)中主要使用了AOb組件中的ArcScene、TIN等對(duì)象,采用的VB語(yǔ)言(需在Reference中將需要的對(duì)象庫(kù)文件參考進(jìn)系統(tǒng),如ESRI ArcScene Object Library、ESRI 3DAnalyst Object Library等)。
2.1 數(shù)據(jù)準(zhǔn)備
為了能呈現(xiàn)秦淮河流域的地形特點(diǎn),以及其流域景觀,需要把地形數(shù)據(jù)和矢量的景觀數(shù)據(jù)疊加。為了使地形起伏明顯和達(dá)到良好的視覺效果,還要對(duì)TIN數(shù)據(jù)進(jìn)行拉伸和渲染等操作;另外,準(zhǔn)備好由點(diǎn)構(gòu)成TIN的試驗(yàn)數(shù)據(jù),即點(diǎn)Shapefile文件:Tin_Node;以及由TIN來(lái)生成等高線的TIN數(shù)據(jù)集:QHH_TIN。
2.2 三維顯示
通過(guò)引用ArcObjects中的組件數(shù)據(jù)庫(kù),設(shè)置控件屬性就可以實(shí)現(xiàn)對(duì)三維文檔的加載。本建模功能中主要采用了ESRI SceneControl,ESRI TOCControl,和ESRI ToolbarControl這三個(gè)控件。
由點(diǎn)數(shù)據(jù)構(gòu)成TIN: 該功能可以將輸入的帶有高程信息的點(diǎn)自動(dòng)生成不規(guī)則三角網(wǎng)。
首 先 構(gòu)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)
最后主要是需通過(guò)ITinEdit來(lái)實(shí)現(xiàn)TIN的初始化:Dim pTinEdit As ITinEdit
Set pTinEdit = New TIN pTinEdit.InitNew pEnv
pTinEdit.AddFromFeatureClass pTinFeatCls,Nothing,pFld,Nothing, esriTinMassPoint
當(dāng)系統(tǒng)出現(xiàn)“TIN構(gòu)建完成!”的提示后,打開結(jié)果數(shù)據(jù),可以看見TIN的完成情況。
由TIN數(shù)據(jù)生成等高線:該功能可以將打開的TIN數(shù)據(jù)自動(dòng)生成等高線。
首先利用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(利用已經(jīng)獲取的信息創(chuàng)建等高線)
當(dāng)系統(tǒng)出現(xiàn)"等值線構(gòu)建完成!"的提示后,打開結(jié)果數(shù)據(jù),可以看見等高線的完成情況。
三維可視化的研究是目前很多領(lǐng)域的研究熱點(diǎn),而地形是人類社會(huì)賴以生存并從事一切實(shí)踐活動(dòng)的根基,它是人們對(duì)自身生存環(huán)境認(rèn)識(shí)和表示的基礎(chǔ)。因此,對(duì)地形三維可視化的研究更是三維研究中的重點(diǎn)。由于獨(dú)立開發(fā)難度太大,本系統(tǒng)以ESRI公司的ArcObjects組件作為開發(fā)工具,結(jié)合可視化開發(fā)語(yǔ)言,高效、方便地開發(fā)出了地形三維可視化分析系統(tǒng)。整個(gè)系統(tǒng)小巧穩(wěn)定、可靠性好、易于移植、便于維護(hù)。
參考文獻(xiàn):
[1]李壁成,李世華,閆慧敏.數(shù)字流域三維地形景觀構(gòu)建的研究[J].水土保持研究,2005,12(03):112-114.
[2]劉家宏,王光謙,王開.數(shù)字流域研究綜述[J].水利學(xué)報(bào),2006,37(02):240-246.
[3]王倩,鄒欣慶,朱大奎.基于GIS技術(shù)的秦淮河流域水系分維研究[J].水科學(xué)進(jìn)展,2002,13(06):751-756.
[4]ArcGIS Engine 應(yīng)用程序開發(fā).河海大學(xué)水文水資源學(xué)院地理信息科學(xué)系,2007:22-28.