详细介绍XTF文件数据格式
詳細(xì)介紹XTF文件數(shù)據(jù)格式
(按照數(shù)據(jù)結(jié)構(gòu)順序列出)(普遍適用)
這個是整個文件的header,里面存儲了文件名,SonarName,SonarType,CHANINFO等基礎(chǔ)信息。
里邊會有一個判斷哪個通道的問題,這個也差不多決定了之后你的數(shù)據(jù)結(jié)構(gòu)是哪一種類型的。
比如NumberOfBathymetryChannels==1的時候,就差不多是關(guān)于Bathymetry的數(shù)據(jù)包了。
之后CHANINFO為六個通道的信息
通道信息還是比較重要的,關(guān)系到之后的ping文件中有幾個通道。
這個意思是,當(dāng)CHANINFO中儲存了兩個通道的有效信息,pingHeader中就有兩條數(shù)據(jù)通道。
just like this
(!!注意為有效信息,有些通道只是空數(shù)據(jù)包,需要跳過)
如果遇到Bathymetry,那只有一條通道。
以上加起來一共1024bytes。
包括XTFPINGCHANHEADER以及具體的數(shù)據(jù)包
2.1. XTFPINGCHANHEADER
當(dāng)你在寫這部分代碼時候,一定要注意,XTF文件中的ping數(shù)不勝數(shù),每一個ping中都有header以及data,而且ping的類型可能還不相同。所以你需要仔細(xì)看一下你的header都有什么,對應(yīng)哪一個structure。
注意:每一個header的前六個內(nèi)容基本一致,我們可以利用這一特性,先獲取HeaderType是哪一種類型,通過if判斷之后應(yīng)該運行哪一個structure。
這時候,你會遇到空數(shù)據(jù)包的存在,判斷是否為空數(shù)據(jù)包的方法為:ping的大小為該pingheader的大小,也就是整個ping中只有pingheader,data為空。當(dāng)遇到這種情況的話,用return直接返回,獲取下一個ping。
另外注意,HeaderType會有幾個特殊的結(jié)構(gòu),一定要仔細(xì)看完,不是全部的pingheader都是一樣的。
2.2. data sturcture
我大概理解XTF說明文件中的內(nèi)容為:數(shù)據(jù)格式不歸我管,你去找別人要!聲納格式網(wǎng)上比較普遍,可以直接看我上一篇中的資源有哪些,里面介紹了幾個博文,可以參考。因為我需要的數(shù)據(jù)為Bathymetry,網(wǎng)上沒有,我直接給那個公司發(fā)郵件獲取的。我這里也給大家貼上[XTF文件],文件內(nèi)容為Sonic2020,2022-2024設(shè)備的data structure以及xtf說明書,大家自取。
鏈接:https://pan.baidu.com/s/1bIyzsWcXRHx3ggljKaCTDA
提取碼:fyej
大概的結(jié)構(gòu)基本就是這些。
寫代碼的時候,最好在某些顯眼的地方加入if判斷,判斷是不是剛好讀到了這個位置
比如在開始讀取pingheader的時候
如果輸出PING文件格式正確,說明前面沒有發(fā)生錯位,可以正常讀取。
如果覺得好的話,點贊支持一下!
之后會更新我的一些代碼邏輯。
網(wǎng)上有關(guān)XTF文件的內(nèi)容真的不多,如果有比較好的,也可以直接留言,讓更多人的知道。
我今天已經(jīng)全部完成了對XTF文件的解析。再次紀(jì)念一下。
總結(jié)
以上是生活随笔為你收集整理的详细介绍XTF文件数据格式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: day31
- 下一篇: java hgetall_redis调用