史少維,姚鵬君,林巨超
(1.北京東方新星石化工程股份有限公司(BNEC),北京 100070;2.北京建筑大學測繪與城市空間信息學院,北京 100070)
基于Skyline的地下洞庫三維系統設計與開發
史少維1,2,姚鵬君1,林巨超1
(1.北京東方新星石化工程股份有限公司(BNEC),北京 100070;2.北京建筑大學測繪與城市空間信息學院,北京 100070)
隨著國家能源儲備戰略的推進,石化行業中儲存油氣的地下工程規模日益擴大,但地下工程建設過程中的環境限制給項目的考察與管理帶來了困難。本文提出利用三維GIS技術對地下工程進行虛擬可視化的信息管理方法,依托地下洞庫工程項目,基于Skyline三維軟件平臺,結合B/S系統框架和NHibernate數據庫技術,設計與開發了地下洞庫的三維信息管理系統平臺。
Skyline;地下洞庫;三維模型;數據庫;NHibernate;TerraExplorer;ISGWorld65接口
隨著我國社會經濟的發展,石油需求量上升,對外依存度加大,石油儲備安全問題越來越重要。其中地下水封洞庫以其儲存量大、安全性高、應急能力強、使用壽命長,成為目前國際上石油、天然氣等產品的主要儲存方式。國內地下儲能洞庫處于剛剛起步的階段,為推進地下洞庫的建設,本文利用三維GIS虛擬仿真技術,設計與開發配套的地下洞庫三維信息管理系統平臺,實現地下洞庫建設的數字化決策管理。
當前,主流的三維 GIS平臺有 Skyline、Worldwind、Google Earth、OSG等,在城市數字化建設中都發揮著各自的優勢。其中Skyline平臺在石化行業中石油煉油廠區的數字化建設及地下管線三維可視化項目中有所應用,從底層數據庫到專業應用層提供著全面的技術支持。因此,本文圍繞三維GIS虛擬技術,基于Skyline平臺,為地下洞庫工程研發三維信息管理系統。
Skyline是國外研制的較為先進的三維地理信息系統平臺,擁有著強大的三維空間建模與分析技術,為多領域提供著功能強大的三維地理信息系統解決方案[1]。
Skyline平臺主要有TerraBuilder、TerraExplorer、TerraGate 3個組成部分。TerraBuilder負責三維地形模型數據和空間對象模型數據的構建;TerraExplorer主要是對三維數據操作分析等功能的實現;TerraGate是在服務器端對三維數據進行Internet發布,客戶端用戶可以通過互聯網登錄訪問數據庫。
Skyline支持javaScript/HTML、C#、VB.NET、C++等多種語言開發,提供了豐富的API接口,不僅可以實現三維數據瀏覽操作,信息樹、層、對象的創建與管理等,還包含數據庫擴展模塊,實現與其他數據庫的連接,以及進行數據的存儲、查詢與更新等操作,具有海量數據的容納能力。
地下洞庫的三維數據主要包括MPT、FLY,以及地下洞庫工程的管道、豎井、儲洞室、監測設備(測縫針、應力計等)、紋理貼圖等數據;其中使用Skyline TerraBuilder生成MPT與FLY文件數據,使用3ds Max根據設計與測量數據構建地下工程具體三維模型。根據實際項目生產的數據模型敘述如下。
1.地形數據建模
MPT地形數據文件通過數字正射影像圖(DOM)、數字高程模型(DEM)構建三維地形模型;三維空間對象模型具體需要設計數據,在二維平面圖通過Skyline中的構建地面建筑模型的building命令快速構建。首先使用TerraBuilder對項目區域的航片通過預處理:利用ERDAS、ENVI對影像進行正射糾正、重采樣,得到正射影像 DOM;之后將DOM與DEM數據進行疊加,構建三維地形數據MPT文件。
2.地下洞庫設備建模
地下洞室、巷道、豎井、泵站等需要根據設計數據、素描圖、紋理數據通過3ds Max來構建,轉換成Skyline的特有輕量級的 xpl2數據格式,通過 3d Model命令加載到FLY工程文件中,進行模型的參數和屬性的設置,以調整位置、方向與大小。
3.三維工程文件(FLY文件)
FLY文件由TerraExplorer pro生成,是三維數據的索引文件,包含網絡空間數據地址,即將MPT三維地形數據地址、點數據地址、設備模型數據地址、二維平面圖地址、影像數據地址等整合到一個FLY文件中,并通過加裝FLY文件,實現三維數據的顯示、數據信息樹目錄、二維導航圖的顯示。在信息樹中點擊子節點,可以在Skyline平臺上實現特有的對象三維定位飛入顯示效果。
本案將系統框架設計為B/S 3層結構:表示層、中間層與數據層。表示層是客戶端系統操作界面層,通過用戶的命令實現相應的功能;中間層是為數據的傳輸和Skyline功能接口提供服務;數據層是在服務器端利用數據庫對數據進行存儲與管理。系統開發框架設計如圖1所示。

