我有很多带有3D数组的HDF4文件,我想将这些文件转储到ascii中,浮点值反映源文件的全部精度。我使用过HDP:HDP dumpsds
,但它只打印6位数的精度和四舍五入。我更喜欢一个开源的实用程序来读取HDF4;python还是java?谢谢(我使用了标签HDF5,没有HDF4。我意识到这些是不兼容的格式,但开发社区经常并行工作)。
如果您已经安装或确实安装了pyhdf,那么您可以在python:中轻松获得全精度访问
from numpy import *
from pyhdf.SD import SD
sd = SD('data.hdf', SDC.READ)
sd.datasets()
假设它们以32位浮点形式存储在HDF4文件中,那么您可以随心所欲地打印值:
image = sd.datasets.select('3d_image_name')
print "%.23f" % (image[2][2][2],)
它将在(x,y,z)=(2,2,2)到小数点后23位打印浮点值。