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