周 童,方彥軍
(武漢大學 自動化系,武漢 430072)
三維虛擬火電廠數字可視化系統(tǒng)是集數據采集、信息管理、實時監(jiān)控、遠程操作于一體的三維虛擬數字圖像平臺,它將三維虛擬和數字可視化技術與火電廠現有系統(tǒng)與信息結合起來,實現火電廠各種信息的多樣化全方位展示,為火電廠的運行管理提供服務。
空間數據引擎SDE作為一種數據管理的中間件,具有對各類海量復雜數據進行有效組織的能力,它是提供存儲、查詢、檢索空間地理數據,以及對空間地理數據進行空間關系運算和空間分析的程序功能集合[1]。在SDE設計方面,文獻[1-4]都提出了一種新的SDE,但都沒有針對具體的應用;文獻[5]針對數字煤礦的特點,提出一種基于煤礦GIS的煤礦SDE,并通過合理的實驗證明了所設計的SDE的可行性,有效解決了煤礦空間數據的存儲問題。在電力行業(yè),本文針對性地提出一種空間數據引擎SDE,并運用空間數據引擎的管理方法來管理火電廠各種數據信息,達到高效存儲和科學管理火電廠空間數據的目的,實現火電廠各種數據信息的共享和相關任務的協(xié)同工作。
三維虛擬火電廠數字可視化系統(tǒng)包括火電廠三維可視化展示平臺和應用服務集成接口,通過VC++編程實現了與火電廠SIS、MIS和DCS系統(tǒng)的信息融合,其實現的主要功能:(1)火電廠三維模型的虛擬展示,火電廠的布局和數據信息,如火電廠中三維場景、建筑物、設備等的位置和幾何信息;(2)空間選擇與查詢,對火電廠空間數據能夠進行正確的空間分析和查詢操作;(3)多媒體屬性鏈接,利用GIS實現空間對象與對應的圖紙的超鏈接關系,并提供多媒體的表現方法;(4)三維場景的交互操作,能夠讓用戶實時對電廠景觀進行交互操作。該系統(tǒng)體系結構如圖1所示。
圖1 系統(tǒng)體系結構圖Fig.1 Structure diagram of system
三維虛擬火電廠系統(tǒng)要實現這些功能需存儲大量的空間數據,以及有大量的數據交換操作和資源之間的共享,提高這些空間數據的存儲效率,并科學化的管理這些數據和資源,是準確獲得電廠各種信息的關鍵。因此,針對性的設計一種三維虛擬火電廠數字可視化系統(tǒng)SDE是很有必要的。
三維虛擬火電廠可視化系統(tǒng)SDE采用通用GIS(geographic information system)中空間數據引擎的技術路線,使用數據庫來存儲和管理火電廠各種相關數據,并通過SDE提供的接口來解決電廠客戶端與底層數據庫端之間的數據傳輸問題。
SDE整體架構采用3層結構體系,即數據庫端、服務器端、客戶端。這樣可使SDE設計具有靈活性。第1層(上層)是火電廠客戶端應用系統(tǒng),它利用SDE提供的客戶端API來獲得數據庫服務器提供的數據服務;第2層(中間層)是系統(tǒng)的核心層,位于客戶端和數據庫端之間的中間件[6],使客戶端和數據庫端不直接通信,消除不同數據源間數據模型的差異,通過數據庫服務器端API來實現火電廠各種數據的統(tǒng)一存儲和管理;第3層(底層)為數據庫端,存儲火電廠各種空間數據和屬性數據信息,基礎信息包括數字地形圖、數字高程模型、建筑物、注記等;專題信息包括鍋爐、汽機、發(fā)電機、脫硫、脫硝、變壓器等相關數據;圖形數據包括各種設備及管線圖等;屬性及其它數據包括設備設施的影像、材質、運行記錄、綜合測試數據等。體系結構如圖2所示。
圖2 三維虛擬火電廠SDE架構Fig.2 3D Virtual power plant SDE architecture
在三維虛擬火電廠SDE功能設計中,文章圍繞SDE 4個關鍵技術展開,即建立三維虛擬火電廠空間數據模型,設計SDE存儲功能、索引功能和查詢功能,提出實現這些關鍵技術的解決方案。
空間數據模型是SDE的基礎,建立合理的三維虛擬火電廠空間數據模型,不僅能夠有效地表達三維虛擬火電廠空間數據信息,而且能夠極大地提高空間數據引擎對這些數據信息進行管理、存儲的效率。三維虛擬火電廠信息數據涉及面廣[7],由大量的幾何實體數據、設備屬性數據等構成,包括多個運行環(huán)節(jié)和專業(yè)信息,其結構復雜、變化多樣。
本文基于面向對象的設計思想,結合火電廠信息數據的特點和其表達方式,將火電廠中數據對象抽象為相應的對象類,以此來對相應的火電廠空間數據模型進行設計。在空間數據模型中,可以將火電廠空間數據對象集分為3類:矢量對象數據集、柵格對象數據集和一般對象數據集。矢量數據對象集包括屬性數據對象和幾何實體對象,而其中的幾何實體對象又細分為點對象集、線對象集和面對象集;柵格數據對象集主要是指圖層、影像、材質等數據;一般對象數據集就是矢量和柵格對象之外的對象幾何。
三維虛擬火電廠可視化系統(tǒng)集成了火電廠各種數據信息,合理地對空間存儲功能進行設計,是實現三維虛擬火電廠可視化系統(tǒng)中數據信息統(tǒng)一、安全、高效管理的關鍵因素。根據三維虛擬火電廠空間數據模型的設計思想,為每個實體對象分配一個唯一的ID,使三維虛擬火電廠數據對象與實體通過唯一的ID相關聯?,F有的SDE大都將圖形數據作為二進制變長數據存儲到數據庫中,這種存儲方法既節(jié)省存儲空間,又節(jié)約空間對象生成實體對象所需的時間[9]。由于柵格數據的數據量較大,故將其放在7個表中,分別是管理表、金字塔表、柵格元數據表、柵格影像集表、柵格影像數據塊表、柵格影像圖層表和壓縮表,對柵格數據進行分層分塊管理,以此提高柵格數據存儲和管理效率。
在本文中矢量數據包括幾何數據和屬性數據,為此專門為矢量數據設計4個數據表,分別是管理表、屬性表、矢量數據集表和要素表。通過對這幾個表中的數據進行操作,就能實現對矢量數據進行管理和存儲。
空間數據索引是通過一些過濾條件,排除大量與特定空間操作無關的地理對象,快速定位到所需的數據對象,從而提高空間數據操作的速度和效率[10]。由于三維虛擬火電廠數據信息量較大,因此需要引入空間索引技術來訪問數據,以此來提高數據的空間查詢效率。目前國內外研究出了許多高效的空間索引方法,如BSP樹索引、K-D樹索引、R樹索引等,但這些方法的基本原理相似,即采用分割原理,把所要查詢的空間劃分為若干區(qū)域,通過唯一的編碼對他們進行標識[1]。本文在三維虛擬火電廠SDE設計中,采用格網索引技術對數據進行訪問,其原理就是按照一定的規(guī)則將所研究的空間等分成網格,然后記錄每個網格包含的空間實體。采用Morton碼對每個網格進行編碼,創(chuàng)建空間索引的線性表,建立碼與實體的對應關系,從而實現存儲不同數據規(guī)模下的格網索引。
目前,對空間查詢的研究主要有3種方法:基于標準SQL擴展的方法,基于自然語言的方法和可視化的空間查詢方法。本文所設計的三維虛擬火電廠SDE采用數據庫來存儲數據信息,這決定了對空間數據的訪問也應該采用SQL[11]語言作為操作語言,但是SQL目前還不支持空間數據類型,因此,需要用SQL的擴展語言GSQL作為空間查詢語言。GSQL[12]語言是基于SQL擴展的空間查詢語言,其特點是面向問題、面向空間實體,可以支持復雜的空間查詢,這恰好與三維虛擬火電廠空間數據模型的特點相符合。
針對三維虛擬火電廠設計的空間查詢功能的查詢流程:用戶提出一個空間查詢問題,然后根據GSQL語言的語法規(guī)則將這個問題表達成相應的GSQL查詢語句,輸入這些GSQL查詢語句,調用GSQL解釋器對這些語句進行解釋,解釋正確后訪問空間數據庫得到查詢結果,將查詢結果返回給客戶端,顯示在用戶界面上。查詢流程如圖3所示。
圖3 空間查詢功能的查詢流程Fig.3 Query process of spatial query function
三維虛擬火電廠SDE提供多用戶同時對同一數據訪問、編輯等功能,這就必須對數據的安全性和有效性予以考慮。而對多用戶空間數據進行管理,不僅能維護三維虛擬火電廠的數據信息,還能實現多用戶對電廠數據透明、安全訪問。目前主要有3種方法能夠對多用戶空間數據進行管理:版本管理、處理鎖定和簡單備份。版本管理將用戶修改的數據進行部分備份,和數據庫中沒有被修改的數據一起構成一個新版本;處理鎖定會使用戶在某一時刻不能對數據進行操作;簡單備份就是將用戶編輯修改后的數據進行備份,但這會增加數據庫的存儲負擔。通過對3種方法的比較分析,本文選擇用版本管理的方法來實現多用戶空間數據的管理,即允許用戶對數據進行訪問、編輯和修改,當用戶編輯這些數據并提交修改意見后,由系統(tǒng)自動判斷所提意見是否與數據庫中存在版本發(fā)生沖突,若存在沖突,用戶就需對系統(tǒng)提供幾個備選方案進行選擇,然后生成一個最終數據版本;若不存在沖突,就直接在數據庫中生成一個新的數據版本。
為驗證本文設計的三維虛擬火電廠SDE的有效性,以VS2010為開發(fā)工具,在微軟操作下,可和SQLite、SQL Server、Oracle 3 種數據庫實現數據互通,開發(fā)出一種新型三維虛擬火電廠數字可視化系統(tǒng)VS-PowerPlant1.0,并對該系統(tǒng)進行了測試。
火電廠的宏觀場景可通過VS-PowerPlant1.0進行展示,這些場景包括火電廠的外部建筑、地形地貌、外部標記等,如圖4所示?;痣姀S的內部精細結構也可通過VS-PowerPlant1.0進行展示,如圖5所示。
圖4 火電廠宏觀展示圖Fig.4 Picture of the power plant
圖5 變壓器展示Fig.5 Display of transformer
實際測試表明,應用三維虛擬火電廠空間數據引擎的三維虛擬火電廠數字可視化系統(tǒng),能夠提高火電廠數據的存儲、查詢、索引效率,解決火電廠數據存儲與管理的問題。
本文在分析火電廠現有數據類型的基礎上,針對三維虛擬火電廠數據的特點,以及這些數據間存在的存儲與共享問題,通過分析和探討SDE的關鍵技術,提出一種面向三維虛擬火電廠的SDE。通過實例驗證了所設計的SDE的可行性和有效性,該SDE提高了火電廠數據的存儲、查詢、索引效率,解決了火電廠數據存儲和管理問題,也為今后火電廠的設備狀態(tài)檢修、生產運營管理提供更為快速有效的服務。目前,基于該SDE系統(tǒng)的基礎應用平臺基本實現,對系統(tǒng)數據存儲和管理效率進行進一步優(yōu)化,完善電力、熱控、輸煤、供水等專業(yè)子系統(tǒng)應用,增強系統(tǒng)的穩(wěn)定性是下一步的工作目標。
[1] 陳金川,毛善君,李小娟,等.虛擬煤礦三維引擎架構設計及實現[J].煤炭科學技術,2012,40(7):76-80.
[2] 張明波,申排偉,陸鋒,等.空間數據引擎關鍵技術與應用分析[J].地球信息科學,2004,6(4):80-84.
[3] MOU Nai-xia,ZHANG Ling-xian,YANG Liangjie,etc.A new framework of spatial data sharing and interoperability:spatial data memory engine[C]//Geoinformatics:Geospatial Information Technology,2006:1-6.
[4] 張韻,曹曉航,徐晉暉.一種嵌入式空間數據引擎的設計與實現[J].測繪科學,2010,35(4):187-189.
[5] 鄒宏,毛善.煤礦地理信息系統(tǒng)空間數據引擎的設計[J].地理信息世界,2011(3):70-75.
[6] 劉華,王艷東,龔健雅.多數據源空間數據引擎關鍵技術問題研究[J].測繪信息與工程,2005,30(2):18-20.
[7] 張小諾,王宇,李宏偉,等.基于三維可視化技術的電廠地理信息系統(tǒng)設計與應用[J].工程勘察,2013(7):63-67.
[8] WANG Pin-qian,LIU Gang,HE Zhen-wen,etc.An effective cache management algorithm of three-dimensional spatial data engine[C]//Geoinformatics,2010 18th International Conference,2010:1-5.
[9] 彭勤生,方金云,張娟.基于空間和屬性數據的聯合索引技術[J].計算機工程,2010,36(8):71-74.
[10]李濱,王青山,馮猛.空間數據庫引擎關鍵技術剖析[J].測繪學院學報,2003,20(1):35-38.
[11]LIN Hui,HUANG Bo.SQL/SDA:a query language for supporting spatial data analysis and its Web-based implementation[J].Knowledge and Data Engineering,2001,13(4):671-682.
[12]萬波,潘曉芳,楊林,等.空間查詢語言GSQL的研究與實現[J].計算機工程與應用,2006,42(7):140-142. ■