圖1 B/S結構系統框架設計
1.表示層設計
本系統使用VS2010可視化集成環境的開發工具,采用C#語言開發Web的工程項目,利用JavaS-cript腳本來調用Skyline的API功能函數進行二次開發。其頁面布局采用Html/CSS,并結合ext.net框架進行布局優化設計,提供美觀流暢的網頁界面。
2.系統中間層功能設計
利用TerraExplorer Pro二次開發函數庫,搭建三維數據系統平臺,為地下工程提供強大的三維空間輔助決策支持與分析功能。
Skyline接口服務中的TerraExlporer對象提供統一的ISGWorld65開發接口,在ISGWorld65接口中包含著 IProject65、INavigate65、IProjectree65、ICommand、ICreator65等功能接口;通過這些接口定義的屬性與方法操作 TE3DWindowEx、TEInformationWindow、TENavigationMap窗口控件可實現相應的系統功能。Skyline開發接口服務體系如圖2所示。

圖2 Skyline TerraExplorer的開發接口體系
3.數據層海量數據存儲
三維模型的空間數據以MPT和FLY文件形式通過權限加密存儲于TerraDateBase服務器中。根據地下工程的特性,大量的設備屬性信息需要進行存儲查詢,因此對于量的空間對象的屬性數據利用Nhibernate技術存儲于MSS或Oracle數據庫中。
Nhibernate是一種面向.NET開發環境的對象關系數據庫映射工具,利用對象關系映射技術,可把對象與基于SQL的關系表結構對應起來,將表數據作為對象來進行操作開發,對象實例化,即通過對象的方法來實現表數據查詢、添加、刪除、更新的功能,從而可以避免過多繁瑣的SQL語句,提高開發與數據庫進行數據交互的效率。Nhibernate體系結構如圖3所示。

圖3 Nhibernate體系結構
首先建立數據庫關系表,根據數據庫表定義相應的persistent objects對象持久類,在結合關系表與對象持久類創建相互關聯的xml.mapping映射文件,再通過app.config與web.config等配置文件來連接訪問Database數據庫及數據庫表;在application程序中定義對象的操作函數來實現數據庫表數據的增刪改操作,其中繁瑣的SQL語句及數據庫訪問接口細節封裝在NHibernate框架內,在開發利用過程中,只需要關注數據庫表、對象持久類及對應的映射文件,即可存儲大量數據庫表及提高系統的運行效率。
依據系統框架設計及Skyline接口服務體系,對主要的功能模塊進行開發,各功能模塊開發效果如圖4—圖9所示。
1.Skyline控件的定義
在ASPX文件頁面的分區元素中,通過<object>對象標簽定義容納 TerraExlporer的控件,包括TE3DWindow、TEInformationwindow、TENavigationMap 3個布局控件,對應實現三維數據的加載顯示、FLY工程文件的信息樹目錄加載及二維平面圖導航的功能。地下洞庫系統界面搭建如圖4所示,主要代碼如下:

2.FLY三維工程文件的加載顯示
創建JavaScript腳本文件,添加int()初始函數,并通過SGWorld65對象中Project接口的Open方法來打開在網絡服務器指定的FLY工程文件。代碼如下:


圖4 基于Skyline地下洞庫系統主界面

圖5 空間量測功能
3.基本的操作瀏覽顯示功能的實現
對模型數據的基本操作功能可通過INavigate和ICommand接口實現,在ICommand接口中定義了固定的id,在參數中輸入指定的數值就可以方便快捷地實現相應功能的二次開發。放縮、平拖、旋轉、空間量測等功能的主要代碼如下:

