四創電子股份有限公司 姜艷艷
雷達終端軟件的主要功能之一就是實時回波顯示的功能,本文主要論述一種連續波測云雷達的回波顯示技術,在QT平臺下調用類庫如QPinter類及OpenGl技術等實現高性能、高可靠性雷達終端軟件的顯示功能。
近年來,計算機圖形技術及雷達探測技術得到了長足的發展,對雷達軟件的穩定性、可移植性的要求也相應提高。因此QT在雷達終端軟件的應用中得以越來越多,QT是奇趣科技公司的產品,是基于C++圖形用戶界面的應用程序框架,它可以提供應用程序開發者建立圖形用戶界面所需的所有功能。QT面向對象的框架,具有豐富的API,可以真正實現組件編程。QT具有優良的跨平臺特性,可在Windows,Linux,UNIX等操作系統間移植;同時Qt具有封裝機制,模塊化程度非常高,可重用好,支持進行2D/3D圖形渲染,支持OpenGL技術等。
雷達終端軟件主要界面包括回波顯示區、控制面板區、A顯信息窗口、三維顯示區等,回波顯示區可實時顯示及瀏覽雷達回波數據,基于VS開發的軟件,通常采用Direct2D、DirecDraw等技術顯示雷達回波,DirectDraw是微軟DirectX的部件.是2D圖形的引擎,不僅兼容GDI編程,還可以直接對顯存進行操作。QT提供了二維繪圖系統,主要由QPainter等三個繪圖類構成了QT繪圖系統的基礎。QT的三維繪圖技術OpenGL,可建立三維圖形的場景。本軟件采用QPainter進行繪圖顯示雷達回波數據,采用OpenGL技術完成三維回波圖的顯示。
QPainter是QT提供底層的繪圖類,QPainter類可允許開發人員進行各種的圖形操作,使用其優化的函數來完成圖形用戶界面的繪制,包括圖形、文本、圖像的顯示,及其他操作如漸變、圖形渲染、矢量圖形等。QPainter包含三種繪圖設備,在繪圖時要首先創建繪圖設備,重新定義繪圖事件paintEvent(),在此函數內設置繪圖筆屬性,畫刷屬性,字體樣式等。QPainter在自己的坐標系統進行坐標變換,其包含的繪圖函數,使用的是整數坐標。需要注意的是,使用完繪圖設備要對其進行銷毀。
雷達回波圖形的方位刻度,時間刻度等可由QPainter繪制,通過調用drawline()函數繪制VPT掃描、RHI掃描的刻度,調用drawEllipse()函數繪制PPI掃描的圓形刻度,調用drawText()函數繪制刻度文本及注釋文本。
使用獨立的QImage類實現回波像素的顯示,QImage在I/O操作速度快,并且給出了訪問像素的接口。通過調用成員函數setPixel(),將回波數據的轉換為對應的像素點,根據回波數據的RGB值,繪制像素點的顏色。雷達回波數據顯示需經過坐標轉換,轉換為雷達的極坐標;為實現高效的圖像繪制,采用雙緩存技術。
由于雷達終端軟件接收的數據是采用地理坐標,雷達終端軟件顯示坐標為極坐標系,在進行回波顯示繪圖時,首先要進行坐標換算。坐標轉換的原理就是將視圖中心點與屏幕中心點的偏移和比例尺進行計算就可以得到屏幕坐標。兩種坐標如圖1所示。

圖1 地理坐標

圖2 雷達極坐標系
地理坐標如圖1所示,坐標原點表示雷達位置,x軸指向的是正北方向,雷達所在位置與目標探測點的直線距離R表示斜距,雷達方位角為坐標原點與目標的直線距離在水平面投影點,與x軸的夾角,雷達俯仰角表示原點與目標的距離與z軸之間的夾角。雷達終端軟件顯示坐標為極坐標系,顯示屏的左上角表示坐標原點o,圖形的像素位置可由坐標原點計算,水平坐標由左向右增大,垂直坐標由上向下增大,不表征高度信息。因此在雷達數據顯示時,首先對雷達數據將三維的數據轉換為二維的極坐標,并映射兩種坐標系的轉換公式為:通過這種變換,有的掃描模式還需要結合地球曲率進行計算,可將雷達回波數據在屏幕極坐標系顯示。

