[NeXus-committee] obsolescence and evolution: NeXus needs a historic dimension

Pete Jemian prjemian at gmail.com
Wed Jul 16 18:25:52 BST 2014


On 7/16/2014 9:48 AM, Joachim Wuttke wrote:
> Are raw NeXus visualization tools actually used by instrument
> scientists?  Where?

* PyMCA is often my first suggestion for raw GUI visualization.
* HDFview is the most raw GUI tool, good for cursory inspection.
* h5dump is good for inspection of content as text.
* h5toText is good for inspection of structure as text.
* NeXpy is a GUI tool that is not only aware of NeXus
   structure, but relies on it.  You can double-click the
   NXentry group and a default visualization will be
   generated.  That is enabled by an implementation of the
   strategy to find the plottable data given in the manual [1]:
 
http://download.nexusformat.org/doc/html/datarules.html#find-plottable-data

All of these are general purpose tools used at APS, in addition to other 
custom software.

1. [note for documentation editor:
strategy to find the plottable data is also given here:
 
http://download.nexusformat.org/doc/html/design.html#nxdata-facilitates-automatic-plotting 

resolve these two and present it only once in the manual, reference from 
the other place]

 > Why aren't they running their raw-data through
> some method-specific reduction?

Now, you are talking about data files with more than just the required 
content.  And the goal has changed from visualization to method-specific 
reduction.

Consider this hypothetical.  Reduction might need the monochromatic 
wavelength (not a TOF instrument).  The contract from NeXus is that the 
wavelength is provided on this general path:

/: NeXus HDF5 data file
   <name>:NXentry
     <name>:NXinstrument
       <name>:NXmonochromator
         wavelength:NX_FLOAT
           @units="<NX_WAVELENGTH>"

Here, <name> is not specified by NeXus (the community has told us they 
want this flexibility to choose the HDF5 names of NeXus groups). 
However, the NeXus group can be determined by looking at the NX_class 
attribute of the HDF5 group.  Thus, the contract is that the instrument 
wavelength is spelled "wavelength" (and not Wavelength or lambda or 
...), the value is a floating point number, and the supplied units are 
"any valid wavelength units" with the suggestion from the documentation 
of "example: Angstrom".  Further to the contract, the wavelength (if 
present) will be presented on the class path shown above.  The standard 
for base classes does not say the wavelength must be present, it only 
defines how it will be spelled, where it will be stored, and what is the 
data type and the type of units.

Using more fields and base classes, the description of an instrument can 
become more rich.  And more specific to that particular implementation 
of that instrument.

For example, a hypothetical reduction method may compute Q from the raw 
data.  With monochromatic wavelength, one data reduction method would 
need 2theta.  Here's an example of where to expect 2theta: 
http://download.nexusformat.org/doc/html/design.html#links

However, such hypothetical method-specific data reduction must agree on 
the name of the 2theta data, and its location.  This is done by 
specification in an application definition.

One must presume instrument scientists and/or their users _always_ run 
their raw data through method-specific (and current instrument 
implementation specific) reduction methods.  The might or might not use 
generic visualization tools.  Those instrument-specific methods may 
provide visualization.  As you have identified, there are always 
differences between two implementations of the same instrument.  Even 
the same instrument can be changed from user to user.
Then, after reduction, scientists apply methods appropriate to the 
scientific analysis of interest.

Pete



More information about the NeXus-committee mailing list