国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多波束測深XTF格式解析及解碼程序研制

2015-06-22 14:56:24王勝平盧凱樂
關(guān)鍵詞:字節(jié)解碼波束

王勝平, 盧凱樂

(1.東華理工大學(xué)測繪工程學(xué)院,江西 南昌 330013;2.流域生態(tài)與地理環(huán)境監(jiān)測國家測繪地理信息局重點實驗室,江西 南昌 330013)

?

多波束測深XTF格式解析及解碼程序研制

王勝平1,2, 盧凱樂1,2

(1.東華理工大學(xué)測繪工程學(xué)院,江西 南昌 330013;2.流域生態(tài)與地理環(huán)境監(jiān)測國家測繪地理信息局重點實驗室,江西 南昌 330013)

XTF格式可作為目前廣泛使用的多波束測深數(shù)據(jù)通用格式,以二進(jìn)制格式存儲,不利于原始觀測信息的解讀以及在此基礎(chǔ)上的二次開發(fā)。以Seabat8101多波束系統(tǒng)獲取的測深數(shù)據(jù)為例,分析其數(shù)據(jù)結(jié)構(gòu),并運用C#編程語言編寫程序完成XTF文件解碼,將解碼信息與Hypack軟件處理的數(shù)據(jù)進(jìn)行比對,驗證了解碼方法和結(jié)果的正確性。

多波束測深;XTF格式;數(shù)據(jù)解碼;程序

王勝平,盧凱樂.2015.多波束測深XTF格式解析及解碼程序研制[J].東華理工大學(xué)學(xué)報:自然科學(xué)版,38(4):443-448.

Wang Sheng-ping,Lu Kai-le.2015.Multi beam bathymetric XTF format and decoding program development[J].Journal of East China Institute of Technology (Natural Science), 38(4):443-448.

多波束測深是一種具有高精度、高效率和高分辨率等優(yōu)點的海底地形測量新技術(shù)。該技術(shù)起源于20世紀(jì)60年代美國海軍研究署資助的軍事研究項目,目前,其研究和應(yīng)用已達(dá)到了較高水平(劉經(jīng)南等,2002;李家彪,1999)。

多波束測深系統(tǒng)種類繁多,主要有 ELAC Nautik 公司的Seabeam系列、RESON公司的SeaBat系列、Kongsberg Simrad公司的EM系列和Atlas公司的Fansweep20等(武同元等,2014),而且數(shù)據(jù)采集和數(shù)據(jù)處理用的第三方軟件種類也多,主要有HYPACK, CARIS, Fledermaus等(程永壽等,2013)。由于多波束測深數(shù)據(jù)的存儲格式多樣,對后續(xù)數(shù)據(jù)精細(xì)處理和數(shù)據(jù)共享帶來諸多不便。XTF(eXtended Triton Format)是Triton公司創(chuàng)建的一種文件格式,可在一個文件內(nèi)存儲不同的數(shù)據(jù)源信息。XTF是目前廣泛使用的多波束數(shù)據(jù)通用格式之一,可以很好地統(tǒng)一波束測深數(shù)據(jù)的存儲問題(李軍等,2002;丁維鳳等,2011;韓春花等,2012)。鑒于上述原因,以Seabat8101多波束測深系統(tǒng)獲取的多波束測深XTF文件為例,深入分析XTF格式文件的數(shù)據(jù)結(jié)構(gòu),闡述其解碼思路與方法,并運用C#(陳宏斐,2013)編程語言編寫程序,完成XTF格式測深數(shù)據(jù)的解碼,并與Hypack處理過的數(shù)據(jù)進(jìn)行比對,驗證其正確性。

1 XTF格式數(shù)據(jù)結(jié)構(gòu)分析

