diff options
Diffstat (limited to 'doc/html/Tutor/answers.html')
-rw-r--r-- | doc/html/Tutor/answers.html | 434 |
1 files changed, 271 insertions, 163 deletions
diff --git a/doc/html/Tutor/answers.html b/doc/html/Tutor/answers.html index 6bc239b..45b6c82 100644 --- a/doc/html/Tutor/answers.html +++ b/doc/html/Tutor/answers.html @@ -1,5 +1,5 @@ <HTML><HEAD> -<TITLE>HDF5 Tutorial - Introductory Topics Questions with Answers +<TITLE>HDF5 Tutorial - Introductory Topics Quiz with Answers </TITLE> </HEAD> @@ -13,182 +13,290 @@ 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><FONT COLOR="#c101cd">Introductory Topics Quiz + 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. +<h3>Section 2: HDF File Organization</h3> +<ol> + +<li>Name and describe the two primary objects that can be stored in an HDF5 + file. + + <dl> + <dt><b>Answers:</b> + <dd><em>Group:</em> A grouping structure containing zero or more + HDF5 objects, together with supporting metadata. + <dd><em>Dataset:</em> A multidimensional array of data elements, + together with supporting metadata. + </dl> + +<p> +<li>What is an attribute? + + <dl> + <dt><b>Answer:</b> + <dd>An HDF5 attribute is a user-defined HDF5 structure that provides extra + information about an HDF5 object. + </dl> + +<p> +<li>Give the path name for an object called <code>harry</code> that is + a member of a group called <code>dick</code>, which, in turn, is a + member of the root group. + + <dl> + <dt><b>Answer:</b> + <dd><code>/dick/harry</code> + </dl> + + +</ol> +<h3>Section 3: The HDF5 API</h3> +<ol> + +<li>Describe the purpose of each of the following HDF5 APIs: + + <dir> + H5A, H5D, H5E, H5F, H5G, H5T, H5Z + </dir> + + <dl> + <dt><b>Answers:</b> + <dir> + H5A: Attribute access and manipulation routines <br> + H5D: Dataset access and manipulation routines <br> + H5E: Error handling routines <br> + H5F: File access routines <br> + H5G: Routines for creating and operating on groups <br> + H5T: Routines for creating and manipulating the + datatypes of dataset elements <br> + H5Z: Data compression routines + </dir> + </dl> + + +</ol> +<h3>Section 4: Creating an HDF5 File</h3> +<ol> + +<li>What two HDF5 routines must be called to create an HDF5 file? + + <dl> + <dt><b>Answer:</b> + <dd><code>H5Fcreate</code> and <code>H5Fclose</code>. + </dl> + +<p> +<li>What include file must be included in any file that uses the HDF5 library? + + <dl> + <dt><b>Answer:</b> + <dd><code>hdf5.h</code> must be included because it contains definitions + and declarations used by the library. + </dl> + +<p> +<li>An HDF5 file is never completely empty because as soon as it is created, + it automatically contains a certain primary object. What is that object? + + <dl> + <dt><b>Answer:</b> + <dd>The root group. + </dl> + + +</ol> +<h3>Section 5: Creating a Dataset</h3> +<ol> + +<li>Name and describe two major datatype categories. + + <dl> + <dt><b>Answers:</b> + <dd><em>Atomic datatype:</em> + An atomic datatype cannot be decomposed into smaller units at the + API level. + <br> + <em>Compound datatype:</em> + A compound datatype is a collection of atomic and compound datatypes, + or small arrays of such types. + </dl> + +<p> +<li>List the HDF5 atomic datatypes. Give an example of a predefined datatype. + + <dl> + <dt><b>Answers:</b> + <dd>There are six HDF5 atomic datatypes: integer, floating point, + date and time, character string, bit field, and opaque. + Examples of predefined datatypes include the following: + <dir> + <code>H5T_IEEE_F32LE</code> + - 4-byte little-endian, IEEE floating point <br> + <code>H5T_NATIVE_INT</code> + - native integer + </dir> + </dl> + +<p> +<li>What does the dataspace describe? What are the major characteristics of + the simple dataspace? + + <dl> + <dt><b>Answers:</b> + <dd>The dataspace describes the dimensionality of the dataset. + A simple dataspace is characterized by its rank and dimension sizes. + </dl> -4. What information needs to be passed to the H5Dcreate function, i.e. +<p> +<li>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. + <dl> + <dt><b>Answer:</b> + <dd>The dataset location, name, dataspace, datatype, and dataset + creation property list. + </dl> -Section 6: Reading from/Writing to a Dataset -============================================ +</ol> +<h3>Section 6: Reading from and Writing to a Dataset</h3> +<ol> -1. What are six pieces of information which need to be specified for +<li>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 */ + <dl> + <dt><b>Answer:</b> + <dd>The dataset identifier, the dataset's datatype and dataspace in + memory, the dataspace in the file, the dataset transfer property + list, and a data buffer. + </dl> + +<p> +<li>Why are both the memory dataspace and file dataspace needed for + read/write operations, while only the memory datatype is required? + + <dl> + <dt><b>Answer:</b> + <dd>A dataset's file datatype is not required for a read/write operation + because the file datatype is specified when the dataset is created + and cannot be changed. Both file and memory dataspaces are required + for dataset subsetting and for performing partial I/O operations. + </dl> + +<p> +<li>What does the line + <br> + <code>DATASPACE { SIMPLE (4 , 6 ) / ( 4 , 6 ) } </code> + <br>in Figure 6.1 mean? + + <dl> + <dt><b>Answer:</b> + <dd>It means that the dataset <code>dset</code> has a simple dataspace + with the current dimensions (4,6) and the maximum size of the + dimensions (4,6). + </dl> + + +</ol> +<h3>Section 7: Creating an Attribute</h3> +<ol> + +<li>What is an attribute? + + <dl> + <dt><b>Answer:</b> + <dd>An attribute is a dataset attached to an object. It describes the + nature and/or the intended usage of the object. + </dl> + +<p> +<li>Can partial I/O operations be performed on attributes? + + <dl> + <dt><b>Answer:</b> + <dd>No. + </dl> + + +</ol> +<h3>Section 8: Creating a Group</h3> +<ol> + +<li>What are the two primary objects that can be included in a group? + + <dl> + <dt><b>Answer:</b> + <dd>A group and a dataset. + </dl> + + +</ol> +<h3>Section 9: Creating Groups Using Absolute and Relative Names</h3> +<ol> + +<li>Group names can be specified in two ways. What are these two types + of group names? + + <dl> + <dt><b>Answer:</b> + <dd>Relative and absolute. + </dl> + +<p> +<li>You have a dataset named <code>moo</code> in the group + <code>boo</code>, which is in the group <code>foo</code>, + which, in turn, is in the root group. + How would you specify an absolute name to access this dataset? + + <dl> + <dt><b>Answer:</b> + <dd><code>/foo/boo/moo</code> + </dl> + + +</ol> +<h3>Section 10: Creating Datasets in Groups</h3> +<ol> + +<li>Describe a way to access the dataset <code>moo</code> described in + the previous section (Section 9, question 2) using a + relative name. + Describe a way to access the same dataset using an absolute name. + + <dl> + <dt><b>Answers:</b> + <ol> + <li>Access the group <code>/foo</code> and get the group ID. + Access the group <code>boo</code> using the group ID obtained + in Step 1. + Access the dataset <code>moo</code> using the group ID obtained + in Step 2. + <pre> +gid = H5Gopen (file_id, "/foo", 0); /* absolute path */ +gid1 = H5Gopen (gid, "boo", 0); /* relative path */ +did = H5Dopen (gid1, "moo"); /* relative path */ </pre> - 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 */ + <li>Access the group <code>/foo</code> and get the group ID. + Access the dataset <code>boo/moo</code> with the group ID + just obtained. + <pre> +gid = H5Gopen (file_id, "/foo", 0); /* absolute path */ +did = H5Dopen (gid, "boo/moo"); /* relative path */ </pre> - 3. Access the dataset with an absolute path. - did = H5Dopen (file_id, "/foo/boo/moo"); /* absolute path */ -</PRE> + <li>Access the dataset with an absolute path. + <pre> +did = H5Dopen (file_id, "/foo/boo/moo"); /* absolute path */ </pre> + </ol> + </dl> + +</ol> + <!-- BEGIN FOOTER INFO --> <P><hr noshade size=1> @@ -203,7 +311,7 @@ Answers: 1. Access the group, "/foo", and get the group ID. <!-- <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> +<BR> <H6>Last Modified: January 13, 2000</H6><BR> <!-- modified by Barbara Jones - bljones@ncsa.uiuc.edu --> </FONT> <BR> |