張 鳳,王軍委
(安徽理工大學 測繪學院,安徽 淮南 232001)
鉆孔數(shù)據(jù)的獲取一般是進行野外實地采集,它具有空間位置連續(xù)且空間屬性隨空間位置變化而變化的特點[1]。鉆孔運動軌跡在鉆孔偏斜[2]及安全生產(chǎn)方面具有十分重要的意義。隨著科學技術的發(fā)展,一些針對鉆孔數(shù)據(jù)進行管理的軟件開始出現(xiàn),但是這些系統(tǒng)軟件側重于數(shù)據(jù)管理和數(shù)字制圖,對于鉆孔運動軌跡沒有形象的視覺顯示[3]。因此,部分學者通過建立模型的方法對鉆孔軌跡的可視化進行了研究,如胡玉超[4]將鉆孔軌跡的計算方法結合Voxler 三維可視化功能,實現(xiàn)鉆孔可視化顯示。許哲平等[5]集成鉆孔分層數(shù)據(jù)及相關的多源數(shù)據(jù),利用虛擬現(xiàn)實技術(VRML)開發(fā)了具有編輯、管理、發(fā)布和制圖功能的三維可視化鉆孔數(shù)據(jù)管理系統(tǒng)。這些系統(tǒng)具有專業(yè)性強、操作復雜的特點,并且需要將軟件安裝部署在本機上,使用起來比較繁瑣。本文在鉆孔軌跡三維場景可視化探究的基礎上,結合Web技術可以很好地解決這一問題。
本文根據(jù)實測的鉆孔數(shù)據(jù),建立模型,實現(xiàn)在瀏覽器頁面自動顯示鉆孔在地下行進的三維運動軌跡。通過鉆孔運動軌跡的三維場景,可以更加直觀地獲取鉆孔的深度和偏移。鉆孔地下運動軌跡的水平投影可以更直觀地反映出鉆孔在二維水平面上的傾斜程度。
VRML本質(zhì)上是一種面向網(wǎng)絡、面向對象的三維造型語言,是一種解釋性語言,支持Javascript腳本語言,具有較強的交互性,可以實現(xiàn)多用戶交互,人們可以共享虛擬空間,共同設計產(chǎn)品。此外,VRML還具有擴展性高、多操作平臺選擇性、帶寬要求低的優(yōu)點。特別是1998年12月成立的Web 3D聯(lián)盟制定的X3D標準,對推動VRML、Java和XML等技術的結合有極其重要的意義[6]。
VRML中最基本的元素是節(jié)點,節(jié)點之間形成層次結構[7],被定義的節(jié)點集合可表達復雜的景物。因此,可以借助VRML對現(xiàn)實世界中的三維實體進行三維場景的再現(xiàn)。VRML與Web技術結合形成Web 3D技術,解決用數(shù)字形式表達現(xiàn)實世界中地理實體復雜性時遇到的諸多問題。Web 3D技術使得地理實體三維建模和瀏覽變得更加便捷、靈活[8-9]。目前,Web 3D技術以其良好的視覺體驗和動態(tài)交互效果在網(wǎng)上看房[10]、遠程教育[11]、虛擬社區(qū)[12]等方面得到了廣泛的應用。在地質(zhì)學研究方面,Web 3D技術可以將復雜地質(zhì)結構在瀏覽器界面上進行實體模型再現(xiàn),克服了傳統(tǒng)繪制二維地質(zhì)結構圖程序繁雜和地質(zhì)信息表達抽象等缺陷[13]。
BS Contact是由德國Bitmanagement Software GmbH公司開發(fā)的x3d播放器,圖形渲染效果良好,它在實現(xiàn)x3d標準的大部分節(jié)點的同時也豐富了一些新的節(jié)點,為三維虛擬系統(tǒng)開發(fā)提供了編程接口,通過BS Contact播放器可以顯示VRML的三維模型。
研究中使用的鉆孔數(shù)據(jù)來源于鉆孔資料,篩選出需要的開孔坐標、各測點的孔斜參數(shù)、測點數(shù)量,建立數(shù)據(jù)庫。
基于VRML的三維Web技術已經(jīng)成為三維可視化的實施標準,因此,數(shù)據(jù)庫中的數(shù)據(jù)結構既要滿足空間矢量數(shù)據(jù)存儲格式,便于進行空間分析,又要盡量接近VRML數(shù)據(jù)結構從而減少數(shù)據(jù)轉換時間,提高系統(tǒng)的效率。矢量數(shù)據(jù)模型之間的拓撲關系是空間分析的基礎[14],利用拓撲關系重建地理實體是研究地理問題的常用手段。本研究借鑒李青元的結點-邊-環(huán)-曲面片-體五組拓撲關系[15]的思想,在SQL Server數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表(Point)。按照空間矢量結構模型將鉆孔數(shù)據(jù)存儲在Point數(shù)據(jù)表中,表中存儲了鉆孔的空間位置數(shù)據(jù)和屬性數(shù)據(jù)。表1中px,py,pz為鉆孔在空間坐標系的坐標值。px,py為鉆孔點的x,y坐標,pz代表孔深,pNode為鉆孔取樣點順序編號。
表1 Point數(shù)據(jù)
與傳統(tǒng)的桌面應用程序軟件相比較,B/S系統(tǒng)軟件不需要進行軟件安裝,只需要部署在服務器上,用戶可以通過同1個網(wǎng)址就可以訪問部署在服務器上的資源, B/S系統(tǒng)架構分為三部分,即客戶端、中間應用層、數(shù)據(jù)庫服務器層??蛻舳酥恍枰?個瀏覽器和1個VRML播放器插件即可,無需安裝復雜的應用軟件就可以通過瀏覽器訪問服務器上的資源。中間應用層由Web服務器和應用服務器兩大部分組成。數(shù)據(jù)庫服務器則主要是空間數(shù)據(jù)庫。系統(tǒng)各層次交互過程如圖1所示。客戶端與Web服務器之間通過接收和發(fā)送HTTP協(xié)議實現(xiàn)數(shù)據(jù)的傳輸。應用服務器接收Web服務器轉發(fā)的HTTP請求后轉換為數(shù)據(jù)庫服務器可以識別的SQL語句,數(shù)據(jù)庫服務器處理接收的SQL語句并將操作后的結果集返回給應用服務器,應用服務器將結果集轉發(fā)至Web服務器,最后Web服務器再發(fā)出HTTP響應至瀏覽器端,最終將數(shù)據(jù)庫中的鉆頭數(shù)據(jù)導入到VRML場景中并在瀏覽器中顯示。
圖1 B/S架構模式
采用B/S架構模式可以將復雜的邏輯運算部分部署到服務器上,大大減少客戶端的壓力且易于維護和升級,減少運營維護成本。系統(tǒng)完成之后可以利用服務器商搭建好的環(huán)境進行發(fā)布,用戶只需要買1個網(wǎng)址和1個空間,登錄網(wǎng)址后將系統(tǒng)文件部署上去,連接互聯(lián)網(wǎng)就可以通過網(wǎng)址訪問該系統(tǒng)。
VRML用樹狀的場景圖(有向無環(huán)圖)描述三維世界。樹狀圖下有多個節(jié)點,每1個節(jié)點相當于1個對象集,其中,每個節(jié)點的屬性包含在域(field)和事件(event)中,根據(jù)各節(jié)點的父子關系連接形成場景圖。形體造型節(jié)點分為簡單造型節(jié)點和高級造型節(jié)點。簡單造型節(jié)點有Box節(jié)點、Cylinder 節(jié)點、Sphere節(jié)點、Cone節(jié)點等。高級造型節(jié)點有Coordinate節(jié)點、PointSet節(jié)點、IndexedLineSet節(jié)點、IndexedFaceSet節(jié)點等。文本造型節(jié)點包括Text節(jié)點、FontStyle節(jié)點。造型外觀節(jié)點包括Shape節(jié)點、Appearance節(jié)點、Material節(jié)點、ImageText節(jié)點、MovieTexture節(jié)點、PixeTexture節(jié)點、TexttureCooedinate節(jié)點、Color節(jié)點等。其他節(jié)點還有增加真實感及渲染能力的SpotLight節(jié)點、Color節(jié)點、Material節(jié)點、ImageTexture Image節(jié)點等以及改善背景效果的Background節(jié)點、Fog節(jié)點等。
PointSet節(jié)點可以用來表現(xiàn)現(xiàn)實場景中分散的點,如夜空中的星星和燈光。利用此節(jié)點描述現(xiàn)實點狀地物在虛擬場景中的位置,本文利用該節(jié)點顯示鉆孔采樣點在地下的位置。
PointSet
{
coord NULL # exposed field SFNode
color NULL # exposed field SFNode
}
域 :
coord包括1個Coordinate節(jié)點,即點集使用的一系列頂點;color包括1個Color節(jié)點,列出點集使用的一系列顏色,其中,每個點即一種顏色。
1個IndexedLineSet節(jié)點代表1個線狀3D形體。1個線狀3D形體由1組指定頂點形成。coordIndex域的索引值將各個頂點按照指定的順序相互連接以形成線段,尤其注意當索引值為-1時,即當前連接的線段已經(jīng)結束,將開始下1個線段的連接。利用該節(jié)點將鉆孔采樣點按照指定的順序依次連接以形成鉆孔在地下的運動軌跡。
IndexedLineSet
{
coord NULL # exposed field SFNode
coordIndex [ ] # MFInt32
color NULL # exposed field SFNode
colorIndex [ ] # MFInt
colorPerVertex TRUE # SFBool
}
域 :
coord 包括1個Coordinate節(jié)點,點集使用的一系列頂點;coordIndex 指向Coordinate節(jié)點的1個索引列表,指明頂點是以順序相連接;color 包括1個Color節(jié)點,指明每個頂點的屬性或使面著色的顏色列表;colorIndex 指向Color節(jié)點的索引列表;colorPerVertex根據(jù)索引值,判斷把某種顏色賦給頂點(TRUE)還是賦給折線(FALSE)。
事件:
set_colorIndex eventIn MFInt32
//設置colorIndex域的值。
set_coordIndex eventIn MFInt32
//設置coordIndex域的值。
圖2 三維場景模型構建
利用Web 3D技術開發(fā)鉆孔在地下運動軌跡自動成圖的系統(tǒng),首先將鉆孔數(shù)據(jù)以拓撲關系表的形式存儲在SQL SERVER關系型數(shù)據(jù)庫中,然后將數(shù)據(jù)庫中的鉆孔數(shù)據(jù)導入到VRML場景中,最終在瀏覽器界面上顯示出鉆孔的運動軌跡三維模型。如圖2所示,VRML技術本身并沒有提供可以訪問數(shù)據(jù)庫的節(jié)點,所以需要在后臺通過C#語言將存儲在數(shù)據(jù)庫中的鉆孔數(shù)據(jù)按照VRML可識別的節(jié)點格式從數(shù)據(jù)庫中讀取出來,借助JavaScript腳本語言將讀取出來的鉆孔數(shù)據(jù)以事件的形式通過事件輸入接口導入到的VRML的PointSet節(jié)點、IndexedLineSet節(jié)點形成鉆孔的采樣點和鉆孔的運動軌跡,從而構建出鉆頭和鉆孔的運動軌跡三維模型。
VRML技術提供了場景與外界的交互EAI 接口[16],其中,setNodeEventIn接口支持Javascript訪問。由于鉆孔運動軌跡的三維模型是在BS Contact播放器中進行顯示,故需要通過1個object控件將BS Contact播放器嵌入到Web網(wǎng)頁中[17]實現(xiàn)三維模型在網(wǎng)頁中的顯示。為方便用戶瀏覽和操作,用戶連接互聯(lián)網(wǎng),通過操控鼠標實現(xiàn)在瀏覽器上對三維地質(zhì)模型的旋轉、平移、放大、縮小等交互操作。
Web 3D建模技術不同于傳統(tǒng)的建模技術。傳統(tǒng)的建模技術用戶需要下載安裝軟件,使用過程復雜。Web 3D建模技術用戶端只需要1個瀏覽器和1個輕量級的VRML播放器插件,通過1個網(wǎng)址就可以訪問該系統(tǒng)。這種系統(tǒng)具有維護成本較低、可擴展性強、實時、快速進行建模的優(yōu)點。
通過上述構建的模型實現(xiàn)了鉆孔數(shù)據(jù)在數(shù)據(jù)庫中的讀取與存儲以及鉆孔運動軌跡三維模型的建立,再到將鉆孔運動軌跡的三維模型和二維水平投影模型顯示在瀏覽器界面。最后的網(wǎng)頁運行結果如圖3所示。
圖3 鉆孔運動軌跡場景
本研究基于已有的鉆孔數(shù)據(jù),利用Web 3D技術將鉆頭運動軌跡在網(wǎng)頁界面上進行三維建模顯示和二維的水平投影。結合鉆孔數(shù)據(jù)二維與三維的場景可以對鉆孔軌跡有更直觀地認識。鉆孔數(shù)據(jù)的三維運動軌跡可以全面地、動態(tài)地、多角度地觀察鉆孔在地下的運動行徑,二維平面的投影可以一目了然地反映鉆孔的水平偏斜程度。鉆孔數(shù)據(jù)的網(wǎng)頁可視化系統(tǒng)展示了鉆頭運動軌跡的三維場景,讓更多的地質(zhì)研究者通過網(wǎng)絡了解鉆孔數(shù)據(jù),有助于進一步推廣鉆孔軌跡研究,為鉆孔軌跡自動建模研究工作提供思路
本文所作研究工作尚不完善,未來可在此研究的基礎上進行更深入的擴展,如將數(shù)據(jù)表設計得更完善豐富,使其可以存儲更多的鉆孔屬性信息。未來隨著數(shù)字化在地質(zhì)領域的深入發(fā)展,地質(zhì)三維建模不僅可以表達勘察成果,更可以對鉆孔數(shù)據(jù)進行分析和校核,對地質(zhì)勘探工作起到輔助決策的作用。