Я пытаюсь использовать h5py для записи наборов данных в формате HDF5. Метод create_dataset()
имеет опции для выбора типа сжатия и фильтров. Я не смог найти ни одного ресурса, чтобы понять, можно ли использовать shuffle = True
и fletcher32 = True
вместе с compression = 'lzf'
или 'gzip'
.
f = h5py.open("my_hdf_file.h5", "w")
dset = f.create_dataset("zipped_dataset", shape=(778, 181, 128, 128),
chunks = True,
compression="gzip",
compression_opts=9,
shuffle = True)
f.close()
Я знаю, что приведенный выше код в порядке, и есть книги и веб-источники, которые также показывают примеры подобного типа. Но я не смог найти никакого обсуждения по использованию shuffle + fletcher32 + gzip/lzf
.
Я хотел бы понять преимущества одновременного использования как shuffle, так и fletcher32 (если это вообще возможно / желательно). Если кто-нибудь сможет объяснить, почему это следует или не следует делать, это будет очень полезно.
Ресурсы:
- http://docs.h5py.org/en/latest/high/dataset.html#dataset-compression
- http://docs.h5py.org/en/latest/high/group.html#Group.create_dataset
- Python и HDF5: Книга Эндрю Колетт - Фильтры и сжатие
- Этот ответ на этот вопрос stackoverflow
Список всех доступных фильтров: https://portal.hdfgroup.org/display/support/Filters