我需要帮助阅读我的项目的数据。我试图读取的数据是以二进制格式编写的,使用FORTRAN的方式如下:
它是fortran二进制格式,带有“toto”一个单浮点数组
open(unit=11,file=outfich,form='unformatted')
write(11)ngal,9 ! Number of galaxies for which ages are computed
allocate(toto(ngal,9))
toto(1:ngal,1)=float(galid_tab(1:ngal))
toto(1:ngal,2)=sfrgal10_tab (1:ngal)
toto(1:ngal,3)=sfrgal100_tab (1:ngal)
toto(1:ngal,4)=sfrgal1000_tab(1:ngal)
toto(1:ngal,5)=agegal_tab(1:ngal)
toto(1:ngal,6)=mgal_tab(1:ngal)*1d11
toto(1:ngal,7)=xgal_tab(1:ngal)*3.08d24/unit_l+0.5d0
toto(1:ngal,8)=ygal_tab(1:ngal)*3.08d24/unit_l+0.5d0
toto(1:ngal,9)=zgal_tab(1:ngal)*3.08d24/unit_l+0.5d0
write(11)toto
我试图用以下方法读取数据:
dt = np.dtype([('galid', float), ('sfrgal10', float), ('sfrgal100', float),('sfrgal1000', float), ('agegal', float), ('mgal', float), ('xgal', float), ('ygal', float), ('zgal', float)])
numpy.fromfile(filepath, dtype=dt, count=-1, sep='')
但是我得到的价值观没有任何意义。我应该得到的价值观是:
galid ~ 1-120000
mgal ~ 0-2
xgal, ygal, zgal ~ -50 - +50
我还尝试用np.float16
和'<f8'
代替float,它们的值是不同的,但仍然没有多大意义。你知道吗
我还尝试使用:
with open(filepath, mode='rb') as file: # b is important -> binary
fileContent = file.read()
data = struct.unpack("fffffffff", fileContent[:36])
print(data)
目前没有回答
相关问题 更多 >
编程相关推荐