韓春花,殷汝廣,張俊明,孫思軍
(1.國家海洋信息中心 天津 300171;2.北京正航科技發展有限公司 北京 100039)
XTF格式側掃聲納數據格式解析與應用
韓春花1,殷汝廣1,張俊明2,孫思軍1
(1.國家海洋信息中心 天津 300171;2.北京正航科技發展有限公司 北京 100039)
從側掃聲納原理出發,深入分析XTF格式側掃聲納數據文件組織結構與內容,通過軟件開發實現對批量XTF格式側掃聲納數據的自動解碼,進而實現批量XTF格式側掃聲納數據文件自動航跡提取、測線長度、測線走向、測線用時等統計信息計算,在短時間內不使用專門軟件即可獲取大量XTF格式側掃聲納數據的基礎信息,大大提高了此類數據的判讀效率。
側掃聲納;XTF格式;格式解編
側掃聲納系統以其高精度、高效率、高分辨率、海底微觀地貌直觀成像的特點,為海底探測提供了完整的海底聲學圖像,從而獲得海底形態,并對海底物質的紋理特征進行定性的描述,廣泛應用于海底地貌測繪、海底底質勘探、水下目標搜尋、海洋工程等方面[1-5]。
側掃聲納以成像為主。將放置在拖魚兩側的換能器,垂直于航向的方向上沿左右船舷各發射一扇形波束,以球面波的形式向遠處傳播[6],碰到海底后反射波或反向散射波沿原路線返回到換能器(稱為回波)。由于海底地貌、底質性質、傳播路徑的遠近不同等,回波幅度的高低就會發生變化,這樣,一次發射/接收(每ping)就獲得了一條反映海底信息的很多小方塊或者像素(pixel)序列。工作船向前航行,以一定時間間隔進行發射和接收操作,就得到了二維海底地形地貌的聲圖。聲圖以不同顏色(偽色彩)或不同的黑白程度表示海底的特征,就可以進行海底地形地貌的識別工作。
側掃聲納調查獲取的數據文件格式隨儀器設備不同而不同,目前常見的有*.XTF、*.Q-mips、*.sdf等格式,其中以*.XTF格式較為常用。XTF格式數據文件是Triton Imaging Inc公司使用的數據文件格式,是目前通用的地球物理聲學探測數據格式。近年來,我國開展的“近海海洋綜合調查與評價專項”就將XTF格式作為側掃聲納數據文件的標準格式。但此類數據需要配備專門的軟件(如sonarwizmap等)才能讀取,并且一般數據量都較大。如何能夠快速地、自動地對批量XTF格式數據進行信息提取及統計參數計算,是目前此類資料管理應用中亟待解決的問題。
XTF格式文件是目前通用的聲學勘探數據組織格式文件,具有復雜的、多層次數據組織結構[7]。XTF格式是一種可擴展的數據格式,它的伸縮性和可擴展性很強,可保存聲納、航行、遙測、測深等多種類型的信息。它可以很容易地擴展成將遇到的不同數據類型。
XTF格式文件由許多數據包組成,每個數據包前面都有關于數據類型和大小的說明,數據包又叫Ping,相當于地震數據中的“道(TRACE)”。如果處理軟件讀取時,不需要或不能識辨某個數據包,則根據數量包大小直接跳過。
XTF格式文件開始是XTFILEHEADER結構,長度最少為1 024KB,它包括聲納通道信息和測深通道信息等。后面是不同的數據包,目前主要有聲納、測深、姿態和注釋4種類型。每個數據包都有一個頭結構。數據包的位置可以任意,讀取時依據頭結構的頭類型信息來確定數據包的類型。對于通道,每個通道有通道頭結構,后面是通道測量數據。結構如圖1所示。

圖1 XTF文件結構
為了便于數據的存儲和管理,根據XTF文件格式說明文件(V26)定義了具體的數據結構,如表1所示。

表1 XTF格式數據結構定義表
所有XTF格式文件都是由文件頭開始,文件頭由一個頭部說明和CHANINFO結構組成。形成一個完整的XTF FILEHEADER結構,最小長度為1 024字節。當XTF FILEHEADER結構中的通道數大于6時,則XTF格式FILHEADER的長度應該增加1 024字節。圖2是
一個2通道XTF格式文件的數據組織結構圖。

