diff options
Diffstat (limited to 'doc/html/Tutor/answers.html')
-rw-r--r-- | doc/html/Tutor/answers.html | 216 |
1 files changed, 216 insertions, 0 deletions
diff --git a/doc/html/Tutor/answers.html b/doc/html/Tutor/answers.html new file mode 100644 index 0000000..6bc239b --- /dev/null +++ b/doc/html/Tutor/answers.html @@ -0,0 +1,216 @@ +<HTML><HEAD> +<TITLE>HDF5 Tutorial - Introductory Topics Questions with Answers +</TITLE> +</HEAD> + +<body bgcolor="#ffffff"> + +<!-- BEGIN MAIN BODY --> + +<A HREF="http://www.ncsa.uiuc.edu/"><img border=0 +src="http://www.ncsa.uiuc.edu/Images/NCSAhome/footerlogo.gif" +width=78 height=27 alt="NCSA"><P></A> + + [ <A HREF="title.html"><I>HDF5 Tutorial Top</I></A> ] +<H1> +<BIG><BIG><BIG><FONT COLOR="#c101cd">Introductory Topics Questions with +Answers</FONT> +</BIG></BIG></BIG></H1> + +<hr noshade size=1> +<PRE> + + +Section 2: HDF File Organization +================================ + +1. Name and describe the two primary objects that can be stored in an HDF5 + file: + +Answer: +Group: A grouping structure containing zero or more HDF5 objects, together + with supporting metadata. + +Dataset: A multidimensional array of data elements, together with + supporting metadata. + +2. What is an attribute? + +Answer: An HDF attribute is a user-defined HDF5 structure that provides extra + information about an HDF5 object. + +3. Give the path name for an object called "harry" that is a member of a + group called "dick," which in turn is a member of the root group. + +Answer: /dick/harry + +Section 3: The HDF5 API +======================= + +Describe the purpose of each of the following HDF5 APIs: + +H5A, H5D, H5E, F5F, H5G, H5T, H5Z + +H5A: Attribute access and manipulation routines. +H5D: Dataset access and manipulation routines. +H5E: Error handling routines. +F5F: File access routines. +H5G: Routines for creating and operating on groups. +H5T: Routines for creating and manipulating the datatypes of dataset elements. +H5Z: Data compression routines. + + +Section 4: Creating an HDF File +=============================== + +1. What two HDF5 routines must be called in order to create an HDF5 file? + +Answer: H5Fcreate and H5Fclose. + +2. What include file must be included in any file that uses the HDF5 library. + +Answer: hdf5.h must be included because it contains definitions and + declarations used by the library. + +3. An HDF5 file is never completely empty because as soon as an HDF5 file + is created, it automatically contains a certain primary object. What is + that object? + +Answer: The root group. + + +Section 5: Creating a Dataset +============================= + +1. Name and describe two major datatype categories. + +Answer: atomic datatype - An atomic datatype cannot be decomposed into + smaller units at the API level. + compound datatype - A compound datatype is a collection of atomic/ + compound datatypes, or small arrays of such types. + +2. List the HDF5 atomic datatypes. Give an example of a predefined datatype. + +Answer: There are six HDF5 atomic datatypes: integer, floating point, + date and time, character string, bit field, opaque. + H5T_IEEE_F32LE - 4-byte little-endian, IEEE floating point, + H5T_NATIVE_INT - native integer + +3. What does the dataspace describe? What are the major characteristics of the + simple dataspace? + +Answer: The dataspace describes the dimensionality of the dataset. It is + characterized by its rank and dimension sizes. + +4. What information needs to be passed to the H5Dcreate function, i.e. + what information is needed to describe a dataset at creation time? + +Answer: dataset location, name, dataspace, datatype, and creation properties. + + +Section 6: Reading from/Writing to a Dataset +============================================ + +1. What are six pieces of information which need to be specified for + reading and writing a dataset? + +Answer: A dataset, a dataset's datatype and dataspace in memory, the + dataspace in the file, the transfer properties and data buffer. + +2. Why are both the memory dataspace and file dataspace needed for + read/write operations, but only the memory datatype is specified for the + datatype? + +Answer: A dataset's file datatype is specified at creation time and cannot be + changed. Both file and memory dataspaces are needed for performing + subsetting and partial I/O operations. + +3. What does the line DATASPACE { SIMPLE (4 , 6 ) / ( 4 , 6 ) } in Fig 6.1 + means? + +Answer: It means that the dataset "dset" has a simple dataspace with the + current dimensions (4,6) and the maximum size of the dimensions (4,6). + + +Section 7: Creating an Attribute +================================ + +1. What is an attribute? + +Answer: An attribute is a dataset attached to an object. It describes the + nature and/or the intended usage of the object. + +2. Can partial I/O operations be performed on attributes? + +Answer: No + + +Section 8: Creating a Group +=========================== + +What are the two primary objects that can be included in +a group? + +Answer: A group and a dataset + + +Section 9: Creating Groups using Absolute/Relative Names +======================================================== + +1. Group names can be specified in two "ways". What are these + two types of group names that you can specify? + +Answer: relative and absolute + +2. You have a dataset named "moo" in the group "boo", which is + in the group "foo", which in turn, is in the root group. How would + you specify an absolute name to access this dataset? + +Answer: /foo/boo/moo + +Section 10: Creating Datasets in Groups +======================================= + +Describe a way to access the dataset "moo" described in the previous section +(Section 9, question 2), using a relative and absolute pathname. + +Answers: 1. Access the group, "/foo", and get the group ID. + Access the group "boo" using the group ID obtained in Step 1. + Access the dataset "moo" using the group ID in Step 2. + gid = H5Gopen (file_id, "/foo", 0); /* absolute path */ + gid1 = H5Gopen (gid, "boo", 0); /* relative path */ + did = H5Dopen (gid1, "moo"); /* relative path */ + + 2. Access the group, "/foo", and get the group ID. + Access the dataset "boo/moo", with the group ID just obtained. + gid = H5Gopen (file_id, "/foo", 0); /* absolute path */ + did = H5Dopen (gid, "boo/moo"); /* relative path */ + + 3. Access the dataset with an absolute path. + did = H5Dopen (file_id, "/foo/boo/moo"); /* absolute path */ +</PRE> +<!-- BEGIN FOOTER INFO --> + +<P><hr noshade size=1> +<font face="arial,helvetica" size="-1"> + <a href="http://www.ncsa.uiuc.edu/"><img border=0 + src="http://www.ncsa.uiuc.edu/Images/NCSAhome/footerlogo.gif" + width=78 height=27 alt="NCSA"><br> + The National Center for Supercomputing Applications</A><br> + <a href="http://www.uiuc.edu/">University of Illinois + at Urbana-Champaign</a><br> + <br> +<!-- <A HREF="helpdesk.mail.html"> --> +<A HREF="mailto:hdfhelp@ncsa.uiuc.edu"> +hdfhelp@ncsa.uiuc.edu</A> +<BR> <H6>Last Modified: August 2, 1999</H6><BR> +<!-- modified by Barbara Jones - bljones@ncsa.uiuc.edu --> +</FONT> +<BR> +<!-- <A HREF="mailto:hdfhelp@ncsa.uiuc.edu"> --> + +</BODY> +</HTML> + + + |