Scientific Data Exchange [DeCarlo:14b] is a set of guidelines for storing scientific data and metadata in a Hierarchical Data Format 5 [HDF:01] file.

HDF5 [HDF:01] has many important characteristics for scientific data storage. It offers platform-independent binary data storage with optional compression, hierarchical data ordering, and support for MPI-based parallel computing. Data are stored with alphanumeric tags, so that one can examine a HDF5 file’s contents with no knowledge of how the file writing program was coded. Tools for this examination include the HDF5-supplied command-line utility [HDF:02] to examine the contents of any HDF5 file, or the freely-available Java program [HDF:03] to interactively examine the file.

At synchrotron facilities using the EPICS [EPICS:01] software for area detectors [AD:01] with the NDFileHDF5 plugin [AD:02], is possible to save Data Exchange files by properly configure the detector and the HDF schema attribute files .

This reference guide describes the basic design principles of Data Exchange, examples of their application, a core reference for guidelines common to most uses, and coding examples.


  • The definition of the scientific data exchange.
  • A python interface for writing scientific data exchange files.
  • XML attribute files for writers with the EPICS Area Detector HDF plug-in.


  • Based on Hierarchical Data Format 5 (HDF5).
  • Focuses on technique rather than instrument descriptions.
  • Provenance tracking for understanding analysis steps and results.
  • Ease of readability.