使用scipy FortranFile读取二进制fortran文件

时间:2017-12-09 14:17:34

标签: python scipy binary fortran

我有一个二进制文件,其数据用real*4写,6个变量18次。 但是,由于Fortran端填充,文件大小为 18 *(4 + 6 * 4 + 4)= 576。

我尝试了几种方法,但无法解决这个问题

1)

sdfdffrom scipy.io import FortranFile
fname='2006.bin'
f = FortranFile(fname, 'r')
print( f.read_reals( dtype='float32' ))

我得到了

Error -only length-1 arrays can be converted to Python scalars

2)这实际上不正确我猜

f = open(fname, 'rb')
recl = np.fromfile(f, dtype='int64', count=1)
f.seek(8)
field = np.fromfile(f, dtype='float32')
print('Record length=',recl)

使用以下Fortran代码

编写数据文件
INTEGER,PARAMETER :: r_sngl=kind(0.0e0)
REAL(r_sngl) :: wk(6)
OPEN(90,FILE=obsf,FORM='unformatted',ACCESS='sequential')
WRITE(90) wk

示例wk就像

144  42.856 406.811 -0.2191941E-04  0.1000000E-04  0.3363116E-43

0 个答案:

没有答案