When writing a generic interface what is a good mechanism to identify an object as an Image, a Lite, a Table or Packet Table?
Objects created by the Lite, Table and Packet Table interfaces do not differ from the HDF5 objects created by the low level HDF5 interfaces. Lite interface
allow to create/write/read datasets and attributes of atomic datatypes with less HDF5 functions calls. Table APIs facilitate creation and access
to the HDF5 datasets with compound datatypes, while Packet Table API focus on appending data to the datasets.
The HDFView looks like it goes by low level and the properties describe them as datasets.
Yes, this is correct.
Is there a good combination of H5T interfaces(and others) to determine the above?
Lite, Table, and Image have “info” functions to find the properties that can be set by those interfaces (dimension sizes and datatypes). For Packet Table, one has to use H5T functions to get information about datatypes.
I see Packet Table has an isvalid but that is available only after opening a Packet table
H5PTis_valid just checks that identifier is valid and it can be passed to other Packet Table functions. It is not like H5IMis_image that checks against Image spec.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Elena Pourmal The HDF Group http://hdfgroup.org
1800 So. Oak St., Suite 203, Champaign IL 61820
217.531.6112
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When writing a generic interface what is a good mechanism to identify an object as an Image, a Lite, a Table or Packet Table?
Objects created by the Lite, Table and Packet Table interfaces do not differ from the HDF5 objects created by the low level HDF5 interfaces. Lite interface
allow to create/write/read datasets and attributes of atomic datatypes with less HDF5 functions calls. Table APIs facilitate creation and access
to the HDF5 datasets with compound datatypes, while Packet Table API focus on appending data to the datasets.
The HDFView looks like it goes by low level and the properties describe them as datasets.
Yes, this is correct.
Is there a good combination of H5T interfaces(and others) to determine the above?
Lite, Table, and Image have �info� functions to find the properties that can be set by those interfaces (dimension sizes and datatypes). For Packet Table, one has to use H5T functions to get information about datatypes.
I see Packet Table has an isvalid but that is available only after opening a Packet table
H5PTis_valid just checks that identifier is valid and it can be passed to other Packet Table functions. It is not like H5IMis_image that checks against Image spec.
Did I answer your questions?
Hi Elena, you've clarified the current status:-) I probably didn't write a clear question. When I make a layer API to h5 it defines the h5's "schema", what is in it and what is a member of what etc. And I know when/where to retrieve using the different high level interfaces.
But when someone provides an h5 in general I would like to be able to use the high level functions; pull a table using the H5TB or a dataset with H5LT for example. Without the user providing a specification. I've started writing some heuristics to determine if a dataset is compatible to a high level interface. Was thinking these would be handy and was looking for the most efficient and fail proof means.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Elena Pourmal The HDF Group http://hdfgroup.org
1800 So. Oak St., Suite 203, Champaign IL 61820
217.531.6112
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~