由于雷達數據較大,繪制過程需要一定時間,甚至會出現閃爍,為避免這種現象,在雷達數據繪制時采用雙緩存技術,即為了節省系統開銷,使用QPainter創建臨時的繪圖設備,先將雷達數據通過坐標轉換后,根據回波顏色繪制到臨時的繪圖設備上,然后使用QPainter創建回波繪圖設備,將臨時的繪圖設備拷貝到回波繪圖設備,并調用updata()更新屏幕,經對比這種技術能極大的提高繪圖效率,用戶看不到圖像的擦除、更新和顯示處理過程,避免由于圖元頻繁更新引起的閃爍現象。
雷達常用的掃描,如平掃、高掃、體掃、時間高度掃描等,可在二維繪圖顯示。但是雷達高掃模式僅能觀測到某方位方向水平到雷達頂空的部分空域的回波,為了能全面觀測多方位的空域回波,可由多個方位的高掃組成多方位高掃(HSRHI),需要軟件在二維云回波顯示的基礎上,增加三維云回波立體顯示.如圖3為雷達HSRHI掃描三維徑向速度圖。QT的OpenGL(Open Graphics Library)提供的構造幾何圖元的方式,為實現雷達圖像顯示提供了豐富接口。

圖3 OpenGl繪制三維回波
Qt集成的OpenGL模塊,是繪制三維圖形的標準API,是圖形硬件的軟件接口,可以在不同的操作系統如Windows、Unix、Linux、OS/2之間進行移植,得到了廣泛的應用。QGLWidget是QT封裝的一個部件,提供了構建OpenGL的場景,通過對QGLWidget子類化,結合OpenGL命令開發適合用戶圖形的窗口部件。當創建一個QGLWidget子對象時,系統調用成員函數實現初始化,繪制當前場景,及部件大小位置變化時的場景重繪。
在創建三維圖像時,使用OpenGL提供函數的構造幾何圖元,有必要時可調用函數定義刻度頂點坐標、刻度頂點顏色、紋理圖、紋理坐標等。通過這種方式,構造HSRHI場景,根據軟件設置的多個方位高掃模式,在三維HSRHI場景顯示多方位高掃數據,更加直觀顯示各方位空域的高掃回波數據。
圖4為2019年7月31號合肥地區探測到的實際回波,雷達工作于垂直探測模式,固定仰角指向90°。橫坐標為時間,縱坐標為高度。軟件進行時間高度積累顯示,以固定時間間隔顯示新的徑向數據,每當新的數據到來時,時間軸會更新為最新時間,通過雙緩存技術將之前的數據拷貝,并向前移動到對應的時間刻度位置。掃描時間段結束后,將掃描時間段內的鏈表數據保存為數據文件。雷達終端軟件具備瀏覽數據文件的功能,可根據數據格式讀取并將數據重新繪制顯示。

圖4 回波圖像顯示
從圖中可以看出,天氣狀況為降雨,從地面到15km均有回波,10km處回波較強。基于QT繪圖機制,雷達終端軟件可實時顯示的回波圖像,能清楚分辨云雨邊界信息及云內部精細結構,可用于后期分析云的形成消散等。
結論:通過QT豐富的類庫及OpenGL等技術,實現雷達終端軟件回波圖像的二維及三維顯示,能清楚反映當前的天氣狀態及云邊界、云高云低、零度層等信息。軟件具有高效性及穩定性,界面簡潔,具有較強的人工交互性,并可實現跨平臺性能,可滿足雷達終端軟件對云回波的顯示要求。