Introduction to HDF5 
HDF5 User Guide 
Other HDF5 documents and links 
And in this document, the HDF5 Reference Manual  
H5   H5A   H5D   H5E   H5F   H5G   H5I   H5P  
H5R   H5S   H5T   H5Z   Tools   Datatypes  

HDF5 Tools

HDF5 Tool Interfaces

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.
  • h5dump -- A tool for displaying HDF5 file contents
  • h5ls -- A tool for listing specified features of HDF5 file contents
  • h5repart -- A tool for repartitioning a file, creating a family of files
  • gif2h5 -- A tool for converting a GIF file to an HDF5 file
  • h52gif -- A tool for converting images in an HDF5 file to a GIF file
  • h5toh4 -- A tool for converting an HDF5 file to an HDF4 file
  • h4toh5 -- A tool for converting an HDF4 file to an HDF5 file
  • h5cc -- A tool for compiling HDF5 programs
  • Java-based tools for HDF5 -- (at http://hdf.ncsa.uiuc.edu/java-hdf5-html/)
    Java-based tools for viewing, manipulating, and generating HDF5 files (distributed separately)
    Includes H5view, H5gen, Java HDF5 Interface (JHI5), and HDF5 VisAD Data Adapter


Tool Name: h5dump
Syntax:
h5dump [OPTIONS] file
Purpose:
Displays HDF5 file contents.
Description:
h5dump enables the user to examine the contents of an HDF5 file and dump those contents, in human readable form, to an ASCII file.

h5dump 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.

The --header option displays object header information only.

Names are the absolute names of the objects. h5dump displays objects in the order same as the command order. If a name does not start with a slash, h5dump begins searching for the specified object starting at the root group.

If an object is hard linked with multiple names, h5dump displays the content of the object in the first occurrence. Only the link information is displayed in later occurrences.

h5dump assigns a name for any unnamed datatype in the form of #oid1:oid2, where oid1 and oid2 are the object identifiers assigned by the library. The unnamed types are displayed within the root group.

Datatypes are displayed with standard type names. For example, if a dataset is created with H5T_NATIVE_INT type and the standard type name for integer on that machine is H5T_STD_I32BE, h5dump displays H5T_STD_I32BE as the type of the dataset.

h5dump 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 H5Sselect_hyperslab and the resulting selection is displayed.

The h5dump output is described in detail in the DDL for HDF5, the Data Description Language document.

Note: 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
         WRONG:   h5dump -a /attr1 /attr2 foo.h5
to display both /attr1 and /attr2. One must issue the following command:
         CORRECT:   h5dump -a /attr1 -a /attr2 foo.h5

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.

XML Output:
With the --xml option, h5dump 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 http://hdf.ncsa.uiuc.edu/DTDs/HDF5-File.dtd.

The XML output is suitable for use with other tools, including the HDF5 Java Tools.

Options and Parameters:
-h   or   --help
Print a usage message and exit.
-B   or   --bootblock
Print the content of the boot block.
(This option is not yet implemented.)
-H   or   --header
Print the header only; no data is displayed.
-i   or   --object-ids
Print the object ids.
-V   or   --version
Print version number and exit.
-a P   or   --attribute=P
Print the specified attribute.
-d P   or   --dataset=P
Print the specified dataset.
-f D   or   --filedriver=D
Specify which driver to open the file with.
-g P   or   --group=P
Print the specified group and all members.
-l P   or   --soft-link=P
Print the value(s) of the specified soft link.
-o F   or   --output=F
Output raw data into file F.
-t T   or   --datatype=T
Print the specified named datatype.
-w N   or   --width=N
Set the number of columns of output.
-x U   or   --xml
Output XML instead of DDL.
-D U   or   --xml-dtd=U
In XML output, refer to the DTD at U instead of the default DTD.
-s L   or   --start=L
Offset of start of subsetting selection.
Default: the beginning of the dataset.
-S L   or   --stride=L
Hyperslab stride.
Default: 1 in all dimensions.
-c L   or   --count=L
Number of blocks to include in the selection.
-k L   or   --block=L
Size of block in hyperslab.
Default: 1 in all dimensions.
file
The file to be examined.


The option parameters listed above are defined as follows:
D -- 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.
P -- The full path from the root group to the object
T -- The name of the datatype
F -- A filename
N -- An integer greater than 1
L -- A list of integers, the number of which is equal to the number of dimensions in the dataspace being queried
U -- A URI (as defined in [IETF RFC 2396], updated by [IETF RFC 2732]) that refers to the DTD to be used to validate the XML


Subsetting paramaters can also be expressed in a convenient compact form, as follows:
         --dataset="/foo/mydataset[START;STRIDE;COUNT;BLOCK]"
All of the semicolons (;) are required, even when a parameter value is not specified. When not specified, default parameter values are used.

Examples:
  1. Dumping the group /GroupFoo/GroupBar in the file quux.h5:
    h5dump -g /GroupFoo/GroupBar quux.h5
  2. Dumping the dataset Fnord in the group /GroupFoo/GroupBar in the file quux.h5:
    h5dump -d /GroupFoo/GroupBar/Fnord quux.h5
  3. Dumping the attribute metadata of the dataset Fnord which is in group /GroupFoo/GroupBar in the file quux.h5:
    h5dump -a /GroupFoo/GroupBar/Fnord/metadata quux.h5
  4. Dumping the attribute metadata which is an attribute of the root group in the file quux.h5:
    h5dump -a /metadata quux.h5
  5. Producing an XML listing of the file bobo.h5:
    h5dump --xml bobo.h5 > bobo.h5.xml
  6. Dumping a subset of the dataset /GroupFoo/databar/ in the file quux.h5
    h5dump -d /GroupFoo/databar --start="1,1" --stride="2,3"
             --count="3,19" --block="1,1" quux.h5
  7. The same example using the short form to specify the subsetting parameters:
    h5dump -d "/GroupFoo/databar[1,1;2,3;3,19;1,1]" quux.h5
Current Status:
The current version of h5dump displays the following information:
See Also:

Tool Name: h5ls
Syntax:
h5ls [OPTIONS] file [OBJECTS...]
Purpose:
Prints information about a file or dataset.
Description:
h5ls prints selected information about file objects in the specified format.
Options and Parameters:
-h   or   -?   or   --help
Print a usage message and exit.
-a   or   --address
Print addresses for raw data.
-d   or   --data
Print the values of datasets.
-e   or   --errors
Show all HDF5 error reporting.
-f   or   --full
Print full path names instead of base names.
-g   or   --group
Show information about a group, not its contents.
-l   or   --label
Label members of compound datasets.
-r   or   --recursive
List all groups recursively, avoiding cycles.
-s   or   --string
Print 1-bytes integer datasets as ASCII.
-S   or   --simple
Use a machine-readable output format.
-wN   or   --width=N
Set the number of columns of output.
-v   or   --verbose
Generate more verbose output.
-V   or   --version
Print version number and exit.
-x   or   --hexdump
Show raw data in hexadecimal format.
file
The file name may include a printf(3C) integer format such as %%05d to open a file family.
objects
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 printf(3C) integer format such as "%05d" to open a file family.

Tool Name: h5repart
Syntax:
h5repart [-v] [-V] [-[b|m]N[g|m|k]] source_file dest_file
Purpose:
Repartitions a file or family of files.
Description:
h5repart 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. h5repart can also be used to copy a single file to a single file with holes.

Sizes associated with the -b and -m options may be suffixed with g for gigabytes, m for megabytes, or k for kilobytes.

File family names include an integer printf format such as %d.

Options and Parameters:
-v
Produce verbose output.
-V
Print a version number and exit.
-bN
The I/O block size, defaults to 1kB
-mN
The destination member size or 1GB
source_file
The name of the source file
dest_file
The name of the destination files

Tool Name: gif2h5
Syntax:
gif2h5 gif_file h5_file
Purpose:
Converts a GIF file to an HDF5 file.
Description:
gif2h5 accepts as input the GIF file gif_file and produces the HDF5 file h5_file as output.
Options and Parameters:
gif_file
The name of the input GIF file
h5_file
The name of the output HDF5 file

Tool Name: h52gif
Syntax:
h52gif h5_file gif_file -i h5_image [-p h5_palette]
Purpose:
Converts an HDF5 file to a GIF file.
Description:
h52gif accepts as input the HDF5 file h5_file and the names of images and associated palettes within that file as input and produces the GIF file gif_file, containing those images, as output.

h52gif expects at least one h5_image. You may repeat
     -i h5_image [-p h5_palette]
up to 50 times, for a maximum of 50 images.

Options and Parameters:
h5_file
The name of the input HDF5 file
gif_file
The name of the output GIF file
-i h5_image
Image option, specifying the name of an HDF5 image or dataset containing an image to be converted
-p h5_palette
Palette option, specifying the name of an HDF5 dataset containing a palette to be used in an image conversion

Tool Name: h5toh4
Syntax:
h5toh4 -h
h5toh4 h5file h4file
h5toh4 h5file
h5toh4 -m h5file1 h5file2 h5file3 ...
Purpose:
Converts an HDF5 file into an HDF4 file.
Description:
h5toh4 is an HDF5 utility which reads an HDF5 file, h5file, and converts all supported objects and pathways to produce an HDF4 file, h4file. If h4file already exists, it will be replaced.

If only one file name is given, the name must end in .h5 and is assumed to represent the HDF5 input file. h5toh4 replaces the .h5 suffix with .hdf 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, h5toh4 exits with an error without changing the contents of any file.

The -m option allows multiple HDF5 file arguments. Each file name is treated the same as the single file name case above.

The -h option causes the following syntax summary to be displayed:

              h5toh4 file.h5 file.hdf
              h5toh4 file.h5
              h5toh4 -m file1.h5 file2.h5 ...

The following HDF5 objects occurring in an HDF5 file are converted to HDF4 objects in the HDF4 file:

Other objects are not converted and are not recorded in the resulting h4file.

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.

All datatypes are converted to big-endian. Floating point datatypes are converted to IEEE format.

Options and Parameters:
-h
Displays a syntax summary.
-m
Converts multiple HDF5 files to multiple HDF4 files.
h5file
The HDF5 file to be converted.
h4file
The HDF4 file to be created.

Tool Name: h4toh5
Syntax:
h4toh5 -h
h4toh5 h4file h5file
h4toh5 h4file
Purpose:
Converts an HDF4 file to an HDF5 file.
Description:
h4toh5 is a file conversion utility that reads an HDF4 file, h4file (input.hdf for example), and writes an HDF5 file, h5file (output.h5 for example), containing the same data.

If no output file h5file is specified, h4toh5 uses the input filename to designate the output file, replacing the extension .hdf with .h5. For example, if the input file scheme3.hdf is specified with no output filename, h4toh5 will name the output file scheme3.h5.

The -h option causes a syntax summary similar to the following to be displayed:

              h4toh5 inputfile.hdf outputfile.h5
              h5toh4 inputfile.hdf                     

Each object in the HDF4 file is converted to an equivalent HDF5 object, according to the mapping described in Mapping HDF4 Objects to HDF5 Objects. (If this mapping changes between HDF5 Library releases, a more up-to-date version may be available at Mapping HDF4 Objects to HDF5 Objects on the HDF FTP server.)

In this inital version, h4toh5 converts the following HDF4 objects:

HDF4 Object Resulting HDF5 Object
SDS Dataset
GR, RI8, and RI24 image Dataset
Vdata Dataset
Vgroup Group
Annotation Attribute
Palette Dataset
Options and Parameters:
-h
Displays a syntax summary.
h4file
The HDF4 file to be converted.
h5file
The HDF5 file to be created.

Tool Name: h5cc
Syntax:
h5cc [OPTIONS] <compile line>
Purpose:
Helper script to compile HDF5 applications.
Description:

h5cc 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.

h5cc supercedes all other compiler scripts in that if you've used them to compile the HDF5 library, then h5cc also uses those scripts. For examples, when compiling an MPIch program, you use the mpicc script. If you've built HDF5 using MPIch, then h5cc uses the MPIch program for compilation.

Some programs use HDF5 in only a few modules. It isn't necessary to use h5cc to compile those modules which don't use HDF5. In fact, since h5cc 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.

An example of how to use HDF5 to compile the program hdf_prog which consists of modules prog1.c and prog2.c and uses the HDF5 shared library:

        # h5cc -c prog1.c
        # h5cc -c prog2.c
        # h5cc -shlib -o hdf_prog prog1.o prog2.o
        

Options and Parameters:
-help
Prints a help message.
-echo
Show all the shell commands executed.
-prefix=DIR
Use the directory DIR to find HDF5 lib/ and include/ subdirectories [default: prefix specified when configuring HDF5].
-show
Show the commands without executing them.
-shlib
Compile using shared HDF5 libraries.
-noshlib
Compile using static HDF5 libraries [default].
<compile line>
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.

Environment Variables:
When set, these environment variables override some of the built-in defaults of h5cc.
HDF5_CC
Use a different C compiler.
HDF5_CLINKER
Use a different linker.
HDF5_USE_SHLIB=[yes|no]
Use shared version of the HDF5 library [default: no].

Introduction to HDF5 
HDF5 User Guide 
Other HDF5 documents and links 
And in this document, the HDF5 Reference Manual  
H5   H5A   H5D   H5E   H5F   H5G   H5I   H5P  
H5R   H5S   H5T   H5Z   Tools   Datatypes  

HDF Help Desk
Last modified: 13. September 2001
Describes HDF5 Release 1.5, Unreleased Development Branch