DESCRIPTION
HDF is a multi-object file format that facilitates the transfer of various
types of scientific data between machines and operating systems. Machines currently
supported include the Cray, HP, Vax, Sun, IBM RS/6000, Silicon Graphics,
Macintosh, and IBM PC computers. HDF allows self-definitions of data content
and easy extensibility for future enhancements or compatibility with other
standard formats. HDF includes Fortran and C calling interfaces,and utilities to
prepare raw image of data files or for use with other NCSA software. The HDF
library contains interfaces for storing and retrieving compressed or
uncompressed 8-bit and 24-bit raster images with palettes,
n-Dimensional scientific datasets and binary tables. An interface is
also included that allows arbitray grouping of other HDF objects.
"HDF Raster Images" HDF supports the storing of both 8-bit and 24-bit raster images. As well as
storing information about the dimensions and palette of a raster image, HDF
supports raster image compression. In previous versions of HDF, Run-length
encoding and Imcomp compression were both supported. With HDF> 3.3 JPEG
compression is also available.
"HDF Scientific Data Sets" Scientific Data Sets (SDSs) are useful for storing n-Dimensional gridded data.
The actual data in the dataset can be of any of the "standard" number types:
8, 16 and 32bit signed and unsigned integers and 32 and 64bit floating point
values. In addition, a certain amount of meta-data can be stored with an
SDS including:
o The coordinate system to use when interpreting or displaying the data.
o Scales to be used for each dimension.
o Labels for each dimension and the dataset as a whole.
o Units for each dimension and the data.
o The valid max and min values for the data.
o Calibration information for the data.
o Fill or missing value information.
o Ability of have more than one file open at a time.
o A more general framework for meta-data within the SDS data-model
(allowing 'name = value' styel meta-data).
o Support for an "unlimited dimension" in the SDS data-model, making
it possible to append planes to an array along one dimension.
"HDF Annotations" Any object in an HDF file can have annotations associated with it. There are a
number of types of annotations:
o Labels are assumed to be short strings giving the "name" of a
data object.
o Descriptions are longer text segments that are useful for giving
more indepth information about a data object
o File annotations are assumed to apply to all of the objects in a
single file.
"HDF Vset Interfaces" The Vset module provides
interfaces to two basic HDF building blocks. Vgroups are generic grouping
elements allowing a user to associate related objects within an HDF file. As
Vgroups can contain other Vgroups, it is possible to build a hierarchical file.
Vdatas are data structures made up of fields and records. Data is organized into 'fields' within each
Vdata. Each field is identified by a unique 'fieldname'. The type of each
field may be any of the basic number types that HDF supports. Fields of
different types may exist within the same Vdata.
By combining Vdatas in Vgroups it is possible to represent higher level data
constructs: mesh data, multi-variate datasets, sparse matrices, finite-element
data, spreadsheets, splines, non-Cartesian coordinate data, etc.
"HDF > 3.3 and netCDF" HDF > 3.3 merges in the netCDF library produced by Unidata. The full
netCDF library is supported as is a new "multi-file" SDS interface. Both of
these interfaces can read old netCDF files and HDF files transparently.
"EXAMPLES" All HDF routines require the header "hdf.h" to be included in the C
source file. If using the SDS routines the header "mfhdf.h" should be
included instead in in the C source file. Fortran programs should
use "dffunc.inc" and "hdf.inc".
To compile a program that makes HDF calls on most Unix platforms.
HDFINC = /usr/include/hdf
(FORTRAN):
f77 myprog.f -I{HDFINC} -o myprog -lmfhdf -ldf -ljpeg -lz
(C):
cc myprog.c -I{HDFINC} -o myprog -lmfhdf -ldf -ljpeg -lz