XTF數(shù)據(jù)格式是目前廣泛使用的多波束數(shù)據(jù)通用格式之一,可保存聲納、導(dǎo)航、遙測、測深等多種類型的信息。從數(shù)據(jù)組織的層面可將XTF數(shù)據(jù)看作無序樹結(jié)構(gòu),頭文件作為根節(jié)點,子節(jié)點則為各種類型的數(shù)據(jù)包,數(shù)據(jù)包子節(jié)點對應(yīng)其相關(guān)數(shù)據(jù),其主要內(nèi)容包括文件頭(基本信息與通道信息)、數(shù)據(jù)包(包頭和數(shù)據(jù)記錄塊)。數(shù)據(jù)包與數(shù)據(jù)包之間緊密相連,但數(shù)據(jù)包種類可能不同。XTF格式文件是一種可擴(kuò)展格式文件,目前部分儀器廠商會根據(jù)其需要增加附加信息。針對測深數(shù)據(jù)包,各廠商自主定義部分主要是測深數(shù)據(jù)記錄部分(R Theta DATA),Seabat 8101的R Theta DATA結(jié)構(gòu)體定義如表1所示。XTF測深文件其公共部分?jǐn)?shù)據(jù)結(jié)構(gòu)定義由Triton公司的XTF文檔具體定義,當(dāng)解碼不同廠商儀器的XTF格式測深文件時,需要其提供數(shù)據(jù)記錄部分的結(jié)構(gòu)定義。

表1 Seabat 8101的R_Theta_DATA結(jié)構(gòu)體

從文件存儲的層面,XTF文件以線性形式存儲。XTF頭文件總大小102 4字節(jié),第166到168字節(jié)、168到170字節(jié)分別記錄側(cè)掃和測深通道數(shù)量,當(dāng)通道數(shù)量總數(shù)大于6時,頭文件大小增加1024個字節(jié)。頭文件中的信息存儲劃分到固定字節(jié)塊中,例如第1個字節(jié)存儲信息是判定該文件是否為XTF文件,第164字節(jié)往后讀取2字節(jié)信息為導(dǎo)航數(shù)據(jù)存儲類型(平面坐標(biāo)或者經(jīng)緯度)。前256個字節(jié)存儲頭文件中基本信息,具體內(nèi)容主要有:聲納類型(第34到36字節(jié)記錄聲納類型Sonar type)、導(dǎo)航數(shù)據(jù)存儲類型(第164到166字節(jié)記錄聲納類型nav units)、通道數(shù)量、儀器的安裝信息;如GPS(216到224字節(jié))、羅經(jīng)(224到228字節(jié))等傳感器在船體坐標(biāo)系下的坐標(biāo)及姿態(tài)安裝偏差(244到252、232到240字節(jié))等。以6通道數(shù)據(jù)為例,每個通道占128字節(jié),通道信息主要內(nèi)容:通道類型(第1個字節(jié)),樣本字節(jié)數(shù)(bytes per sample,6到8字節(jié)),傾斜角(tilt angle,40到44字節(jié)),波束寬度(beam width,44到48字節(jié)),換能器安裝偏差信息(48到68字節(jié))、采樣格式(Sample Format,74到75字節(jié))等。

圖1 XTF格式測深文件解碼流程圖Fig.1 The decoding flow chart of XTF bathymetric file

頭文件之后緊隨數(shù)據(jù)包(ping),常見的數(shù)據(jù)包種類主要有聲納、測深、注釋和姿態(tài)。數(shù)據(jù)包無規(guī)則排列在頭文件之后,每種數(shù)據(jù)包第1個字節(jié)都必須是起始標(biāo)志,第二個字節(jié)記錄信息為數(shù)據(jù)包類型。數(shù)據(jù)包內(nèi)第10字節(jié)開始,其后4字節(jié)內(nèi)容信息為該數(shù)據(jù)包大小。

