使用python的segyio包读取segy数据的问题

今天安装segyio包后读取了一块叠后数据,运行程序后报错unable to find sorting,使用github提供的测试数据可以正常读取,一度怀疑是程序包本身的问题,上网查资料有网友反映也遇到过这个问题,segyio 1.60以及以前的版本可以正常运行,于是去pypi翻出了1.6版本,发现只能在python3.6上运行,于是去清华大学的镜像网站下找到历史版本,在工作站上登录一个新的用户重新安装python3.6,然后pip安装上segyio1.6,折腾一下午,再运行,还是报错!strict还是不能为True,不能读取到线点号!

思考了半天,认为可能不是库的问题,可能是segy数据格式的问题。重新在处理软件上检查输出的作业,发现offset有定义(模块缺省定义为37),于是删掉offset道头字,重新输出,用python读,正常了!两个版本的segyio都能正常读取!

目前分析原因,程序会自动检查line、xline和offset(我怀疑是检查37位置是否有值)几个道头字,如果叠后数据指定了offset道头字,程序无法读取观测系统。使用某处理软件输出叠后数据时,最好将offset道头字清空!

读取问题已经解决,下面继续学习segy数据的存储结构。目前感觉像是把数据读成了一个类,各种属性是一个ndarray。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值