汪詩(shī)奇,劉海波,王 瑩,孫嘉駿,陳 科
(1.中國(guó)電建集團(tuán)昆明勘測(cè)設(shè)計(jì)研究院有限公司 信息技術(shù)研究院,云南 昆明 650051;2.華能瀾滄江水電股份有限公司,云南 昆明 650214)
淺地層剖面儀(淺剖)是一種典型的聲學(xué)探測(cè)設(shè)備,它的主要原理是借助聲學(xué)換能器向海底發(fā)射低頻聲波,利用低頻聲波所具備的穿透地層的能力以及不同介質(zhì)對(duì)聲波的聲阻抗差異,使得聲波在各介質(zhì)交界面處產(chǎn)生較強(qiáng)回波,通過(guò)接收器接收這些時(shí)序的回波并存儲(chǔ)為淺剖數(shù)據(jù)文件。淺剖數(shù)據(jù)對(duì)于了解水底淺地層結(jié)構(gòu)和構(gòu)造情況具有重要的作用[1,2],此外,在油氣資源探測(cè)、海岸工程、海洋調(diào)查等方面也能發(fā)揮重要作用[3,4]。
Edgetech 3200型淺地層剖面儀是由美國(guó)Edgetech公司生產(chǎn)的一種聲吶設(shè)備。它主要由SB-216S拖魚(yú)(包括發(fā)射器、水聽(tīng)器、前置放大等)、甲板處理單元(放大器、顯示處理器等)以及拖曳電纜組成。換能器發(fā)射的波形信號(hào)包含頻率從0.5 kHz~12 kHz的掃頻式高振幅信號(hào)。該系統(tǒng)配備Edgetech Discover數(shù)據(jù)采集軟件,數(shù)據(jù)存儲(chǔ)格式包括*.JSF和*.XTF兩種。其中,XTF格式數(shù)據(jù)靈活性好,可擴(kuò)展性較高,能夠同時(shí)保存淺地層剖面數(shù)據(jù)、側(cè)掃聲吶數(shù)據(jù)、多波束測(cè)深數(shù)據(jù)、導(dǎo)航數(shù)據(jù)等多種數(shù)據(jù)信息,因此XTF格式的應(yīng)用更為廣泛。
本文以Edgetech 3200型淺地層剖面儀采集獲得的XTF格式淺地層剖面數(shù)據(jù)為研究對(duì)象,深入分析了其數(shù)據(jù)結(jié)構(gòu),并借助編程手段進(jìn)行數(shù)據(jù)文件解碼及淺地層剖面圖像生成。實(shí)踐證明,本文解譯生成的淺地層剖面圖像與商用軟件SonarWiz生成的結(jié)果基本一致,表明本文所述的淺地層剖面數(shù)據(jù)文件解譯方式是正確有效的。
XTF文件格式是一種可擴(kuò)展的數(shù)據(jù)格式[5],它的伸縮性和可擴(kuò)展性很強(qiáng),可保存聲吶、航行、遙測(cè)、測(cè)深等多種類型的信息。在保存數(shù)據(jù)時(shí),不會(huì)有儲(chǔ)存空間被浪費(fèi),也不會(huì)產(chǎn)生數(shù)據(jù)不連續(xù)的現(xiàn)象。用戶可以根據(jù)數(shù)據(jù)包的標(biāo)識(shí)信息識(shí)別數(shù)據(jù)包的類型,僅讀取所需要的數(shù)據(jù)包,而忽略未知或不需要的數(shù)據(jù)包。
所有的XTF文件都是由文件頭開(kāi)始。文件頭數(shù)據(jù)保存在一個(gè)有1 024個(gè)字節(jié)大小的XTFFILEHEADER結(jié)構(gòu)中,每個(gè)XTFFILEHEADER結(jié)構(gòu)中包含6個(gè)通道的數(shù)據(jù),每個(gè)通道的數(shù)據(jù)保存于CHANINFO結(jié)構(gòu)中,當(dāng)存儲(chǔ)的數(shù)據(jù)通道大于6時(shí),頭文件的大小會(huì)以1 024的整數(shù)倍進(jìn)行增加,直到有足夠用的空間存儲(chǔ)CHANINFO結(jié)構(gòu)為止。隨后是數(shù)據(jù)包,不同類型的測(cè)量數(shù)據(jù)均以包的形式存放,每個(gè)包中有一個(gè)包頭(它以XTFPINGHEADER結(jié)構(gòu)形式存在),存放每個(gè)脈沖中各通道的相關(guān)數(shù)據(jù)。最后則是通道頭與通道數(shù)據(jù),通道頭以XTFPINGCHANHEADER結(jié)構(gòu)形式存在,內(nèi)部存放著脈沖號(hào)、通道標(biāo)示等信息。
1.2.1 XTFFILEHEADER數(shù)據(jù)結(jié)構(gòu)
在XTFFILEHEADER數(shù)據(jù)結(jié)構(gòu)(見(jiàn)表1)中,主要記錄了文件類型、系統(tǒng)類型、聲吶通道數(shù)、測(cè)深通道數(shù)、Snippet通道數(shù)、回?fù)軓?qiáng)度通道數(shù)等必須填寫(xiě)的項(xiàng)和測(cè)量文件名、導(dǎo)航延遲、導(dǎo)航系統(tǒng)和姿態(tài)傳感器的安裝偏差等選填項(xiàng)目,而在末尾,還包含6個(gè)(一般情況下)CHANINFO的數(shù)據(jù)結(jié)構(gòu)(見(jiàn)表2)。
表1 XTFFILEHEADER數(shù)據(jù)結(jié)構(gòu)Tab.1 Data structure of XTFFILEHEADER
表2 CHANINFO的數(shù)據(jù)結(jié)構(gòu)Tab.2 Data structure of CHANINFO
CHANINFO結(jié)構(gòu)的大小為128個(gè)字節(jié),其中包含通道類型和每個(gè)采樣點(diǎn)的字節(jié)數(shù)兩個(gè)必填項(xiàng),也包括通道極性、電壓范圍、頻率、波束開(kāi)角、安裝偏差(坐標(biāo)和角度)等選填項(xiàng),末尾還包括53個(gè)字節(jié)的未使用區(qū)域。
1.2.2 淺剖數(shù)據(jù)包數(shù)據(jù)結(jié)構(gòu)
淺剖數(shù)據(jù)包主要包含3個(gè)部分:XTFPINGHEADER、XTFPINGCHANHEADER以及淺剖回波時(shí)序數(shù)據(jù)。
其中XTFPINGHEADER數(shù)據(jù)結(jié)構(gòu)(見(jiàn)表3)中,主要包含本Ping數(shù)據(jù)記錄時(shí)間(日期及時(shí)刻)、位置(導(dǎo)航數(shù)據(jù))、航向、船速、聲速等數(shù)據(jù)。
表3 XTFPINGHEADER數(shù)據(jù)結(jié)構(gòu)Tab.3 Data structure of XTFPINGHEADER
XTFPINGCHANHEADER數(shù)據(jù)結(jié)構(gòu)(見(jiàn)表4)中,主要包含本Ping數(shù)據(jù)的采樣點(diǎn)個(gè)數(shù)、回波接收總時(shí)間、回波接收總距離等數(shù)據(jù)信息。
表4 XTFPINGCHANHEADER數(shù)據(jù)結(jié)構(gòu)Tab.4 Data structure of XTFPINGCHANHEADER
淺剖回波時(shí)序數(shù)據(jù)緊跟其后連續(xù)存儲(chǔ)。每個(gè)采樣點(diǎn)的數(shù)據(jù)存儲(chǔ)格式為短整型(short)。
根據(jù)上述對(duì)XTF文件結(jié)構(gòu)的分析,首先定義各主要結(jié)構(gòu)體如下:
struct XTF_FILE_HEADER
{ BYTE FileFormat; //文件類型(set to 123)
BYTE SystemType; //系統(tǒng)類型
char RecordingProgramName[8];
char RecordingProgramVersion[8];
……
float MRUOffsetYaw; //姿態(tài)傳感器航偏
float MRUOffsetPitch; //姿態(tài)傳感器縱搖
float MRUOffsetRoll; //姿態(tài)傳感器橫搖
XTF_CHANINFO chaninfo[6];};
然后,根據(jù)二進(jìn)制文件讀取的特點(diǎn),利用以上定義好的結(jié)構(gòu)體,使用fread( void *buffer,size_t size,size_t count,F(xiàn)ILE *stream) 函數(shù)可以很容易地將文件(硬盤(pán))中的內(nèi)容讀取到緩存中[6]。
解譯程序主要代碼如下:
FILE *file;
file=fopen(filename.c_str(),"r+b");
if(file==NULL) {
printf("Can’t open file!");
return false; }
XTF_FILE_HEADER file_header;
fread(&file_header,sizeof(XTF_FILE_HEADER),1,file);
……
為驗(yàn)證本文方法,利用某水庫(kù)實(shí)測(cè)淺地層剖面數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。為了說(shuō)明本文解譯結(jié)果的正確性,利用商用軟件SonarWiz的處理結(jié)果進(jìn)行比較和分析。
對(duì)某一條測(cè)線數(shù)據(jù)進(jìn)行解析得到如下信息:測(cè)量道數(shù)1 769,每道采樣點(diǎn)數(shù)1 068。將其中某一道數(shù)據(jù)繪制成折線圖(橫坐標(biāo)為采樣點(diǎn)號(hào),縱坐標(biāo)為回波強(qiáng)度),如圖1所示。
圖1 某一道數(shù)據(jù)繪制的折線圖Fig.1 Line chart drawn by using a certain data
從圖1可以看出,在第297個(gè)采樣點(diǎn)處具有最大回波強(qiáng)度,說(shuō)明此處是發(fā)射聲波在水體與水底交界面處產(chǎn)生的強(qiáng)回波。而后,回波能量隨著傳播距離增加逐步衰減。
將每一道數(shù)據(jù)作為一列,依照每道數(shù)據(jù)的連續(xù)性依次排列可以得到矩陣形式的回波數(shù)據(jù)。將該矩陣的每一個(gè)元素值歸一化到0~255范圍內(nèi),即可將該回波數(shù)據(jù)矩陣轉(zhuǎn)化為灰度圖像。某測(cè)線數(shù)據(jù)對(duì)應(yīng)的淺剖圖像如圖2所示。
圖2 某測(cè)線數(shù)據(jù)對(duì)應(yīng)的淺剖圖像Fig.2 Sub-bottom profiler images corresponding to a certain data
對(duì)比圖2(a)和圖2(b)可知,利用本文方法對(duì)XTF格式數(shù)據(jù)解譯后所生成的圖像與利用SonarWiz軟件生成的圖像基本一致。但本文繪制的圖像存在較多豎直向條紋狀的噪聲干擾,而SonarWiz得到的圖像比較平滑,層界清晰。經(jīng)過(guò)分析,筆者認(rèn)為存在以下原因:
1)本文成圖時(shí)是直接將原始回波數(shù)據(jù)轉(zhuǎn)換為圖像,沒(méi)有經(jīng)過(guò)其他處理;而SonarWiz軟件成圖時(shí)重新進(jìn)行了增益調(diào)整。
2)本文方法與SonarWiz軟件采取的從回波數(shù)據(jù)到圖像的轉(zhuǎn)換過(guò)程存在差異。
3)本文成圖后未經(jīng)過(guò)任何處理,而SonarWiz軟件對(duì)結(jié)果圖像進(jìn)行了去噪處理。
本文以XTF格式淺剖數(shù)據(jù)為研究對(duì)象,詳細(xì)分析了XTF格式文件結(jié)構(gòu),并對(duì)各結(jié)構(gòu)數(shù)據(jù)進(jìn)行了說(shuō)明,再利用編程手段對(duì)其進(jìn)行了解譯,最后對(duì)解譯結(jié)果進(jìn)行了成圖展示。通過(guò)與SonarWiz商業(yè)軟件的成圖結(jié)果進(jìn)行比較,認(rèn)為本文對(duì)文件的解譯方式是可行的。但是,因?yàn)楸疚姆椒ㄎ磳?duì)原始回波數(shù)據(jù)進(jìn)行相應(yīng)的處理,導(dǎo)致所生成的圖像與商業(yè)軟件結(jié)果存在差異,在后續(xù)的工作中,需要加強(qiáng)這方面的研究,以獲得更為真實(shí)的淺剖圖像。