以源文件的全精度将 HDF4 数组转储到 ascii
Posted
技术标签:
【中文标题】以源文件的全精度将 HDF4 数组转储到 ascii【英文标题】:Dump HDF4 arrays to ascii with full precision of the source file 【发布时间】:2013-12-28 16:39:57 【问题描述】:我有许多带有 3D 数组的 HDF4 文件,我想将它们转储到 ascii 中,其中浮点值反映了源文件的完整精度。我使用过 HDP:HDP dumpsds
,但它只打印 6 位精度并四舍五入。我的首选是用于读取 HDF4 的开源实用程序; python还是java?谢谢。 (我使用标签 HDF5,没有 HDF4。我意识到这些格式不兼容,但开发社区经常并行工作)。
【问题讨论】:
【参考方案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 位。
【讨论】:
以上是关于以源文件的全精度将 HDF4 数组转储到 ascii的主要内容,如果未能解决你的问题,请参考以下文章