朱 光,楊耀東
(北京建筑大學(xué) 測(cè)繪與城市空間信息學(xué)院,北京 100044)
隨著新型傳感技術(shù)的提高,遙感數(shù)據(jù)正呈幾何級(jí)數(shù)的速率增長(zhǎng)。同時(shí),Internet技術(shù)的飛速發(fā)展使得通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)遙感數(shù)據(jù)的共享和三維顯示已經(jīng)成為現(xiàn)實(shí)。但是由于網(wǎng)絡(luò)帶寬和圖形硬件的制約,海量遙感影像及地形數(shù)據(jù)的網(wǎng)絡(luò)三維可視化仍然存在問(wèn)題,主要表現(xiàn)在效率方面。因此,如何簡(jiǎn)化和壓縮海量遙感數(shù)據(jù),以達(dá)到節(jié)省網(wǎng)絡(luò)帶寬、加快圖形繪制速度的目的成為三維GIS研究中的一個(gè)關(guān)鍵問(wèn)題。
為達(dá)到數(shù)據(jù)簡(jiǎn)化效果,目前使用比較廣泛的是LOD(level of detail)技術(shù),即在保證顯示精度的前提下,不同視覺(jué)條件、不同區(qū)域采用不同分辨率的模型來(lái)表示同一個(gè)對(duì)象。采用LOD技術(shù)建立的瓦片金字塔模型是一種靜態(tài)多分辨率層次模型,它可以直接提供不同分辨率的數(shù)據(jù)而無(wú)需進(jìn)行實(shí)時(shí)重采樣。金字塔模型能夠減少完成場(chǎng)景繪制所需的總機(jī)時(shí),并且分塊的瓦片金字塔還能夠進(jìn)一步減少數(shù)據(jù)訪問(wèn)量,提高系統(tǒng)的輸入、輸出執(zhí)行效率,從而提升系統(tǒng)的整體性能。當(dāng)三維顯示窗口大小固定時(shí),采用瓦片金字塔模型可以使數(shù)據(jù)訪問(wèn)量基本保持不變,這一特性對(duì)海量遙感數(shù)據(jù)的實(shí)時(shí)三維可視化是非常重要的。
為達(dá)到數(shù)據(jù)壓縮效果,選取一個(gè)高壓縮比的圖像壓縮標(biāo)準(zhǔn)對(duì)遙感數(shù)據(jù)進(jìn)行壓縮是必要的。目前使用比較廣泛的是新一代靜止圖像壓縮標(biāo)準(zhǔn),即JPEG2000標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)采用小波變換和最新的壓縮算法,不僅能夠獲得較好的壓縮比,而且可對(duì)壓縮碼流進(jìn)行靈活的處理[1]。
本文在研究金字塔技術(shù)和圖像壓縮技術(shù)的前提下,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)Web3DGIS平臺(tái),并利用該平臺(tái)解決了多個(gè)地區(qū)海量地形及影像數(shù)據(jù)的實(shí)時(shí)三維可視化問(wèn)題。
作為一個(gè)Web3DGIS平臺(tái),應(yīng)當(dāng)具有以下特點(diǎn):可通過(guò)網(wǎng)絡(luò)快速獲取數(shù)據(jù)、地形及實(shí)現(xiàn)紋理的快速渲染。為滿足以上需要,本文設(shè)計(jì)了一個(gè)以高度壓縮的柵格數(shù)據(jù)瓦片金字塔模型為核心的平臺(tái)架構(gòu)。其整體架構(gòu)如圖1所示。
整個(gè)平臺(tái)由數(shù)據(jù)層、業(yè)務(wù)邏輯層、表示層組成。其中,數(shù)據(jù)層負(fù)責(zé)柵格數(shù)據(jù)金字塔的存儲(chǔ)與發(fā)布;業(yè)務(wù)邏輯層用于連接表示層與數(shù)據(jù)層,起到了數(shù)據(jù)交換中承上啟下的作用;表示層是系統(tǒng)的UI部分,負(fù)責(zé)使用者與整個(gè)系統(tǒng)的交互。
本文使用的瓦片金字塔模型是基于四叉樹(shù)結(jié)構(gòu),以分層分塊的方式構(gòu)建的。利用這種方式組織的金字塔模型具有以下特點(diǎn):
1) 對(duì)于樹(shù)中任意相鄰的層,從上到下,分辨率呈倍數(shù)遞增關(guān)系,下一層網(wǎng)格分辨率是上一層的2倍,這樣可以很方便地使用四叉樹(shù)索引技術(shù)進(jìn)行快速定位。
圖1 平臺(tái)整體架構(gòu)圖
2) 樹(shù)中每個(gè)節(jié)點(diǎn)對(duì)應(yīng)一塊區(qū)域,通過(guò)選擇位于不同層的節(jié)點(diǎn)來(lái)實(shí)現(xiàn)對(duì)特定區(qū)域不同分辨率的表示,這樣就可以直接提供不同分辨率的數(shù)據(jù)而無(wú)需實(shí)時(shí)重采樣。
在構(gòu)建金字塔時(shí),首先把原始柵格數(shù)據(jù)作為金字塔的底層,并對(duì)其進(jìn)行分塊,形成底層瓦片矩陣。在底層的基礎(chǔ)上,從左下角開(kāi)始,從左至右、從下到上按每2×2個(gè)像素合成一個(gè)像素的方法生成像素矩陣,并進(jìn)行分塊,形成上一層瓦片矩陣。如此操作,便可構(gòu)成整個(gè)瓦片金字塔模型,如圖2所示。
分層分塊后的文件命名要能反映出數(shù)據(jù)所在層級(jí)和數(shù)據(jù)的坐標(biāo)信息,本文采用如下命名規(guī)則:Dataset NameLevel of LODFileXFileX_FileY.abc。其中,Level of LOD為數(shù)據(jù)所在金字塔模型的層號(hào);FileX為塊的行號(hào);FileY為塊的列號(hào)。利用該規(guī)則可以實(shí)現(xiàn)文件名與文件坐標(biāo)之間的換算。
圖2 數(shù)據(jù)分層分塊示意圖
1) 已知某點(diǎn)坐標(biāo)(X,Y)(緯度,經(jīng)度),求其在某層N的文件名。其公式為
式中,“[]”為向下取整符。
2) 已知瓦片文件名以及所在層號(hào)N,求這張圖片的左下角坐標(biāo)。其公式為
本文中瓦片金字塔模型的構(gòu)建通過(guò)C++語(yǔ)言結(jié)合GDAL(geospatial data abstraction library)開(kāi)源庫(kù)進(jìn)行實(shí)現(xiàn),其執(zhí)行流程如圖3所示。
圖3 金字塔模型構(gòu)建流程圖
如圖3所示,程序首先根據(jù)配置參數(shù),如頂層瓦片分辨率、起始點(diǎn)坐標(biāo)等,計(jì)算瓦片金字塔的層級(jí)與底層瓦片行列跨度;然后對(duì)原始數(shù)據(jù)進(jìn)行切片,如果原始數(shù)據(jù)坐標(biāo)并非基于WGS-84空間參考,程序會(huì)將其自動(dòng)轉(zhuǎn)換到WGS-84坐標(biāo)系下;最后進(jìn)行重采樣建立瓦片金字塔。
在切片的過(guò)程中,由于部分瓦片包含無(wú)數(shù)據(jù)區(qū)域,會(huì)造成瓦片中原始數(shù)據(jù)范圍之外出現(xiàn)黑色區(qū)域,從而影響顯示效果。為避免這種情況的發(fā)生,程序執(zhí)行過(guò)程中會(huì)自動(dòng)檢測(cè)黑色區(qū)域,并將其轉(zhuǎn)換為透明色。
一般情況下,金字塔模型增加了數(shù)據(jù)的存儲(chǔ)空間,當(dāng)原始數(shù)據(jù)的數(shù)據(jù)量比較大時(shí),很可能會(huì)造成存儲(chǔ)空間不足。為解決上述問(wèn)題,對(duì)于完全被原始數(shù)據(jù)覆蓋的瓦片,程序采用JPEG2000標(biāo)準(zhǔn)對(duì)其進(jìn)行壓縮,從而得到了明顯的數(shù)據(jù)壓縮效果,節(jié)約了存儲(chǔ)空間,同時(shí)減小了客戶端的數(shù)據(jù)訪問(wèn)量,節(jié)省了網(wǎng)絡(luò)帶寬。
程序中MosaicPipeline模塊實(shí)現(xiàn)了同名瓦片之間的融合,該功能可以將多個(gè)原始數(shù)據(jù)統(tǒng)一到同一金字塔模型中,從而避免了相同瓦片的重復(fù)獲取,提高了系統(tǒng)執(zhí)行效率。
本文在研究World Wind Server等開(kāi)源地圖服務(wù)器的基礎(chǔ)上,開(kāi)發(fā)了一套能夠發(fā)布多數(shù)據(jù)格式瓦片金字塔模型的WMS服務(wù)器,并用以發(fā)布本文構(gòu)建的瓦片金字塔。該服務(wù)器實(shí)現(xiàn)了WMS標(biāo)準(zhǔn),客戶端通過(guò)實(shí)現(xiàn)WMS的訪問(wèn)標(biāo)準(zhǔn)可以流暢地訪問(wèn)服務(wù)器發(fā)布的瓦片數(shù)據(jù)。
另外,上述地圖服務(wù)器部署方便,并且支持多種操作系統(tǒng)及硬件設(shè)備,基于此優(yōu)點(diǎn),用戶可以方便快捷地搭建一個(gè)WebGIS平臺(tái)。
本文中客戶端基于Java和C++語(yǔ)言,使用Eclipse與Microsoft Visual Studio 2010進(jìn)行開(kāi)發(fā),其模塊設(shè)計(jì)如圖4所示。
圖4 客戶端模塊設(shè)計(jì)圖
配置文件中存儲(chǔ)一些系統(tǒng)相關(guān)參數(shù),如服務(wù)器地址、默認(rèn)圖層等,系統(tǒng)初始化時(shí)讀取配置文件內(nèi)容并創(chuàng)建默認(rèn)對(duì)象。場(chǎng)景控制器負(fù)責(zé)事件監(jiān)聽(tīng),保存事件觸發(fā)后相關(guān)場(chǎng)景參數(shù)的修改,并使用基于四叉樹(shù)的瓦片檢索算法檢索當(dāng)前場(chǎng)景的可見(jiàn)瓦片。通過(guò)三級(jí)緩存機(jī)制保存在服務(wù)器中獲取的瓦片數(shù)據(jù),完成數(shù)據(jù)解析之后,通過(guò)構(gòu)建地形網(wǎng)格和紋理貼圖產(chǎn)生三維場(chǎng)景。
客戶端大部分功能由Java語(yǔ)言實(shí)現(xiàn)。其中,渲染模塊使用了JOGL(Java bindings for OpenGL)技術(shù);JP2文件的讀取采用C++語(yǔ)言,借助了OpenJPEG開(kāi)源庫(kù)進(jìn)行實(shí)現(xiàn),并應(yīng)用動(dòng)態(tài)鏈接庫(kù)技術(shù)與Java主程序進(jìn)行融合。功能開(kāi)發(fā)完畢之后將應(yīng)用程序以Applet方式嵌入到網(wǎng)頁(yè)中運(yùn)行,通過(guò)JavaScript語(yǔ)言實(shí)現(xiàn)網(wǎng)頁(yè)與Applet之間的交互,從而產(chǎn)生豐富的視覺(jué)效果。
本文的研究成果已成功應(yīng)用于多個(gè)地區(qū)海量遙感數(shù)據(jù)的實(shí)時(shí)三維可視化。以某地區(qū)為例,該地區(qū)使用的是1∶10 000的DEM數(shù)據(jù)、0.40 m分辨率和0.06 m分辨率的DOM數(shù)據(jù),數(shù)據(jù)實(shí)際覆蓋面積超過(guò)2500 km2,總數(shù)據(jù)量超過(guò)120 GB。對(duì)DEM和DOM數(shù)據(jù)分別建立了7層和9層金字塔模型,DEM瓦片大小為150像素×150像素,DOM瓦片大小為512像素×512像素。進(jìn)行數(shù)據(jù)壓縮之后總數(shù)據(jù)量約為2 GB。測(cè)試結(jié)果顯示,當(dāng)三維窗口大小為800像素×600像素時(shí),平均幀頻為26.5幀/秒。效果如圖5所示。
圖5 某地區(qū)海量地形及影像數(shù)據(jù)三維可視化效果圖
試驗(yàn)表明,通過(guò)重采樣、分層分塊的方法構(gòu)建瓦片金字塔模型,并采用JPEG2000標(biāo)準(zhǔn)對(duì)數(shù)據(jù)進(jìn)行壓縮處理,可以有效地簡(jiǎn)化與壓縮海量遙感數(shù)據(jù);通過(guò)基于線性四叉樹(shù)的目標(biāo)瓦片搜索算法,大大減少了三維場(chǎng)景繪制的數(shù)據(jù)量,提高了系統(tǒng)的執(zhí)行效率。進(jìn)而說(shuō)明本文采用的方法有效地減小了計(jì)算機(jī)渲染負(fù)擔(dān),加快了圖形生成速度,節(jié)省了網(wǎng)絡(luò)帶寬,能夠滿足大范圍三維場(chǎng)景模擬的需要。另外,對(duì)于矢量數(shù)據(jù),本文采用類似柵格數(shù)據(jù)金字塔的方式進(jìn)行發(fā)布,有效地解決了系統(tǒng)對(duì)大數(shù)據(jù)量矢量數(shù)據(jù)的支持。
本文構(gòu)建的Web3DGIS平臺(tái)已經(jīng)實(shí)現(xiàn)了瓦片金字塔模型的構(gòu)建和發(fā)布,海量地形及影像數(shù)據(jù)的實(shí)時(shí)三維可視化,并解決了大數(shù)據(jù)量矢量數(shù)據(jù)的加載顯示與查詢檢索,初步實(shí)現(xiàn)了模型數(shù)據(jù)的加載(如.3ds、.dae、傾斜相機(jī)數(shù)據(jù))。但對(duì)于大數(shù)據(jù)量模型數(shù)據(jù)的支持還不完善,這也是未來(lái)需要研究和克服的問(wèn)題。
參考文獻(xiàn):
[1] 張曉娣, 劉貴忠, 曾召華, 等. JPEG2000圖像壓縮編碼系統(tǒng)及其關(guān)鍵技術(shù)[J]. 電視技術(shù), 2001(8):13-17.
[2] 姚慧敏, 崔鐵軍, 邵世新, 等.基于四叉樹(shù)的LOD地形模型及其數(shù)據(jù)組織方法研究[J].地理信息世界, 2007(6):1-4.
[3] 歐陽(yáng)甜子, 杜紅, 占小剛. 基于動(dòng)態(tài)LOD四叉樹(shù)算法的地形三維可視化[J]. 電腦開(kāi)發(fā)與應(yīng)用, 2009,22(2):11-13.
[4] 杜瑩,武玉國(guó),王曉明,等. 全球多分辨率虛擬地形環(huán)境的金字塔模型研究[J]. 系統(tǒng)仿真學(xué)報(bào), 2006,18(4):955-958.
[5] 王源, 劉建永, 江南, 等. 視點(diǎn)相關(guān)實(shí)時(shí)LOD 地形模型動(dòng)態(tài)構(gòu)網(wǎng)算法[J]. 測(cè)繪學(xué)報(bào), 2003,32(1):48-51.
[6] 張玉杰, 崔鐵軍. 多分辨率地形模型的研究與實(shí)踐[J]. 地理信息世界, 2006(5):1-4.
[7] 王慧, 申家雙, 陳冬陽(yáng), 等. 一種高性能的大區(qū)域遙感影像管理模型[J]. 海洋測(cè)繪, 2006(3):1-4.
[8] WAN Ming, ZHANG Wei, MURRAY M O, et al. Automatic Target Tracking on Multi-resolution Terrain[J]. Journal of Zhejiang University, 2006, 7(7):1275-1281.
[9] BAO Xiaohong,PAJAROLA R. LOD-based Clustering Techniques for Optimizing Large-scale Terrain Storage and Visualization[C]∥Proc. of VDA’03.Santa Clara.USA:[s.n.],2003.
[10] ZHAO Yuxin,MA Y. A Modified LOD Terrain Model Based on QuadTree Algorithm[C]∥2009 International Joint Conference on Computational Sciences and Optimization.Haina:[s.n.],2009:259-263.
[11] ZHANG Jin, TONG Xiaohua. Multiresolution Terrian Model in GIS[J]. ACTA GEODAETICA et CARTOGRAPHICA SINICA, 2002, 31(S0):93-96.