ubuntu下离线侧扫声呐xtf格式数据提取软件

        最近花了比较多时间处理xtf格式的侧扫声呐数据,ubuntu下写了一个数据处理的软件。输入为xtf文件路径或xtf文件夹路径。对每个xtf文件有四个输出文件,包括基本信息文件(.json),航迹数据文件(.mat),左舷强度数据文件(.mat),右舷强度数据文件(.mat)。输出文件的信息均为xtf文件记录侧扫输出的原始数据信息。后续可行根据需求利用这些文件做进一步的处理,如斜距校正,灰度校正,几何校正等。另外写了几个python小脚本,主要功能是根据输出的文件绘制简易灰度图和航迹图。

        软件项目的地址如下:

        https://code.ihub.org.cn/projects/5800/repository/xtf_data_analyze

        https://github.com/cabinx/xtf_data_analyze.git

        项目内doc文件夹下有简易使用手册可以查询,包括如何安装使用等,当然文章后续我也会做简要说明。此外doc下还有xtf格式的官方文档。在此默认已对侧扫工作原理及输出数据有一定了解。

一、编译安装的问题

        由于项目需要c++下输出.mat格式文件,因此依赖matio库(https://github.com/tbeu/matio),编译前需安装:

sudo apt-get install libmatio-dev

        我们需要获取库的路径,并在CMakeLists中做相应修改。在终端查询:

dpkg -L libmatio-dev

        其中libmatio.so路径就是项目需要链接的路径。由于不同的平台下系统目录略有不同,不做修改的话可能会导致编译失败。

        此外,项目在处涉及json文件处理时使用了一个非常好用的轻量级c++的json库,RapidJSON,感兴趣的可以了解一下http://rapidjson.org/zh-cn/

        具体安装测试使用请查阅使用手册。

二、输出文件格式问题

        简要介绍一下输出的几个文件内的数据,具体参考使用手册。

        1、基本信息文件(xxx_info.json)

        主要是fileheader和chaninfo的信息,其中有几个要注意一下:

        TotalPingNumber:总ping数;

        NavUnits:GPS格式,0表示UTM格式,3表示经纬度格式;

        chan_x:通道x,如chan_0表示通道0;

        BytesPerSample:此通道每个数据字节数,本项目只支持1字节和2字节;

        大多能在xtf官方文档中能查询到。

        2、航迹数据文件(xxx_TRAJ.mat)

        直接上每列代表的数据:

        [时间戳,侧扫经度,侧扫纬度,侧扫高度,左舷斜距,右舷斜距,左舷单线采样点数,右舷单线采样点数,侧扫速度,侧扫Pitch,侧扫Roll,侧扫Heading]

       注意NavUnits为0时,经纬度为UTM格式的,需要根据需求转换。

        3、强度矩阵数据文件

        左舷(xxx_PIM.mat);

        右舷(xxx_SIM.mat)。

        注意BytesPerSample为1时,每个采样点强度信息范围为(0~255);BytesPerSample为2时,每个采样点强度信息范围为(0~65535)。

三、python脚本

        几个简易小脚本,在DataProcess中:

        draw_intensity_image.py:绘制简易灰度图(基本未校正);

        draw_trajectory_image.py:绘制单个文件航迹图;

        draw_multi_trajectory_image.py:绘制多个文件航迹图(注意需要同一测试地点的航迹文件)。

        用项目中data文件夹下的测试数据得到的一些效果如下:

四、一些说明

        软件比较粗糙,只是主要对xtf文件原始数据做提取处理,若想获得理想的侧扫图像,需要利用提取得到的数据文件做后处理。此外软件只支持每个采样点数据大小为1字节或2字节。同时对于双频侧扫声呐采集的数据,由于软件只提取了0通道和1通道的信息,故输出的数据文件为低频信息,高频信息未做处理。

        目前软件能满足个人的使用需求,若后续有更进一步的需求,可能会进一步开发。

  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XTF文件是用于储存井下测井数据的一种文件格式,我们可以通过编写代码来读取XTF文件中的数据。 首先,我们需要了解XTF文件的结构。XTF文件由多个数据块组成,每个数据块都有一个特定的标识符和长度。不同类型的测井数据(如曲线数据、图像数据等)会以不同的数据块类型来表示。 要读取XTF文件,可以按照以下步骤进行: 1. 打开XTF文件:使用适当的编程语言(如Python、C++等),通过指定文件路径来打开XTF文件,并创建一个文件对象。 2. 读取文件头:在XTF文件的开头部分,包含了一些全局的信息,如文件版本、文件长度、数据块个数等。通过读取文件头部分,可以获取这些全局信息。 3. 读取数据块:根据文件头部分的信息,确定数据块的个数,然后一次读取每个数据块。根据数据块的类型,解析出相应的测井数据。 4. 解析测井数据:根据数据块类型,我们可以知道这一块是什么类型的测井数据。根据不同的数据类型,可以有不同的解析方法。例如,如果是曲线数据,我们可以解析出测井曲线的名称、单位和实际数据值。 5. 存储解析后的数据:将解析后的数据存储在内存中,可以将其存储在数据结构(如数组、矩阵)中,以便后续进行处理和分析。 通过以上步骤,我们可以读取XTF文件中的测井数据。在实际应用中,我们可能还需要进行数据校正、数据过滤、数据筛选等操作来优化测井数据的质量和准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值