童艷 陶鶴丹 王萬金



摘? 要: 為滿足測控系統對高頻增量數據跨平臺實時顯示與分析能力需求,采用空間換時間的思想,通過態勢顯示與細節展示相結合的方式,減輕大數據量條件下的圖形渲染時間壓力。設計前端顯示頻率動態調整與數據量自動優化算法二者結合,實現高頻增量信息實時動態顯示與交互的流暢性。通過Echarts工具組件的使用和面向地理信息系統的二次開發,提高了測控信息實時可視化數據分析能力。測試結果表明,通過設定合適的優化系數能夠保證可視化軟件長時間運行流暢不卡頓,可滿足高頻增量測控數據實時可視化交互需求。
關鍵詞: 實時; 動態顯示; 可視化交互; 優化算法; 地理信息
中圖分類號:TP319? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2023)04-127-03
Abstract: In order to meet the requirements of the measurement and control system for real-time cross-platform display and analysis capability of high-frequency incremental data, the idea of space for time is used to reduce the time pressure of graphics rendering under the condition of large data volume through the combination of situation display and detail display. The combination of front-end display frequency dynamic adjustment and data volume automatic optimization algorithm is designed to realize the smoothness of real-time dynamic display and interaction of high-frequency incremental data. Through the use of Echarts tools and the secondary development of geographic information system, the ability of visual data interaction and analysis is enhanced. The test results show that this method can ensure the smooth running of the visualization software for a long time by setting appropriate optimization coefficients. It meets the requirements of real-time visual interaction of high-frequency incremental data.
Key words: real-time; dynamic display; visual interaction; optimization algorithm; geographic information
0 引言
在飛行器測控任務中,中心機系統實時處理飛行目標的跟蹤測量數據、目標解算軌跡等測控信息,這些信息需要實時顯示供指揮決策者分析測控任務完成情況,并作為安控決策依據[1]。由于這類數據具有實時性強、更新頻率高、數據積累量大等特點,對這類數據的可視化顯示分析要考慮在大數據量條件下的實時性和交互性,防止顯示界面出現丟點、卡頓、信息監視不及時而導致測控失利。同時,隨著測控綜合保障平臺的建設發展,搭載可視化分析軟件的平臺存在多樣性特點,這就要求顯示分析軟件能夠不受軟硬件平臺的限制。因此需要設計出可跨平臺運行的高頻增量測控數據實時可視化交互軟件。
本文提出了一種空間換時間的思想,通過Echarts提供的多種數據圖表可視化解決方案,實現了不受軟硬件平臺約束的測控數據動態顯示與交互。應用過程中針對顯示需求作了必要的二次開發和算法設計,滿足了高頻增量測控信息的實時可視化交互需求。
1 跨平臺軟件構架
用于顯示分析測控信息的軟件運行在工作站或終端節點[2],這些平臺通常基于Windows或Linux操作系統搭建。考慮多種平臺適應性,Qt+Web是不錯的選擇。Qt是一個跨平臺的C++應用程序開發框架,它提供的Web引擎能夠實現瀏覽器功能。因此本文選擇Qt+Web作為軟件開發平臺,滿足軟件的跨平臺運行需求。
為保證實時性,軟件采用C-S架構。用C++完成后端開發,實時接收測控網絡的組播數據[3],按照信息流程解包,將顯示信息加工成json格式,采取主動推送模式驅動前端界面進行實時更新顯示。Web前端采用HTML5+CSS+Echarts技術,其中HTML5和CSS用于控制網頁布局和樣式,Echarts用于創建動態圖表。Echarts是目前流行的商業級數據圖表庫,提供了包括地理坐標、直方圖、曲線圖等多種數據圖表可視化解決方案。作為一個JS插件,其底層依賴輕量級的Canvas封裝類庫ZRender,兼容當前絕大部分瀏覽器[4],無軟硬件平臺限制,是構建跨平臺測控信息可視化交互軟件的理想選擇。
基于Echarts的實時測控信息跨平臺可視化交互軟件設計流程如圖1所示。軟件采用多線程設計,主線程創建Web窗口負責前端圖表顯示和人機交互分析,子線程負責實時接收、解析網絡數據,當有新數據到來時以4Hz頻率向Web窗口發送消息。窗口根據數據優化算法控制顯示刷新,為用戶提供顯示分析服務。
2 關鍵技術
2.1 優化算法設計
為了保證高頻增量數據的實時更新動態顯示,這里提出一種空間換時間的思想進行前端圖表原型設計,采用態勢顯示與細節展示相結合的方式展示數據。其中態勢顯示主要展示目標飛行全程時間段的測控信息,大部分時間刷新頻率較低,對大數據量條件下的圖形渲染時間沒有壓力,不會因為數據量大更新頻率高導致系統卡頓和丟點。細節展示是給用戶提供一個滑動窗口,展示最近T(如40秒)時刻內的數據,刷新頻率固定為4Hz。由于受時間窗口約束,細節窗口顯示的數據量小,高頻刷新也不會造成渲染不及時而卡頓的現象。態勢顯示與細節展示相結合是解決大數據量條件下實時顯示測控信息的有效方案。
在態勢顯示圖上,需要對數據進行篩選以防止資源耗盡或產生不必要的浪費,從而完成有效顯示[5]。如在視圖可見范圍較大時,有可能在一個像素點附近高頻刷新大量數據,而這樣做卻并不會引起太大的視覺反應,反而浪費了資源。
這里設計一種數據優化算法,使顯示刷新頻率根據數據質量和視圖縮放系數動態地調整。該算法的原理為:當實時更新的測控信息前后數據差異相對態勢底圖窗口比例較小時,配合細節顯示窗口以4Hz頻率實時更新顯示數據,態勢顯示刷新頻率需求則大大降低,此時態勢顯示呈現“低功耗待機”模式,惰性刷新可達3-5秒一次;當數據出現干擾,跳點較大時,超過了惰性刷新門限,顯示界面能夠立即啟動“積極響應”模式。兩種模式動態切換既不會使異常點數據延遲更新,又可以達到實時高效監視的目的。與此同時為了防止大數據量條件下圖形渲染對資源產生的壓力,態勢圖顯示的數據量可根據目標數量和飛行時長選擇性優化。根據底圖窗口大小動態調整顯示刷新步長門限,對比前后數據差異與步長的關系決定數據取舍,從而可以大大降低每周期內顯示刷新的數據數量。
以上給出的顯示刷新頻率動態調整和數據量自動優化算法二者結合能夠保證高頻增量數據實時可視化交互的流暢性。
2.2 交互功能設計
測控信息可視化是實時掌握測控目標飛行動態的方法手段,其目的是分析目標特性和狀態,因此可供人機交互的數據實時分析功能必不可少。為了能更好的實現交互分析,可利用Echarts提供的提示框組件tooltip獲取每個數據點的詳細信息。以地理坐標數據為例,設計地圖系列數據的name和value組成。根據地理信息數據特點將name設計為飛行時,在value結構中除了確定地理坐標的二維數據外,可在value的三維以上數據中設計需要提供給用戶的信息,如目標號、測量方案等。設計提示框浮層內容格式為“數據名:數據值”,此時用戶可通過鼠標拾取地圖上任意數據點的信息,包括時間、經緯度、目標號和測量方案等,便于實時分析目標測控和飛行情況。在多目標飛行任務中,還可以利用Echarts提供的visualMap組件實現目標的視覺映射,直觀區分多目標信息,在同一地圖上完成多目標的實時數據顯示。
除了常規的地圖縮放、點選、提示信息等,對于地圖數據還有一個重要且常用的功能就是地圖量尺。Echarts提供的鼠標響應函數和像素坐標轉換API使得我們在地圖上做二次開發成為可能。在鼠標單擊響應事件中,通過Echarts的API接口convertFromPixel可以輕松拾取大地坐標,采用公式⑴計算兩點之間的距離[6],從而實現快速分析功能。
其中,Lat1、Lat2、Lon1、Lon2分別為兩點的經度和緯度,a代表兩點的經度差,R為地球半徑。
3 應用效果測試
3.1 測試環境搭建
以地圖數據為例創建Web頁面,運用Ajax技術從json文件異步讀取數據文件[7],如站址數據、理論軌跡數據、安全管道數據,選用特效散點圖、普通散點圖、線圖繪制以上三種數據結合地圖作為地理信息顯示底圖。設計散點圖顯示增量地理信息數據,設計帶目標標識的線圖表示目標實時飛行狀態。采用跨平臺開發框架QT搭建C-S架構應用環境,主窗口通過QWebEngineView類加載Web頁面,同時創建多線程完成數據匯集,抽取飛行時、經度、緯度、目標號、方案號等信息加工成json數據,實時推送給Web頁面采用本文提出的優化方法進行顯示處理。設計目標軌跡散點圖數據格式為:{name:"時間",value:[經度,緯度,方案號]},tooltip的格式為:'{b}:{c}',將visualMap組件作用于不同目標的散點圖系列完成視覺映射,實現區分多目標信息的同時顯示。
3.2 應用效果
本軟件在保證實時交互流暢不卡頓的前提下作增量數據顯示分析測試。以中國地圖為底圖,仿真模擬多弧段理論軌跡,每個弧段理論軌跡前后點步長0.08-0.12公里,采用分弧段由西向東大跨步跳躍模仿異常點響應測試,實時數據更新頻率20Hz。細節窗口初始化地圖縮放系數50,刷新頻率4Hz,時間窗口40s。態勢圖初始化地圖縮放系數zoom=12.5,步長d=4公里,最大數據量設置為3000。測試結果顯示態勢圖跳點刷新時間間隔為250ms,連續弧段點刷新時間間隔隨地圖縮放變化為1-5s,細節窗口數據保持最近40秒,顯示效果如圖2所示。進行大數據量壓力測試,運行時長大于10000秒后,態勢圖過濾數據量大于40000條,圖2中的態勢圖交互流暢,細節窗口仍然保持4Hz刷新,不丟點不卡頓。
試驗結果表明,采用本文提出的設計優化方法,通過設定合適的優化系數能夠保證可視化軟件長時間運行流暢不卡頓,滿足高頻增量測控數據實時顯示分析需求。
4 結束語
本研究提供了一種用于飛行器測控中心機系統跨平臺可視化建設的方法,可確保高頻增量測控信息得到實時有效的顯示并提供一定的人機交互分析能力,更好的輔助決策指揮。此方法首先通過態勢顯示與細節顯示結合的方式減輕大數據量條件下的圖形渲染時間壓力;其次,設計前端顯示頻率動態調整與數據量自動優化算法二者結合,實現高頻增量信息實時動態可視化交互的流暢性;最后,通過Echarts工具組件的使用和面向地理信息系統的二次開發,提高了測控信息實時可視化數據分析能力。
參考文獻(References):
[1] 劉德龍,樓順天,崔建國.指控系統的實時數據處理軟件設計[D].碩士,西安電子科技大學,2014
[2] 蔣充劍,夏紹志,等.靶場試驗指揮控制中心系統及其應用[J].艦船電子工程,2009,29(2):43-46
[3] 程委,李兵,吳增強,等.航天器飛行及測控過程可視化系統設計與實現[J].計算機仿真,2010,27(8):22-27
[4] 洪敏,吳紅亞,楊保華,等.基于HTML的ECharts的動態數據顯示前端設計[J].計算機時代,2018(8):27-32
[5] 宋剛.大數據時代背景下的數據可視化概念研究[J].無線互聯科技,2021,17(9):25-26
[6] 劉軍偉.地球表面上兩點之間距離的幾種求算方法[J].許昌學院學報,2007,26(5):126-129
[7] 趙海國.Ajax支持下的ECharts圖形報表技術的應用[J].電子技術,2018(4):66-69
作者簡介:童艷(1982-),女,陜西西安人,碩士,工程師,主要研究方向:實時測控軟件系統研究。