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