摘 要: 介紹了傳統(tǒng)的輸電" title="輸電">輸電網(wǎng)地理信息系統(tǒng)的優(yōu)點(diǎn)及不足,提出了建立基于VR技術(shù)的三維輸電網(wǎng)地理信息系統(tǒng),分析了三維地理信息系統(tǒng)建立的相關(guān)技術(shù),通過實(shí)例說明VRML與Java的結(jié)合。通過對系統(tǒng)功能的分析,證明該系統(tǒng)能夠比較好地彌補(bǔ)二維GIS" title="GIS">GIS系統(tǒng)的不足,從而有效地提高輸電部門的生產(chǎn)效率、降低線路運(yùn)行維護(hù)成本,對于提高整個電力系統(tǒng)經(jīng)濟(jì)效益有重要的意義。
關(guān)鍵詞: 虛擬現(xiàn)實(shí)" title="虛擬現(xiàn)實(shí)">虛擬現(xiàn)實(shí) 三維地理信息系統(tǒng) 輸電網(wǎng) 空間數(shù)據(jù)
地理信息系統(tǒng)(GIS)可以將輸電網(wǎng)中的各種信息有機(jī)地與反映地理位置的圖形信息結(jié)合,實(shí)現(xiàn)具有拓?fù)浣Y(jié)構(gòu)和分析功能的空間數(shù)據(jù)庫系統(tǒng),并且提供了強(qiáng)有力的手段處理圖形和非圖形信息,為電力部門提供智能化決策和控制。因此,在輸電網(wǎng)中采用GIS技術(shù)不僅僅能使輸電網(wǎng)的管理上升到一個新的高度,也為改進(jìn)輸電質(zhì)量、減少事故和檢修時的停電時間、提高供電可靠性、降低電網(wǎng)運(yùn)行費(fèi)用提供了新手段[1]。
目前在電力系統(tǒng)中廣泛應(yīng)用的主要是基于二維坐標(biāo)的GIS系統(tǒng),系統(tǒng)采用層的形式區(qū)分顯示各種類型的地物元素,即在不同的層中以點(diǎn)、線、面等符號表征不同類型的實(shí)際物體。二維GIS系統(tǒng)最大的缺點(diǎn)就是其簡單的幾何圖形加標(biāo)注的表現(xiàn)形式并不能真正地反映線路、桿塔等電力設(shè)備設(shè)施周圍的地形地貌,不能為巡視、操作及檢修人員提供一個真實(shí)的功能環(huán)境信息。
隨著計(jì)算機(jī)圖形技術(shù)、空間數(shù)據(jù)庫技術(shù)的發(fā)展,特別是虛擬現(xiàn)實(shí)技術(shù)在電力系統(tǒng)信息化中的逐步應(yīng)用,一種基于空間數(shù)據(jù)庫技術(shù)和三維虛擬現(xiàn)實(shí)技術(shù)的三維地理信息系統(tǒng)應(yīng)運(yùn)而生[2]。相比較于二維GIS,三維GIS最大的優(yōu)點(diǎn)是增加了z軸上的表現(xiàn)能力,使空間物體在程序中能夠最大程度地真實(shí)顯現(xiàn),使操作更加方便,對減少誤操作率及提高電力系統(tǒng)的安全性有重要意義,并且能夠表現(xiàn)地物之間的空間垂向關(guān)系,因此在空間分析能力上也較原來的二維GIS系統(tǒng)更勝一籌。本文借助虛擬現(xiàn)實(shí)技術(shù),通過VRML與Java相結(jié)合,實(shí)現(xiàn)了一個三維輸電網(wǎng)GIS系統(tǒng)。
1 虛擬現(xiàn)實(shí)(VR)技術(shù)
虛擬現(xiàn)實(shí)(Virtual Reality,簡稱VR)技術(shù)是一種使人沉浸于一個由計(jì)算機(jī)生成或以計(jì)算機(jī)為中介的可交互虛擬環(huán)境中的顯示和控制技術(shù)。這種技術(shù)有三大特點(diǎn):沉浸感,即用戶在視覺上產(chǎn)生一種沉浸于虛擬環(huán)境的感覺;交互性,即虛擬現(xiàn)實(shí)所產(chǎn)生的模型是一個開放、互動的環(huán)境;想象性,即虛擬現(xiàn)實(shí)技術(shù)以視覺形式反映了設(shè)計(jì)者的思想。虛擬現(xiàn)實(shí)的上述特點(diǎn)決定其在軍事仿真、教育、醫(yī)學(xué)、游戲、遙控機(jī)器人、虛擬設(shè)計(jì)、虛擬制造等領(lǐng)域都得到了廣泛的應(yīng)用[3]。
將虛擬現(xiàn)實(shí)技術(shù)應(yīng)用于計(jì)算機(jī)系統(tǒng)中,就形成了VR系統(tǒng)。VR系統(tǒng)一般應(yīng)具備以下特征:(1)以計(jì)算機(jī)系統(tǒng)為中心的一種計(jì)算機(jī)應(yīng)用系統(tǒng);(2)展現(xiàn)三維多媒體空間;(3)對象的交互性;(4)使用者的訪問不以VR系統(tǒng)作者的設(shè)定為轉(zhuǎn)移,可以由使用者本身自由控制[4]。
虛擬現(xiàn)實(shí)的實(shí)現(xiàn)有軟件和硬件兩種實(shí)現(xiàn)方法。對于后者需要昂貴的硬件設(shè)備,例如頭盔顯示器等,目前僅僅應(yīng)用在航天和軍事上。而利用軟件編程的方法在顯示器上輸出逼真的具有虛擬現(xiàn)實(shí)特征的三維場景,用軟件的方法對硬件依賴性不高,相對來說易于實(shí)現(xiàn),運(yùn)用范圍日益廣泛。本文將采用軟件方法實(shí)現(xiàn)。
2 系統(tǒng)設(shè)計(jì)相關(guān)技術(shù)
本文采用VRML與Java相結(jié)合的手段來實(shí)現(xiàn)一個三維輸電網(wǎng)GIS系統(tǒng),下面將分別介紹VRML及其與Java相結(jié)合應(yīng)用的技術(shù)要點(diǎn)。
2.1 VRML語言
VRML是Virtual Reality Modeling Language 的簡稱,中文譯名為虛擬現(xiàn)實(shí)建模語言,是一種由國際標(biāo)準(zhǔn)化組織ISO定義的在網(wǎng)絡(luò)上表達(dá)三維數(shù)據(jù)的文件格式,也被稱為是第二代WWW的標(biāo)準(zhǔn)語言。值得注意的是,VRML瀏覽與目前常用的Web瀏覽方式相同,即文件可以通過諸如IE瀏覽器(需安裝特定的插件)打開并操作。
VRML場景(Scene Graph)由多種類型的節(jié)點(diǎn)組成,包括外形節(jié)點(diǎn)(Shape)、幾何節(jié)點(diǎn)(Geometry)、造型節(jié)點(diǎn)(Appearance)、組節(jié)點(diǎn)(Group)、父節(jié)點(diǎn)/子節(jié)點(diǎn)(Parent/Children),還包括變換節(jié)點(diǎn)(Transform)、超鏈接節(jié)點(diǎn)Anchor、腳本節(jié)點(diǎn)Script、碰撞檢測節(jié)點(diǎn)Collision、產(chǎn)生動畫效果的Timesensor節(jié)點(diǎn)、用于構(gòu)造分布式場景的Incline節(jié)點(diǎn)、為增強(qiáng)場景漫游動畫效果的節(jié)點(diǎn)(Background節(jié)點(diǎn)、Fog節(jié)點(diǎn)、Navigation節(jié)點(diǎn)、Viewpoint節(jié)點(diǎn)、WorldInfo節(jié)點(diǎn))等。每個節(jié)點(diǎn)包含一個或多個域,每個域都有域值,節(jié)點(diǎn)還可以包含其它節(jié)點(diǎn)。VRML采用樹狀分支描述的格式,并提供了面向?qū)ο蟮慕7椒ā?br />
VRML本身還具有交互功能:各個節(jié)點(diǎn)可以通過事件體系發(fā)送接收事件;傳感器使用鼠標(biāo)或數(shù)據(jù)手套等定點(diǎn)設(shè)備可以感知與之發(fā)生的動作并產(chǎn)生相應(yīng)的事件;腳本節(jié)點(diǎn)可以通過編程使節(jié)點(diǎn)產(chǎn)生復(fù)雜的動作。此外,VRML中的內(nèi)插器節(jié)點(diǎn)和時間傳感器節(jié)點(diǎn)也為動畫的實(shí)現(xiàn)提供了基礎(chǔ)。
2.2 Java與VRML實(shí)現(xiàn)三維交互
VRML提供了功能強(qiáng)大的Script節(jié)點(diǎn),可以與外界通信,一般采用Java或者Javascript通信接口。而Java語言具有簡潔、精干、面向?qū)ο蠛涂缙脚_的諸多優(yōu)勢,采用Java與VRML進(jìn)行交互有如下的幾個優(yōu)勢[5]:
(1)Java語言與平臺無關(guān),Java程序是解釋執(zhí)行的,它的源程序通過編譯成.class文件執(zhí)行;
(2)Java語言提供了安全性機(jī)制,它沒有指針,不會有操作內(nèi)存引起的程序安全問題;
(3)Java提供了簡便的網(wǎng)絡(luò)功能,在IE瀏覽器中可以嵌入Java Applet小程序。
采用Java語言與VRML場景中的節(jié)點(diǎn)通信,從而擴(kuò)展了VRML場景與外部的交互能力。VRML通過外部授權(quán)接口EAI(External Authoring Interface)提供了與Java結(jié)合的幾個相應(yīng)的Java類,在Java程序編譯時指定了這些類的路徑就可以運(yùn)用這些類,例如Browse.class等。這些類能夠改變VRML場景中相應(yīng)的變量值,當(dāng)建立的Java Applet程序引入了VRML場景文件和這些功能類,即可完成對VRML場景中物體位置、顏色、大小等的控制。
本文采用Java語言開發(fā)Java Applet這種可以從網(wǎng)絡(luò)上自動下載并可嵌入HTML文檔中的小程序,它可以隨著HTML一起下載、打開,當(dāng)退出IE瀏覽器后Java Applet將會和HTML一起清除[6]。系統(tǒng)中需要安裝支持JDK1.3的IE瀏覽器。微軟公司IE4.0以上的版本都支持JDK1.3。
由于VRML本身不支持直接的交互,在操作VRML文件時,只通過VRML提供接口,然后在Java程序中調(diào)用Java與VRML兩者結(jié)合的類實(shí)現(xiàn)。圖1表示了VRML文件的操作過程。
本文用圖2所示的鐵塔為例說明VRML是如何進(jìn)行三維繪圖和控制的。
#VRML V2.0 utf8
#Created with V-Realm Builder v2.0
#Integrated Data Systems Inc.
#www.ids-net.com
Transform {
translation 0 0 0
scale 3 3 3
children [
DEF group03 Transform {
translation 29.27 5.162 17.86
children [
DEF Loft57 Transform {
translation 24.29 -5.162 -1.867
children Shape {
appearance Appearance {
material Material {
ambientIntensity
0.2
……
VRML語言對物體的變量進(jìn)行了描述,如變量shape描述了物體的大小、translation描述物體的位置,這些量都是用數(shù)組來表現(xiàn)的,并且可以在Java中進(jìn)行調(diào)用和改變,同時,這些文件也可以用寫字板打開查看程序內(nèi)容。這里有三個translation分別是三級的位置, 最上邊一個translation是主觀測點(diǎn)(0.0.0)。鐵塔是由很多個元件組成的。制作時把它們合成了一個transform,這是中間的一個translation;最下面的translation是其中一個元件位置translation、appearance以及material。
還可以在Java程序中設(shè)置事件函數(shù),改變VRML程序中的變量值,利用getEventOut和getEventIn設(shè)置事件前與事件后的狀態(tài)。若需要發(fā)生事件如點(diǎn)擊物體后彈出一對話框,可以這樣寫:
getEventOut(OnClick){
A=get(“group03.translation”);
B=GetEventIn(“A”);
F=Form();
//定義點(diǎn)擊事件的結(jié)果
def ButtonClick(Onclick, event):
//彈出對話框顯示物體的translation值
MessageBox.Show(“B”);
b.Click += ButtonClick;
f.ShowDialog();}
3 系統(tǒng)特點(diǎn)和功能
3.1 系統(tǒng)結(jié)構(gòu)特點(diǎn)
本系統(tǒng)以GIS為平臺,搭建了一個有較完全功能的三維輸電網(wǎng)信息管理系統(tǒng),其總體結(jié)構(gòu)框圖如圖3所示。
應(yīng)用程序首先對GIS平臺上的信息進(jìn)行提取,這些信息將有助于形成描述VR世界的文件。由于三維GIS需要對空間數(shù)據(jù)庫進(jìn)行操作,因此必須在應(yīng)用程序和空間數(shù)據(jù)庫之間借助空間數(shù)據(jù)庫引擎(SDE)搭建一個空間數(shù)據(jù)傳送和操作的橋梁。值得注意的是,此處的空間數(shù)據(jù)庫是廣義上的空間數(shù)據(jù)庫,即在此空間數(shù)據(jù)庫中既有空間數(shù)據(jù)(如線路的走向、坐標(biāo)、相對位置等)又有非空間數(shù)據(jù)(如線路的型號、電壓等級等)。為了對空間數(shù)據(jù)庫中的數(shù)據(jù)更加有效地利用,還引入了空間數(shù)據(jù)庫挖掘的方法,其意義在于電力系統(tǒng)運(yùn)行人員在成年累月的運(yùn)行過程中積累了豐富的運(yùn)行和分析經(jīng)驗(yàn),而這些經(jīng)驗(yàn)性內(nèi)容卻很難量化,運(yùn)行人員之間很難傳承和共享這些經(jīng)驗(yàn),一旦利用數(shù)據(jù)挖掘的方法,就可以完成對運(yùn)行模式的提取和重建立,從而節(jié)約運(yùn)行成本、加快事故處理過程、提高電力部門的經(jīng)濟(jì)效益。
3.2 系統(tǒng)功能
(1)圖形操作功能。三維顯示地物,如輸電線路走向、弧垂和鐵塔高度、位置等。圖形以三維實(shí)景方式實(shí)現(xiàn)平滑放大、縮小、旋轉(zhuǎn)、沿預(yù)定線路漫游、繞固定點(diǎn)飛行等圖形觀察功能。另外,為了展現(xiàn)在用戶面前時不管是局部還是全景,都會顯得清晰而不雜亂,還可以根據(jù)需要設(shè)置縮放倍數(shù)和地物顯示的縮放級別。
(2)地物屬性查詢和統(tǒng)計(jì)功能。根據(jù)用戶習(xí)慣設(shè)置多種不同的搜索方式,利用模糊查詢和精確查詢相結(jié)合,任意查詢統(tǒng)計(jì)線路及設(shè)備臺帳。
(3)空間數(shù)據(jù)挖掘功能。根據(jù)大量的空間數(shù)據(jù)和非空間數(shù)據(jù),建立空間數(shù)據(jù)倉庫,采用聚類、分類及空間關(guān)聯(lián)算法,在一定程度上完成對運(yùn)行模式的提取和空間分析,給運(yùn)行人員提供輔助決策。
(4)空間查找和定位功能。根據(jù)用戶輸入的信息,采用空間索引技術(shù),迅速查找到空間地物并做出標(biāo)注,且將查找到的地物置中。如果沒有查找到,則給出提示對話框。
(5)主接線圖管理功能。三維圖形和二維主接線圖可以相互對應(yīng),并且將實(shí)時采集的信息量作為多個字段寫入數(shù)據(jù)庫中,如果希望在主接線圖或GIS圖上顯示這些量,可以通過程序?qū)?shù)據(jù)從數(shù)據(jù)庫中讀出并反映到界面上。
(6)圖形輸出打印功能??梢源蛴∪S全景圖和二維主接線圖。
參考文獻(xiàn)
1 劉 琳,張 健. 高壓輸電網(wǎng)地理信息管理系統(tǒng)[J].華北電力技術(shù),1998;(12):24~27
2 應(yīng)開懷,邱家駒. 基于MPI軟件的三維輸電線路地理信息系統(tǒng)[J].計(jì)算機(jī)工程與設(shè)計(jì),2004;25(9):1584~1586
3 王汝傳,孫開翠,辛晨昀等.基于VRML的可視化工具的研究[J].系統(tǒng)仿真學(xué)報,2001;13(J):476~478
4 韓 智,李九齡.虛擬現(xiàn)實(shí)(VR)技術(shù)在供水行業(yè)地理信息系統(tǒng)(GIS)中的應(yīng)用[J]. 計(jì)算機(jī)工程與應(yīng)用, 2001;(16):168~170
5 王飛,王波,楊湘龍等.PC上虛擬現(xiàn)實(shí)仿真的實(shí)現(xiàn).計(jì)算機(jī)工程,2000;8(26):11~12
6 程 鋼,王知衍.利用JAVA控制VRML對象行為的機(jī)理研究.系統(tǒng)仿真學(xué)報,2001;13(J):483~485