217 lines
6.9 KiB
HTML
217 lines
6.9 KiB
HTML
<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>
|
|
|
|
|
|
|