dono 发表于 2014-5-18 16:49:09

Matlab读取SEGY数据

用Matlab写了一个读取Segy文件数据的程序(准确的说是代码),在测试中,有很多地方还非常原始,欢迎有兴趣的坛友一起讨论改进。先看一下粗糙的运行结果.

[*]>> FuncReadSEGY('Moosehead.sgy','307',1)
[*]iData =
[*]43
[*]10
[*]30
[*]50
[*]iBinStr =
[*]01000011000100000011000001010000
[*]iValue =
[*]144
[*]

复制代码
上面是读取某segy文件中的一个数据的结果:


[*]函数FuncReadSEGY包含三个参数,第一个为文件路径和名字,第二个代表的是数据所在行数(数据分割为每行显示16个字节的数据,16进制),第三个参数代表该行的前四个字节,如'Moosehead.sgy'为segy文件名,'307'为10进制的775,1代表第775行的第一个数字,也就是775*16=12400位置处的数据。【segy文件的第3840字节为第一个采样点数据位置,但每道前面有不少数据为0】
[*]iData显示的是读取的一个数据,显示为4个16进制字节,读取结果可与下图对比
[*]iBinStr为对应的二进制字符串
[*]iValue为转换为10进制的整数结果,也就是我们需要的数据
[*]使用UltraEdit读出的数据:
页: [1]
查看完整版本: Matlab读取SEGY数据