范大偉,安志強(qiáng),劉育錦,曹敦波
(民航新疆空管局氣象中心,烏魯木齊830016)
多普勒天氣雷達(dá)是預(yù)報人員監(jiān)測、分析中小尺度天氣系統(tǒng)的強(qiáng)有力工具;同時也是航空管制人員指揮航空器進(jìn)行雷雨繞飛的重要參考依據(jù)。烏魯木齊地窩堡國際機(jī)場現(xiàn)有一部機(jī)場多普勒天氣雷達(dá)(以下簡稱ADWR),該雷達(dá)是由安徽四創(chuàng)電子股份有限公司設(shè)計、開發(fā)的新一代大型C 波段全相參脈沖多普勒天氣雷達(dá)。根據(jù)2017 年底下發(fā)的《民航空管系統(tǒng)天氣雷達(dá)運(yùn)行維護(hù)維修規(guī)程》[1]的要求雷達(dá)服務(wù)部門需要備份天氣雷達(dá)系統(tǒng)基數(shù)據(jù)和相關(guān)產(chǎn)品。該文件下發(fā)前只備份基數(shù)據(jù),不備份產(chǎn)品。實際業(yè)務(wù)運(yùn)行中預(yù)報人員查看2018 年以前特定時刻產(chǎn)品,只能手動將對應(yīng)時刻基數(shù)據(jù)拷入到雷達(dá)數(shù)據(jù)處理服務(wù)器,經(jīng)特定程序的處理后,才能生成所需要的產(chǎn)品。這種方式會帶來兩個問題:①雷達(dá)運(yùn)行過程中如果處理以前特定時刻基數(shù)據(jù)會導(dǎo)致當(dāng)前時刻的產(chǎn)品無法生成;②雷達(dá)數(shù)據(jù)處理服務(wù)器作為重要的數(shù)據(jù)處理和存儲設(shè)備,頻繁插優(yōu)盤不利于網(wǎng)絡(luò)安全。為了解決此問題,本文開發(fā)了一套基于MATLAB 的機(jī)場多普勒天氣雷達(dá)基數(shù)據(jù)顯示系統(tǒng),目前該系統(tǒng)可以實現(xiàn)對雷達(dá)強(qiáng)度信息的顯示。本系統(tǒng)的最大特點在于采用MATLAB 提供的相關(guān)函數(shù)完成基數(shù)據(jù)的顯示工作,只需要很少的代碼就能完成相關(guān)工作。下面將對系統(tǒng)實現(xiàn)進(jìn)行詳細(xì)介紹,并通過個例展示本系統(tǒng)的實際效果。
MATLAB 又稱矩陣實驗室,是一款由MathWorks公司開發(fā)的程序設(shè)計環(huán)境,主要用于算法開發(fā)、數(shù)據(jù)分析、可視化和數(shù)值計算[2-3]。利用MATLAB 編程容易上手,且有很多專業(yè)函數(shù)可供調(diào)用,代碼量較小,開發(fā)周期短,同時MATLAB 還提供了圖形界面設(shè)計與開發(fā)功能,利用該功能可以開發(fā)出友好的圖形界面[4-5]。
圖形用戶界面開發(fā):創(chuàng)建一個新的Blank GUI;在新界面中加入基數(shù)據(jù)選擇按鈕和仰角選擇按鈕;通過Tools 下的Toolbar Editor 向新界面中添加放大功能鍵、縮小功能鍵;編寫回調(diào)函數(shù),回調(diào)函數(shù)的主要功能是完成基數(shù)據(jù)的解碼和強(qiáng)度信息的顯示。
體掃基數(shù)據(jù)是雷達(dá)執(zhí)行體積掃描所獲取的原始數(shù)據(jù),主要由文件標(biāo)識、文件頭和數(shù)據(jù)記錄塊所組成,數(shù)據(jù)記錄塊包括回波強(qiáng)度、徑向速度和速度譜寬等,以極坐標(biāo)方式順序排列,以二進(jìn)制形式進(jìn)行保存[6-7]。ADWR 文件標(biāo)識12 個字節(jié),文件頭2048 個字節(jié);雷達(dá)數(shù)據(jù)記錄塊以徑向數(shù)據(jù)為單位,每個徑向數(shù)據(jù)占4011個字節(jié),前11 個字節(jié)為仰角、方位角和時間,后4000個字節(jié)分別為經(jīng)過地物雜波抑制的強(qiáng)度值、不經(jīng)地物抑制的強(qiáng)度值、徑向速度值和譜寬值。這部分涉及的主要代碼如下:
[filename,pathname]=uigetfile('*.014','請選擇雷達(dá)基數(shù)據(jù)');
fid=fopen([pathname,filename],'rb');
head=fread(fid,2060);
data=fread(fid,4011);
由于ADWR 基數(shù)據(jù)的后綴名為“.014”,因此利用uigetfile 函數(shù)完成基數(shù)據(jù)的選擇;利用fopen 函數(shù)打開基數(shù)據(jù)文件,再利用fread 函數(shù)分別讀取頭文件和數(shù)據(jù)塊。這里需要注意頭文件中包含不同仰角徑向個數(shù)RecordNumber 和距離庫數(shù)BinNumber,這是因為ADWR 不同仰角的徑向個數(shù)不一樣,距離庫數(shù)一樣,通常是1000。
基數(shù)據(jù)顯示主要涉及以下幾個部分:①確定每一點的三維坐標(biāo)信息;②確定每一點的強(qiáng)度信息;③繪制網(wǎng)格圖;④視角的確定和色標(biāo)的繪制等。關(guān)鍵代碼如下:
for i=1:RecordNumber %徑向數(shù)據(jù)個數(shù)
for j=1:BinNumber %距離庫數(shù)
X(i,j)=j*cos(B(i)/180*pi)*sin(A(i)/180*pi);
Y(i,j)=j*cos(B(i)/180*pi)*cos(A(i)/180*pi);
Z(i,j)=j*sin(B(i)/180*pi);
end
end
mesh(X,Y,Z,rad_ref);
view([0,0,1]);
colormap([0 0 0;
0 0 162
0 107 253;
0 186 253;
111 248 255;
0 150 50;
0 220 0;
180 255 180;
196 166 0;
255 255 0;
238 255 0;
255 0 0;
255 100 100;
255 180 180;
150 0 180;
200 100 155;
241 198 253;
]/255);
caxis([-10,70]);
i 和j 表示當(dāng)前仰角的徑向和對應(yīng)徑向上的距離庫,A(i)和B(i)分別代表方位角和仰角。通過在基數(shù)據(jù)解碼過程中獲取的每個徑向的方位角和仰角就可以確定每個徑向每個點的三維坐標(biāo)信息,即每個點的X,Y,Z 信息。
代碼中基數(shù)據(jù)強(qiáng)度信息rad_ref 為二維矩陣,與X(i,j)、Y(i,j)、Z(i,j)排列一致,行為徑向個數(shù),列為距離庫數(shù),該數(shù)據(jù)的獲取也是在基數(shù)據(jù)解碼過程中完成。
X、Y、Z 和rad_ref 確定后利用MATLAB 自帶函數(shù)mesh(X,Y,Z,C)進(jìn)行數(shù)據(jù)的繪制,mesh 是一個三維網(wǎng)狀曲面函數(shù)。利用矩陣X、Y、Z 確定網(wǎng)線面,矩陣C 確定最終的三維網(wǎng)格圖顏色。繪制結(jié)束后需要確定查看的視角,這部分利用view 函數(shù)完成,這里采用俯視圖,即view([0,0,1])。
colormap 函數(shù)與caxis 函數(shù)配合使用完成顏色映射,將強(qiáng)度值轉(zhuǎn)換成顏色值。colormap 函數(shù)每行代表一個顏色,每行定義一個RGB 三元組,第一列指定紅色強(qiáng)度,第二列指定綠色強(qiáng)度,第三列指定藍(lán)色強(qiáng)度;caxis 函數(shù)提供一個最小值和最大值,小于等于最小值的顏色用colormap 第一行顏色表示,大于等于最大值的顏色由colormap 最后一行顏色表示,中間數(shù)值的顏色根據(jù)colormap 函數(shù)中的行數(shù)據(jù)進(jìn)行線性映射。
本文以2017 年5 月2 日發(fā)生在烏魯木齊國際機(jī)場雷雨伴冰雹天氣為例,使用18 時32 分(北京時間)的體掃基數(shù)據(jù)進(jìn)行強(qiáng)度顯示,系統(tǒng)顯示效果如圖1 所示。基數(shù)據(jù)選擇按鈕完成選取特定時刻的基數(shù)據(jù)進(jìn)行顯示(默認(rèn)0.5°的PPI 產(chǎn)品);通過點擊不同的仰角,可以實現(xiàn)不同仰角PPI 產(chǎn)品的顯示;工具欄上有放大、縮小兩個個工具,可對圖形進(jìn)行放大、縮小操作。

圖1 機(jī)場多普勒天氣雷達(dá)基數(shù)據(jù)顯示系統(tǒng)
該系統(tǒng)實現(xiàn)對ADWR 體掃基數(shù)據(jù)中強(qiáng)度信息的顯示,方便了預(yù)報人員分析過往雷達(dá)基數(shù)據(jù),并在一定程度上解決了只備份基數(shù)據(jù)不備份產(chǎn)品帶來的問題。目前該系統(tǒng)只能顯示強(qiáng)度信息,后續(xù)計劃將徑向速度值和譜寬值的顯示加入到該系統(tǒng)中,使該系統(tǒng)更加完善。