Howdy all!
I have been using dimension scales to store dimension data. The
dimension scale code puts several attributes on the datasets to store
dimensional metadata. This fragment from h5dump illustrates:
DATASET "Distance" {
DATATYPE H5T_IEEE_F32LE
DATASPACE SIMPLE { ( 3 ) / ( 3 ) }
DATA {
(0): 0, 0, 0
}
ATTRIBUTE "CLASS" {
DATATYPE H5T_STRING {
STRSIZE 16;
STRPAD H5T_STR_NULLTERM;
CSET H5T_CSET_ASCII;
CTYPE H5T_C_S1;
}
DATASPACE SCALAR
DATA {
(0): "DIMENSION_SCALE"
}
}
ATTRIBUTE "NAME" {
DATATYPE H5T_STRING {
STRSIZE 9;
STRPAD H5T_STR_NULLTERM;
CSET H5T_CSET_ASCII;
CTYPE H5T_C_S1;
}
DATASPACE SCALAR
DATA {
(0): "Distance"
}
}
ATTRIBUTE "REFERENCE_LIST" {
DATATYPE H5T_COMPOUND {
H5T_REFERENCE "dataset";
H5T_STD_I32LE "dimension";
}
DATASPACE SIMPLE { ( 2 ) / ( 2 ) }
DATA {
(0): {
DATASET 4392 /Adam/Able/Billy_goat_gruff ,
2
},
(1): {
DATASET 9088 /Adam/Cain/Grumpy_the_camel ,
2
}
}
}
}
This shows a dimension scale with attributes named CLASS, NAME, and
REFERENCE_LIST.
Might I suggest that the names of the attributes be preceded with an
underscore? (For example _NAME instead of NAME.)
The reason is that these attribute names will not be available to
users. If the user tries to create an attribute named NAME, he will
get an error because one already exists. (This is true in both netCDF
and HDF5).
It's certain that some users somewhere have used attributes called
"NAME." That's why an underscore would be a good idea.
Thanks!
Ed
--
Ed Hartnett -- ed@xxxxxxxxxxxxxxxx