您好我是新手,所以请原谅我对大多数事情缺乏了解:]
我正在尝试将网格文件中的CFD代码读入由我工作的实验室中很久以后学生写的CFD代码。这些文件是大端的Fortran,未使用64位浮点格式化。我需要一些我可以在屏幕上阅读的文本或数据文件,以便我可以适当地修改文件中读取的代码部分。经过一些谷歌搜索后,我感到茫然(我绝不是一个计算机科学家)虽然我认为我一般都了解大端是什么以及未格式化的文件是什么。如何将这些文件转换为可读的内容?感谢您提供的任何帮助!!此外,如果它有助于链接到我需要转换的网格文件是
ftp://cmb24.larc.nasa.gov/outgoing/DPW5/unstructured_grids.REV01/
再次感谢!!
- 中号
答案 0 :(得分:1)
你可以玩python和numpy:
from __future__ import print_function, division
import numpy as np
file = "L1.T.rev01.p3d.hex.r8.ugrid"
n=8
dt = np.dtype([('field0','>f8'), ('field1', '>f8'), ('field2', '>f8')])
ndt = len(dt)
data = np.fromfile(file, dt, count=n) #omit count= to read all records
for row in data:
print(row)
#print(row['field0'])
将以下内容打印到屏幕上:
(5.9416208318e-313, 2.0743e-319, 0.0)
(3.15696e-318, 5.94342273776e-313, 260.16056)
(0.0, 118.46084, 272.1421)
(0.0, 115.94573, 284.80264)
(0.0, 113.49254, 298.1431)
(0.0, 111.13511, 312.15776)
(0.0, 108.90879, 326.83354)
(0.0, 106.84945, 342.14944)
我不确定如何处理标题,但efficient-way-to-create-numpy-arrays-from-binary-files可能有所帮助。 对于numpy中的big-endian,small-endian和其他数据类型,请参阅Data type objects
答案 1 :(得分:0)
看起来可能是这种格式:
http://www.simcenter.msstate.edu/docs/ug_io/file_formats.html
...你可以从这里用一些软件打开它吗?:
http://www.laerdal.com/us/SimCenter
这是沿着正确的方向吗?你的文件是关于模拟的,并且这些文件是否包含3D场景数据(这只是基于初看的猜测)?
......如果是的话,我会尝试通过技术支持渠道,如果可能的话 - 也许会有人知道更多关于它的信息: