2015-03-17 3 views
1

Поскольку 1.8.8 HDF5 предлагает dense storage of attributes для более быстрого управления узлами HDF5 со многими или большими атрибутами. По умолчанию предел (H5Pset_attr_phase_change) для запуска плотного хранилища установлен в 8 атрибутов.Как включить HDF5 Dense Attribute Storage в PyTables/Python?

Есть ли способ, как можно изменить это значение 0 (то есть всегда использовать густую хранения) с Python или даже лучше непосредственно через PyTables?


EDIT: Если это не может быть изменено с помощью PyTables, но должно быть сделано внешне, важно, чтобы эти внешние изменения по-прежнему влияют PyTables. Таким образом, все атрибуты HDF5, добавленные через PyTables, должны храниться плотно.

ответ

2

Кажется, доступ к соответствующему атрибуту не был обернут еще:

https://groups.google.com/forum/#!topic/h5py/r3nHU7C-tvY

Процедура завернуть новые атрибуты, как представляется, хорошо документирован здесь:

http://docs.h5py.org/en/latest/contributing.html#how-to-modify-h5py

с практическим примером. Он состоит из 4 или 5 (относительно) простых шагов ... Может потребоваться час или меньше, если вы привыкли к компиляции.

Помогает ли это?

EDIT: Из документов PyTables: «Вместо этого PyTables создает дополнительный слой абстракции поверх HDF5 [1] и NumPy [3], где он реализует такие вещи, как улучшенный ...» У меня создалось впечатление, что это более далека от библиотеки hdf5, и поэтому может оказаться труднее получить доступ к этим опциям.

Как PyTables не использует h5py, любое изменение h5py не поможет ...

+0

Но я думаю, если я могу изменить его через h5py это не влияет на PyTables, верно? – SmCaterpillar

+0

Первое впечатление: я так не думаю. Но, если есть сомнения, мое правило - сделать резервную копию. – jcoppens

Смежные вопросы