extending attribute data space

Just wondering, is it possible to change the size of the dimensions of an attribute after it's already been created? You can presumably do it to regular data sets with H5Dset_extent, but there doesn't seem to be an analogue for attributes.

Is the only way to accomplish this by deleting and recreating the attribute? Attributes do have max dimensions when created, and there's no error given if I set the max dimensions to unlimited.

Hi John,

Just wondering, is it possible to change the size of the dimensions of an attribute after it's already been created? You can presumably do it to regular data sets with H5Dset_extent, but there doesn't seem to be an analogue for attributes.

Is the only way to accomplish this by deleting and recreating the attribute?

yes, this is correct.

Attributes do have max dimensions when created, and there's no error given if I set the max dimensions to unlimited.

Hmm... not sure if it is a bug or a feature :slight_smile: Unlimited just indicates the biggest possible dimension size. Probably H5Acreate should fail in this case.

There is no way to change the dimensionality of an existing attribute. One has to delete it, and rewrite it.
Attribute cannot be compressed either,i.e., attributes do not have the same properties as datasets; they were designed to store small data.

One can use object reference as an attribute and point to a dataset that can be extended (and compressed) if necessary.
For example of an attribute of the object reference type see http://www.hdfgroup.org/ftp/HDF5/examples/examples-by-api/api18-c.html Read/Write Object References (Attribute) example.

Elena

ยทยทยท

On Aug 12, 2010, at 1:52 PM, John Knutson wrote:

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org