測深數(shù)據(jù)包由數(shù)據(jù)包頭(BathyHeader)、數(shù)據(jù)記錄塊(R Theta DATA)組成,數(shù)據(jù)包頭由固定的256字節(jié)構(gòu)成,開始于十六進(jìn)制的0xFACE。數(shù)據(jù)包頭則主要記錄數(shù)據(jù)包大小、日期、時間、拖魚信息、導(dǎo)航信息、姿態(tài)信息等。數(shù)據(jù)記錄塊有一個通道頭,在Seabat8101的XTF格式測深文件中,通道頭主要記錄采樣率(samples per second)、聲速、波束夾角、波束個數(shù)等信息等,通道數(shù)據(jù)則記錄每一個測量數(shù)據(jù)值。

2 XTF格式測深數(shù)據(jù)解碼方法與編程實現(xiàn)

XTF格式測深數(shù)據(jù)解碼流程圖如圖1所示。本文運用C#語言編寫程序解碼XTF文件,C#是一種簡單、現(xiàn)代、面向?qū)ο蟆㈩愋头浅0踩?、派生?C 和 C++ 的編程語言。它同時具有 Visual Basic 的易用性、高性能 以及 C++的低級內(nèi)存訪問性,同時它還具有高效率及安全性、支持現(xiàn)有的網(wǎng)絡(luò)編程新標(biāo)準(zhǔn)、錯誤提示功能、擴(kuò)展交互性等優(yōu)點(Christian et al.,2010)。

XTF文件格式的解碼主要依托于其數(shù)據(jù)結(jié)構(gòu)的定義,解碼XTF文件從其頭文件開始。頭文件及通道信息具體結(jié)構(gòu)定義可參考TRITON公司的XTF說明文檔。在C#編程時,首先建立數(shù)據(jù)流(FileStream),然后建立二進(jìn)制閱讀器 BinaryReader,將基元數(shù)據(jù)類型讀取為二進(jìn)制值,并且二進(jìn)制位數(shù)按讀取大小依次增加,BinaryReader是基于數(shù)據(jù)流的。讀取的二進(jìn)制值可根據(jù)需要轉(zhuǎn)換成相應(yīng)十進(jìn)制值。

在編程解碼文件時,先讀取1024字節(jié),再判斷是否為XTF文件,依據(jù)是第一個字節(jié)(FileFormat)必須等于0x7B(十進(jìn)制值等于123),然后開始讀取數(shù)據(jù)包(ping)。先讀取2字節(jié),十六進(jìn)制值為0xFACE(十進(jìn)制值為64206)則代表是數(shù)據(jù)包的開始,再往后讀取一個字節(jié)是記錄數(shù)據(jù)包類型(HeaderType),十進(jìn)制值0代表聲納數(shù)據(jù)包、1代表注釋包、2代表測深包、4代表姿態(tài)數(shù)據(jù)包,數(shù)據(jù)包的種類是有很多種的,參考TRITON公司的XTF說明文檔可找出相對應(yīng)類型。在編寫程序時根據(jù)判斷數(shù)據(jù)包類型(HeaderType)的值識別數(shù)據(jù)包,當(dāng)不是測深數(shù)據(jù)包時,根據(jù)數(shù)據(jù)包結(jié)構(gòu)讀出其指示數(shù)據(jù)包大小的NumBytesThisRecord,從而跳過該數(shù)據(jù)包。

當(dāng)判斷為測深包時,開始讀取測深包類容。測深包頭(BathyHead)大小為256字節(jié),除上述的判別是否為數(shù)據(jù)包和數(shù)據(jù)包類型的字節(jié)塊外,剩余字節(jié)塊對應(yīng)的記錄信息可參考TRITON公司的XTF說明文檔。BathyHead之后開始讀取R Theta DATA, Seabat8101測深數(shù)據(jù)包的通道頭開始標(biāo)志是十六進(jìn)制值{0xff,0xff,0x00,0x00}接下來是通道類型(packet_type,Seabat8101值是0x17),通道頭每個字節(jié)塊對應(yīng)的具體信息可參考表1的R Theta DATA結(jié)構(gòu)體定義。

