本發(fā)明涉及船舶軌跡壓縮,具體為船舶多層次高效軌跡壓縮方法。
背景技術(shù):
1、海上船舶監(jiān)測(cè)系統(tǒng),能夠通過radar、ais、bds等設(shè)備持續(xù)獲取船舶的位置信息,這些數(shù)據(jù)形成每艘船舶的軌跡。每天生成的數(shù)據(jù)量非常龐大,能達(dá)到5-10億條記錄,幾年的數(shù)據(jù)量甚至?xí)_(dá)到數(shù)萬億條。
2、軌跡查詢功能需要根據(jù)查詢時(shí)間段的長短,展示不同的軌跡細(xì)節(jié)??刹樵兇皫仔r(shí)的軌跡、幾天、幾個(gè)月甚至幾年的軌跡。對(duì)于較短時(shí)間段的查詢,系統(tǒng)應(yīng)提供盡可能完整的軌跡,展示每個(gè)時(shí)刻的船舶位置及其航速和航行狀態(tài),保留船舶的轉(zhuǎn)彎掉頭加速減速等行為細(xì)節(jié)。而對(duì)于較長時(shí)間段的查詢,系統(tǒng)應(yīng)簡(jiǎn)化軌跡,只展示船舶的整體航跡趨勢(shì),如每日的停泊位置或行駛路徑。同時(shí),無論是短時(shí)間段還是長時(shí)間段的查詢,系統(tǒng)都需要快速返回結(jié)果,保持高性能。
3、現(xiàn)有技術(shù)中的船舶多層次高效軌跡壓縮方法在使用時(shí)存在以下缺點(diǎn):
4、1、船位軌跡點(diǎn)太多,存儲(chǔ)資源占用大,軌跡壓縮只有一個(gè)層次,軌跡壓縮率低,查詢長時(shí)間段軌跡時(shí),從數(shù)據(jù)庫取數(shù)據(jù)比較慢,還需在接口中二次壓縮數(shù)據(jù),來保證數(shù)據(jù)傳輸?shù)角岸藭r(shí)數(shù)據(jù)量較小,同時(shí)接口服務(wù)二次壓縮時(shí),負(fù)載比較大,且在海圖上顯示軌跡不至于軌跡點(diǎn)過密;
5、2、軌跡壓縮算法單一,不能同時(shí)滿足各種軌跡時(shí)間段查詢對(duì)于軌跡拓?fù)湫螤钆c數(shù)據(jù)量的要求,適用于查詢時(shí)間段短可保留完整軌跡拓?fù)湫螤畹膱?chǎng)景,但不適合查詢時(shí)間段長只需要顯示軌跡趨勢(shì)的場(chǎng)景
6、3、軌跡壓縮算法不能正常壓縮mmsi偽造的數(shù)據(jù),mmsi偽造的數(shù)據(jù)由于軌跡點(diǎn)頻繁遠(yuǎn)距離來回跳動(dòng),距離變化超算法閾值,導(dǎo)致大部分點(diǎn)都被保留,壓縮率低,軌跡查詢慢;
7、為了解決現(xiàn)有技術(shù)中的上述問題,本發(fā)明提出了船舶多層次高效軌跡壓縮方法。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明解決的技術(shù)問題在于克服現(xiàn)有技術(shù)的缺陷,提供船舶多層次高效軌跡壓縮方法。
2、為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:船舶多層次高效軌跡壓縮方法,包括以下步驟:
3、s1:首先連接kafka數(shù)據(jù)源,根據(jù)程序配置,動(dòng)態(tài)生成多個(gè)層級(jí)串聯(lián)的軌跡壓縮算法,默認(rèn)生成4個(gè)級(jí)別,天、周、月、季度;
4、s2:然后每一層經(jīng)過壓縮算法處理保留下來的數(shù)據(jù),發(fā)往kafka存儲(chǔ),同時(shí)發(fā)往下一層壓縮算法,作為下一層壓縮算法的數(shù)據(jù)源;
5、s3:隨著數(shù)據(jù)進(jìn)入每一層的壓縮算法,首先根據(jù)配置決定是否只處理包含ais或bds的軌跡點(diǎn),默認(rèn)day那一層處理所有數(shù)據(jù),其余層只處理包含ais或bds的數(shù)據(jù);
6、s4:再者根據(jù)配置keyby?id或mmsi將數(shù)據(jù)分組,便于處理軌跡,如圖2;
7、s5:隨后判斷處理軌跡的第一個(gè)點(diǎn)和最后一個(gè)點(diǎn),不壓縮,直接存儲(chǔ),保證軌跡完整;
8、s6:再次根據(jù)每一層的配置決定是否根據(jù)時(shí)間間隔對(duì)軌跡采樣,為了提高性能;
9、s7:隨后臨時(shí)保存軌跡點(diǎn),應(yīng)用軌跡壓縮算法,每一層可配置是否開啟復(fù)雜軌跡壓縮算法,簡(jiǎn)單軌跡壓縮算法是默認(rèn)強(qiáng)制開啟的,如果本輪復(fù)雜軌跡壓縮算法有保留新點(diǎn),則跳過后續(xù)簡(jiǎn)單軌跡壓縮算法;
10、s8:接著簡(jiǎn)單軌跡壓縮算法內(nèi),會(huì)根據(jù)開始keyby模式不同,采取不同的算法來壓縮軌跡;
11、s9:隨之多層壓縮之后,數(shù)據(jù)量與數(shù)據(jù)條數(shù)變化;
12、s10:然后查詢一天軌跡示例;
13、s11:再者查詢一個(gè)月軌跡示例;
14、s12:隨后查詢?nèi)齻€(gè)月軌跡示例;
15、s13:最后查詢一年軌跡與耗時(shí)示例。
16、優(yōu)選的,所述步驟s3中根據(jù)配置決定是否只處理ais和bds數(shù)據(jù)(按天壓縮時(shí)處理所有數(shù)據(jù)包括不含ais、bds信息的純r(jià)adar數(shù)據(jù))。
17、優(yōu)選的,所述步驟s4中根據(jù)配置按模式進(jìn)行keyby操作(純ais數(shù)據(jù)根據(jù)mmsikeyby其他數(shù)據(jù)根據(jù)id)。
18、優(yōu)選的,所述步驟s5中如果是第一個(gè)軌跡點(diǎn),直接保留,不壓縮,且注冊(cè)定時(shí)器,位置不更新超時(shí)觸發(fā),保存最后一個(gè)軌跡點(diǎn)不壓縮。
19、優(yōu)選的,所述步驟s6根據(jù)配置決定是否根據(jù)時(shí)間間隔進(jìn)行數(shù)據(jù)采樣(減少數(shù)據(jù)量計(jì)算次數(shù)提升性能)。
20、優(yōu)選的,所述步驟s7中臨時(shí)保存軌跡點(diǎn),形成軌跡用于壓縮計(jì)算,且串聯(lián)的多層次壓縮,可滿足不同應(yīng)用場(chǎng)景并且高性能,多種不同算法的組合可選,并且有優(yōu)先級(jí)。
21、與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:
22、1、本技術(shù)方案軌跡壓縮實(shí)時(shí)計(jì)算,壓縮連續(xù),新存點(diǎn)馬上可查可顯示,不存在離線計(jì)算窗口邊界數(shù)據(jù)冗余的問題;
23、2、本技術(shù)方案靈活并且高性能,適應(yīng)性強(qiáng),即可以滿足短查詢時(shí)間保留軌跡詳細(xì)特征的需求,又可以保證長查詢時(shí)間的大致軌跡和高性能快速響應(yīng),可滿足查詢幾分鐘到幾年的不同軌跡查詢需求;
24、3、本技術(shù)方案靈活可配置層數(shù)的軌跡壓縮算法,并且每層是父子串聯(lián),高性能,復(fù)雜算法和簡(jiǎn)單算法可在每一層靈活組合,滿足大多數(shù)軌跡存儲(chǔ)和查詢場(chǎng)景。
1.船舶多層次高效軌跡壓縮方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的船舶多層次高效軌跡壓縮方法,其特征在于:所述步驟s3中根據(jù)配置決定是否只處理ais和bds數(shù)據(jù)(按天壓縮時(shí)處理所有數(shù)據(jù)包括不含ais、bds信息的純r(jià)adar數(shù)據(jù))。
3.根據(jù)權(quán)利要求1所述的船舶多層次高效軌跡壓縮方法,其特征在于:所述步驟s4中根據(jù)配置按模式進(jìn)行keyby操作(純ais數(shù)據(jù)根據(jù)mmsi?keyby其他數(shù)據(jù)根據(jù)id)。
4.根據(jù)權(quán)利要求1所述的船舶多層次高效軌跡壓縮方法,其特征在于:所述步驟s5中如果是第一個(gè)軌跡點(diǎn),直接保留,不壓縮,且注冊(cè)定時(shí)器,位置不更新超時(shí)觸發(fā),保存最后一個(gè)軌跡點(diǎn)不壓縮。
5.根據(jù)權(quán)利要求1所述的船舶多層次高效軌跡壓縮方法,其特征在于:所述步驟s6根據(jù)配置決定是否根據(jù)時(shí)間間隔進(jìn)行數(shù)據(jù)采樣(減少數(shù)據(jù)量計(jì)算次數(shù)提升性能)。
6.根據(jù)權(quán)利要求1所述的船舶多層次高效軌跡壓縮方法,其特征在于:所述步驟s7中臨時(shí)保存軌跡點(diǎn),形成軌跡用于壓縮計(jì)算,且串聯(lián)的多層次壓縮,可滿足不同應(yīng)用場(chǎng)景并且高性能,多種不同算法的組合可選,并且有優(yōu)先級(jí)。