hdf5/doc/html/Tools.html
Bill Wendling 92a93ff52f [svn-r4749]
Purpose:
	Feature Description
Description:
	Added the description of the --filedriver option to the h5dump
	explanation section.
Platforms tested:
	w3m
2001-12-21 15:02:15 -05:00

1015 lines
38 KiB
HTML

<html>
<head><title>
HDF5/Tools API Specification
</title></head>
<body bgcolor="#FFFFFF">
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;&nbsp;
<br>
<a href="RM_H5.html">H5</a>&nbsp;&nbsp;
<a href="RM_H5A.html">H5A</a>&nbsp;&nbsp;
<a href="RM_H5D.html">H5D</a>&nbsp;&nbsp;
<a href="RM_H5E.html">H5E</a>&nbsp;&nbsp;
<a href="RM_H5F.html">H5F</a>&nbsp;&nbsp;
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5I.html">H5I</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
<br>
<a href="RM_H5R.html">H5R</a>&nbsp;&nbsp;
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;
<a href="RM_H5Z.html">H5Z</a>&nbsp;&nbsp;
Tools&nbsp;&nbsp;
<a href="PredefDTypes.html">Datatypes</a>&nbsp;&nbsp;
</td></tr>
</table>
</center>
<hr>
<center>
<h1>HDF5 Tools</h1>
</center>
<h2>HDF5 Tool Interfaces</h2>
<p>
These tools enable the user to examine HDF5 file contents,
to modify HDF5 file contents in a carefully prescribed manner, and
to convert files from HDF4 format to HDF5 format and vice versa.
<table border=0>
<tr><td valign=top>
<ul>
<li><a href="#Tools-Dump">h5dump</a> --
A tool for displaying HDF5 file contents
<li><a href="#Tools-Ls">h5ls</a> --
A tool for listing specified features of HDF5 file contents
<li><a href="#Tools-Repart">h5repart</a> --
A tool for repartitioning a file, creating a family of files
<li><a href="#Tools-GIF2H5">gif2h5</a> --
A tool for converting a GIF file to an HDF5 file
<li><a href="#Tools-H52GIF">h52gif</a> --
A tool for converting images in an HDF5 file to a GIF file
<li><a href="#Tools-H5toh4">h5toh4</a> --
A tool for converting an HDF5 file to an HDF4 file
<li><a href="#Tools-H4toh5">h4toh5</a> --
A tool for converting an HDF4 file to an HDF5 file
<li><a href="#Tools-H5CC">h5cc</a> --
A tool for compiling HDF5 programs
<li><a href="http://hdf.ncsa.uiuc.edu/java-hdf5-html/">Java-based tools for HDF5</a> --
<em>(at <code>http://hdf.ncsa.uiuc.edu/java-hdf5-html/</code>)</em>
<br>
Java-based tools for viewing, manipulating, and generating HDF5
files (distributed separately)
<br>
Includes <code>H5view</code>, <code>H5gen</code>, Java HDF5
Interface (JHI5), and HDF5 VisAD Data Adapter
</ul>
</td></tr>
</table>
<p>
<hr>
<dl>
<dt><strong>Tool Name:</strong> <a name="Tools-Dump">h5dump</a>
<dt><strong>Syntax:</strong>
<dd><code>h5dump
[</code><em>OPTIONS</em><code>]</code> <em>file</em>
<dt><strong>Purpose:</strong>
<dd>Displays HDF5 file contents.
<dt><strong>Description:</strong>
<dd><code>h5dump</code> enables the user to examine
the contents of an HDF5 file and dump those contents, in human
readable form, to an ASCII file.
<p>
<code>h5dump</code> dumps HDF5 file content to standard output.
It can display the contents of the entire HDF5 file or
selected objects, which can be groups, datasets, a subset of a
dataset, links, attributes, or datatypes.
</p>
<p>
The <code>--header</code> option displays object header
information only.
</p>
<p>
Names are the absolute names of the objects. <code>h5dump</code>
displays objects in the order same as the command order. If a
name does not start with a slash, <code>h5dump</code> begins
searching for the specified object starting at the root group.
</p>
<p>
If an object is hard linked with multiple names,
<code>h5dump</code> displays the content of the object in the
first occurrence. Only the link information is displayed in later
occurrences.
</p>
<p>
<code>h5dump</code> assigns a name for any unnamed datatype in
the form of
<code>#</code><em>oid1</em><code>:</code><em>oid2</em>, where
<em>oid1</em> and <em>oid2</em> are the object identifiers
assigned by the library. The unnamed types are displayed within
the root group.
</p>
<p>
Datatypes are displayed with standard type names. For example,
if a dataset is created with <code>H5T_NATIVE_INT</code> type
and the standard type name for integer on that machine is
<code>H5T_STD_I32BE</code>, <code>h5dump</code> displays
<code>H5T_STD_I32BE</code> as the type of the dataset.
</p>
<p>
<code>h5dump</code> can also dump a subset of a dataset.
This feature operates in much the same way as hyperslabs in HDF5;
the parameters specified on the commnd line are passed to the
function <a href="RM_H5S.html#Dataspace-SelectHyperslab">
<code>H5Sselect_hyperslab</code></a> and the resulting selection
is displayed.
</p>
<p>
The <code>h5dump</code> output is described in detail in the
<a href="ddl.html"><cite>DDL for HDF5</cite></a>, the
<cite>Data Description Language</cite> document.
</p>
<p>
<em>Note</em>: It is not permissable to specify multiple
attributes, datasets, datatypes, groups, or soft links with one
flag. For example, one may not issue the command
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font size=-1>WRONG:</font> &nbsp;
<code>h5dump -a /attr1 /attr2 foo.h5</code>
</br>
to display both <code>/attr1</code> and <code>/attr2</code>.
One must issue the following command:
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<font size=-1>CORRECT:</font> &nbsp;
<code>h5dump -a /attr1 -a /attr2 foo.h5</code>
</br>
</p>
<p>
It's possible to select the file driver with which to open the
HDF5 file by using the --filedriver (-f) command-line option.
Acceptable values for the --filedriver option are: "sec2",
"family", "split", "multi", and "stream". If the file driver flag
isn't specified, then the file will be opened with each driver in
turn and in the order specified above until one driver succeeds
in opening the file.
</p>
<dt><strong>XML Output:</strong>
<dd>With the <code>--xml</code> option, <code>h5dump</code> generates
XML output. This output contains a complete description of the file,
marked up in XML. The XML conforms to the HDF5 Document Type
Definition (DTD) available at
<a href="http://hdf.ncsa.uiuc.edu/DTDs/HDF5-File.dtd">
<code>http://hdf.ncsa.uiuc.edu/DTDs/HDF5-File.dtd</code></a>.
<p>
The XML output is suitable for use with other tools, including the
<a href="http://hdf.ncsa.uiuc.edu/java-hdf5-html">HDF5 Java Tools</a>.
<dt><strong>Options and Parameters:</strong>
<dl>
<dt><code>-h</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--help</code></dt>
<dd>Print a usage message and exit.</dd>
<dt><code>-B</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--bootblock</code></dt>
<dd>Print the content of the boot block.<br>
<em>(This option is not yet implemented.)</em></dd>
<dt><code>-H</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--header</code></dt>
<dd>Print the header only; no data is displayed.</dd>
<dt><code>-i</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--object-ids</code></dt>
<dd>Print the object ids.</dd>
<dt><code>-V</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--version</code></dt>
<dd>Print version number and exit.</dd>
<dt><code>-a <em>P</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--attribute=<em>P</em></code></dt>
<dd>Print the specified attribute.</dd>
<dt><code>-d <em>P</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--dataset=<em>P</em></code></dt>
<dd>Print the specified dataset.</dd>
<dt><code>-f <em>D</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--filedriver=<em>D</em></code></dt>
<dd>Specify which driver to open the file with.</dd>
<dt><code>-g <em>P</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--group=<em>P</em></code></dt>
<dd>Print the specified group and all members.</dd>
<dt><code>-l <em>P</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--soft-link=<em>P</em></code></dt>
<dd>Print the value(s) of the specified soft link.</dd>
<dt><code>-o <em>F</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--output=<em>F</em></code></dt>
<dd>Output raw data into file F.</dd>
<dt><code>-t <em>T</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--datatype=<em>T</em></code></dt>
<dd>Print the specified named datatype.</dd>
<dt><code>-w <em>N</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--width=<em>N</em></code></dt>
<dd>Set the number of columns of output.</dd>
<dt><code>-x <em>U</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--xml</code></dt>
<dd>Output XML instead of DDL.</dd>
<dt><code>-D <em>U</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--xml-dtd=<em>U</em></code></dt>
<dd>In XML output, refer to the DTD at <em>U</em>
instead of the default DTD.</dd>
<dt><code>-s <em>L</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--start=<em>L</em></code></dt>
<dd>Offset of start of subsetting selection.
<br>
Default: the beginning of the dataset.</dd>
<dt><code>-S <em>L</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--stride=<em>L</em></code></dt>
<dd>Hyperslab stride.
<br>
Default: 1 in all dimensions.</dd>
<dt><code>-c <em>L</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--count=<em>L</em></code></dt>
<dd>Number of blocks to include in the selection.</dd>
<dt><code>-k <em>L</em></code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--block=<em>L</em></code></dt>
<dd>Size of block in hyperslab.
<br>
Default: 1 in all dimensions.</dd>
<dt><em>file</em></dt>
<dd>The file to be examined.</dd>
<br><br>
<dt>The option parameters listed above are defined as follows:
<dd><em>D</em> -- which file driver to use in opening the
file. Acceptable values are "sec2", "family", "split",
"multi", and "stream". Without the file driver flag the
file will be opened with each driver in turn and in the
order specified above until one driver succeeds in
opening the file.</dd>
<dd><em>P</em> -- The full path from the root group to
the object</dd>
<dd><em>T</em> -- The name of the datatype</dd>
<dd><em>F</em> -- A filename</dd>
<dd><em>N</em> -- An integer greater than 1</dd>
<dd><em>L</em> -- A list of integers, the number of which is
equal to the number of dimensions in the dataspace being
queried</dd>
<dd><em>U</em> -- A URI (as defined in
[<a href="http://www.ietf.org/rfc/rfc2396.txt">IETF RFC 2396</a>],
updated by
[<a href="http://www.ietf.org/rfc/rfc2732.txt">IETF RFC 2732</a>])
that refers to the DTD to be used to validate the XML</dd>
<br><br>
<dt>Subsetting paramaters can also be expressed in a convenient
compact form, as follows:
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<code>--dataset="/foo/mydataset[START;STRIDE;COUNT;BLOCK]"</code>
<br>
All of the semicolons (<code>;</code>) are required, even when
a parameter value is not specified.
When not specified, default parameter values are used.
</dl>
<p>
<dt><strong>Examples:</strong>
<ol>
<li>Dumping the group <code>/GroupFoo/GroupBar</code> in the file
<code>quux.h5</code>:
<blockquote>
<code>h5dump -g /GroupFoo/GroupBar quux.h5</code>
</blockquote>
<li>Dumping the dataset <code>Fnord</code> in the group
<code>/GroupFoo/GroupBar</code> in the file <code>quux.h5</code>:
<blockquote>
<code>h5dump -d /GroupFoo/GroupBar/Fnord quux.h5</code>
</blockquote>
<li>Dumping the attribute <code>metadata</code> of the dataset
<code>Fnord</code> which is in group
<code>/GroupFoo/GroupBar</code> in the file <code>quux.h5</code>:
<blockquote>
<code>h5dump -a /GroupFoo/GroupBar/Fnord/metadata quux.h5</code>
</blockquote>
<li>Dumping the attribute <code>metadata</code> which is an
attribute of the root group in the file <code>quux.h5</code>:
<blockquote>
<code>h5dump -a /metadata quux.h5</code>
</blockquote>
<li>Producing an XML listing of the file <code>bobo.h5</code>:
<blockquote>
<code>h5dump --xml bobo.h5 > bobo.h5.xml</code>
</blockquote>
<li>Dumping a subset of the dataset <code>/GroupFoo/databar/</code>
in the file <code>quux.h5</code>
<blockquote>
<code>h5dump -d /GroupFoo/databar --start="1,1" --stride="2,3"
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
--count="3,19" --block="1,1" quux.h5</code>
</blockquote>
<li>The same example using the short form to specify the
subsetting parameters:
<blockquote>
<code>h5dump -d "/GroupFoo/databar[1,1;2,3;3,19;1,1]" quux.h5</code>
</blockquote>
</ol>
<dt><strong>Current Status:</strong>
<dd>The current version of <code>h5dump</code> displays the
following information:
<ul>
<li>Group
<ul>
<li>group attribute (see Attribute)
<li>group member
</ul>
<li>Dataset
<ul>
<li>dataset attribute (see Attribute)
<li>dataset type (see Datatype)
<li>dataset space (see Dataspace)
<li>dataset data
</ul>
<li>Attribute
<ul>
<li>attribute type (see Datatype)
<li>attribute space (see Dataspace)
<li>attribute data
</ul>
<li>Datatype
<ul>
<li>integer type
<br>
- H5T_STD_I8BE, H5T_STD_I8LE, H5T_STD_I16BE, ...
<li>floating point type
<br>
- H5T_IEEE_F32BE, H5T_IEEE_F32LE, H5T_IEEE_F64BE, ...
<li>string type
<li>compound type
<br>
- named, unnamed and transient compound type
<br>
- integer, floating or string type member
<li>opaque types
<li>reference type
<br>
- object references
<br>
- data regions
<li>enum type
<li>variable-length datatypes
<br>
- atomic types only
<br>
- scalar or single dimensional array of variable-length
types supported
</ul>
<li>Dataspace
<ul>
<li>scalar and simple space
</ul>
<li>Soft link
<li>Hard link
<li>Loop detection
</ul>
<dt><strong>See Also:</strong>
<ul>
<li>HDF5 Data Description Language syntax at
<a href="ddl.html"><cite>DDL for HDF5</cite></a>
<li>HDF5 XML DTD at
<a href="http://hdf.ncsa.uiuc.edu/DTDs/HDF5-File.dtd">http://hdf.ncsa.uiuc.edu/DTDs/HDF5-File.dtd</a>
<li>HDF5 XML information at
<a href="http://hdf.ncsa.uiuc.edu/HDF5/XML">http://hdf.ncsa.uiuc.edu/HDF5/XML/</a>
</ul>
</dl>
<hr>
<dl>
<dt><strong>Tool Name:</strong> <a name="Tools-Ls">h5ls</a>
<dt><strong>Syntax:</strong>
<dd><code>h5ls
[</code><em>OPTIONS</em><code>]</code><em>
file</em><code>
[</code><em>OBJECTS...</em><code>]</code>
<dt><strong>Purpose:</strong>
<dd>Prints information about a file or dataset.
<dt><strong>Description:</strong>
<dd><code>h5ls</code> prints selected information about file objects
in the specified format.
<dt><strong>Options and Parameters:</strong>
<dl>
<dt><code>-h</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>-?</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--help</code>
<dd>Print a usage message and exit.
<dt><code>-a</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--address</code>
<dd>Print addresses for raw data.
<dt><code>-d</code> &nbsp;&nbsp;or&nbsp;&nbsp; <code>--data</code>
<dd>Print the values of datasets.
<dt><code>-e</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--errors</code>
<dd>Show all HDF5 error reporting.
<dt><code>-f</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--full</code>
<dd>Print full path names instead of base names.
<dt><code>-g</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--group</code>
<dd>Show information about a group, not its contents.
<dt><code>-l</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--label</code>
<dd>Label members of compound datasets.
<dt><code>-r</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--recursive</code>
<dd>List all groups recursively, avoiding cycles.
<dt><code>-s</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--string</code>
<dd>Print 1-bytes integer datasets as ASCII.
<dt><code>-S</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--simple</code>
<dd>Use a machine-readable output format.
<dt><code>-w</code><em>N</em> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--width=</code><em>N</em>
<dd>Set the number of columns of output.
<dt><code>-v</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--verbose</code>
<dd>Generate more verbose output.
<dt><code>-V</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--version</code>
<dd>Print version number and exit.
<dt><code>-x</code> &nbsp;&nbsp;or&nbsp;&nbsp;
<code>--hexdump</code>
<dd>Show raw data in hexadecimal format.
<dt><em>file</em>
<dd>The file name may include a printf(3C) integer format
such as <code>%%05d</code> to open a file family.
<dt><em>objects</em>
<dd>Each object consists of an HDF5 file name optionally
followed by a slash and an object name within the file
(if no object is specified within the file then the
contents of the root group are displayed). The file name
may include a <code>printf(3C)</code> integer format such
as "%05d" to open a file family.
</dl>
<!--
<dt><strong>Current Status:</strong>
<dd>
<dt><strong>See Also:</strong>
<dd>
-->
</dl>
<hr>
<dl>
<dt><strong>Tool Name:</strong> <a name="Tools-Repart">h5repart</a>
<dt><strong>Syntax:</strong>
<dd><code>h5repart
[-v]
[-V]
[-[b|m]</code><em>N</em><code>[g|m|k]]</code>
<em>source_file
dest_file</em>
<dt><strong>Purpose:</strong>
<dd>Repartitions a file or family of files.
<dt><strong>Description:</strong>
<dd><code>h5repart</code> splits a single file into a family of
files, joins a family of files into a single file, or copies
one family of files to another while changing the size of the
family members. <code>h5repart</code> can also be used to
copy a single file to a single file with holes.
<p>
Sizes associated with the <code>-b</code> and <code>-m</code>
options may be suffixed with <code>g</code> for gigabytes,
<code>m</code> for megabytes, or <code>k</code> for kilobytes.
<p>
File family names include an integer <code>printf</code>
format such as <code>%d</code>.
<dt><strong>Options and Parameters:</strong>
<dl>
<dt><code>-v</code>
<dd>Produce verbose output.
<dt><code>-V</code>
<dd>Print a version number and exit.
<dt><code>-b</code><em>N</em>
<dd>The I/O block size, defaults to 1kB
<dt><code>-m</code><em>N</em>
<dd>The destination member size or 1GB
<dt><em>source_file</em>
<dd>The name of the source file
<dt><em>dest_file</em>
<dd>The name of the destination files
</dl>
<!--
<dt><strong>Current Status:</strong>
<dd>
<dt><strong>See Also:</strong>
<dd>
-->
</dl>
<hr>
<dl>
<dt><strong>Tool Name:</strong> <a name="Tools-GIF2H5">gif2h5</a>
<dt><strong>Syntax:</strong>
<dd><code>gif2h5</code>
<em>gif_file</em> <em>h5_file</em>
<dt><strong>Purpose:</strong>
<dd>Converts a GIF file to an HDF5 file.
<dt><strong>Description:</strong>
<dd><code>gif2h5</code> accepts as input the GIF file <em>gif_file</em>
and produces the HDF5 file <em>h5_file</em> as output.
<dt><strong>Options and Parameters:</strong>
<dl>
<dt><em>gif_file</em>
<dd>The name of the input GIF file
<dt><em>h5_file</em>
<dd>The name of the output HDF5 file
</dl>
<!--
<dt><strong>Current Status:</strong>
<dd>
<dt><strong>See Also:</strong>
<dd>
-->
</dl>
<hr>
<dl>
<dt><strong>Tool Name:</strong> <a name="Tools-H52GIF">h52gif</a>
<dt><strong>Syntax:</strong>
<dd><code>h52gif</code>
<em>h5_file</em> <em>gif_file</em>
<code>-i</code> <em>h5_image</em>
<code>[-p</code> <em>h5_palette</em><code>]</code>
<dt><strong>Purpose:</strong>
<dd>Converts an HDF5 file to a GIF file.
<dt><strong>Description:</strong>
<dd><code>h52gif</code> accepts as input the HDF5 file <em>h5_file</em>
and the names of images and associated palettes within that file
as input and produces the GIF file <em>gif_file</em>,
containing those images, as output.
<p>
<code>h52gif</code> expects <em>at least</em>
one <em>h5_image</em>.
You may repeat
<br>
&nbsp;&nbsp;&nbsp;&nbsp;
<code>-i</code> <em>h5_image</em>
<code>[-p</code> <em>h5_palette</em><code>]</code>
<br>
up to 50 times, for a maximum of 50 images.
<dt><strong>Options and Parameters:</strong>
<dl>
<dt><em>h5_file</em>
<dd>The name of the input HDF5 file
<dt><em>gif_file</em>
<dd>The name of the output GIF file
<dt><code>-i</code> <em>h5_image</em>
<dd>Image option, specifying the name of an HDF5 image or
dataset containing an image to be converted
<dt><code>-p</code> <em>h5_palette</em>
<dd>Palette option, specifying the name of an HDF5 dataset
containing a palette to be used in an image conversion
</dl>
<!--
<dt><strong>Current Status:</strong>
<dd>
<dt><strong>See Also:</strong>
<dd>
-->
</dl>
<hr>
<dl>
<dt><strong>Tool Name:</strong> <a name="Tools-H5toh4">h5toh4</a>
<dt><strong>Syntax:</strong>
<dd><code>h5toh4 -h</code><br>
<code>h5toh4 </code><em>
h5file
h4file</em><br>
<code>h5toh4 </code><em>
h5file</em><br>
<code>h5toh4 -m </code><em>
h5file1
h5file2
h5file3</em> ...
<dt><strong>Purpose:</strong>
<dd>Converts an HDF5 file into an HDF4 file.
<dt><strong>Description:</strong>
<dd><code>h5toh4</code> is an HDF5 utility which reads
an HDF5 file, <em>h5file</em>, and converts all
supported objects and pathways to produce an HDF4 file,
<em>h4file</em>. If <em>h4file</em> already exists,
it will be replaced.
<p>
If only one file name is given, the name must end in
<code>.h5</code> and is assumed to represent the
HDF5 input file. <code>h5toh4</code> replaces the
<code>.h5</code> suffix with <code>.hdf</code> to form
the name of the resulting HDF4 file and proceeds as above.
If a file with the name of the intended HDF4 file already
exists, <code>h5toh4</code> exits with an error without
changing the contents of any file.
<p>
The <code>-m</code> option allows multiple HDF5 file
arguments. Each file name is treated the same as the
single file name case above.
<p>
The <code>-h</code> option causes the following
syntax summary to be displayed:
<pre> h5toh4 file.h5 file.hdf
h5toh4 file.h5
h5toh4 -m file1.h5 file2.h5 ...</pre>
<p>
The following HDF5 objects occurring in an HDF5 file are
converted to HDF4 objects in the HDF4 file:
<ul>
<li>HDF5 group objects are converted into HDF4 Vgroup
objects. HDF5 hardlinks and softlinks pointing to
objects are converted to HDF4 Vgroup references.
<li>HDF5 dataset objects of integer datatype are
converted into HDF4 SDS objects. These datasets
may have up to 32 fixed dimensions.
The slowest varying dimension may be extendable.
8-bit, 16-bit, and 32-bit integer datatypes are
supported.
<li>HDF5 dataset objects of floating point datatype
are converted into HDF4 SDS objects.
These datasets may have up to 32 fixed dimensions.
The slowest varying dimension may be extendable.
32-bit and 64-bit floating point datatypes are
supported.
<li>HDF5 dataset objects of single dimension and
compound datatype are converted into HDF4 Vdata
objects. The length of that single dimension may
be fixed or extendable. The members of the
compound datatype are constrained to be no more
than rank 4.
<li>HDF5 dataset objects of single dimension and fixed length string
datatype are converted into HDF4 Vdata objects. The HDF4 Vdata
is a single field whose order is the length of the HDF5 string
type. The number of records of the Vdata is the length of the
single dimension which may be fixed or extendable.
</ul>
Other objects are not converted and are not recorded
in the resulting <em>h4file</em>.
<p>
Attributes associated with any of the supported HDF5
objects are carried over to the HDF4 objects.
Attributes may be of integer, floating point, or fixed length
string datatype and they may have up to 32 fixed dimensions.
<p>
All datatypes are converted to big-endian.
Floating point datatypes are converted to IEEE format.
<dt><strong>Options and Parameters:</strong>
<dl>
<dt><code>-h</code>
<dd>Displays a syntax summary.
<dt><code>-m</code>
<dd>Converts multiple HDF5 files to multiple HDF4 files.
<dt><em>h5file</em>
<dd>The HDF5 file to be converted.
<dt><em>h4file</em>
<dd>The HDF4 file to be created.
</dl>
<!--
<dt><strong>Current Status:</strong>
<dd>
<dt><strong>See Also:</strong>
<dd>
-->
</dl>
<hr>
<dl>
<dt><strong>Tool Name:</strong> <a name="Tools-H4toh5">h4toh5</a>
<dt><strong>Syntax:</strong>
<dd><code>h4toh5 -h</code><br>
<code>h4toh5 </code><em>
h4file
h5file</em><br>
<code>h4toh5 </code><em>
h4file</em><br>
<!-- currently no -m option
<code>h4toh5 -m </code><em>
h4file1
h4file2
h4file3</em> ...
-->
<dt><strong>Purpose:</strong>
<dd>Converts an HDF4 file to an HDF5 file.
<dt><strong>Description:</strong>
<dd><code>h4toh5</code> is a file conversion utility that reads
an HDF4 file, <em>h4file</em> (<code>input.hdf</code> for example),
and writes an HDF5 file, <em>h5file</em> (<code>output.h5</code>
for example), containing the same data.
<p>
If no output file <em>h5file</em> is specified,
<code>h4toh5</code> uses the input filename to designate
the output file, replacing the extension <code>.hdf</code>
with <code>.h5</code>.
For example, if the input file <code>scheme3.hdf</code> is
specified with no output filename, <code>h4toh5</code> will
name the output file <code>scheme3.h5</code>.
<p>
<!-- currently no -m option
The <code>-m</code> option allows multiple HDF5 file
arguments. Each file name is treated the same as the
single file name case above.
<p>
-->
The <code>-h</code> option causes a syntax summary
similar to the following to be displayed:
<pre> h4toh5 inputfile.hdf outputfile.h5
h5toh4 inputfile.hdf <!-- currently no -m option
h5toh4 -m inputfile1.hdf inputfile2.hdf ... --> </pre>
<p>
Each object in the HDF4 file is converted to an equivalent
HDF5 object, according to the mapping described in
<a href="ADGuide/H4toH5Mapping.pdf" target=ExternalWinA>
<cite>Mapping HDF4 Objects to HDF5 Objects</cite></a>.
(If this mapping changes between HDF5 Library releases, a more up-to-date
version may be available at
<a href="http://hdf.ncsa.uiuc.edu/HDF5/papers/h4toh5/H4-to-H5MappingGuidelines.pdf" target=ExternalWinB>
<cite>Mapping HDF4 Objects to HDF5 Objects</cite> on the HDF FTP server</a>.)
<p>
In this inital version, <code>h4toh5</code> converts the following
HDF4 objects:
<center>
<table width=75% border=0>
<tr><th width=40% valign=top align=left>
HDF4 Object
</td><th width=60% valign=top align=left>
Resulting HDF5 Object
</td></tr>
<tr><td width=40% valign=top align=left>
SDS
</td><td width=60% valign=top align=left>
Dataset
</td></tr>
<tr><td width=40% valign=top align=left>
GR, RI8, and RI24 image
</td><td width=60% valign=top align=left>
Dataset
</td></tr>
<tr><td width=40% valign=top align=left>
Vdata
</td><td width=60% valign=top align=left>
Dataset
</td></tr>
<tr><td width=40% valign=top align=left>
Vgroup
</td><td width=60% valign=top align=left>
Group
</td></tr>
<tr><td width=40% valign=top align=left>
Annotation
</td><td width=60% valign=top align=left>
Attribute
</td></tr>
<tr><td width=40% valign=top align=left>
Palette
</td><td width=60% valign=top align=left>
Dataset
</td></tr>
</table>
</center>
<dt><strong>Options and Parameters:</strong>
<dl>
<dt><code>-h</code>
<dd>Displays a syntax summary.
<!-- currently no -m option
<dt><code>-m</code>
<dd>Converts multiple HDF4 files to multiple HDF5 files.
-->
<dt><em>h4file</em>
<dd>The HDF4 file to be converted.
<dt><em>h5file</em>
<dd>The HDF5 file to be created.
</dl>
<!--
<dt><strong>Current Status:</strong>
<dd>
<dt><strong>See Also:</strong>
<dd>
-->
</dl>
<hr>
<dl>
<dt><strong>Tool Name:</strong> <a name="Tools-H5CC">h5cc</a>
<dt><strong>Syntax:</strong>
<dd><code>h5cc
[</code><em>OPTIONS</em><code>]</code> <em>&lt;compile line&gt;</em>
<dt><strong>Purpose:</strong>
<dd>Helper script to compile HDF5 applications.
<dt><strong>Description:</strong>
<dd><p>
<code>h5cc</code> can be used in much the same way MPIch is used
to compile HDF5 program. It takes care of specifying where the
HDF5 header files and libraries are on the commandline.
</p>
<p>
<code>h5cc</code> supercedes all other compiler scripts in that
if you've used them to compile the HDF5 library, then
<code>h5cc</code> also uses those scripts. For examples, when
compiling an MPIch program, you use the <code>mpicc</code>
script. If you've built HDF5 using MPIch, then <code>h5cc</code>
uses the MPIch program for compilation.
</p>
<p>
Some programs use HDF5 in only a few modules. It isn't necessary
to use <code>h5cc</code> to compile those modules which don't use
HDF5. In fact, since <code>h5cc</code> is only a convenience
script, you are still able to compile HDF5 modules in the normal
way. In that case, you will have to specify the HDF5 libraries
and include paths yourself.
</p>
<p>
An example of how to use HDF5 to compile the program
<code>hdf_prog</code> which consists of modules
<code>prog1.c</code> and <code>prog2.c</code> and uses the HDF5
shared library:
<pre>
# h5cc -c prog1.c
# h5cc -c prog2.c
# h5cc -shlib -o hdf_prog prog1.o prog2.o
</pre>
<p>
<dt><strong>Options and Parameters:</strong>
<dl>
<dt><code>-help</code>
<dd>Prints a help message.
<dt><code>-echo</code>
<dd>Show all the shell commands executed.
<dt><code>-prefix=DIR</code>
<dd>Use the directory DIR to find HDF5 lib/ and include/
subdirectories [default: prefix specified when
configuring HDF5].
<dt><code>-show</code>
<dd>Show the commands without executing them.
<dt><code>-shlib</code>
<dd>Compile using shared HDF5 libraries.
<dt><code>-noshlib</code>
<dd>Compile using static HDF5 libraries [default].
<dt><em>&lt;compile line&gt;</em>
<dd>The normal compile line options for your compiler. h5cc
uses the same compiler you used to compile HDF5. Check
with your compiler's manual for more information on which
options are needed.
</dl>
<p>
<dt><strong>Environment Variables:</strong>
<br>
When set, these environment variables override some of the built-in
defaults of <code>h5cc</code>.
<dl>
<dt><code>HDF5_CC</code>
<dd>Use a different C compiler.
<dt><code>HDF5_CLINKER</code>
<dd>Use a different linker.
<dt><code>HDF5_USE_SHLIB=[yes|no]</code>
<dd>Use shared version of the HDF5 library [default: no].
</dl>
<!--
<dt><strong>Current Status:</strong>
<dd>
<dt><strong>See Also:</strong>
<dd>
-->
</dl>
<!-- Template, next 40 lines -->
<!-- Template, next 40 lines -->
<!-- Template, next 40 lines
<hr>
<dl>
<dt><strong>Tool Name:</strong> <a name="Tools-H5toh4">h5toh4</a>
<dt><strong>Syntax:</strong>
<dd><code>h5toh4 -h</code><br>
<code>h5toh4 </code><em>
h5file
h4file</em><br>
<code>h5toh4 </code><em>
h5file</em><br>
<code>h5toh4 -m </code><em>
h5file1
h5file2
h5file3</em> ...
<dt><strong>Purpose:</strong>
<dd>Purpose...
<dt><strong>Description:</strong>
<dd><code>TOOL</code> is an HDF5 utility which ...
Paragraph
<pre> sample code
sample code
sample code </pre>
<p>
Paragraph
<p>
Paragraph
<dt><strong>Options and Parameters:</strong>
<dl>
<dt><code>-option</code>
<dd>Description
<dt><em>parameter</em>
<dd>Description
</dl>
<dt><strong>Current Status:</strong>
<dd>
<dt><strong>See Also:</strong>
<dd>
</dl>
-->
<hr>
<center>
<table border=0 width=98%>
<tr><td valign=top align=left>
<a href="H5.intro.html">Introduction to HDF5</a>&nbsp;<br>
<a href="H5.user.html">HDF5 User Guide</a>&nbsp;<br>
<a href="index.html">Other HDF5 documents and links</a>&nbsp;<br>
<!--
<a href="Glossary.html">Glossary</a><br>
-->
</td>
<td valign=top align=right>
And in this document, the
<a href="RM_H5Front.html">HDF5 Reference Manual</a>&nbsp;&nbsp;
<br>
<a href="RM_H5.html">H5</a>&nbsp;&nbsp;
<a href="RM_H5A.html">H5A</a>&nbsp;&nbsp;
<a href="RM_H5D.html">H5D</a>&nbsp;&nbsp;
<a href="RM_H5E.html">H5E</a>&nbsp;&nbsp;
<a href="RM_H5F.html">H5F</a>&nbsp;&nbsp;
<a href="RM_H5G.html">H5G</a>&nbsp;&nbsp;
<a href="RM_H5I.html">H5I</a>&nbsp;&nbsp;
<a href="RM_H5P.html">H5P</a>&nbsp;&nbsp;
<br>
<a href="RM_H5R.html">H5R</a>&nbsp;&nbsp;
<a href="RM_H5S.html">H5S</a>&nbsp;&nbsp;
<a href="RM_H5T.html">H5T</a>&nbsp;&nbsp;
<a href="RM_H5Z.html">H5Z</a>&nbsp;&nbsp;
Tools&nbsp;&nbsp;
<a href="PredefDTypes.html">Datatypes</a>&nbsp;&nbsp;
</td></tr>
</table>
</center>
<hr>
<address>
<a href="mailto:hdfhelp@ncsa.uiuc.edu">HDF Help Desk</a>
<br>
Last modified: 13. September 2001
<br>
Describes HDF5 Release 1.5, Unreleased Development Branch
</body>
</html>