楊 垚,劉永海,肖雅娟,卞 泊
(解放軍92020部隊,山東 青島 266000)
態(tài)勢是指戰(zhàn)場空間中兵力分布和戰(zhàn)場環(huán)境的當前狀態(tài)及發(fā)展變化趨勢的總稱[1]。設計并實現(xiàn)一個實用高效的態(tài)勢可視化系統(tǒng)十分必要。目前,對態(tài)勢可視化的研究主要集中在態(tài)勢實時監(jiān)控[2-3]和態(tài)勢回放[4-5]兩方面。李帥等[6]實現(xiàn)了基于 Qt 的目標態(tài)勢的實時顯示系統(tǒng),伍宗卿等[7-8]實現(xiàn)了基于Web的實時態(tài)勢顯示系統(tǒng),但上述三者僅側(cè)重于態(tài)勢實時監(jiān)控,無法提供態(tài)勢回溯功能。吳蕾等[9-12]實現(xiàn)了模擬演習中的戰(zhàn)場態(tài)勢回放系統(tǒng),但態(tài)勢數(shù)據(jù)都存于本地磁盤,無法滿足海量態(tài)勢回放需求;張明杰等[13]實現(xiàn)了一個包含態(tài)勢實時顯示和態(tài)勢回放兩個功能的系統(tǒng),但并未有效利用多源態(tài)勢數(shù)據(jù)且態(tài)勢展示方式單調(diào);孟凡躍等[14]提出了態(tài)勢回放多形式顯示方法,但態(tài)勢顯示效率不高。
在實際應用中,隨著態(tài)勢持續(xù)時間和目標數(shù)量的持續(xù)增加,會產(chǎn)生海量的態(tài)勢數(shù)據(jù),需要使用大數(shù)據(jù)存儲技術對其進行存儲[15-16];同時,海量態(tài)勢數(shù)據(jù)中包含了多源異構(gòu)數(shù)據(jù),需要對這些數(shù)據(jù)進行挖掘和利用來提升態(tài)勢展示效果[17];并且態(tài)勢回放過程中,通常需要查看目標的基本信息和能力覆蓋范圍,而現(xiàn)有態(tài)勢展示系統(tǒng)無法滿足上述三個需求。
針對以上問題,本文設計并實現(xiàn)了一個目標與態(tài)勢三維可視化系統(tǒng),包含實時態(tài)勢監(jiān)控、歷史態(tài)勢回放和目標三維可視化等功能。該系統(tǒng)實時接收和處理海量態(tài)勢數(shù)據(jù),并對多源異構(gòu)態(tài)勢數(shù)據(jù)進行數(shù)據(jù)融合,然后將其存儲至列數(shù)據(jù)庫中,最后基于GIS技術將目標與態(tài)勢進行三維可視化展示。
隨著物聯(lián)網(wǎng)技術的飛速發(fā)展,可獲取的態(tài)勢信息呈爆炸式增長,如何對海量多源異構(gòu)態(tài)勢數(shù)據(jù)進行有效處理和融合是態(tài)勢可視化的關鍵技術之一。本節(jié)從數(shù)據(jù)清洗、數(shù)據(jù)插值、數(shù)據(jù)融合等方面對原始態(tài)勢信息進行處理。
1.1.1 數(shù)據(jù)清洗
本文采取一系列數(shù)據(jù)清洗規(guī)則對從傳感器設備、雷達設備和船舶自動識別系統(tǒng)(Automatic Identification System,AIS)獲取的數(shù)據(jù)進行處理,主要是過濾重復和異常數(shù)據(jù)。以AIS數(shù)據(jù)為例,處理策略如下:
(1)刪除唯一標識碼、時間戳、經(jīng)度、緯度為空值的數(shù)據(jù)。
(2)刪除唯一標識相同且時間戳一樣的重復數(shù)據(jù)。
(3)刪除經(jīng)度、緯度、航速和航向超出表1范圍的異常數(shù)據(jù)。
表1 AIS數(shù)據(jù)中部分數(shù)據(jù)項的有效取值范圍
1.1.2 數(shù)據(jù)插值
數(shù)據(jù)清洗會過濾掉一些重復和異常的航跡數(shù)據(jù),并且傳感器設備上報數(shù)據(jù)周期并不規(guī)律,導致實際得到航跡數(shù)據(jù)的時間間隔并不固定,可能會出現(xiàn)很長時間間隔中沒有航跡數(shù)據(jù),為了提升態(tài)勢顯示效果,需要采用數(shù)據(jù)插值方法進行處理。另外,在某時刻發(fā)生突發(fā)事件,需要在航跡點上進行標注,但在這一時刻并不一定存在真實的航跡點,因此也需要通過插值來添加航跡點。
關于航跡點的插值方法有很多種,例如:線性插值、三次樣條插值。鑒于航跡數(shù)據(jù)實時性要求高且體量大,本文在兼顧效率和性能等因素的考慮下,采用結(jié)合航向和航速的插值方法[18]。假設在航跡點A(t1,x1,y1,v1,θ1)和B(t2,x2,y2,v2,θ2)之間插入一個新點,根據(jù)A點和B點的信息,可以分別計算出待插入點的一個預測值,如式(1)和式(2)所示:
(1)
(2)
其中,v和θ分別為A、B兩點的航速和航向,ti為待插入點時間戳。然后對(xi1,yi1)和(xi2,yi2)進行加權平均得到插入點坐標,權重通過ti、t1和t2之間的時間差進行計算。即:
(3)
其中,W1和W2為A、B兩點的權重。最終得到的預測值為:
(4)
1.1.3 數(shù)據(jù)融合
如圖1所示,雷達和AIS數(shù)據(jù)既有冗余又可互補,因此將其進行融合能夠提高態(tài)勢數(shù)據(jù)可靠性和展示維度。根據(jù)雷達和AIS數(shù)據(jù)各自特點,對二者進行數(shù)據(jù)融合一般可分為四個步驟:坐標轉(zhuǎn)換、時間同步、航跡關聯(lián)和航跡融合。
圖1 雷達和AIS數(shù)據(jù)冗余互補圖
(1)坐標轉(zhuǎn)換。考慮到轉(zhuǎn)換的效率和精度,本文將雷達和AIS獲取目標的航跡信息轉(zhuǎn)換到直角坐標系中。雷達獲取的目標位置是以雷達為原點的距離和方位角,可以采用極坐標進行轉(zhuǎn)換,具體轉(zhuǎn)換方法如下:
(5)
式中,(x,y)為雷達中心的經(jīng)緯度坐標,R,θ分別為雷達測得的目標距離和方位角。而AIS數(shù)據(jù)是以經(jīng)緯度來表示目標的位置信息,采用的是將 WGS-84 坐標系根據(jù)墨卡托投影方法將其轉(zhuǎn)換到直角坐標系。
(2)時間同步。雷達數(shù)據(jù)的更新周期為2~4 s,而AIS數(shù)據(jù)更新時間不固定,沒有周期性,因此,以雷達數(shù)據(jù)的時間為基準,對AIS數(shù)據(jù)進行插值操作來保證二者時間同步。插值算法采用1.1.2節(jié)中提出的結(jié)合航向和航速的插值方法。
(3)航跡關聯(lián)。在數(shù)據(jù)融合之前,需要判斷雷達和AIS獲取數(shù)據(jù)是否為同一個目標,本文綜合考慮距離、航速和航向等因素,采用多因素綜合關聯(lián)規(guī)則[19]。假設在某段時間內(nèi)獲得N個雷達和N個AIS航跡點,(pi,vi,θi)表示第i個點的位置、航速和航向,(α1,α2,α3)表示距離、航速和航向3個因素的權重系數(shù),通過式(6)~(8)分別計算上述3個因素的關聯(lián)程度:
(6)
(7)
(8)
M=α1P+α2V+α3θ
(9)
式中,M表示最終加權后的關聯(lián)度,若M小于預設的閾值,則認為雷達和AIS獲取的這兩段航跡是關聯(lián)的。
(4)航跡融合。面對海量的雷達和AIS數(shù)據(jù),為提高數(shù)據(jù)處理速度,應選擇簡單高效、易于實現(xiàn)的航跡融合算法?;谝陨峡紤],本文使用加權平均融合算法[20]對雷達和AIS數(shù)據(jù)進行融合,具體公式如下:
(10)
式中,X表示融合后的數(shù)據(jù),Xr,Xa分別表示雷達和AIS中需要融合的位置、航速和航向數(shù)據(jù),Wr,Wa分別表示雷達和AIS的融合權重。權重大小與設備的觀測誤差σ2有關,觀測誤差越小,權重越大。根據(jù)最小均方誤差原則,可得到Wr,Wa的最優(yōu)解為:
(11)
面對海量歷史態(tài)勢數(shù)據(jù),如果一次性全部獲取,不僅獲取時間長而且容易造成內(nèi)存溢出問題。本文基于分布式列數(shù)據(jù)庫設計了一種快速獲取態(tài)勢回放所需數(shù)據(jù)方法,具體如下:
(1)查詢滿足條件目標的最舊態(tài)勢記錄和最新態(tài)勢記錄,得到回放時間軸;
(2)采用按時間間隔分批獲取數(shù)據(jù)方式,查詢開始時間和時間間隔之間的目標態(tài)勢記錄;
(3)前端根據(jù)獲取的態(tài)勢記錄顯示態(tài)勢信息;
(4)若當前回放時間離上次獲取數(shù)據(jù)時間小于時間間隔,將開始時間設置為開始時間與時間間隔之和,重復執(zhí)行步驟(2),直至開始時間大于回放結(jié)束時間。
如果用戶在態(tài)勢回放過程中設置倍速或快進,將重新設置開始時間和時間間隔,保證正常獲取回放數(shù)據(jù)。
1.3.1 目標可視化
該系統(tǒng)基于Web和GIS服務對目標的圖標、基本信息、能力等進行可視化展示。目標通??煞譃殪o態(tài)目標(如港口、機場、雷達站等)和動態(tài)目標(如汽車、艦船、飛機等)。靜態(tài)目標由于數(shù)量較多,考慮到顯示效率,一般使用小圖標表示;而動態(tài)目標需要在三維地圖上進行移動,為提升空間顯示效果,可使用三維小模型表示,但如果動態(tài)目標數(shù)量太多,考慮系統(tǒng)顯示效率,也應使用小圖標表示。具體圖標示例如圖2所示。目標的基本信息一般包括目標的圖片、文本描述、相關文本資料和音視頻等,這些信息通過前端頁面彈框的形式來展示。目標能力是指搭載某些裝備而具有的偵察預警、防空反導等能力,為直觀立體顯示能力覆蓋范圍,本文通過增加能力圖層方式顯示三維能力包絡。
1.3.2 態(tài)勢實時顯示
無論是日常態(tài)勢監(jiān)控還是大規(guī)模演練都需要實時接收大量態(tài)勢數(shù)據(jù),設計快速、穩(wěn)定的態(tài)勢數(shù)據(jù)獲取方法是態(tài)勢實時顯示的關鍵?,F(xiàn)有態(tài)勢實時顯示系統(tǒng)首次獲取態(tài)勢數(shù)據(jù)效率都不高,本系統(tǒng)在內(nèi)存數(shù)據(jù)庫中存儲最新的態(tài)勢信息,能夠快速獲取最新態(tài)勢并顯示。同時,利用WebSocket技術與后端建立長連接,當后臺接收到新的態(tài)勢數(shù)據(jù)時,實時推送給前端展示,保證了態(tài)勢顯示的實時性和穩(wěn)定性。
1.3.3 態(tài)勢回放顯示
態(tài)勢回放是將目標的歷史航跡、行為、事件等多維數(shù)據(jù)進行回放展示。系統(tǒng)獲取歷史態(tài)勢數(shù)據(jù)時采用1.2節(jié)中提出的分批獲取數(shù)據(jù)方式,使得目標態(tài)勢可以快速上顯,縮短系統(tǒng)等待時間。在回放過程中,系統(tǒng)支持設置回放倍速和快進操作,也支持點擊目標模型圖標查看目標基礎信息和展示目標三維能力包絡,并且目標三維能力包絡可跟隨航跡變化而動態(tài)移動。同時,當回放至異常告警或突發(fā)事件時,系統(tǒng)會自動彈出信息框,提醒用戶進行重點回看。
在此基礎上,系統(tǒng)設計了3種態(tài)勢回放方式,即全景回放、概略回放和事件回放。全景回放是將某一時間段內(nèi)的全部目標的所有態(tài)勢信息按照時間順序逐一回放,有利于清晰完整地呈現(xiàn)全目標態(tài)勢。概略回放是從關系數(shù)據(jù)庫中獲取態(tài)勢航跡中的關鍵點來呈現(xiàn)目標的遷徙路徑。事件回放是將事件發(fā)生前后的時間段內(nèi)與事件相關的目標進行回放顯示,方便用戶進行事件分析。
系統(tǒng)整體結(jié)構(gòu)包括感知設備層、數(shù)據(jù)采集處理層、多級數(shù)據(jù)存儲層、支撐服務層、綜合展現(xiàn)層。系統(tǒng)結(jié)構(gòu)設計圖如圖3所示。
圖3 系統(tǒng)結(jié)構(gòu)設計圖
(1)感知設備層。感知設備層包含了產(chǎn)生態(tài)勢數(shù)據(jù)的多類傳感設備和提供目標基礎數(shù)據(jù)的業(yè)務系統(tǒng)。該層為目標與態(tài)勢可視化提供原始數(shù)據(jù),并通過各類傳輸協(xié)議發(fā)送至設備接入服務。
(2)數(shù)據(jù)采集處理層。設備接入服務支持多協(xié)議、多類型的數(shù)據(jù)實時采集與處理,采用多線程編程框架來提升服務并發(fā)能力。同時,該服務兼容HTTP、TCP和UDP等數(shù)據(jù)傳輸方式以支持各類傳感器設備和業(yè)務系統(tǒng)的數(shù)據(jù)接入。對于設備數(shù)據(jù)解析協(xié)議多樣的問題,該服務采用協(xié)議適配、協(xié)議解析技術從原始數(shù)據(jù)包中提取實際數(shù)據(jù)。
數(shù)據(jù)融合處理服務是對設備接入服務中解析出的原始數(shù)據(jù)進行清洗過濾、插值、關聯(lián)、融合等操作。數(shù)據(jù)清洗是將原始數(shù)據(jù)中的重復值和異常值進行過濾;數(shù)據(jù)插值用于補充突發(fā)事件航跡點和不同設備間航跡的時間校對;數(shù)據(jù)關聯(lián)用于判斷不同設備獲取的航跡是否為同一目標;數(shù)據(jù)融合是將不同設備獲取的同一目標的信息進行融合,有利于提升態(tài)勢展示維度和效果。
(3)多級數(shù)據(jù)存儲層。根據(jù)實際業(yè)務需求,該層設計了三種數(shù)據(jù)存儲模式來存儲不同類型數(shù)據(jù)。一是將目標基礎信息、重要態(tài)勢數(shù)據(jù)、異常告警、突發(fā)事件等數(shù)據(jù)存儲于關系型數(shù)據(jù)庫MySQl。其中重要態(tài)勢數(shù)據(jù)是對融合后的態(tài)勢在時間和航向兩個維度進行了篩選過濾,例如,在每個固定時間間隔并且航向變化超過特定閾值時進行一次數(shù)據(jù)存儲。二是使用內(nèi)存數(shù)據(jù)庫Redis存儲查詢頻率高、訪問時延低的業(yè)務數(shù)據(jù),如目標名稱和唯一標識對應關系、目標最新一條態(tài)勢數(shù)據(jù)等。內(nèi)存數(shù)據(jù)庫查詢速度快、并發(fā)性高,可以提升整體系統(tǒng)的吞吐能力和業(yè)務數(shù)據(jù)加載效率。三是使用支持大數(shù)據(jù)、分布式的列數(shù)據(jù)庫Hbase存儲海量歷史態(tài)勢數(shù)據(jù)。列數(shù)據(jù)庫具有高并發(fā)寫入、大數(shù)據(jù)實時查詢等優(yōu)勢,能夠滿足海量態(tài)勢數(shù)據(jù)實時處理和查詢要求。
(4)支撐服務層。支撐服務層包含GIS服務、態(tài)勢回放控制服務、態(tài)勢實時監(jiān)控服務和目標信息查詢服務。GIS服務提供了三維地理空間可視化平臺,能夠綜合呈現(xiàn)目標的位置、方向、速度、軌跡、基礎信息和特殊能力等信息。態(tài)勢回放控制服務基于不同回放方式、回放條件和控制信息分別從列數(shù)據(jù)庫和關系數(shù)據(jù)庫獲取歷史態(tài)勢數(shù)據(jù),保證了態(tài)勢回放效率和穩(wěn)定性。態(tài)勢實時監(jiān)控服務提供目標最新的態(tài)勢數(shù)據(jù),當客戶端首次請求數(shù)據(jù)時,該服務從內(nèi)存數(shù)據(jù)庫中獲取系統(tǒng)最新的態(tài)勢數(shù)據(jù),通過與客戶端建立長連接的方式,向客戶端實時推送態(tài)勢數(shù)據(jù)。目標信息查詢服務為目標可視化提供基礎數(shù)據(jù)支持。
(5)綜合展現(xiàn)層。綜合展現(xiàn)層基于瀏覽器實現(xiàn)態(tài)勢可視化和目標可視化。
系統(tǒng)采用B/S(瀏覽器/服務器)模式作為基礎架構(gòu)。瀏覽器端基于Vue3.0框架和UI控件Ant-design來構(gòu)建可視化界面;采用Cesium三維地圖框架實現(xiàn)圖層、模型、目標能力及態(tài)勢航跡的渲染和繪制。服務器端基于Spring Boot框架實現(xiàn)態(tài)勢回放控制服務、態(tài)勢實時監(jiān)控服務和目標信息查詢服務;通過發(fā)布離線瓦片地圖服務為瀏覽器端提供基礎地圖數(shù)據(jù)。接入服務基于Go語言框架開發(fā),利用其協(xié)程特性提升服務的并發(fā)能力;數(shù)據(jù)融合處理服務采用Flink流處理技術對數(shù)據(jù)進行實時處理。
目前,該系統(tǒng)已經(jīng)實現(xiàn),并且應用于大型模擬對抗訓練中。系統(tǒng)運行部分截圖如圖4所示。該圖是對艦船和飛機的模擬數(shù)據(jù)進行了全景態(tài)勢回放,與一般的態(tài)勢回放系統(tǒng)不同,該系統(tǒng)增加了態(tài)勢與目標的聯(lián)合顯示。首先,圖中展示了部分機場、港口等靜態(tài)目標,同時可根據(jù)實際需求勾選展示更多靜態(tài)目標;其次,將艦船、飛機等動態(tài)目標的特殊能力進行三維可視化展示,并且隨態(tài)勢變化而移動,能夠清晰直觀地顯示動態(tài)目標的雷達探測范圍、火力打擊范圍等重要信息。圖5所示為目標能力三維可視化效果圖,其中(a)為艦船能力三維可視化圖,(b)為飛機能力三維可視化圖。表2給出了不同目標數(shù)量下態(tài)勢實時監(jiān)控和態(tài)勢回放的系統(tǒng)平均響應時間,從表中結(jié)果可以看出,該系統(tǒng)在目標數(shù)量較多時仍能保持較快的響應時間。
圖5 目標能力三維可視化效果
表2 不同目標數(shù)量下系統(tǒng)平均響應時間(s)
本文設計并實現(xiàn)了一個目標與態(tài)勢三維可視化系統(tǒng),首先討論了數(shù)據(jù)清洗、數(shù)據(jù)插值、數(shù)據(jù)融合、數(shù)據(jù)查詢等關鍵技術,接著通過系統(tǒng)結(jié)構(gòu)分析,明確了系統(tǒng)的層次結(jié)構(gòu)及各層之間的相互關系,最后從圖標、基本信息和特殊能力三個維度對目標進行可視化,從實時態(tài)勢監(jiān)控和歷史態(tài)勢回放兩種方式對態(tài)勢進行展示,并且實現(xiàn)了態(tài)勢與目標的聯(lián)動展示。在實際應用中,該系統(tǒng)響應速度快、顯示內(nèi)容豐富,對大型模擬對抗演習中目標與態(tài)勢的展示分析起到重要支撐作用。