圖2 XTF格式文件數據組織結構
解編XTF格式數據文件首先應正確讀出文件頭信息(XTF FILEHEADER)和文件頭中的通道結構信息(CHANNINFO)。軟件實現時先從文件頭讀取1 024字節,讀取成功以后判斷該文件是否為XTF格式。判斷依據是第一個字節必須等于0X7B,轉換為10進制為123,否則該文件不是XTF格式。讀取了文件頭信息,便可取出文件頭信息(XTF FILFHEADER)結構中的聲納通道數,當通道數大于6時,需要再次讀取1 024字節。每個通道都有一個通道結構信息(CHANNINFO),通道結構信息中最重要的兩項是通道類型(TypeOfChannel)和采樣精度(BytesPerSample)。當TypeofChannel值為0表示淺剖,值為1表示左舷,值為2表示右舷,值為3表示測深。采樣精度(BytesPerSample)值為1表示8位,值為2表示16位。
成功讀取XTF格式文件頭信息后繼續讀取每一Ping的數據。軟件實現時使用一個循環操作,來讀取每一Ping的數據,循環結束的條件為讀取的字節小于每一Ping頭結構(PINGHEADER)的大小。讀完一Ping數據之后,假設目前數據緩沖區中已經有讀入的數據,聲明一個BYTE(unsigned char)類型的指針ptr,指向緩沖區開始,然后聲明一個XTF格式Ping頭(PINGHEADER)類型的指針PingHeader,使其指向剛才的指針,即PingHeader=ptr,即可訪問PingHeader中的數據,需要注意要進行類型強制轉。若想讀取之后的數據,可以進行指針運算,ptr+=sizeof(XTF格式PINGHEADER),意為指針位置向后移動了sizeof(XTF PINGHEADER)字節,便可繼續讀取每一Ping通道(XTF PINGCHANHEADER)結構,此結構中包含有ChannelNumber(通道數)、Slant Range(斜距量程)、NumSamples(采樣點個數)3個必備數據。然后將指針ptr移動到文件頭結構(PINGHEADER)結尾,即ptr+=sizeof(XTF PINGCHANHEADER),根據結構XTF PINGCHANHEADER中的NumSamples(采樣點個數)的值乘以BytesPerSample(采樣精度),即可計算出采樣數據的字節數,并依次讀取采樣數據。至此,繼續讀取下一個通道的數據。最終逐一將每一Ping的數據完全解編,并進行各項參數統計計算處理。在參數統計計算中,選取了采樣間隔、采樣點個數、總ping數、測線長度、覆蓋面積、測線用時及測線走向等。將以上功能封裝在專門的動態鏈接庫xtf.Lib中實現。
利用上述原理和方法,開發完成了XTF格式數據提取軟件,可實現對批量XTF格式數據的格式解析與統計參數計算。程序界面如圖3所示。在處理文件時,可實現XTF文件解編、信息提取與統計計算同時進行。如處理00.xtf文件時,同時生成一個00_trace.txt(航跡信息)、00_info.txt(xtf解編文件)和00.cvs(信息統計計算文件)。
00 _trace.txt文件內容包含每一ping數據的經度、緯度和時間(圖4)。
00 _info.txt文件為一個文本文件,以明碼方式記錄了頭信息(Header Data)、通道結構信息(Channel Struct Data)和每一Ping(Ping Data)的數據信息(圖5)。
00.cvs為一個逗號分割的文本文件,記錄或者計算了測線文件名稱、采樣設備、記錄程序、數據標準、采樣間隔、采樣點個數、總Ping數、測線長度、斜距量程、覆蓋面積、作業開始時間、作業結束時間、測線用時、起點經度、起點緯度、起點水深、終點經度、終點緯度、終點水深、測線走向等信息(圖6)。

圖3 數據提取過程中

圖4 提取后的航跡信息文件

圖5 格式解析后的文件
利用該軟件模塊,實現了對“我國近海海洋綜合調查與評價專項”中所有XTF格式文件的航跡提取、格式解析與統計參數計算,程序運行時間不到一天,可處理近1TB的XTF格式數據。

圖6 生成的統計信息文件
XTF格式數據是一類格式特殊、必須特殊軟件才能打開的數據。深入XTF格式數據內部,通過格式解析,軟件編制,將XTF格式數據轉換成可讀的文件,并通過提取必備的參數設置,使用戶在短時間內不需要安裝復雜的專用軟件,就可以對大批量的XTF數據有一個基本的認識,具有比較實際的應用價值。
[1]唐秋華,陳義蘭,周興華,等.多波束海底聲像圖的形成及應用研究[J].海洋測繪,2004(5):9-l2.
[2]董慶亮,歐陽永忠,陳岳英,等.側掃聲納和多波束測深系統組合探測海底目標[J].海洋測繪,2009,29(5):51-53.
[3]李海濱,滕惠忠,宋海英,等.基于側掃聲納圖像海底目標物提取方法[J].海洋測繪,2010,30(6):71-73.
[4]李軍,騰惠忠.側掃聲納數據的格式轉換及應用[J].海洋測繪,2002,22(2):36-38.
[5]騰惠忠,鄧雪清,郭思海.側掃聲納數據庫管理設計[J].海洋測繪,2003,23(1):27-30.
[6]于杰.側掃聲納原始信息轉換及其應用[J].水雷戰與艦船防護,2009,17(1):56-59.
[7]韓春花,張俊明,梁建峰,等.側掃聲納數據管理系統設計與實現[J].海洋通報,2011,30(2):187-192.
2011-10-09
我國近海海洋綜合調查與評價專項(908-03);國家海洋局青年基金項目:側掃聲納數據管理方法研究(18104002C)