韓春花,殷汝廣,張俊明,孫思軍
(1.國家海洋信息中心 天津 300171;2.北京正航科技發(fā)展有限公司 北京 100039)
XTF格式側(cè)掃聲納數(shù)據(jù)格式解析與應(yīng)用
韓春花1,殷汝廣1,張俊明2,孫思軍1
(1.國家海洋信息中心 天津 300171;2.北京正航科技發(fā)展有限公司 北京 100039)
從側(cè)掃聲納原理出發(fā),深入分析XTF格式側(cè)掃聲納數(shù)據(jù)文件組織結(jié)構(gòu)與內(nèi)容,通過軟件開發(fā)實(shí)現(xiàn)對批量XTF格式側(cè)掃聲納數(shù)據(jù)的自動解碼,進(jìn)而實(shí)現(xiàn)批量XTF格式側(cè)掃聲納數(shù)據(jù)文件自動航跡提取、測線長度、測線走向、測線用時(shí)等統(tǒng)計(jì)信息計(jì)算,在短時(shí)間內(nèi)不使用專門軟件即可獲取大量XTF格式側(cè)掃聲納數(shù)據(jù)的基礎(chǔ)信息,大大提高了此類數(shù)據(jù)的判讀效率。
側(cè)掃聲納;XTF格式;格式解編
側(cè)掃聲納系統(tǒng)以其高精度、高效率、高分辨率、海底微觀地貌直觀成像的特點(diǎn),為海底探測提供了完整的海底聲學(xué)圖像,從而獲得海底形態(tài),并對海底物質(zhì)的紋理特征進(jìn)行定性的描述,廣泛應(yīng)用于海底地貌測繪、海底底質(zhì)勘探、水下目標(biāo)搜尋、海洋工程等方面[1-5]。
側(cè)掃聲納以成像為主。將放置在拖魚兩側(cè)的換能器,垂直于航向的方向上沿左右船舷各發(fā)射一扇形波束,以球面波的形式向遠(yuǎn)處傳播[6],碰到海底后反射波或反向散射波沿原路線返回到換能器(稱為回波)。由于海底地貌、底質(zhì)性質(zhì)、傳播路徑的遠(yuǎn)近不同等,回波幅度的高低就會發(fā)生變化,這樣,一次發(fā)射/接收(每ping)就獲得了一條反映海底信息的很多小方塊或者像素(pixel)序列。工作船向前航行,以一定時(shí)間間隔進(jìn)行發(fā)射和接收操作,就得到了二維海底地形地貌的聲圖。聲圖以不同顏色(偽色彩)或不同的黑白程度表示海底的特征,就可以進(jìn)行海底地形地貌的識別工作。
側(cè)掃聲納調(diào)查獲取的數(shù)據(jù)文件格式隨儀器設(shè)備不同而不同,目前常見的有*.XTF、*.Q-mips、*.sdf等格式,其中以*.XTF格式較為常用。XTF格式數(shù)據(jù)文件是Triton Imaging Inc公司使用的數(shù)據(jù)文件格式,是目前通用的地球物理聲學(xué)探測數(shù)據(jù)格式。近年來,我國開展的“近海海洋綜合調(diào)查與評價(jià)專項(xiàng)”就將XTF格式作為側(cè)掃聲納數(shù)據(jù)文件的標(biāo)準(zhǔn)格式。但此類數(shù)據(jù)需要配備專門的軟件(如sonarwizmap等)才能讀取,并且一般數(shù)據(jù)量都較大。如何能夠快速地、自動地對批量XTF格式數(shù)據(jù)進(jìn)行信息提取及統(tǒng)計(jì)參數(shù)計(jì)算,是目前此類資料管理應(yīng)用中亟待解決的問題。
XTF格式文件是目前通用的聲學(xué)勘探數(shù)據(jù)組織格式文件,具有復(fù)雜的、多層次數(shù)據(jù)組織結(jié)構(gòu)[7]。XTF格式是一種可擴(kuò)展的數(shù)據(jù)格式,它的伸縮性和可擴(kuò)展性很強(qiáng),可保存聲納、航行、遙測、測深等多種類型的信息。它可以很容易地?cái)U(kuò)展成將遇到的不同數(shù)據(jù)類型。
XTF格式文件由許多數(shù)據(jù)包組成,每個數(shù)據(jù)包前面都有關(guān)于數(shù)據(jù)類型和大小的說明,數(shù)據(jù)包又叫Ping,相當(dāng)于地震數(shù)據(jù)中的“道(TRACE)”。如果處理軟件讀取時(shí),不需要或不能識辨某個數(shù)據(jù)包,則根據(jù)數(shù)量包大小直接跳過。
XTF格式文件開始是XTFILEHEADER結(jié)構(gòu),長度最少為1 024KB,它包括聲納通道信息和測深通道信息等。后面是不同的數(shù)據(jù)包,目前主要有聲納、測深、姿態(tài)和注釋4種類型。每個數(shù)據(jù)包都有一個頭結(jié)構(gòu)。數(shù)據(jù)包的位置可以任意,讀取時(shí)依據(jù)頭結(jié)構(gòu)的頭類型信息來確定數(shù)據(jù)包的類型。對于通道,每個通道有通道頭結(jié)構(gòu),后面是通道測量數(shù)據(jù)。結(jié)構(gòu)如圖1所示。
圖1 XTF文件結(jié)構(gòu)
為了便于數(shù)據(jù)的存儲和管理,根據(jù)XTF文件格式說明文件(V26)定義了具體的數(shù)據(jù)結(jié)構(gòu),如表1所示。
表1 XTF格式數(shù)據(jù)結(jié)構(gòu)定義表
所有XTF格式文件都是由文件頭開始,文件頭由一個頭部說明和CHANINFO結(jié)構(gòu)組成。形成一個完整的XTF FILEHEADER結(jié)構(gòu),最小長度為1 024字節(jié)。當(dāng)XTF FILEHEADER結(jié)構(gòu)中的通道數(shù)大于6時(shí),則XTF格式FILHEADER的長度應(yīng)該增加1 024字節(jié)。圖2是
一個2通道XTF格式文件的數(shù)據(jù)組織結(jié)構(gòu)圖。
圖2 XTF格式文件數(shù)據(jù)組織結(jié)構(gòu)
解編XTF格式數(shù)據(jù)文件首先應(yīng)正確讀出文件頭信息(XTF FILEHEADER)和文件頭中的通道結(jié)構(gòu)信息(CHANNINFO)。軟件實(shí)現(xiàn)時(shí)先從文件頭讀取1 024字節(jié),讀取成功以后判斷該文件是否為XTF格式。判斷依據(jù)是第一個字節(jié)必須等于0X7B,轉(zhuǎn)換為10進(jìn)制為123,否則該文件不是XTF格式。讀取了文件頭信息,便可取出文件頭信息(XTF FILFHEADER)結(jié)構(gòu)中的聲納通道數(shù),當(dāng)通道數(shù)大于6時(shí),需要再次讀取1 024字節(jié)。每個通道都有一個通道結(jié)構(gòu)信息(CHANNINFO),通道結(jié)構(gòu)信息中最重要的兩項(xiàng)是通道類型(TypeOfChannel)和采樣精度(BytesPerSample)。當(dāng)TypeofChannel值為0表示淺剖,值為1表示左舷,值為2表示右舷,值為3表示測深。采樣精度(BytesPerSample)值為1表示8位,值為2表示16位。
成功讀取XTF格式文件頭信息后繼續(xù)讀取每一Ping的數(shù)據(jù)。軟件實(shí)現(xiàn)時(shí)使用一個循環(huán)操作,來讀取每一Ping的數(shù)據(jù),循環(huán)結(jié)束的條件為讀取的字節(jié)小于每一Ping頭結(jié)構(gòu)(PINGHEADER)的大小。讀完一Ping數(shù)據(jù)之后,假設(shè)目前數(shù)據(jù)緩沖區(qū)中已經(jīng)有讀入的數(shù)據(jù),聲明一個BYTE(unsigned char)類型的指針ptr,指向緩沖區(qū)開始,然后聲明一個XTF格式Ping頭(PINGHEADER)類型的指針PingHeader,使其指向剛才的指針,即PingHeader=ptr,即可訪問PingHeader中的數(shù)據(jù),需要注意要進(jìn)行類型強(qiáng)制轉(zhuǎn)。若想讀取之后的數(shù)據(jù),可以進(jìn)行指針運(yùn)算,ptr+=sizeof(XTF格式PINGHEADER),意為指針位置向后移動了sizeof(XTF PINGHEADER)字節(jié),便可繼續(xù)讀取每一Ping通道(XTF PINGCHANHEADER)結(jié)構(gòu),此結(jié)構(gòu)中包含有ChannelNumber(通道數(shù))、Slant Range(斜距量程)、NumSamples(采樣點(diǎn)個數(shù))3個必備數(shù)據(jù)。然后將指針ptr移動到文件頭結(jié)構(gòu)(PINGHEADER)結(jié)尾,即ptr+=sizeof(XTF PINGCHANHEADER),根據(jù)結(jié)構(gòu)XTF PINGCHANHEADER中的NumSamples(采樣點(diǎn)個數(shù))的值乘以BytesPerSample(采樣精度),即可計(jì)算出采樣數(shù)據(jù)的字節(jié)數(shù),并依次讀取采樣數(shù)據(jù)。至此,繼續(xù)讀取下一個通道的數(shù)據(jù)。最終逐一將每一Ping的數(shù)據(jù)完全解編,并進(jìn)行各項(xiàng)參數(shù)統(tǒng)計(jì)計(jì)算處理。在參數(shù)統(tǒng)計(jì)計(jì)算中,選取了采樣間隔、采樣點(diǎn)個數(shù)、總ping數(shù)、測線長度、覆蓋面積、測線用時(shí)及測線走向等。將以上功能封裝在專門的動態(tài)鏈接庫xtf.Lib中實(shí)現(xiàn)。
利用上述原理和方法,開發(fā)完成了XTF格式數(shù)據(jù)提取軟件,可實(shí)現(xiàn)對批量XTF格式數(shù)據(jù)的格式解析與統(tǒng)計(jì)參數(shù)計(jì)算。程序界面如圖3所示。在處理文件時(shí),可實(shí)現(xiàn)XTF文件解編、信息提取與統(tǒng)計(jì)計(jì)算同時(shí)進(jìn)行。如處理00.xtf文件時(shí),同時(shí)生成一個00_trace.txt(航跡信息)、00_info.txt(xtf解編文件)和00.cvs(信息統(tǒng)計(jì)計(jì)算文件)。
00 _trace.txt文件內(nèi)容包含每一ping數(shù)據(jù)的經(jīng)度、緯度和時(shí)間(圖4)。
00 _info.txt文件為一個文本文件,以明碼方式記錄了頭信息(Header Data)、通道結(jié)構(gòu)信息(Channel Struct Data)和每一Ping(Ping Data)的數(shù)據(jù)信息(圖5)。
00.cvs為一個逗號分割的文本文件,記錄或者計(jì)算了測線文件名稱、采樣設(shè)備、記錄程序、數(shù)據(jù)標(biāo)準(zhǔn)、采樣間隔、采樣點(diǎn)個數(shù)、總Ping數(shù)、測線長度、斜距量程、覆蓋面積、作業(yè)開始時(shí)間、作業(yè)結(jié)束時(shí)間、測線用時(shí)、起點(diǎn)經(jīng)度、起點(diǎn)緯度、起點(diǎn)水深、終點(diǎn)經(jīng)度、終點(diǎn)緯度、終點(diǎn)水深、測線走向等信息(圖6)。
圖3 數(shù)據(jù)提取過程中
圖4 提取后的航跡信息文件
圖5 格式解析后的文件
利用該軟件模塊,實(shí)現(xiàn)了對“我國近海海洋綜合調(diào)查與評價(jià)專項(xiàng)”中所有XTF格式文件的航跡提取、格式解析與統(tǒng)計(jì)參數(shù)計(jì)算,程序運(yùn)行時(shí)間不到一天,可處理近1TB的XTF格式數(shù)據(jù)。
圖6 生成的統(tǒng)計(jì)信息文件
XTF格式數(shù)據(jù)是一類格式特殊、必須特殊軟件才能打開的數(shù)據(jù)。深入XTF格式數(shù)據(jù)內(nèi)部,通過格式解析,軟件編制,將XTF格式數(shù)據(jù)轉(zhuǎn)換成可讀的文件,并通過提取必備的參數(shù)設(shè)置,使用戶在短時(shí)間內(nèi)不需要安裝復(fù)雜的專用軟件,就可以對大批量的XTF數(shù)據(jù)有一個基本的認(rèn)識,具有比較實(shí)際的應(yīng)用價(jià)值。
[1]唐秋華,陳義蘭,周興華,等.多波束海底聲像圖的形成及應(yīng)用研究[J].海洋測繪,2004(5):9-l2.
[2]董慶亮,歐陽永忠,陳岳英,等.側(cè)掃聲納和多波束測深系統(tǒng)組合探測海底目標(biāo)[J].海洋測繪,2009,29(5):51-53.
[3]李海濱,滕惠忠,宋海英,等.基于側(cè)掃聲納圖像海底目標(biāo)物提取方法[J].海洋測繪,2010,30(6):71-73.
[4]李軍,騰惠忠.側(cè)掃聲納數(shù)據(jù)的格式轉(zhuǎn)換及應(yīng)用[J].海洋測繪,2002,22(2):36-38.
[5]騰惠忠,鄧雪清,郭思海.側(cè)掃聲納數(shù)據(jù)庫管理設(shè)計(jì)[J].海洋測繪,2003,23(1):27-30.
[6]于杰.側(cè)掃聲納原始信息轉(zhuǎn)換及其應(yīng)用[J].水雷戰(zhàn)與艦船防護(hù),2009,17(1):56-59.
[7]韓春花,張俊明,梁建峰,等.側(cè)掃聲納數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].海洋通報(bào),2011,30(2):187-192.
2011-10-09
我國近海海洋綜合調(diào)查與評價(jià)專項(xiàng)(908-03);國家海洋局青年基金項(xiàng)目:側(cè)掃聲納數(shù)據(jù)管理方法研究(18104002C)