1

Since 1.8.8 HDF5 offers dense storage of attributes for faster handling of HDF5 nodes with many or large attributes. By default the limit (H5Pset_attr_phase_change) to start dense storage is set to 8 attributes.

Is there any way how can change this to 0 (i.e. always use dense storage) with Python or even better directly via PyTables?


EDIT: If this cannot be changed via PyTables, but has to be done externally, it is important that these external changes still affect PyTables. Thus, all HDF5 attributes added via PyTables should be stored densely.

SmCaterpillar
  • 6,683
  • 7
  • 42
  • 70

1 Answers1

2

It seems the access to the pertinent attribute has not been wrapped yet:

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

The procedure to wrap new attributes appears to be well-documented here:

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

with a practical example. It consists of 4 or 5 (relatively) simple steps... Should maybe take an hour or less if you are accustomed to compiling.

Does this help?

EDIT: From the PyTables docs: "Instead, PyTables builds up an additional abstraction layer on top of HDF5 [1] and NumPy [3] where it implements things like an enhanced ... " I have the impression that it is more distant from the hdf5 library, and so, it might be more difficult to have access to these options.

As PyTables does not use h5py, any change to h5py would not help you...

jcoppens
  • 5,306
  • 6
  • 27
  • 47