成都理工大學地球探測與信息技術重點實驗室 何 朋 苗 放 劉登芬
隨著科技和社會的發展,人類對自然世界的過度開發,造成地球遠遠超過其原有的限度,各種災害事件頻繁發生,如地震、泥石流以及海嘯等,它們給人類帶來巨大的生命威脅和財產損害,可是沒有一個有效的可視化表達平臺來展示這些災害,這樣就不能給人類清楚直觀的視覺沖擊,也不能給研究人員提供一個很好的基礎平臺,通過研究達到預防災害,減少災害發生的目的。
為了解決可視化表達問題,在空間信息網絡服務模式研究的基礎上,針對地球災害事件,本論文提出一種基于HGML的地球災害事件的可視化表達的方式,并在構建的平臺中研究快速加載技術,提高系統性能。
HGML是成都理工大學地球探測與信息技術重點實驗室于2007年提出的一種基于元數據和XML的數據共享和利用機制,用來描述矢量數據的各種屬性,解決矢量圖形在World Wind中交互顯示問題。
XML作為一種開放的、標準的、可擴展的、具有自描述特性的、可語法驗證的數據記錄方式,在描述異構數據時具有透明化差異的能力,將其與HTML有機結合形成HGML,解決空間數據在Web環境下的開放式表達。
超地理標記語言HGML[1](Hyper Geographic Markup Language),是基于HTML和XML的空間數據建模及可視化表達的描述語言,解決空間數據在地理信息瀏覽器中交互顯示及三維虛擬仿真等問題。HGML內容包括屬性描述和顯示描述兩部分,屬性描述主要包括要素、坐標位置、及說明信息等,顯示屬性是初始化時的顯示設置描述[2,3]。HGML文本是由HGML命令組成的描述性文本,HGML命令可以說明空間對象,包括點、線、面、柵格數據,以及影像和屬性數據。HGML的結構包括頭部、主體兩大部分,其中頭部描述瀏覽器所需的信息,而主體則包含所要說明的具體內容。HGML具有簡易性、通用性、可擴展性以及平臺無關性特點,有一套完整的矢量數據、影像數據和網格數據標準。
World Wind是NASA發布的一個開放源代碼的地理科普軟件,它是一個可視化地球儀[4]。低分辨率的Blue marble數據現在包含的初始安裝內,當用戶放大到特定區域時,附加的高分辨率數據將會自動從NASA服務器上被下載。
World Wind是一個優秀的客戶端框架引擎,XML實現數據描述和軟件設置,通過World Model、圖層、插件、http和WMS請求、三維渲染等實現交互式瀏覽。XML是數據,World Wind則是數據執行的引擎,其可擴展性和開發性非常強大。
綜上所述,HGML是數據,World Wind是數據執行的引擎,就可以在World Wind基礎上進行二次開發,構建基于HGML的地球災害事件的可視化表達平臺。
客戶端發出請求,服務器端對請求進行處理并響應數據給客戶端,HGML對數據組織、封裝和管理,展現在World Wind中。
地球災害事件數據的種類可以根據災害的種類來劃分,可以分為人為災害和自然災害。人為災害可以分為戰爭、事故、動蕩、犯罪以及恐怖活動等;自然災害又可以分為氣象災害、洪水災害、地震災害、農作物災害、海洋災害以及地質災害等。這些災害數據格式復雜,屬性差異很大,要想很好的對這些數據進行利用和管理,就需要通過HGML進行封裝和處理。
HGML在平臺中用于處理從服務器端到客戶端的數據流,其中包含SQL語句的數據庫查詢結果。HGML對數據進行封裝的設計包括兩部分:命名空間和標簽。命名空間表示一定域名中HGML規范用于的某個項目名稱,其作用是從服務器端向客戶端傳輸數據;標簽是HGML中具體的節點,構造查詢語句在客戶端執行。

圖1 瓦片請求優先級示意圖

圖2 地形瓦片分辨率測試示意圖

圖3 瓦片分辨率測試圖解

圖4 HGML封裝數據結果圖

