Java 以源文件的全部精度将HDF4数组转储为ascii
我有许多带有3D数组的HDF4文件,我想将它们转储到ascii,其中的浮点值反映源文件的全部精度。我用过HDP:Java 以源文件的全部精度将HDF4数组转储为ascii,java,python,hdf5,Java,Python,Hdf5,我有许多带有3D数组的HDF4文件,我想将它们转储到ascii,其中的浮点值反映源文件的全部精度。我用过HDP:HDP-dumpsds,但它只打印6位精度并四舍五入。我倾向于使用开源工具来读取HDF4;python还是java?谢谢(我使用了标签HDF5,没有HDF4。我意识到这些格式不兼容,但开发社区通常并行工作)。如果您已经安装或确实安装了,那么您可以轻松获得python中的完全精确访问: from numpy import * from pyhdf.SD import SD sd = SD
HDP-dumpsds
,但它只打印6位精度并四舍五入。我倾向于使用开源工具来读取HDF4;python还是java?谢谢(我使用了标签HDF5,没有HDF4。我意识到这些格式不兼容,但开发社区通常并行工作)。如果您已经安装或确实安装了,那么您可以轻松获得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位小数点处打印浮点