加载H5文件并在Python中存储与新H5文件相同的数据:文件大小增加

时间:2018-02-01 16:30:59

标签: python h5py hdf

我有一个名为file.h5的H5文件,用于存储红外图像。此文件的大小为282KB:

$ ls -l -sh file.h5
688 -rw-r--r--  1 user  staff   282K Feb  2 00:25 file.h5

首先,我使用库h5py在python中加载文件。

>> import h5py
>> hf = h5py.File('file.h5', 'r')
>> data = hf['infrared'][:]

然后,我将此相同数据(从282 KB H5文件中检索)存储为新的H5文件。

>> hf2 = h5py.File('file2.h5', 'w')
>> hf2.create_dataset('infrared', data=data)

由于没有对H5文件添加数据处理或新字段,我希望大小完全相同。然而,令我惊讶的是,我最终得到了一个2 MB大小的新H5文件!!

$ ls -l -sh file2.h5
4104 -rw-r--r--  1 user  staff   2.0M Feb  2 00:39 file2.h5

编辑:仔细看看

在下文中,我列出了每个数据集(来自旧文件和新文件)的注释中建议的一些参数。

旧文件中的数据集(hf)

>> hf['infrared']
<HDF5 dataset "infrared": shape (512, 512), type "<f8">
>> hf['infrared'].size
262144
>> hf['infrared'].shape
(512, 512)
>> hf['infrared'].dtype
dtype('float64')
>> hf['infrared'].chunks
(256, 256)
>> hf['infrared'].compression
'gzip'
>> hf['infrared'].shuffle
False

新文件中的数据集(hf2)

>> hf2['infrared']
<HDF5 dataset "infrared": shape (512, 512), type "<f8">
>> hf2['infrared'].size
262144
>> hf2['infrared'].shape
(512, 512)
>> hf2['infrared'].dtype
dtype('float64')
>> hf2['infrared'].chunks
>> hf2['infrared'].compression
>> hf2['infrared'].shuffle
False

0 个答案:

没有答案