胡 娟(湖南省國土資源信息中心,長沙 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.