Я использую h5py со сжатием LZF для хранения NumPy массивы в файлах HDF5.
Это работает хорошо, и мои сжатые файлы гораздо более переносимы, чем несжатые. Однако если я попытаюсь просмотреть сжатые файлы с помощью таких приложений, как vitables и HDFView, я получаю следующие ошибки:
"Ошибка: проблемы с чтением записей. Похоже, что набор данных сжат библиотекой None. Убедитесь, что она установлена в вашей системе, пожалуйста" в vitables и
«ncsa.hdf.hdf5lib.exceptions.HDF5Exception: ncsa.hdf.hdf5lib.exceptions.HDF5LibraryException: невозможно открыть каталог или файл» в HDFView.
Я могу просматривать файловые структуры в обоих приложениях, но при открытии массива возникает ошибка. Если я отключу сжатие, проблема исчезнет. Например, после запуска приведенного ниже кода открытие массива_1 приводит к ошибке, а массив_2 — нет.
import numpy as np, h5py
h5_path = r'D:\test.h5'
f = h5py.File(h5_path, 'w')
# Create fake data
data = (np.random.random(1E6)*100).astype(int)
# Save with compression
dset1 = f.create_dataset(r'/path/to/arrays/array_1', data=data,
compression='lzf')
# Save without compression
dset2 = f.create_dataset(r'/path/to/arrays/array_2', data=data)
# Set some object properties
dset1.attrs['Description'] = 'Compressed array.'
dset2.attrs['Description'] = 'Uncompressed array.'
f.close()
Это ожидаемое поведение или я делаю что-то не так?
Если vitables и HDFView не могут открывать сжатые массивы, существует ли альтернативное средство просмотра, которое может?
Спасибо большое!