XTF格式侧扫声呐数据格式解析

本文简介:本文首先对侧扫声呐作了简单介绍,详细可参考http://www.hyqb.sh.cn/publish/portal7/tab675/info4827.htm,其次对XTF格式进行详细说明,主要参照Xtf File Format_X37.pdf文档,并贴出自己所用xtf数据画的海底地貌图。
一、 侧扫声呐介绍
侧扫声纳左右各安装一条换能器线阵,首先发射一个短促的声脉冲,声波按球面波方式向外传播,碰到海底或水中物体会产生散射,其中的反向散射波(也叫回波)会按原传播路线返回换能器被换能器接收,经换能器转换成一系列电脉冲。
  一般情况下,硬的、粗糙的、凸起的海底,回波强;软的、平滑的、凹陷的海底回波弱,被遮挡的海底不产生回波,距离越远回波越弱。
  利用接收机和计算机对这一脉冲串进行处理,最后变成数字量,并显示在显示器上,每一次发射的回波数据显示在显示器的一横线上,每一点显示的位置和回波到达的时刻对应,每一点的亮度和回波幅度有关。下图是自己所用xtf数据中某一ping的回波强度图。某一ping的回波强度图
图1. 某一ping回波强度图
将每一发射周期的接收数据一线接一线地纵向排列,显示在显示器上,就构成了二维海底地貌声图。声图平面和海底平面成逐点映射关系,声图的亮度包涵了海底的特征。下图是自己所用xtf数据最终生成的海底地貌图。 XTF格式侧扫声呐数据格式解析_第1张图片
图2. 海底地貌图
得到海底地貌图之后,还可以对它进行各种图像处理,包括图像锐化、浮雕功能、伪彩色处理等。
二、XTF格式解读
侧扫声纳数据的处理是获得海底信息的重要步骤,格式转换是数据处理的基础。现有的声纳数据主要有Qmips和XTF两种文件格式,二者均为二进制格式存储。本文所研究的数据格式是XTF格式。
XTF文件格式是一种可扩展的数据格式,它的伸缩性和可扩展性很强,可保存声纳、航行、遥测、测深等多种类型的信息。它可以很容易地扩展成将来所遇到的不同数据类型。每个文件都包括不同的数据包,根据数据包的标识信息识别数据包的类型。这样可以仅读取所需要的可认识数据包,而跳过其它不需要或不认识的数据包。
1.XTF文件格式:
这里写图片描述
其中,XTF文件格式数据包主要有声纳、测深、姿态和注释四种类型。
XTF格式侧扫声呐数据格式解析_第2张图片
1.1 xtf头文件
头文件数据存储在XTFFILEHEADER结构体中,该结构体中包含六条信道空间,信道数据存储在CHANINFO结构体中。XTFFILEHEADER结构体包含了该款侧扫声呐的一些基本信息,包括侧扫声呐名称、类型,记录软件的名称、版本,声呐的通道数,当前坐标等等。
下图是我的xtf数据所读到的头文件部分信息:
XTF格式侧扫声呐数据格式解析_第3张图片
这里写图片描述

注:XTF中 ,基本的侧扫声呐有两个channel,双频侧扫声呐有四个channel,一个单测深系统是一个channel,另外,速度传感器、高度计或者其他一些传感器,只要其输出数据为单一数值(尤其通过串口传输),在XTF格式中,都不能算一个channel,这种类型的数值进入系统并被存储在XTF文件特定的区域。基本的XTF头文件是1024字节大小,但如果channel不止六个,它的大小就会以1024字节成倍增长直到满足存放于CHANINFO结构体中的channel。
1.2 一ping数据包结构


这是一个ping数据包的结构,红色的是我所用XTF的字节数,可以看出一个ping一共占了4484个字节。
1.2.1 XTFPINGHEADER结构体
下面贴出部分XTFPINGHEADER结构体的成员:

XTF格式侧扫声呐数据格式解析_第4张图片
XTF格式侧扫声呐数据格式解析_第5张图片

XTF格式侧扫声呐数据格式解析_第6张图片
下图是我所用xtf数据所读到的XTFPINGHEADER部分信息:
XTF格式侧扫声呐数据格式解析_第7张图片
XTF格式侧扫声呐数据格式解析_第8张图片
从上图可以看出每一ping的基本信息,包括当前船速(单位knots),当前的地理坐标,每一ping的字节数,以及ping的编号等。
1.2.2 XTFPINGCHANHEADER结构体
XTFPINGCHANHEADER结构体显示了通道信息,包括当前通道是左舷还是右舷,斜距,每一ping的持续时间等等。下图是我所用xtf数据所读到的XTFPINGCHANHEADER部分信息:
XTF格式侧扫声呐数据格式解析_第9张图片
1.2.3 ping数据读取
此次所用XTF数据每一通道有2050bytes数据,数据为16位的,每两个字节为一个数据。算法如下:

for(int i=0;i<1025;i++)
{
        buf[0]=(unsigned char)(*Imagery); 
        Imagery++;//指针,指向当前数据
        buf[1]=(unsigned char)(*Imagery);
        temp=(buf[1]<<8)|buf[0];
        outfile<",";
         Imagery++;
 }

2.整个xtf文件架构
XTF格式侧扫声呐数据格式解析_第10张图片

参考:http://www.hyqb.sh.cn/publish/portal7/tab675/info4827.htm
参考文档:Xtf File Format_X37.pdf

你可能感兴趣的:(侧扫声呐格式)