Associating Axes with Data

The current scheme we use in NeXus for associating axes with data was mainly devised as a means to work around a limitation of HDF-4. Namely the fact that there was one global namespace for dimension scales. Dimension scales are HDF way of associating axes with data by storing them as properties of the data. Now, this limitation of HDF has since long fallen. Moreover there are a number of use cases which are not well covered by what we do today. Thus this page describes how to improve. Discussion comments should be placed in the source for this page (Associating_Axes_with_Data.md) in the wiki repo.

Requirements

This is a recapitulation of what we have to achieve for a multidimensional dataset:

  • The axes give a plot meaning

  • For data reduction or analysis we need to know exactly data was measured in either the instrument or another coordinate system

  • There may be different sets of axes for the same data in different coordinate schemes. An example: raw time of flight binning versus the same axis converted to energy transfer or d-spacing.

  • With multidimensional scans, we may have scan intent axes (describing how the scan was planned) and axes describing what really happened. Giving motor read backs for each motor for each point in the multi dimensional dataset. This situation can cause multiple axis fields for the data, one for each variable varied in the multi dimensional scan.

  • Axes may or may not be regular.

Solution

See 2014_axes_and_uncertainties This proposal has been accepted by NIAC at NIAC 2014 with a few modification. There is still some resistance to the new scheme, thus this page stays in place.

This update: 01/2015