Thanks for the quick reply, Gerd! That is exactly what I needed.

Best,
Johan

2017-05-22 15:24 GMT+02:00 Gerd Heber <[email protected]>:

> Johan, the only valid way to compare the underlying types of two datatype
> handles (identifiers)
>
> is H5Tequal (or H5T.equal in HDF.PInvoke)
>
>
>
> https://support.hdfgroup.org/HDF5/doc/RM/RM_H5T.html#Datatype-Equal
>
>
>
> Most likely, you will narrow down the type by first establishing the
> datatype’s “class”
>
> via H5Tget_class (H5T.get_class), and then refine your test from there.
>
>
>
> The HDF5 API handles, including datatype IDs, are opaque and transient,
> and don’t mean anything
>
> as integer values.
>
>
>
> G.
>
>
>
>
>
>
>
> *From:* Hdf-forum [mailto:[email protected]] *On
> Behalf Of *Johan Lindberg
> *Sent:* Monday, May 22, 2017 4:23 AM
> *To:* [email protected]
> *Subject:* [Hdf-forum] Getting native type of HDF5 attribute
>
>
>
> Hi,
>
>
>
> I am using Visual Studio (C#) and HDF5 P/Invoke.
>
>
>
> I have made an HDF5 file with groups and datasets with attributes of
> different datatypes (in this case, let's say it is an integer, saved as
> H5T.NATIVE_INT32, but I have the same problem for other datatypes). Now I
> am making a code to read data from the HDF5 file. To read the attribute
> value, I first need to determine the data type of the attribute value. I
> have tried the following:
>
>
>
> attributeId = H5A.open(groupId, attributeName, H5P.DEFAULT);
>
> hid_t attributeSpace = H5A.get_space(attributeId);
>
> H5S.class_t extentType = H5S.get_simple_extent_type(attributeSpace);
>
> hid_t typeId = H5A.get_type(attributeId);
>
> attributeClass = H5T.get_class(typeId);
>
> type = H5T.get_native_type(typeId, H5T.direction_t.DEFAULT);
>
> H5T.close(typeId);
>
>
>
> However, the resulting variable type does not match with the
> H5T.NATIVE_INTEGER type, or any other H5T type I can think of. In fact, even
>
>
>
> H5T.get_native_type(H5T.NATIVE_INT, H5T.direction_t.DEFAULT) ==
> H5T.NATIVE_INT
>
>
>
> returns false, so it appears as if H5T.get_native_type() does not return a
> type, but perhaps a copy or a pointer of it, which is not identical to the
> type itself. Is this expected behaviour or a bug? How do I correctly figure
> out the type of an attribute value?
>
>
>
> Best regards,
>
> Johan Lindberg
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
> Twitter: https://twitter.com/hdf5
>



-- 
Dr. Johan E. Lindberg
Mobile phone: +46 (0)76-209 14 13
e-mail: [email protected]
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Reply via email to