以源文件的完全精度将HDF4数组转储到ascii



我有很多带有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位打印浮点值。

最新更新