Page tree

Should new products be developed in HDF (HDF4)?

No, we do not recommend storing new products in HDF4. You should use HDF5 instead. We also want to encourage and help users move from HDF4 to HDF5. Please let us know if you need help with this.

HDF4 still works well for many users, and we are pleased that it has served users so well. However, there are good reasons to use or move to HDF5.

In general, HDF4 is based on technology from the 1980's and 1990's. Some specific reasons to use HDF5 instead of HDF4 are listed below:

  • HDF5 is very flexible in determining how to build on unknown platforms. In HDF4, code changes must be made to support new platforms or compilers (especially for Fortran).

  • HDF5 does not have a file size limitation. In theory, HDF4 has a 2 GB limit on file sizes. In reality, the size of the files you can store in HDF4 is less than 2 GB, particularly if you have a lot of objects.

  • HDF5 has one flexible data model and supports a rich collection of datatypes. HDF4 has several rigid data models and supports a small number of datatypes.

  • HDF5 provides an easy mechanism for applications to invoke data filters such as an application-specific compression method. This feature is not available in HDF4.

  • HDF5 is designed to support fast I/O on massively parallel systems, as well as for fast serial data acquisition. HDF4 does not support parallel I/O, and is much slower for serial data acquisition.

  • HDF5 is in active development, and HDF4 is in maintenance mode only.

  • Lastly, HDF5 is more powerful than HDF4, and HDF5 continues to become even more powerful as new features are added.