欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種船舶AIS數(shù)據(jù)大批量高效解碼方法及系統(tǒng)與流程

文檔序號:11731956閱讀:361來源:國知局
一種船舶AIS數(shù)據(jù)大批量高效解碼方法及系統(tǒng)與流程
本發(fā)明涉及計算機多核cpu的并發(fā)運算技術運用與船舶ais數(shù)據(jù)解碼
技術領域
,特別涉及一種船舶ais數(shù)據(jù)大批量高效解碼方法及系統(tǒng)。
背景技術
:船舶自動識別系統(tǒng)(automaticidentificationsystem,簡稱ais系統(tǒng))由岸基設施(基站)和船載設備共同組成,是一種新型的集網(wǎng)絡技術、現(xiàn)代通訊技術、計算機技術、電子信息顯示技術為一體的數(shù)字助航系統(tǒng)和設備。船舶自動識別系統(tǒng)(ais)由艦船飛機之敵我識別器發(fā)展而成,配合全球定位系統(tǒng)(gps)將船舶經(jīng)緯度、船舶速度、改變航向率及航向等船舶動態(tài)信息結合船名、呼號、吃水及危險貨物等船舶靜態(tài)資料由甚高頻(vhf)頻道向附近水域船舶及岸臺廣播,使鄰近船舶及岸臺能及時掌握附近海面所有船舶之動靜態(tài)資訊,得以立刻互相通話協(xié)調(diào),采取必要避讓行動,對船舶安全有很大幫助。全世界各類安裝ais設備的船舶有39萬條以上,每條正常運營的船舶都在不斷向外發(fā)布ais數(shù)據(jù),每天能產(chǎn)生過億條ais數(shù)據(jù)。對船舶ais數(shù)據(jù)的利用不僅僅可以實現(xiàn)海事管理等功能,還可以為碼頭、船公司、物流企業(yè)等提供航線運力、港口服務能力評估等一系列的經(jīng)濟報告。ais系統(tǒng)報文數(shù)據(jù)遵循itu-rm.1371和iec61162標準進行編碼,它采用可打印ascii字符碼進行傳輸和保存,并且可以把長信息分割成多條語句進行發(fā)送。如圖1所示,ais報文由多個域組成,每個域可以是一串有效字符或者空字符,各個域之間以“,”為分隔符。第一個域“!abvdm”為地址域,由語句起始符($或!)和5個字母組成,主要用來表示語句的類型。域“x1”表示消息分解的報文總數(shù)(1-9),域“x2”表示本報文的序號(1-9),域“x3”表示連續(xù)消息標識(0-9),域“a”表示ais信道號,域“n”表示報文類型的id碼,域“ssss…sss”表示符合itu-rm.1371規(guī)定的無線電信息,域“m”表示填充的bit數(shù),域“hh”表示校驗信息。圖2所示是常見的ais報文數(shù)據(jù),其中最后2條數(shù)據(jù)即為一條長信息分割為2條報文發(fā)送的結果。第1條報文的“x1”域為2、“x2”域為1表明這條信息總共分成2條報文,這是第1條;第2條報文的“x1”域為2、“x2”域為2表明這條信息總共分成2條報文,這是第2條報文同時也是這條信息的最后一條報文,這樣的報文數(shù)據(jù)解碼時要保持原來的順序。一般的報文數(shù)據(jù)解碼方式是按照時間順序逐條解碼,但在面對海量的ais數(shù)據(jù)時,這種方法的速度十分緩慢無法滿足實際需要,如果直接在多核cpu計算機上并行運行解碼程序,不能保證被分割過的長信息解碼順序符合要求,進而會造成解碼數(shù)據(jù)錯誤。因此,如何準確按照標準對海量ais數(shù)據(jù)進行大批量高效解碼就成為了一個重要的問題。技術實現(xiàn)要素:本發(fā)明的目的是提供一種船舶ais數(shù)據(jù)大批量高效解碼方法及系統(tǒng),該方法及系統(tǒng)提供篩選和轉換ais報文的功能,解碼時可選擇27種ais報文中的若干種,能充分利用計算機多核cpu的并行計算能力,達到較高解碼效率。本發(fā)明提供了一種船舶ais數(shù)據(jù)大批量高效解碼方法,其包含以下步驟:對內(nèi)存中留存的ais報文進行篩選、二進制轉碼和二進制解碼;通過篩選,將報文按照多條信息報文和單條信息報文分類:對于多條信息報文,串行篩選出多條信息報文中的多條子報文的信息,串行進行二進制轉碼;對于單條信息報文,并行篩選出單條信息報文的信息,并行進行二進制轉碼;對留存的所有報文進行循環(huán)處理,直至所有報文的篩選和二進制轉碼全部完成;將所有報文的二進制轉碼結果進行匯總,并行進行二進制解碼,直至二進制解碼任務全部完成。優(yōu)選地,內(nèi)存中的ais報文,是通過內(nèi)存映射將目標報文的整個文件讀入內(nèi)存而得到的,使目標報文行的順序不變。優(yōu)選地,在篩選之前,先對內(nèi)存中的ais報文進行過濾得到留存的報文;報文過濾時,先生成目標報文字符串;目標報文字符串中將需要留存的每個報文類型,以一個對應的ascii字符表示;再對內(nèi)存中的每個ais報文提取表示其報文類型的id碼,將id碼能與目標報文字符串中任意一個ascii字符相匹配的ais報文留存在內(nèi)存中;將id碼無法與目標報文字符串中ascii字符匹配的ais報文丟棄。優(yōu)選地,篩選和二進制轉碼過程為:對于內(nèi)存中每個留存的報文,先讀取該報文的報文總數(shù)域“x1”域,若“x1”域數(shù)值等于1,該報文為單條信息報文,直接將該報文加入單條報文信息集合c;如果所述報文總數(shù)域“x1”域數(shù)值大于1,該報文為多條信息報文,則根據(jù)該“x1”域數(shù)值提取該條報文的所有子報文,將該條報文的所有子報文分別轉換成對應的二進制信息,按順序進行拼接,將拼接完成的二進制信息報文加入二進制信息集合b;內(nèi)存中留存的所有報文的二進制信息轉換完成后,進行報文信息集合判斷:如果集合c為空,直接將集合b作為結果集合輸出;如果集合c不為空,建立并行任務將集合c內(nèi)的單條信息報文轉換成對應的二進制信息獲得集合a,合并二進制信息集合a和二進制信息集合b,將合并后的結果作為結果集合輸出。優(yōu)選地,二進制轉碼是對報文信息進行逐個字符提取,轉換成二進制字符串;若轉換的二進制字符串不滿6位,則在左側補0直至補滿6位作為拼接結果;若轉換的二進制字符串滿6位,則直接作為拼接結果,再進行后續(xù)字符的處理;循環(huán)進行直到所有字符處理完成,對拼接結果補充填充位和融合時間戳信息。優(yōu)選地,在二進制轉碼前,對所有報文進行校驗,若校驗通過則提取時間戳信息和填充位信息。優(yōu)選地,獲得所有報文的二進制轉碼結果后,并行迭代進行二進制解碼:先根據(jù)解碼工作站cpu的物理核心數(shù)建立相應數(shù)量的并行二進制解碼任務,再將所有報文的二進制轉碼結果分組并分配給各個二進制解碼任務,并行進行每個二進制解碼任務,匯總解碼結果;循環(huán)進行,直至分配的所有二進制解碼任務全部完成。優(yōu)選地,每個二進制解碼任務過程為:讀取一條待解碼的二進制信息,提取該二進制信息的前6位值,根據(jù)該二進制信息的前6位值選擇相匹配的處理函數(shù),將前6位以外的二進制數(shù)據(jù)送入相應處理函數(shù),進行函數(shù)解碼,得到解碼結果。優(yōu)選地,獲得所有報文的二進制轉碼結果后,根據(jù)解碼工作站cpu的物理核心數(shù),建立相應數(shù)量的并行二進制解碼任務,將所有報文的二進制轉碼結果分組并分配給各個二進制解碼任務,進行并行的二進制解碼過程。優(yōu)選地,任意一個二進制解碼任務的過程為:讀取一條待解碼的二進制信息,提取該二進制信息的前6位值,根據(jù)該二進制信息的前6位值選擇相匹配的處理函數(shù),將前6位值以外的二進制數(shù)據(jù)送入相應處理函數(shù),進行函數(shù)解碼,匯總解碼結果;循環(huán)進行直至解碼任務全部完成。優(yōu)選地,任意一個報文文件的二進制解碼的所有任務完成后,在第一存儲器中并行保存解碼結果,同時在第二存儲器中讀取下一個報文文件。本發(fā)明還提供了一種船舶ais數(shù)據(jù)大批量高效解碼系統(tǒng),它包含:衛(wèi)星或者若干個岸基接收站,衛(wèi)星或岸機接收站收集船舶ais報文;ais存儲服務器,衛(wèi)星或岸機接收站收集的ais報文,通過網(wǎng)絡匯總到ais報文存儲服務器進行存儲;解碼工作站,解碼工作站與ais存儲服務器連接,解碼工作站采用上文所述的一種船舶ais數(shù)據(jù)大批量高效解碼方法,對存儲的ais報文進行處理;ais解碼結果存儲服務器,對解碼工作站獲得的最終解碼結果進行存儲。與現(xiàn)有技術相比,本發(fā)明有益效果是:(1)它采用內(nèi)存映射方法讀取內(nèi)存文件,可提高讀取速度,更能保證讀入解碼工作站內(nèi)存的ais數(shù)據(jù)報文行順序保持不變;(2)提供了篩選報文的功能,能充分利用計算機多核cpu的并行計算能力,按照正確標準對海量ais數(shù)據(jù)進行解碼并能達到較高解碼效率。附圖說明圖1ais報文格式示意圖;圖2常見的ais數(shù)據(jù)報文序列示意圖;圖3解碼系統(tǒng)的ais報文數(shù)據(jù)獲取、解碼、保存示意圖;圖4并行解碼整體工作模式示意圖;圖5單個報文文件解碼流程示意圖;圖6報文過濾流程示意圖;圖7報文篩選和二進制轉碼流程示意圖;圖8單條報文二進制轉換流程示意圖;圖9并行二進制解碼任務執(zhí)行流程示意圖。具體實施方式本發(fā)明提供了一種船舶ais數(shù)據(jù)大批量高效解碼方法及系統(tǒng),為使本發(fā)明更明顯易懂,下面結合附圖與具體實施方式對本發(fā)明作進一步詳細描述。本發(fā)明提供的一種船舶ais數(shù)據(jù)大批量高效解碼方法及系統(tǒng),如圖3所示,衛(wèi)星或者若干個岸基接收站收集到ais報文通過網(wǎng)絡存儲到ais存儲服務器,ais存儲服務器的報文傳送到解碼工作站進行解碼。本發(fā)明提供的一種船舶ais數(shù)據(jù)大批量高效解碼方法是先讀取解碼工作站接收到的報文文件,然后進行解碼,最后保存解碼結果。由于報文文件解碼過程耗時較長,計算機cpu占用比率較高,因此采用并行解碼的整體工作模式。圖4是并行解碼的整體工作模式示意圖,采用內(nèi)存映射方法,先讀取數(shù)據(jù)文件1,然后解碼數(shù)據(jù)文件1且并行解碼。在前一個文件數(shù)據(jù)解碼完成后,并行保存解碼數(shù)據(jù)和讀取下一個文件,以提高cpu利用率。解碼結果文件與待解碼的數(shù)據(jù)文件存放在不同的存儲服務器上,以提高io速度。因大小為2gb左右的ais報文文件仍然比較大,則讀取文件采用內(nèi)存映射方法可提高讀取速度。內(nèi)存映射讀取文件時直接建立整個文件的映射,以保證讀入解碼工作站內(nèi)存的ais報文行順序保持不變。圖5是單個報文文件解碼流程示意圖,單個報文文件解碼流程步驟為讀取報文、解碼和保存解碼結果。讀取報文過程是利用內(nèi)存映射方法將目標報文文件讀入內(nèi)存。當目標報文文件讀入系統(tǒng)工作站內(nèi)存后,開始解碼過程。篩選之前,先進行報文過濾。報文過濾是通過生成目標報文字符串來獲取需要的報文類型,且生成目標報文字符串時每一個報文類型用一個ascii字符表示。報文過濾后,開始報文篩選,得到留存的所有報文,報文按多條信息報文和單條信息報文兩類進行分類。對于多條信息報文,串行篩選出目標報文中的多條報文的信息,再建立串行任務1進行串行二進制轉碼合并報文;而對于單條信息報文,并行篩選出目標報文中單條報文的信息,再建立并行任務2進行二進制轉碼。目標報文中的所有多條信息報文和單條信息報文的篩選和轉碼過程均按照上述步驟循環(huán)進行,直至留存的所有報文的篩選和二進制轉碼任務全部完成,得到最終的二進制轉碼結果。將所有報文的二進制轉碼結果進行匯總,建立并行解碼任務進行報文二進制解碼,直至二進制解碼任務全部完成。二進制解碼的所有任務完成后,建立并行任務保存結果,同時讀取下一個報文文件;上一個解碼文件結果保存到存儲器,新的解碼工作繼續(xù)進行,循環(huán)進行,直至獲得最終的船舶ais報文解碼結果文件。圖5所述的單個ais報文文件的數(shù)據(jù)解碼流程中除了多條報文信息篩選和二進制轉碼兩個步驟串行運行,其余解碼步驟均并行運行。圖6是報文過濾流程示意圖,本發(fā)明提供的一種船舶ais數(shù)據(jù)大批量高效解碼方法為了得到留存報文,先進行報文過濾,即只解碼需要的報文類型,生成目標報文字符串;報文過濾后,再進行報文篩選。每一個報文類型用一個ascii字符表示,例如需要解碼1、2、3、5、18、19、24這七種報文信息,即忽略其它類型報文信息,生成的目標字符串type_str為“1235bch”,報文與字符對照表如下表1所示。表1報文類型與字符對照表報文類型對應字符報文類型對應字符報文類型對應字符1110:19c2211;20d3312<21e4413=22f5514>23g6615?24h7716@25i8817a26j9918b27k生成目標字符串后,通過讀取ais報文來提取報文中的報文類型的id碼(id碼見圖1所示的報文格式定義中“n”)。提取id碼后,判斷目標字符串中是否存在該id碼;若存在,即該條報文是需要的,則留存報文;若不存在,即該條報文是不需要的,則丟棄報文;對所有報文進行循環(huán)進行處理,直至所有過濾任務全部完成。通過報文過濾來獲取留存的所有報文,再按照多條信息報文和單條信息報文兩類進行篩選,報文篩選后進行二進制轉碼。圖7是報文篩選和二進制轉碼流程示意圖,取一條留存報文,先讀取報文的報文總數(shù)域“x1”域,如果“x1”域數(shù)值等于1,該報文為單條信息報文,將該報文加入單條報文信息集合c;如果報文總數(shù)域“x1”域數(shù)值大于1,該報文為多條信息報文,根據(jù)“x1”域值提取該條報文中的所有子報文,將該條報文的所有子報文分別轉換成對應的二進制信息,按順序依次進行拼接,得到拼接完成的二進制信息報文,加入二進制信息集合b。每條留存報文均按照上述步驟循環(huán)進行,直至留存的所有報文轉換成二進制信息的任務全部完成。若集合c為空,直接將集合b作為結果集合輸出;若集合c不為空,則建立并行任務將集合c內(nèi)的報文轉換成對應的二進制信息,獲得結果集合a。最后將二進制信息集合a與二進制信息集合b合并,合并后的結果作為最終結果集合輸出,從而完成留存的所有報文的篩選和二進制轉碼任務。圖8是單條報文二進制轉換流程示意圖,每條報文進行二進制轉換時,需要先對所有留存的報文進行校驗,如校驗通過,提取時間戳信息和填充位信息(信息所在位置如圖1所示),再對報文進行二進制轉碼處理。二進制轉碼時,需要對報文信息逐個提取字符,將提取字符的ascii碼減去48,若結果大于40則再減去8,再轉換成二進制字符串。若轉換的二進制字符串結果不滿6位,在左側補0直至補滿6位作為拼接結果;若轉換的二進制字符串滿6位,直接作為拼接結果,再進行后續(xù)字符的處理。每個字符按照上述步驟循環(huán)進行,直到所有字符處理完成。最后將拼接結果補充填充位和融合時間戳信息,獲得最終的二進制轉換信息。完成留存的所有報文二進制轉碼結果后,并行迭代進行二進制解碼,圖9是并行二進制解碼任務執(zhí)行流程示意圖。根據(jù)解碼工作站cpu的物理核心數(shù)建立并行解碼任務,任務數(shù)等于解碼工作站cpu的物理核心數(shù);然后將二進制轉碼結果按照任務數(shù)分組并分配各個任務,各個任務開始并行解碼工作,匯總解碼結果;循環(huán)進行,直至分配的所有二進制解碼任務全部完成。每個二進制解碼任務的過程為:每個二進制解碼任務過程為:讀取一條待解碼的二進制信息,提取該二進制信息的前6位值,根據(jù)該二進制信息的前6位值選擇相匹配的處理函數(shù),將前6位以外的二進制數(shù)據(jù)送入相應處理函數(shù),進行函數(shù)解碼,得到解碼結果。其中解碼函數(shù)按照itu-rm.1371和iec61162的規(guī)定的格式進行解碼。任意一個報文文件的解碼任務全部結束后,并行進行解碼數(shù)據(jù)的保存和下一個文件的讀取工作。所有ais報文文件均按照上述解碼流程循環(huán)進行,最終得到船舶ais報文解碼結果文件。基于本發(fā)明提供的一種船舶ais數(shù)據(jù)大批量高效解碼方法及系統(tǒng),以下提供了ais報文數(shù)據(jù)解碼測試優(yōu)選示例。測試解碼工作站為dellworkstationt7810,測試數(shù)據(jù)為ais基站收集的2010年1月至2010年3月期間65個中國東海某海域船舶ais報文數(shù)據(jù)文件,每個文件平均有24180435行ais報文,詳細信息見下表2。表2測試用中國東海某海域船舶ais數(shù)據(jù)文件信息所有測試數(shù)據(jù)的平均測試結果如下表3所示,平均每秒讀取485469.4行待解碼ais報文,平均每秒解碼22300.67行ais報文,平均每秒保存271780.8行解碼結果。表3ais數(shù)據(jù)大批量高效解碼方法與系統(tǒng)測試結果平均每秒讀取平均每秒解碼平均每秒保存解碼結果485469.4行22300.67行271780.8行解碼過程中,每秒平均過濾4650478.16行,每秒平均篩選2973562.81行,報文每秒平均二進制轉換50662.74行,報文每秒平均二進制解碼40729.9行,如表4所示。表4解碼過程的4個主要步驟工作效率平均測試結果每秒平均過濾每秒平均篩選每秒平均轉換二進制每秒平均二進制解碼4650478.16行2973562.81行50662.74行40729.9行所有測試數(shù)據(jù)以單個數(shù)據(jù)文件為單位,統(tǒng)計各步驟處理效率最高的情況如表5所示,讀取數(shù)據(jù)最快的文件是44號文件,讀取速度為每秒1188609.446行;完整解碼速度最快的是44號文件,解碼速度為每秒32933.00488行;保存解碼結果最快的是18號文件,每秒保存1353476.695行;過濾報文最快的是54號文件,每秒過濾報文15596112.87行;篩選報文最快的是29號文件,每秒篩選10753319.68行;報文轉換二進制最快的文件是49號,每秒轉換105492.1184行;二進制解碼最快是28號文件,每秒解碼60873.48984行。表5單個數(shù)據(jù)文件各工作步驟平均處理效率最高統(tǒng)計所屬文件項目數(shù)據(jù)處理速度(行每秒)44最快讀取文件1188609.44644最快解碼報文32933.0048818最快保存解碼結果1353476.69554最快過濾報文15596112.8729最快篩選報文10753319.6849最快報文轉換二進制105492.118428最快二進制解碼60873.48984盡管本發(fā)明的內(nèi)容已經(jīng)通過上述優(yōu)選實施例作了詳細介紹,但應當認識到上述的描述不應被認為是對本發(fā)明的限制。在本領域技術人員閱讀了上述內(nèi)容后,對于本發(fā)明的多種修改和替代都將是顯而易見的。因此,本發(fā)明的保護范圍應由所附的權利要求來限定。當前第1頁12
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
普宁市| 乌鲁木齐县| 巴林右旗| 资中县| 神农架林区| 收藏| 哈巴河县| 嘉禾县| 安国市| 会昌县| 峨眉山市| 西和县| 罗城| 南召县| 常州市| 太仆寺旗| 济源市| 政和县| 汉沽区| 台前县| 宁安市| 会泽县| 新源县| 民和| 成都市| 老河口市| 彭山县| 旌德县| 青州市| 上饶县| 牙克石市| 河南省| 康乐县| 四子王旗| 日照市| 东方市| 京山县| 乌鲁木齐县| 辽阳县| 荆门市| 碌曲县|