详细介绍XTF文件数据格式

(按照数据结构顺序列出)(普遍适用)

  1. XTFFILEHEADER Structure

这个是整个文件的header,里面存储了文件名,SonarName,SonarType,CHANINFO等基础信息。
里边会有一个判断哪个通道的问题,这个也差不多决定了之后你的数据结构是哪一种类型的。
比如NumberOfBathymetryChannels==1的时候,就差不多是关于Bathymetry的数据包了。
之后CHANINFO为六个通道的信息
通道信息还是比较重要的,关系到之后的ping文件中有几个通道。
这个意思是,当CHANINFO中储存了两个通道的有效信息,pingHeader中就有两条数据通道。

just like this

(!!注意为有效信息,有些通道只是空数据包,需要跳过)
如果遇到Bathymetry,那只有一条通道。

以上加起来一共1024bytes。

  1. 之后就是每一个ping对应的结构

包括XTFPINGCHANHEADER以及具体的数据包

2.1. XTFPINGCHANHEADER
当你在写这部分代码时候,一定要注意,XTF文件中的ping数不胜数,每一个ping中都有header以及data,而且ping的类型可能还不相同。所以你需要仔细看一下你的header都有什么,对应哪一个structure。
注意:每一个header的前六个内容基本一致,我们可以利用这一特性,先获取HeaderType是哪一种类型,通过if判断之后应该运行哪一个structure。
这时候,你会遇到空数据包的存在,判断是否为空数据包的方法为:ping的大小为该pingheader的大小,也就是整个ping中只有pingheader,data为空。当遇到这种情况的话,用return直接返回,获取下一个ping。
另外注意,HeaderType会有几个特殊的结构,一定要仔细看完,不是全部的pingheader都是一样的。

2.2. data sturcture
我大概理解XTF说明文件中的内容为:数据格式不归我管,你去找别人要!声纳格式网上比较普遍,可以直接看我上一篇中的资源有哪些,里面介绍了几个博文,可以参考。因为我需要的数据为Bathymetry,网上没有,我直接给那个公司发邮件获取的。我这里也给大家贴上[XTF文件],文件内容为Sonic2020,2022-2024设备的data structure以及xtf说明书,大家自取。
链接:https://pan.baidu.com/s/1bIyzsWcXRHx3ggljKaCTDA
提取码:fyej
大概的结构基本就是这些。

写代码的时候,最好在某些显眼的地方加入if判断,判断是不是刚好读到了这个位置
比如在开始读取pingheader的时候

if self.MagicNumber == 64206:# XTF文件里面有具体说明print("\nPING文件格式正确")

如果输出PING文件格式正确,说明前面没有发生错位,可以正常读取。

如果觉得好的话,点赞支持一下!
之后会更新我的一些代码逻辑。
网上有关XTF文件的内容真的不多,如果有比较好的,也可以直接留言,让更多人的知道。
我今天已经全部完成了对XTF文件的解析。再次纪念一下。

详细介绍XTF文件数据格式相关推荐

  1. java文件读写详细介绍_java文件读写操作大全

    一.获得控制台用户输入的信息public String getInputMessage() throws IOException...{ System.out.println("请输入您的命 ...

  2. HuTool 工具类详细介绍2 文件操作工具类

    IO流相关 文件的拷贝 // 文件的拷贝BufferedInputStream in = FileUtil.getInputStream("d:/桌面/HuTool学习.md"); ...

  3. XTF文件解析(1)资源有哪些?

    一.简单介绍 XTF文件是一个二进制文件,其中有数据结构,具体的结构可以参考<eXtended Triton Format(XTF) Rev.37>.网上没有好用又免费的软件来解析,当然如 ...

  4. Dockerfile 文件结构、docker镜像构建过程详细介绍

    [Docker那些事]系列文章 Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT指令的区别 构建Docker镜像指南,含实战 ...

  5. Java读取mapinfo格式_超齐全的MapInfo数据格式详细介绍

    1. 概述 MapInfo采用双数据库存储模式,即其空间数据与属性数据是分开来存储的.属性数据存储在关系数据库的若干属性表中,而空间数据则以MapInfo的自定义格式保存于若干文件中,二者通过一定的索 ...

  6. python读取.mat文件,python将变量存为.mat文件详细介绍

    在进行数据处理的过程中,经常会用到Matlab和python两种工具,.mat文件是Matlab数据存储的标准数据格式,通过创建一个.mat文件详细介绍两种工具之间的数据读取和存储. 一.python ...

  7. Android --- AndroidManifest.xml文件内容详细介绍

    文章目录 1.android:label="@string/app_name" 2. android:icon="@mipmap/ic_launcher"与an ...

  8. kubernetes实战篇之helm示例yaml文件文件详细介绍

    前面完整示例里,我们主要讲解helm打包,部署,升级,回退等功能,关于这里面的文件只是简单介绍,这一节我们详细介绍一下这里面的文件,以方便我们参照创建自己的helm chart. Helm Chart ...

  9. Ubuntu根目录下各文件夹的功能详细介绍

    Ubuntu的根目录下存在着很多的文件夹,但你知道他们都存放着哪些文件呢?这些是深入了解Ubuntu系统必不缺少的知识,本文就关于此做一下介绍吧. /bin/    用以存储二进制可执行命令文件. / ...

最新文章

  1. 对Java基本数据类型的再思考
  2. setTimeout和setInterval实现定时器的区别
  3. 退一步 - 王阳明的心学智慧
  4. 【pmcaff】2014互联网公司薪资排行榜
  5. python io多路复用_python实现IO多路复用 --- selector
  6. 【Linux系统编程】特殊进程之守护进程
  7. 间接银团贷款(Indirectly Syndicated Loan/PARTICIPATED)
  8. 实验分享:用Python生成个性化二维码
  9. python之路-day18-反射
  10. Python基本语法,python入门到精通
  11. linux安装jdk(以1.6为例)
  12. vue中v-model指令的使用之Vue知识点归纳(九)
  13. 服务器复制文件进程,服务器复制文件进程
  14. Android中ListView的使用步骤
  15. hadoop 权限错误 Permission denied: user=root, access=WRITE, inode=“/“:hdfs:super
  16. java如何输入字符串_在java中如何将一个输入了 InputStream转为一个字符串String?...
  17. 提示“百度未授权使用地图API,可能是因为您提供的密钥不是有效的百度LBS开放平台密钥”解决方案
  18. NC65 凭证辅助核算项目查询
  19. 质心公式_No.217 质心位置的求法(基础篇)
  20. 关于网站被挂马的症状以及处理解决方法

热门文章

  1. r语言kmeans聚类(真实案例完整流程)
  2. 玲珑杯2.5 1032 A-B
  3. 3.6 51单片机-动态数码管
  4. jmeter中服务器名称IP,以及下面的路径填写
  5. 实现客户机(Client)类声明字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户机数量;定义静态函数成员ChangeServerName
  6. 关于今天参加学校ACM比赛的感想
  7. 陌上人如玉,公子世无双
  8. 玩vr游戏的计算机配置要求,玩虚拟现实游戏,电脑配置必须强大如此
  9. hadoop3 任务卡在map 0% reduce 0%的解决方案
  10. PS制作渐变金属文字