圖5 瓦片請求預測前后性能測試圖
標簽分為三種,第一種是ResultSet標簽,該標簽表示一個數據查詢的結果集,是HGML內容的根節點;第二種是row標簽,該標簽是ResultSet標簽的子標簽,代表一行數據;第三種是column標簽,該標簽是row標簽的子標簽,代表一行中某列的內容。通過這三種標簽封裝地球災害事件的各種數據,在客戶端通過相應的HGML解析程序展示在平臺中。
當客戶端發出請求顯示某一地區的地球災害事件時,實際是對瓦片的請求和顯示。可是構建瓦片模型的方式很多,本文就采用瓦片金字塔模型[5,6],分塊的瓦片金塔模型能夠進一步減少數據訪問量,提高系統的輸入輸出執行效率,從而提升系統的整體性能。當地形顯示窗口大小固定時,采用瓦片金字塔模型可以使數據訪問量基本保持不變。
瓦片金字塔模型構建之后,采用四叉樹來構建瓦片索引和管理瓦片數據。在瓦片金字塔基礎上可通過邏輯分塊、節點編碼和物理分塊構建線性四叉樹瓦片索引[5]。
為了匹配客戶端的瓦片請求策略,服務器端采用預讀取策略。合適的數據緩沖機制可以提高系統的性能,海量地形實時可視化也不例外。若系統能夠提前預測系統使用的數據,并能提前讀取數據到緩沖區,當系統使用數據時便直接從緩沖區讀取,從而省去從磁盤讀取數據的時間。數據緩沖通過預測瓦片請求實現,瓦片請求分為高、中、低三個優先級,高優先級瓦片請求被立即處理;中優先級瓦片請求在沒有高優先級瓦片請求時被讀取到緩沖區,即數據緩沖;低優先級瓦片請求只在系統“空閑”時才被讀取到緩沖區。瓦片請求優先級的確定方法如圖1所示。
黑色代表窗口1,灰色代表窗口2,白色代表窗口3。為了實現瓦片數據緩沖,系統在發送窗口1的瓦片請求時應附帶發送窗口2和窗口3的瓦片請求,只是瓦片請求的優先級有所不同,這便是瓦片請求預測。當場景運動到窗口2時,系統在發送窗口2的瓦片請求后,數據預測調度線程就可以直接從緩沖區提取數據參與地形繪制,而無需即時從磁盤讀取數據。
目標瓦片快速加載伴隨著分辨率的快速搜索。采用瓦片金字塔模型,不同區域對應不同分辨率的地形數據,因此在瓦片快速加載過程中需要進行分辨率測試,圖2為地形瓦片分辨率測試示意圖,圖中P為視點,白色矩形表示與主體相交的瓦片數據。矩形越小表示瓦片分辨率越高。
目標瓦片加載采用由大入小、層層推進的方式。首先判斷可見區域是否在地形數據范圍內,測試與可見區域重合的上層瓦片是否滿足分辨率要求,若不滿足,繼續測試相鄰瓦片,直到搜索出所有滿足分辨率要求的瓦片為止。完整的算法描述如下:
1)判斷可見區域是否與地形數據重合。若重合,跳到2;否則,算法結束。
2)依次判斷上層瓦片是否滿足分辨率要求。若滿足,將其插入到準備鏈表中;否則,將其4個相鄰瓦片插入到測試鏈表a。
3)判斷測試鏈表a是否為空。若為空,算法結束;否則,跳到4。
4)依次判斷測試鏈表a中的瓦片是否與可見區域重合。若重合,將其插入到測試鏈表b;否則,舍棄瓦片。
5)清空測試鏈表a,跳到6。
6)依次判斷測試鏈表b中的瓦片是否滿足分辨率要求。若滿足,將其插入到準備鏈表中;否則,將其4個相鄰瓦片插入到測試鏈表a。
7)清空測試鏈表b,跳到3。
如圖3所示,假設被測試瓦片的分辨率為2,瓦片左邊分辨率小于2,為了滿足需求,則必須對瓦片進行細分,然后再進行重合測試和分辨率測試。
目標瓦片快速加載算法是一個遞歸算法。進行分辨率判斷時只需對瓦片的四邊進行判斷,所以效率很高。此外,從瓦片索引數組中提取相鄰瓦片無需進行空間位置判斷,只要知道偏移量即可,顯著地提高算法的性能。
通過HGML對地球災害事件中的各種數據進行封裝,對數據庫進行查詢,得到服務器向客戶端傳回的hgml數據流。封裝成的HGML格式的數據如圖4所示。
利用瓦片請求策略及快速加載算法,實現三維可視化,顯示窗口為800×600像素,在屏幕顯示誤差為1到10個像素時,對不采用瓦片請求預測平均幀頻和采用瓦片請求預測后平均幀頻分別測試,結果如下圖5。
通過測試比較可知,采用瓦片請求預測后的平均幀頻比不采用瓦片請求預測的平均幀頻有明顯的提高,并且隨著屏幕顯示誤差的增大而增大,效果明顯,由此驗證了快速加載算法和請求預測策略的正確性和有效性。
為了解決地球災害事件可視化表達存在的問題,給一般人員提供一個生動直觀的交互平臺,也給研究人員提供一個研究基礎平臺,更好地預防災害和減少損失,本文提出一種基于HGML的地球災害事件的可視化表達方式,在此基礎上構建可視化表達平臺。
HGML是基于HTML和XML的空間數據建模及可視化表達的描述語言,解決空間數據在地理信息瀏覽器中交互顯示及三維虛擬仿真等問題。平臺中服務器端傳輸到客戶端的各種地球災害事件的數據通過HGML封裝成統一格式的數據,這樣便于數據的管理、組織、傳輸和處理等。
客戶端采用瓦片請求策略,在分析地球災害事件各類數據的基礎上,構建瓦片金字塔模型,并通過四叉樹進行瓦片索引和數據管理;在服務器端采用請求預測方式,利用合適的數據緩存機制和瓦片優先級機制提高數據讀取速度;通過瓦片 分辨率的搜索算法快速加載瓦片提高系統性能;最后通過HGML封裝的結果圖和性能測試驗證系統的正確性和高效性。
[1]郭曦榕,苗放,王華軍,許義興等.空間信息G/S網絡訪問模式體系架構初探[J].計算機應用與軟件,2009,26(10):72-74.
[2]俞曉.空間信息管理——G/S模式研究[D].成都:成都理工大學信息工程學院,2008.
[3]程小恩.基于HGML的空間數據轉換技術研究[D].成都:成都理工大學信息工程學院,2009.
[4]百度百科:World Wind[EB/OL].http://baike.baidu.com/view/812414.htm.
[5]Bigheader.World Wind技術手冊[R].2007.
[6]童曉沖,賁進,張永生.全球多分辨率數據模型的構建與快速顯示[J].測繪科學,2006,01.