Python读取二进制文件-与SeismicUnix交互


当采用SeismicUnix进行地震数据处理,我们常采用SeismicUnix快速显示本地二进制数据文件,如速度、成像结果文件等。

这些文件通常为本地的二进制格式文件,以4字节浮点型float进行读写,且按照数组列优先格式存储。下面我们利用Python,阐述如何读写这样的二进制文件,此处我们用到了numpymatplotlib库。

下面直接上代码:

import numpy as np
import matplotlib.pyplot as plt

nz=301
nx=400

var=np.random.random([nz,nx])
var[150:160,:]=0.5

var1=var.astype(np.float32)
fig=plt.figure()   # Figure 1
ax=fig.add_subplot()
ax.imshow(var1,cmap=plt.cm.jet)
ax.set_title('var1')

# write the binary file
var1.T.tofile('var.bin')

# read the binary file
var2=np.fromfile('var.bin',dtype='float32')
fig=plt.figure()  # Figure 2
ax=fig.add_subplot()
axis=ax.imshow(var2.reshape([nx,nz]).T,cmap=plt.cm.jet)
ax.set_title('var2')
# example 2
var3=np.fromfile('marm.dat',dtype=np.float32)
fig=plt.figure()   # Figure 3
ax=fig.add_subplot()
axis=ax.imshow(var3.reshape([901,231]).T,cmap=plt.cm.jet)
ax.set_title('var3')

plt.show()

写二进制格式文件-SU支持
Figure 1
读二进制格式文件1-SU支持
Figure 2
读二进制格式文件2-SU支持
Figure 3

如有错误,请指正,谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值