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

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