4.洞庫飛行漫游
FLY工程文件在TE3DWindow窗口控件加載顯示之后,為了更加方便快捷地了解和觀察洞室的內部地質情況,在系統框架上開發了洞庫飛行漫游的功能模塊,按照設定的飛行路線進行三維漫游瀏覽。本案的路線設計是從公共交通巷道到連接巷道,再從連接巷道到主洞室,選擇預先采集定義的路徑進行飛行漫游,在漫游過程中可以上下左右進行微調,達到最佳的觀察顯示效果。漫游功能效果如圖6所示,主要實現步驟代碼如下:


圖6 地下洞庫飛行漫游
5.定點放縮環視功能
定點放縮環視功能可以為用戶提供強大的三維環視效果,尤其進入地下工程模型內部進行詳細觀察時,操作相當困難。在Skyline中開啟碰撞偵測模式下,就可以在三維模型內部進行360°全景環視,觀察視點周圍構造情況。這里首選是添加碰撞偵測模式命令,在開發環視功能時主要調用Skyline中Lookaround文件的rander.js、slider.js、timer.js腳本文件實現;定點放縮環視功能效果如圖7所示,其中主要的功能代碼如下:


圖7 定點放縮環視功能
6.洞庫設備信息存儲及三維定位
地下工程施工建設階段要對地質巖層情況進行勘察,項目中采用鉆孔智能電視成像技術獲取地質影像信息數據,在系統中要進行存儲管理[11]。在MSS數據庫表中存儲鉆孔影像的路徑信息時,實體影像數據以文件的形式存儲在工程目錄下,元數據與屬性數據分開存儲有利于減輕系統負荷及提高效率。通過檢索鉆孔id號字段可以讀取鉆孔影像,同時在TE3DWindow窗口對鉆孔設備模型進行三維定位,用戶可以全方位地進行數據的查詢瀏覽。洞庫設備信息存儲及三維定位功能效果如圖8、圖9所示,其主要代碼如下:



圖8 地質模型信息管理

圖9 洞庫監測設備信息查詢與三維聯動定位
本文從三維模型數據的構建出發,結合NHibernate技術進行數據的存儲管理,圍繞Skyline explorer強大的接口服務體系進行地下洞庫系統功能的開發,很好地滿足了工程實踐中的應用需求;通過路徑漫游功能及定點環視功能為觀察地下工程提供了很好的參考,同時集成了大量設備模型數據存儲及三維聯動查詢模塊,為用戶提供了三維地下洞庫加載顯示、數據存儲查詢一體化的信息化管理系統。
[1] 徐愛峰,徐俊,龔健雅.基于Skyline的三維管線系統的設計與實現[J].測繪通報,2013(6):75-77.
[2] 吳素芝,楊衛軍,郭亮.地下空間綜合管理信息平臺建設的探究[J].測繪通報,2013(8):99-102.
[3] 鐘海東,吳健平,李平,等.基于SKYLINE和視頻監控的三維Web GIS應用研究[J].微計算機信息,2011,27(5):20-22.
[4] 曹巍,王爭.基于TerrExplorer Pro的三維影像管理系統研究[J].測繪通報,2008(1):50-51.
[5] 惠立.基于skyline油田集輸油管網數字化與三維可視化應用研究[D].西安:西安石油大學,2011.
[6] 梁吉欣,左小清.Skyline在Web三維GIS中的應用研究[J].昆明理工大學學報,2009,34(2):1-4.
[7] 周美娟,俞強,楊詩華,等.基于Skyline的公安三維GIS展現應用系統[J].測繪科學,2011,36(3):216-218.
[8] 宋世凱.基于Skyline的城市三維地理信息系統的設計與研究[D].石家莊:河北師范大學,2012.
[9] 高海峰.基于Skyline三維城市規劃輔助決策系統設計與實現[D].上海:華東理工大學,2012.
[10] 楊明舉,關寶樹,鐘新樵.水封式地下儲氣洞庫的應用及研究[J].地下空間,2000,20(3):171-175.
Research on 3D Underground Caverns System Based on Skyline
SHI Shaowei,YAO Pengjun,LIN Juchao
P208
B
0494-0911(2014)12-0101-04
史少維,姚鵬君,林巨超.基于Skyline的地下洞庫三維系統設計與開發[J].測繪通報,2014(12):101-104.
10.13474/j.cnki.11-2246.2014.0409
2013-10-08
史少維(1986—),男,河北保定人,碩士,工程師,研究方向為數據庫及三維GIS應用與開發。