summaryrefslogtreecommitdiffstats
path: root/doc/html/Tutor/answers.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/html/Tutor/answers.html')
-rw-r--r--doc/html/Tutor/answers.html216
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>
+
+
+