Hierarchical Data Format: Difference between revisions

Content deleted Content added
MarkSweep (talk | contribs)
m oops
reformated; removed redundant info; added PyTables
Line 1:
'''Hierarchical Data Format''', commonly abbreviated '''HDF''' or, '''HDF4''', or '''HDF5''' is a library and multi-object file format for the transfer of graphical and numerical data between computers. It is created and maintained by the [[National Center for Supercomputing Applications|NCSA]]. The freely available HDF distribution consists of the library, command-line utilities, test suite source, [[Java programming language|Java]] interface, and the Java-based HDF Viewer (HDFView).
 
HDF supports several different data models, including multidimensional arrays, raster images, and tables. Each defines a specific aggregate data type and provides an [[Application Programming Interface|API]] for reading, writing, and organisingorganizing the data and metadata. New data models can be added by the HDF developers or users.
 
HDF is self-describing, allowing an application to interpret the structure and contents of a file without any outside information. One HDF file can hold a mixture of related objects which can be accessed as a group or as individual objects. Users can create their own grouping structures called "vgroups."
 
One HDF file can hold a mixture of related objects which can be accessed as a group or as individual objects. Users can create their own grouping structures called "vgroups."
==HDF5==
HDF files can be shared across most common platforms, including many workstations and high-performance computers. An HDF file created on one computer can be read on a different system without modification.
The HDF5 format is designed to address some of the limitations of the HDF4 library, and to address current and anticipated requirements of modern systems and applications.
 
The next version of [[NetCDF]], version 4, is based on HDF5.
The [[HDF5]] format is also developed by the HDF group. It was designed to address
some of the limitations of the HDF4 library, and to address current and anticipated
requirements of modern systems and applications.
 
==Interfaces==
===Low-level APIs===
* [[C programming language|C]]
* [[C++]]
* [[Fortran]]
* [[F90]]
* [[Java_programming_language|Java]]
* [http://www.pytables.org/ PyTables] – an interface for [[Python programming language|Python]]
===High-level APIs===
* [http://hdf.ncsa.uiuc.edu/HDF5/doc/Tutor/h5lite.html HDF5 Lite] (H5LT) – a light-weight interface for C
* [http://hdf.ncsa.uiuc.edu/HDF5/doc/Tutor/h5image.html HDF5 Image] (H5IM) – a C interface for images or rasters
* [http://hdf.ncsa.uiuc.edu/HDF5/doc/Tutor/h5table.html HDF5 Table] (H5TB) – a C interface for tables
* [http://hdf.ncsa.uiuc.edu/HDF5/doc/Tutor/h5packet.html HDF5 Packet Table] (H5PT) – interfaces for C and [C++] to handle "packet" data, accessed at high-speeds
* [http://hdf.ncsa.uiuc.edu/HDF5/doc/Tutor/h5dimscale.html HDF5 Dimension Scale (H5DS)] – allows dimension scales to be added to HDF5; to be introduced in the HDF5-1.8 release
==See also==
* [[Common Data Format]] (CDF)