[Top] [Prev] [Next] [Bottom]
1.2 What is HDF?
The Hierarchical Data Format, or HDF, is a multi-object file format for sharing scientific data in a distributed environment. HDF was created at the National Center for Supercomputing Applications to serve the needs of diverse groups of scientists working on projects in many fields. HDF was designed to address many requirements for storing scientific data, including:
FIGURE 1a Primary HDF Data Structures
Five of the primary data objects supported by HDF are illustrated in Figure 1a. A sixth, the vgroup object, does not contain data and is designed for the purpose of grouping the other five primary data objects within an HDF file.
HDF is more than a file format. It also consists of supporting software that make it easy to store, retrieve, visualize, analyze, and manage data in HDF files. HDF can be viewed as several interactive levels as illustrated in the following figure.
FIGURE 1b The Three Levels of Interaction with the HDF File Format
At its lowest level, HDF is a physical file format for storing scientific data. At its highest level, HDF is a collection of utilities and applications for manipulating, viewing, and analyzing data in HDF files. Between these levels, HDF is a software library that provides high-level APIs and a low-level data interface.
The basic interface layer, or the low-level interface, is reserved for software developers. It was designed for direct file I/O of data streams, error handling, memory management, and physical storage. It is essentially a software toolkit for skilled programmers who wish to make HDF do something more than what is currently available through the higher-level interfaces. Low-level routines are only available in C.
The HDF application programming interfaces, or APIs, include several independent sets of routines, with each set specifically designed to simplify the process of storing and accessing one type of data. These APIs are represented in Figure 1b as the second layer from the top. Although each interface requires programming, all the low-level details can be ignored. In most cases, all one must do is make the correct function call at the correct time, and the interface will take care of the rest. Most HDF API routines are available in both Fortran-77 and C.
The routines that make up the low-level interface and the APIs are available in the NCSA HDF libraries. Source code for the HDF libraries, as well as binaries for some platforms, is in the public domain and is on the NCSA ftp server at hdf.ncsa.uiuc.edu.
On the highest "general applications" level, HDF includes command-line utilities for managing and viewing HDF files, NCSA applications that support data visualization and analysis, and a variety of third-party applications. HDF utilities are included in the NCSA HDF distribution. Applications supported by NCSA, as well as applications contributed by members of the worldwide HDF user community are freely available on the NCSA ftp server.
[Top] [Prev] [Next] [Bottom]
hdfhelp@ncsa.uiuc.edu
HDF User's Guide - 06/04/97, NCSA HDF
Development Group.