I am also trying to use HDF5 compound datatypes in the C# world, with great
difficulty.  All the sample programs are in C and trying to translate into
C# is nearly impossible.  Even using the VS object browser still leaves a
lot to be desired.   How far have you gotten.  Have you been able to create
the datatype and have been able to write a file containing that data.


On Wed, Apr 17, 2013 at 8:50 AM, Mitchell, Scott - IS <
[email protected]> wrote:

>  You can dynamically build a compound HDF type. I’m playing in the
> C#/.NET world and through reflection, I can dynamically build the struct
> too. It’s a bit ugly, but is certainly do-able. I’m guessing it can be done
> on the C side using untyped buffers and a lot of work figuring out
> appropriate indexes.
>
>
>
>
>
> S
>
>
>
> *From:* Hdf-forum [mailto:[email protected]] *On Behalf Of 
> *Cecilia
> Herrera
> *Sent:* Wednesday, April 17, 2013 4:12 AM
> *To:* [email protected]
>
> *Subject:* Re: [Hdf-forum] Different data types --- H5NX
>
>
>
> Hello Pedro,
>
>
>
> Thanks for your response.
>
>
>
> I have a program where the user can choose one or more variables with
> different data types to export.  For example, name and age, which have
> string and integer datatypes can be chosen.  I do not know beforehand which
> variables, what data types, and how many variables will be chosen.  I have
> looked at possibilities in HDF5 to do this, and think that the use of
> compound data type is appropriate.  The examples I found defined the
> structure of the data (e.g. whether to have int or string in the first
> column, etc.) using “struct”.  For example, in
> http://www.hdfgroup.org/ftp/HDF5/examples/misc-examples/cmpclass.c, the
> “struct” is predefined at the start of the program (from line 15…).
> However, for my application, I cannot predefine the structure, because it
> depends on which variable the user will choose (can be a combination of
> different types).  Another option is to use strings for all variables (eg
> in my example transforming the integer data type for age in a string), but
> the data will take longer to export, and I would like to make the export
> speed as fast as possible.
>
>
>
> Would you know how I can attain what I want using compound data type or
> any other way?
>
>
>
> Thanks,
>
> Cecilia
>
>
>
>
>
> *From:* Pedro Vicente [mailto:[email protected] <[email protected]>]
> *Sent:* Wednesday, April 17, 2013 6:43 AM
> *To:* HDF Users Discussion List
> *Cc:* Cecilia Herrera
> *Subject:* Re: [Hdf-forum] Different data types --- H5NX
>
>
>
> Hello, Cecilia
>
>
>
>
>
>
>
> >I would like to export large amounts of data in one file. The data
> variables can be of different types; but it is not known beforehand what
> they are. I saw examples where the Compound data type was used with a
> pre-defined “struct”. In this case, I cannot >pre-define my struct. I can
> ofcourse make everything string, but I want to take advantage of the faster
> speed of writing other types. How should I approach the problem? Do you
> have available examples? It would also be nice to make use of the H5NX
> library >of Pedro Vicente for faster speed, but I deal with 2D matrices and
> different data types.
>
>
>
>
>
>
>
>
>
> It's not clear to me, from your description, the nature of the problem
> you're trying to solve.
>
> If you send further details I'll be glad to help.
>
>
>
> Regarding the use of H5NX, this page
>
>
>
> http://www.space-research.org/nexus/h5nx.html
>
>
>
> has both links for
>
>
>    H5NX User’s Guide <http://www.space-research.org/nexus/h5nx_user.html>
>
> Detailed guide covering critical H5NX features
>   H5NX Reference Manual<http://www.space-research.org/nexus/h5nx_ref.html>
>
> Detailed C++ interface descriptions
>
>
>
> >> but I deal with 2D matrices and different data types.
>
>
>
>
>
> The H5NX function H5NXmake_dataset_vector deals with any rank, that is,
> you can use it to define a 1D array, a 2D array, etc.
>
>
>
> Just put your data values into a std::vector of any type and define the
> dimensions in a std::vector<hsize_t>
>
>
>
> If the size of this dimension vector is, say 2, then you have a matrix, or
> a 2D array.
>
> Since this is C++, there is no need for an extra parameter to the function
> with the size of the dimension vector (the rank)
>
>
>
> int H5NXmake_dataset_vector(const std::string &group_path,
>
> const std::string &dataset_name,
>
> const std::vector<NumT> &vec,
>
> const std::vector<hsize_t> &dim_vec);
>
>
>
> The only function that currently deals exclusively with a 1D array is
>
> H5NXappend_slab
>
>
>
> Regarding the types, I am currently defining it for other types, I'll
> upload a new version when done.
>
> H5NX uses the HDF5 native types corresponding to the C99 fixed width
> integer types plus the HDF5 string type, used in the "string" functions
>
> int8_t
> uint8_t
> int16_t
> uint16_t
> int32_t
> uint32_t
> int64_t
> uint64_t
> float
> double
>
> but not all API functions have templates for all types.
>
> What are your needs regarding these types and functions ?
>
>
>
> Pedro
>
>
>
>
>
>
>
> ------
> Pedro Vicente, Earth System Science
> University of California, Irvine
> http://www.ess.uci.edu/
>
>
>
>
>
>  ----- Original Message -----
>
> *From:* Cecilia Herrera <[email protected]>
>
> *To:* '[email protected]'
>
> *Sent:* Monday, March 11, 2013 2:26 AM
>
> *Subject:* [Hdf-forum] Different data types
>
>
>
> I would like to export large amounts of data in one file.  The data
> variables can be of different types; but it is not known beforehand what
> they are.  I saw examples where the Compound data type was used with a
> pre-defined “struct”.  In this case, I cannot pre-define my struct.  I can
> ofcourse make everything string, but I want to take advantage of the faster
> speed of writing other types.  How should I approach the problem?  Do you
> have available examples?  It would also be nice to make use of the H5NX
> library of Pedro Vicente for faster speed, but I deal with 2D matrices and
> different data types.
>
>
>
> Thanks for the help!
>
>
>  ------------------------------
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
>
>
> ------------------------------
>
> This e-mail and any files transmitted with it may be proprietary and are
> intended solely for the use of the individual or entity to whom they are
> addressed. If you have received this e-mail in error please notify the
> sender. Please note that any views or opinions presented in this e-mail are
> solely those of the author and do not necessarily represent those of Exelis
> Inc. The recipient should check this e-mail and any attachments for the
> presence of viruses. Exelis Inc. accepts no liability for any damage caused
> by any virus transmitted by this e-mail.
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org
>
>
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org

Reply via email to