多波束的數(shù)據(jù)量非常龐大,當(dāng)解碼長條帶數(shù)據(jù)時,程序調(diào)試會出現(xiàn)內(nèi)存溢出問題。其內(nèi)存分配作如下處理可解決,思路:邏輯判斷控制放在內(nèi)存中管理的數(shù)據(jù)量,當(dāng)其占用到一定量內(nèi)存時,用文件形式或外部數(shù)據(jù)庫等方式進(jìn)行過渡。具體一種解決方法:讀取原始數(shù)據(jù)放在內(nèi)存中,超出預(yù)定大小時,在另一線程中將內(nèi)存中數(shù)據(jù)暫存入物理硬盤中,并及時釋放內(nèi)存,原始數(shù)據(jù)繼續(xù)讀取。完成XTF文件的解碼后,提取出相應(yīng)數(shù)據(jù)如安裝信息、觀測時間和測線信息、船體姿態(tài)信息、波束數(shù)和波束旅行時間等。

多波束XTF格式解碼程序是多波束測深數(shù)據(jù)處理系統(tǒng)中一個子功能模塊,程序主界面如圖2所示。

圖2 程序界面Fig.2 Program interface

3 實驗結(jié)果及驗證

在導(dǎo)出XTF測深數(shù)據(jù)文件的解碼信息后,選擇部分?jǐn)?shù)據(jù)與Hypack軟件處理后的數(shù)據(jù)對比,XTF頭文件主要信息與原始HSX(Hypack軟件導(dǎo)出文件)文件信息對比如表2,可以看出頭文件信息讀取完全正確。選取時間起點03:11:17.54后的50PING的數(shù)據(jù),Hypack處理后的姿態(tài)數(shù)據(jù)(Pitch,Roll,Heading,Heave)與解碼XTF文件獲取的值對比如圖3,可驗證解碼其值完全正確。對原始數(shù)據(jù)進(jìn)行聲線跟蹤、姿態(tài)改正、歸位計算和水深改正,最終可得出多波束每一條帶的測點坐標(biāo)。在此選取上述時間起點后第一PING的中央波束和左右各25個波束的解算的測深數(shù)據(jù),將其與與Hypack處理后導(dǎo)出深度對比如圖4。由于解算算法可能與軟件有所不同,導(dǎo)致與Hypack軟件處理過的深度值有細(xì)微差異,但深度誤差值已經(jīng)非常小。

圖3 Pitch、Roll、Heading、Heave解碼值與Hypack導(dǎo)出值比較Fig.3 The Pitch、Roll、Heading、Heave information contrasted between decoded of XTF and exported by Hypack

圖4 解算深度與Hypack處理深度對比Fig.4 The comparison of processing depth and Hypack solution depth

4 結(jié)束語

XTF格式文件可以很好地統(tǒng)一測深數(shù)據(jù)的存儲,XTF格式測深數(shù)據(jù)的解碼對于后續(xù)能更靈活的進(jìn)行誤差分析以及數(shù)據(jù)后處理提供幫助。本文程序編寫實現(xiàn)的是針對Seabat8101多波束測深包的解碼,并與Hypack軟件處理后的信息比對,驗證了解碼方法與解碼結(jié)果正確。不同型號儀器和第三方數(shù)據(jù)處理軟件轉(zhuǎn)換獲得的XTF文件的R_Theta_DATA有所差異,但解碼思路和方法相同。

陳宏斐. 2013. 基于ArcGIS Engine的農(nóng)村土地信息系統(tǒng)設(shè)計與實現(xiàn)[J]. 東華理工大學(xué)學(xué)報:自然科學(xué)版, 36(3):219-223.

程永壽, 姜效典,孔敏等.2013. 側(cè)掃XTF格式數(shù)據(jù)UTM坐標(biāo)轉(zhuǎn)換重寫入實現(xiàn)[J]. 海洋信息,(2):13-18.

