石璞欣
摘要:以氣象雷達(dá)的體掃數(shù)據(jù)為基礎(chǔ),在三維空間中等距格點(diǎn)化探測(cè)結(jié)果,后借助WebGL三維繪圖技術(shù),探索如何在瀏覽器中清晰友好的展示信息。
關(guān)鍵詞:雷達(dá)數(shù)據(jù)處理;前臺(tái)技術(shù);WebGL;人機(jī)交互
氣象雷達(dá)的應(yīng)用在氣象探測(cè)領(lǐng)域已經(jīng)非常普及,其基本原理是:雷達(dá)發(fā)射的電磁波預(yù)到空氣中的介質(zhì),如云滴、雨滴,會(huì)發(fā)生散射現(xiàn)象,這些散射波中又會(huì)有部分返回雷達(dá)方向,被雷達(dá)天線接收,我們根據(jù)收到反射波的強(qiáng)度和時(shí)間就可以得出介質(zhì)的密度和距離,根據(jù)反射波的頻率變化(多普勒效應(yīng))就可以得出介質(zhì)的相對(duì)移動(dòng)速度。
雷達(dá)每一次發(fā)射電磁波的探測(cè)范圍為一個(gè)非常小角度的錐形,類似于手電筒的照射范圍,為了探測(cè)完整的空域,雷達(dá)需要不斷的調(diào)整方位角和上仰角度進(jìn)行掃描式探測(cè)。雷達(dá)系統(tǒng)會(huì)將一次全空域的探測(cè)結(jié)果輸出為一個(gè)“體掃文件”,其中完整記錄了每個(gè)方位角和仰角的探測(cè)結(jié)果。
由此可見雷達(dá)探測(cè)的范圍實(shí)際上是大氣的三維空間,相對(duì)的,氣象站是地面上的點(diǎn),衛(wèi)星是投射的面,可謂雷達(dá)數(shù)據(jù)更全面更詳細(xì),使它已經(jīng)成為最重要的探測(cè)數(shù)據(jù)之一。
但當(dāng)前所廣泛使用的雷達(dá)產(chǎn)品還都是二維平面展示為主,難以將其三維探測(cè)的結(jié)果全面直觀的展現(xiàn)給用戶。這里就雷達(dá)數(shù)據(jù)在瀏覽器中使用WebGL三維繪圖技術(shù)進(jìn)行展示的方式進(jìn)行探索。
1雷達(dá)數(shù)據(jù)預(yù)處理
雷達(dá)探測(cè)到的數(shù)據(jù)可以看作是三維空間中非均勻分布的離散的點(diǎn)的集合,描述每個(gè)點(diǎn)的坐標(biāo)系采用的是相對(duì)雷達(dá)所在地的方位角、仰角、距離,故以雷達(dá)為中心,探測(cè)數(shù)據(jù)密度會(huì)呈隨距離增加而減小的放射狀分布,而非均勻分布。為了視覺統(tǒng)一性和多雷達(dá)拼圖顯示,就需要統(tǒng)一解析度,將“體掃文件”數(shù)據(jù)等距柵格化。同時(shí)又為了可以直觀的表現(xiàn)數(shù)據(jù)區(qū)域,為雷達(dá)產(chǎn)品疊加地理信息背景,我們就需要將相對(duì)于雷達(dá)位置的數(shù)據(jù)坐標(biāo)系轉(zhuǎn)換至地理信息的投影坐標(biāo)系中。
明確了預(yù)處理需求,就可以確定具體的處理步驟了:首先需要將雷達(dá)體掃源數(shù)據(jù)的各個(gè)有效點(diǎn)的坐標(biāo)轉(zhuǎn)換到地理信息投影的目標(biāo)坐標(biāo)系中備用,然后確定最終顯示的解析度,注意這里不同于通常的平面顯示,需要考慮在高度層上的解析精度,最后使用第一步準(zhǔn)備好的數(shù)據(jù)通過插值算法求得每個(gè)精度點(diǎn)上的值,這樣我們就在顯示坐標(biāo)系中得到了一個(gè)均勻分布的雷達(dá)數(shù)據(jù)集。
關(guān)于插值算法,是在離散數(shù)據(jù)的基礎(chǔ)上補(bǔ)插連續(xù)函數(shù),使得這條連續(xù)曲線通過全部給定的離散數(shù)據(jù)點(diǎn)的數(shù)學(xué)方法,當(dāng)前應(yīng)用較廣的插值算法有l(wèi)inear,nearest,cubic三種,結(jié)果不盡相同,應(yīng)在實(shí)際應(yīng)用中測(cè)試選定。
2三維渲染技術(shù)
這里我們選擇的三維顯示技術(shù)是基于Web網(wǎng)頁瀏覽器中的WebGL3D繪圖技術(shù)。
2.1 WebGL的優(yōu)勢(shì)
首先,WebGL的顯示環(huán)境載體是HTML的canvas對(duì)象,也就是在網(wǎng)頁瀏覽器中顯示的,所以他也就具備了網(wǎng)頁端應(yīng)用的所有優(yōu)勢(shì),如:對(duì)客戶端設(shè)備的廣泛兼容性、程序版本升級(jí)的便捷性、用戶終端低廉的設(shè)備和人力運(yùn)維成本等。
其次,WebGL是OpenGL的瀏覽器版本,有著專業(yè)、完整、可控的3D渲染通道流程,并且可以調(diào)用客戶端設(shè)備的顯卡進(jìn)行實(shí)時(shí)渲染,可謂功能強(qiáng)大且無需服務(wù)器提供渲染算力。
2.2 WebGL的三維渲染
三維場(chǎng)景的渲染不同于平面,需要模擬真實(shí)三維空間的成像過程,所以我們需要使用多個(gè)步驟(函數(shù))來定義詳細(xì)的環(huán)境狀態(tài)。
視口:可以理解為瀏覽器界面上用于顯示最終結(jié)果的區(qū)域。這里我們需要定義其長(zhǎng)高的像素大小,為了保真顯示,一般將其設(shè)為canvas對(duì)象的大小。
場(chǎng)景:一個(gè)虛擬的三維坐標(biāo)系。用于定位放置各類三維對(duì)象。
實(shí)體對(duì)象:三維空間中的模型對(duì)象。數(shù)量無限制,在這里可以詳細(xì)定義每個(gè)可能置于場(chǎng)景中的物體或粒子的形狀、材質(zhì)、顏色、漫反射/高光反射/法線反射等貼圖屬性。
光源對(duì)象:模擬現(xiàn)實(shí)中的光源,作用于場(chǎng)景中的一種三維對(duì)象。自身不可見,但根據(jù)其設(shè)置的照射方向、強(qiáng)度、擴(kuò)散度使實(shí)體對(duì)象表現(xiàn)出不同的效果,如果場(chǎng)景中沒有光源對(duì)象,大多數(shù)材質(zhì)的實(shí)體對(duì)象都是無法顯示的。
攝像機(jī)對(duì)象:也是需要放置于場(chǎng)景中的一種三維對(duì)象。同樣自身不可見,用于定位渲染時(shí)使用的視角坐標(biāo)、朝向、視角廣度等。
渲染器:也叫著色器,根據(jù)上面各項(xiàng)所設(shè)置的環(huán)境,計(jì)算并渲染出目標(biāo)三維空間在攝像機(jī)中的二維投影。
通過上面幾個(gè)步驟,我們就完成了一張三維圖片的渲染顯示。但我們需要的并不僅僅是一張靜態(tài)的圖片,而是要在用戶的操作下可以進(jìn)行動(dòng)態(tài)交互顯示的。這就涉及實(shí)時(shí)三維動(dòng)畫的基本方法—— 循環(huán)渲染。實(shí)驗(yàn)證明人類眼睛有視覺停留特性:如果靜態(tài)圖片的切換速度大于24幀每秒,就會(huì)感覺畫面在運(yùn)動(dòng),所以我們可以使用JavaScript的requestAnimationFrame方法不斷的循環(huán)調(diào)用渲染器重新渲染畫面,并在每次渲染前對(duì)場(chǎng)景中的實(shí)體、光源或攝像機(jī)對(duì)象進(jìn)行調(diào)整,就產(chǎn)生了流暢的三維動(dòng)畫效果。
3氣象雷達(dá)數(shù)據(jù)三維顯示方式
3.1 基礎(chǔ)整體顯示
平面雷達(dá)(拼)圖的顯示方式,有特定高度層(舍棄其他高度層信息)和全高度層最大值(將高度信息塌陷到平面)兩種顯示方式,且都使用純色色標(biāo)表示強(qiáng)度。
雖然將使用三維技術(shù)渲染雷達(dá)數(shù)據(jù),但其最終結(jié)果仍是以二維平面形式顯示,就如同現(xiàn)實(shí)生活中無法但從一個(gè)視角了解一個(gè)物品的全部信息,所以必須要提供一個(gè)視角可調(diào)的交互功能。經(jīng)過測(cè)試,由用戶控制攝像機(jī)位置坐標(biāo)和朝向的傳統(tǒng)交互方式體驗(yàn)較差。為了可以快捷的從各個(gè)方向查看目標(biāo)區(qū)域的狀態(tài),將用戶可控的攝像機(jī)變量設(shè)置為需查看目標(biāo)的中心坐標(biāo)點(diǎn)(由鼠標(biāo)所指位置確定)、攝像機(jī)相對(duì)于目標(biāo)點(diǎn)的距離(由鼠標(biāo)滾輪調(diào)整)、攝像機(jī)相對(duì)于目標(biāo)點(diǎn)的方位(由鼠標(biāo)左鍵拖動(dòng)控制)。
另外為了解決純色色標(biāo)系統(tǒng)導(dǎo)致的后方信息遮擋問題,可以提供多種渲染材質(zhì)選擇,如根據(jù)強(qiáng)度大小設(shè)置為不同密度的云霧粒子對(duì)象標(biāo)識(shí)數(shù)據(jù)。
3.2 刨面數(shù)據(jù)顯示
根據(jù)不同的業(yè)務(wù)需求,刨面方式一般分為垂直刨面、水平高度層刨面、航路刨面。為了避免信息遮擋,應(yīng)當(dāng)對(duì)非刨面數(shù)據(jù)進(jìn)行隱藏或大幅降低透明度操作。同時(shí)刨面上的數(shù)據(jù)顯示也應(yīng)擁有一定透明度,以保證背景地理信息等輔助資料的可見性,提高用戶的空間感知體驗(yàn)。
另外應(yīng)發(fā)揮三維顯示的優(yōu)勢(shì),允許用戶可控刨取面的厚度,這樣可以更直觀的讓用戶了解到核心區(qū)域被影響的范圍。
3.3平面化顯示兼容
三維雷達(dá)數(shù)據(jù)顯示現(xiàn)階段并沒用通用產(chǎn)品在業(yè)界被廣泛的應(yīng)用,考慮到用戶使用習(xí)慣,應(yīng)當(dāng)向下兼容傳統(tǒng)的二維平面顯示習(xí)慣的產(chǎn)品分類:
1.CAPPI產(chǎn)品。即特定高度的雷達(dá)強(qiáng)度回波,可以將水平刨面圖,使用垂直俯視視角進(jìn)行平面投影即可獲得等效產(chǎn)品。
2.MAX產(chǎn)品。即特定區(qū)域最強(qiáng)回波圖投影,只需將視角調(diào)整至所需方向,將數(shù)據(jù)按強(qiáng)度最大值進(jìn)行遮擋式渲染即可。
3.速度圖。這類產(chǎn)品的顯示渲染方式和強(qiáng)度類產(chǎn)品相同,將強(qiáng)度回波更換成速度回波的源數(shù)據(jù)即可實(shí)現(xiàn)。
4擴(kuò)展和展望
上文只是從基本實(shí)現(xiàn)角度探討了氣象雷達(dá)數(shù)據(jù)的三維顯示方式。但從三維的展示可能性上出發(fā),還有很大的發(fā)展空間,可能提供全新的展示方式。如:
數(shù)據(jù)強(qiáng)度顯示閾值可調(diào)性。強(qiáng)度低于一定值的回波特地的業(yè)務(wù)需求無影響,如飛機(jī)航行、降水、能見度影響的需求都不盡相同。
預(yù)置路徑(航線)模擬行進(jìn)。為用戶提供一個(gè)直觀的對(duì)其行程造成影響的感受。
時(shí)間軸動(dòng)畫。提供一個(gè)基于時(shí)間軸的雷達(dá)探測(cè)數(shù)據(jù)或外推預(yù)報(bào)數(shù)據(jù)的三維動(dòng)畫展示功能。
產(chǎn)品輸出功能。根據(jù)用戶查詢條件,可以將結(jié)果輸出為通用位圖會(huì)動(dòng)畫產(chǎn)品。
相信隨著三維顯示模式逐漸業(yè)務(wù)化普及化,還將發(fā)展出更多便捷直觀的顯示方式。