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