Have fun with sci.dog

seismic unix: suxgraph: fgettr.c: on trace #1, number of samples in header (4798) differs from number for first trace (4)

今天碰到一个奇怪的问题,想在seismic unix下绘制 .su 文件的程序,在mac里很简单的利用suxgraph很简单的就实现了

但是,在Windows我的WSL系统下,同样的程序,同样的命令居然出问题了,提示:suxgraph: fgettr.c: on trace #1, number of samples in header (4798) differs from number for first trace (4)

难道seismic unix 读入 .su 数据在不同电脑上结果不同吗?查找资料后发现,由于.su 数据不是一种标准的数据交换格式,不同电脑读入后(可能是big-endian / small-endian的问题),会产生数据交换swapping data的现象,具体可以参考这个帖子:http://toto-share.com/2011/02/seismic-unix-cant-open-su-file/

解决的方法:

(1)处理前,使用 suswapbytes 解决数据交换问题后,在进行后续处理;

(2)使用 suoldtonew 将原来的数据格式转成 XDR format, 然后进行后续处理

可以参考这个帖子:https://www.detectation.com/forum/viewtopic.php?t=2258

多说两句,之前做偏底层开发的数据处理时,也碰到过这种因为计算机不同读入数据发生swapping data的情况,感觉标准化的可交换数据格式还是挺重要的哈。

赞(1)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《seismic unix: suxgraph: fgettr.c: on trace #1, number of samples in header (4798) differs from number for first trace (4)》
文章链接:https://www.sci.dog/?p=584
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 1

  1. #1

    最典型是就是windows系统和linux系统关于回车的不同表示,windows是换行+回车,linux是回车。还有类似于big-endian / small-endian的问题,有时候也是挺烦人的。

    Alp4年前 (2020-10-23)回复