[svn-r3196]
Purpose:
Adding Tutorial to development branch (R 1.4)
Platforms tested:
IE 5
This commit is contained in:
216
doc/html/Tutor/answers.html
Normal file
216
doc/html/Tutor/answers.html
Normal file
@@ -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>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user