何龍 何龍 曾曉明 于茜
摘 要:針對國內(nèi)已經(jīng)建立的月球系統(tǒng)平臺多為桌面版以及存在三維渲染效果較差、數(shù)據(jù)類型單一和缺乏科普性的特點,在B/S架構(gòu)下借助HTML5、瓦片分片算法、三維可視化等技術(shù)建立在內(nèi)嵌WebGL的瀏覽器端對獲得的月球影像進行了三維展示。為后續(xù)添加其他相關(guān)月球數(shù)據(jù)和空間分析提供了良好的平臺,方便了廣大用戶對月球進行瀏覽和認知。
關(guān)鍵詞:webgl;月球;B/S;三維可視化
中圖分類號:TP393 文獻標(biāo)志碼:A 文章編號:2095-2945(2018)22-0047-03
Abstract: In view of the fact that most of the lunar system platforms that have been established in China are desktop versions, there are some characteristics such as poor three-dimensional(3D) rendering effect, single data type and lack of popularization of science. With the help of HTML 5, tile slicing algorithm, 3D visualization and other technologies, the browser side of WebGL embedded in the B/S architecture is used to display 3D images of the moon. It provides a good platform for the subsequent addition of other relevant lunar data and space analysis, and facilitates the majority of users to browse and recognize the moon.
Keywords: WebGL; moon; B/S; three-dimensional (3D) visualization
月球,作為地球唯一的自然衛(wèi)星,對地球的運動以及生物活動有著重要的影響。我國自2007年以來也相繼發(fā)射了嫦娥一號、二號和三號衛(wèi)星,獲得了不同傳感器的海量探測數(shù)據(jù),為后續(xù)的科學(xué)研究奠定了基礎(chǔ)。本文建立一個以B/S架構(gòu)的網(wǎng)絡(luò)平臺——基于HTML5,運用內(nèi)嵌在瀏覽器中的WebGL標(biāo)準(zhǔn)進行快速渲染,無需任何第三方插件,就能使用三維圖形來增強Web程序的用戶界面,同時以此為基礎(chǔ)來展示月球表面土壤類型分布、礦石類別分布、月球車動態(tài)著陸過程、月表溫度變化、撞擊坑等自然風(fēng)貌從而增加其科普性,有利于探索科研發(fā)展的前端。
利用“嫦娥一號”衛(wèi)星獲得的探測數(shù)據(jù)來初步實現(xiàn)全月影像的加載,增強了其實時性、可操作性和互動性以及提供更加便利的使用方式,即在使用無插件時可以直接用市面現(xiàn)行高版本瀏覽器如GoogleChrome直接打開,方便了公眾對月球表面信息的了解,人機交互性大大提高。
1 月球數(shù)據(jù)介紹
繼我國嫦娥探月工程實施以來,獲取了多種形式和類型的數(shù)據(jù)。“嫦娥一號”月球探測衛(wèi)星已完成全月球面地形和紋理數(shù)據(jù)的探測,這其中包括三線陣CCD立體相機(CCD)主要用來獲取月球表面立體影像,繪制月表三維圖像和地質(zhì)學(xué)專題圖;激光高度計(LAM)主要用來獲取衛(wèi)星星下點月表地形高程數(shù)據(jù),為CCD立體相機工作參數(shù)的調(diào)整提供衛(wèi)星相對月表高度數(shù)據(jù)。此外還有干涉成像光譜儀(IIM)、X射線譜儀(XRS)、太陽高能粒子探測儀(HPD)、γ射線譜儀(GRS)、太陽風(fēng)離子探測儀(SWID)、微波探測儀(MRM)等探測數(shù)據(jù)。
1.1 數(shù)據(jù)讀取與處理
PDS(PlanetaryDataSystem,行星科學(xué)數(shù)據(jù)系統(tǒng))是由美國國家航空航天局(NASA)提出的、并在國際深空探測領(lǐng)域廣泛推廣采用的一種數(shù)據(jù)存儲標(biāo)準(zhǔn)。我國的嫦娥衛(wèi)星獲取的數(shù)據(jù)產(chǎn)品均采用PDS格式,按照處理的程度分為三級。二級數(shù)據(jù)是經(jīng)過輻射、幾何、光度校正后的數(shù)據(jù)且較好的保留了影像的空間信息,所以本文采用了嫦娥一號CCD2C數(shù)據(jù),每軌影像在南北方向上呈條帶狀。
1.1.1 數(shù)據(jù)讀取
目前有很多專業(yè)軟件如EVNI、ERDAS等可以對PDS數(shù)據(jù)進行讀取,但是無法獲得影像的空間信息。所以本文利用了C#編程語言中相關(guān)的函數(shù)對2C文件以二進制形式進行讀取。內(nèi)容包括影像的記錄時間、標(biāo)志位、像元的經(jīng)緯度坐標(biāo)、影像數(shù)據(jù)。
1.1.2 投影參數(shù)設(shè)置
Moon-2000坐標(biāo)系統(tǒng)是IAU 2000Cartesian Coordinate System中的適用于月球的坐標(biāo)系統(tǒng)(IAU,國際天文學(xué)聯(lián)合會),目前它是世界月球研究領(lǐng)域中通用的坐標(biāo)系統(tǒng)。橢球體采用Moon_2000_IAU_IAG標(biāo)準(zhǔn),參考水準(zhǔn)面D_MOON_2000的偏離參數(shù)為0,0,0,長半軸和短半軸均為1737400m。
由于數(shù)據(jù)源文件采用經(jīng)緯度記錄空間信息的方式,考慮到投影方法不僅要盡可能的保留原始數(shù)據(jù)的空間信息關(guān)系,而且還需精確地保留數(shù)據(jù)的特征,所以在全月影像拼接時采用了GeographicLat/Lon經(jīng)緯度地理投影。
1.1.3 幾何校正計算模型
根據(jù)空間上輸入分布的控制點,構(gòu)建Delaunay三角網(wǎng),再選擇合適的內(nèi)插方法內(nèi)插出規(guī)則格網(wǎng)。要求控制點較多且需均勻分布,校正精度很高,所以選擇局部三角網(wǎng)(Taiangulation)模型。
利用C#編程語言將2C文件中影像空間信息存儲在二維數(shù)組中,并按照一定的排列規(guī)則轉(zhuǎn)換為ENVI進行圖像配準(zhǔn)時控制點的PTS文件。利用IDL(InteractiveDataLanguage)編程語言讀取PTS文件(保存控制點的文件),調(diào)用envi_doit函數(shù)對影像進行批量校正。
1.1.4 重采樣方法
輸出圖像像元點在輸入圖像中的行列號不是或不全是正數(shù)關(guān)系,定位后的像元在原圖像中分布是不均勻的。因此,需要對原始圖像按一定規(guī)則重采樣。雙線性內(nèi)插法(Bilinear)的重采樣精度明顯較高,特別是對亮度不連續(xù)現(xiàn)象或線狀特征的塊狀化現(xiàn)象有明顯的改善,并具有均衡化和清晰化的效果,所以選擇此采樣方法。
1.1.5 影像的鑲嵌拼接
對大量經(jīng)過幾何校正的單軌影像,經(jīng)過透明處理、勻色、羽化等操作,解決鑲嵌顏色不一致、接邊以及重疊區(qū)等問題,最終實現(xiàn)所有單軌影像的無縫拼接。
1.2 數(shù)據(jù)切片
由于全月影像的數(shù)據(jù)量大,為保證系統(tǒng)能實現(xiàn)漫游、響應(yīng)速度快等要求,需要對影像進行切片處理。GDAL是一個在X/MIT許可協(xié)議下的開源柵格空間數(shù)據(jù)轉(zhuǎn)換庫。我們利用鑲嵌而成的整幅月球影像采用四叉樹的方式在空間上進行分割。本文采用256像素×256像素大小的瓦片。每一級按照22n(n≥0,n為層級數(shù))數(shù)量遞增,分辨率相應(yīng)提高四倍,但每一層數(shù)據(jù)組成在空間范圍上和原數(shù)據(jù)是一樣的。當(dāng)切割到第9級的時候,此時的影像已經(jīng)達到原始影像的分辨率,沒有必要再進行分割。最后通過對這些瓦片數(shù)據(jù)進行相應(yīng)的存儲,并建立動態(tài)加載的空間索引機制,從而實現(xiàn)對不同層級的全月影像顯示,獲得較好的瀏覽體驗效果。
2 三維平臺的構(gòu)建
2.1 平臺架構(gòu)
本文利用JavaScript、HTML5、CSS3開發(fā)客戶端,window內(nèi)置IIS作為WEB服務(wù)器,運用AJAX技術(shù)對數(shù)據(jù)異步加載從而來實現(xiàn)訪問和傳輸。
如圖1的系統(tǒng)構(gòu)架,內(nèi)嵌在瀏覽器中的WebGL支持月球數(shù)據(jù)的三維顯示,用戶在瀏覽器界面下通過鼠標(biāo)或鍵盤操作。當(dāng)用戶操作頁面時,JavaScript會處理相應(yīng)的過程,通過XMLHttpRequest對象向服務(wù)器端發(fā)送請求,網(wǎng)絡(luò)服務(wù)器處理HTTP協(xié)議,將操作需求傳送給地圖服務(wù)器,地圖服務(wù)器分析用戶請求,將需要分析的數(shù)據(jù)從數(shù)據(jù)庫中調(diào)取,將處理結(jié)果以XML或JSON類型返回網(wǎng)絡(luò)服務(wù)器,遵循網(wǎng)絡(luò)協(xié)議將結(jié)果數(shù)據(jù)發(fā)送到瀏覽器客戶端,客戶端接到服務(wù)器的響應(yīng)后通過JavaScript動態(tài)改變頁面的結(jié)構(gòu)和樣式,從而實現(xiàn)頁面的局部更新。異步交互是指當(dāng)XMLHttpRequest對象發(fā)送請求后并不影響客戶端用戶的操作,直到數(shù)據(jù)返回時才對頁面進行更新。
2.2 相關(guān)技術(shù)運用
2.2.1 WebGL技術(shù)
WebGL作為新一代Web3D圖形標(biāo)準(zhǔn),可以為HTML5Canvas提供硬件3D加速渲染,WebGL完美地解決了現(xiàn)有的Web交互式三維動畫的兩個問題:第一,它通過JavaScript腳本實現(xiàn)Web交互式三維動畫的制作,無需任何瀏覽器插件支持;第二,它利用底層的圖形硬件加速功能進行的圖形渲染,是通過統(tǒng)一的、標(biāo)準(zhǔn)的、跨平臺的OpenGL接口實現(xiàn)的。它內(nèi)嵌于時下流行的高版本瀏覽器中,無需安裝第三方的插件和庫便可以直接在多種平臺下使用它。
2.2.2 瓦片分片算法與規(guī)則
目前在對影像數(shù)據(jù)的組織與管理中常見的組織方式有規(guī)則格網(wǎng)、四叉樹、KD樹、KDB樹、BSP樹、和R樹等。其中四叉樹作為一種最常見的空間索引與柵格瓦片地圖通過瓦片編號可以有機地結(jié)合起來,實現(xiàn)在進行地圖縮放和漫游操作時動態(tài)調(diào)用地圖切片。由于這些瓦片編號具有規(guī)律性,可以根據(jù)瓦片編號和坐標(biāo)建立一種索引關(guān)系。
采用GDAL(Geospatial Data Abstraction Library)的地圖瓦片切片方法進行切片處理,根據(jù)其標(biāo)準(zhǔn),在確定經(jīng)緯度和層級的情況下,就可以通過公式得到要顯示的瓦片編號索引。顯示地圖的時候就可以根據(jù)中心坐標(biāo)和層級以及bound范圍,就可以確定需要加載那些地圖瓦片。編號和坐標(biāo)之間就建立了一種索引關(guān)系,具體的計算公式如下:
2.2.3 三維場景調(diào)度技術(shù)
視點驅(qū)動三維調(diào)動技術(shù)使用戶看到的三維場景是連續(xù)的,根據(jù)經(jīng)緯度坐標(biāo)和瓦片編號的對應(yīng)關(guān)系,當(dāng)視點移動到某一塊區(qū)域內(nèi),此區(qū)域周圍的瓦片會自動裝入緩存區(qū)內(nèi),當(dāng)視點移動到該范圍中,瓦片會被調(diào)出,同時判斷視點下一步的移動。因此在這個過程中需要根據(jù)視點的移動實時計算三維場景的可見區(qū)域,如圖2所示,從視點出發(fā)的四條射線與地表面相交,得到了四個交點從而構(gòu)成可視區(qū)域,通過和數(shù)據(jù)范圍取得交集求的數(shù)據(jù)可見區(qū)域,最后通過公式計算得到可見區(qū)域內(nèi)瓦片的索引編號。
通過上面計算可以獲得四個交點的可見區(qū)域,然后判斷瓦片的四個角點是否落在可見區(qū)域中,如果在可見區(qū)域內(nèi)則記錄該瓦片的編碼,然后對數(shù)據(jù)范圍內(nèi)所有的瓦片進行判斷,就可以全部得到可見區(qū)域瓦片編碼。
3 月球三維數(shù)據(jù)的展示
通過對系統(tǒng)整體架構(gòu)的部署,運用上文提到的各種關(guān)鍵技術(shù),最終在瀏覽器端對月球數(shù)據(jù)進行三維展示如圖3,同時把由全月DEM數(shù)據(jù)切割生成的terrain數(shù)據(jù)圖層進行疊加顯示,月球表面的環(huán)形山立體效果明顯如圖4。在此系統(tǒng)中我們建立相應(yīng)的圖層進行目錄索引,從而實現(xiàn)不同圖層之間的疊加顯示,為后續(xù)的多元、多形態(tài)、多時態(tài)數(shù)據(jù)的相關(guān)分析奠定基礎(chǔ)。與此同時,可以實現(xiàn)放大、縮小、漫游等操作,為用戶的瀏覽提供較好的視覺體驗效果。
4 結(jié)束語
我國探月工程取得了巨大科學(xué)、工程成果,同時獲得了海量不同類型的月球探測數(shù)據(jù),這些數(shù)據(jù)具有重大的科學(xué)研究價值。本文結(jié)合WebGL的優(yōu)勢,基于HTML5,結(jié)合四叉樹數(shù)據(jù)組織、瓦片技術(shù)和三維場景調(diào)度技術(shù)建立了以B/S架構(gòu)的月球空間信息三維可視化系統(tǒng),為展示更多月球數(shù)據(jù)提供了平臺,增加了科普性,方便了廣大用戶更好的了解月球,促進三維月球WEB端的發(fā)展起到了推動作用。
參考文獻:
[1]董智慧.基于空間信息服務(wù)云月球數(shù)據(jù)共享機制研究[D].成都:成都理工大學(xué),2012.
[2]趙葆常,楊建峰,汶德勝,等.嫦娥一號衛(wèi)星CCD立體相機的設(shè)計與在軌運行[J].航天器工程,2009,18(01):30-36.