丁維鳳,馮霞,傅曉明,等. 2011. 多波束XTF格式數(shù)據(jù)航向信息重寫入實例[J]. 海洋通報, 30(1):1-6.

韓春花,殷汝廣,張俊明,等. 2012. XTF格式側(cè)掃聲納數(shù)據(jù)格式解析與應(yīng)用[J]. 海洋信息,(1):17-21.

李家彪. 1999. 多波束勘測原理技術(shù)與方法[M]. 北京:海洋出版社:45-68.

李軍,滕惠忠. 2002. 側(cè)掃聲納數(shù)據(jù)的格式轉(zhuǎn)換及應(yīng)用[J].海洋測繪,(3):36-38.

劉經(jīng)南,趙建虎. 2002. 多波束測深系統(tǒng)的現(xiàn)狀及發(fā)展趨勢[J]. 海洋測繪,22(5):3-6.

武同元, 居向明, 謝清陸等.2014. 多波束.XTF數(shù)據(jù)結(jié)構(gòu)與.ALL數(shù)據(jù)結(jié)構(gòu)剖析[J]. 北京測繪, (1):16-21.

Christian Nagel,Bill Evjen,李銘. 2010. C#高級編程[M]. 下版,北京:清華大學(xué)出版社.

Multi Beam Bathymetric XTF Format and Decoding Program Development

WANG Sheng-ping1,2, LU Kai-le1,2

(1.School of Geomatics, East China Institute of Technology,Nanchang,JX 330013,China; 2.Key Laboratory of Watershed Ecology and Geographical Environment Monitoring,NASG,Nanchang,JX 330013,China)

Multi-beam bathymetric data mainly store in binary format at present,it is inconvenient to Interpreting the original observation information and doing secondary development On the basis of this format. the XTF format bathymetric data were collected by Seabat8101.Through analyze the data structure of XTF format file and write a program to decode XTF file by using the C# programming language. Then compared the decoded information with the data that processed by Hypack data- processing software, and validate the decoding method and the result.

multi-beam echosounder system; XTF format; data decoding; program

2015-09-09

國家自然科學(xué)基金(41206078);江西省自然科學(xué)基金(20142BAB217025);廣東省交通運輸廳科技項目(科技-2013-02-048);江西省教育廳科技項目(GJJ13441)

王勝平(1983—),男,博士研究生,主要從事航道、海洋測繪方面研究。E-mail:shwang@ecit.cn

10.3969/j.issn.1674-3504.2015.04.017

P229

A

1674-3504(2015)04-0443-06

猜你喜歡
字節(jié)解碼波束
《解碼萬噸站》
No.8 字節(jié)跳動將推出獨立出口電商APP
解碼eUCP2.0
中國外匯(2019年19期)2019-11-26 00:57:32
No.10 “字節(jié)跳動手機(jī)”要來了?
毫米波大規(guī)模陣列天線波束掃描研究*
NAD C368解碼/放大器一體機(jī)
Quad(國都)Vena解碼/放大器一體機(jī)
圓陣多波束測角探究
電子測試(2018年6期)2018-05-09 07:31:54
簡談MC7字節(jié)碼
Helix陣匹配場三維波束形成
仁怀市| 正宁县| 宜川县| 龙胜| 揭东县| 郎溪县| 垣曲县| 田林县| 铁岭县| 喀什市| 张家港市| 崇州市| 邢台市| 元氏县| 大港区| 神农架林区| 新竹县| 阳原县| 康保县| 庆安县| 大港区| 祥云县| 天柱县| 萍乡市| 平山县| 乃东县| 罗江县| 汤原县| 民丰县| 新龙县| 崇仁县| 盐池县| 永安市| 崇信县| 定远县| 英德市| 凉山| 承德市| 旬邑县| 芷江| 米脂县|