NeXus standard

Mark Koennecke Mark.Koennecke at psi.ch
Thu Nov 25 15:59:42 GMT 1999




On Wed, 24 Nov 1999, Eric Boucher wrote:

> 
> I am currently working on a tool to store our scan data into NeXus files.
> We have a 1D scan modules that can be programmed to move positionners and
> read detectors.
> By linking scan modules together we can acquire multidimensional datasets.
> 
> A 1D scan will look like:
> 
> pos1: ++++++++++++++++++     (axis=1)
> 
> det1: ++++++++++++++++++     (signal=1)
> 
> Easy to store into NeXus.
> 
> 
> A 2D scan will look like:
> 
> pos1_1: +++		 (axis=1 for det1_1 or axis=2 for det2_1)
> 
> det1_1: +++		 (signal=1)
> 
> pos2_1: ++++++++++ (axis=1)
>         ++++++++++
>         ++++++++++
> 
> det2_1: ++++++++++ (signal=1)
>         ++++++++++
>         ++++++++++
> 
> Their are some problems to store this kind of data into NeXus.
> 1) the pos1_1 is the X axis for det1_1 but the Y axis for det2_1 so I need
> to duplicate the data to give each copy a different axis attribute.
> 
  Eric,

  I'am afraid I do not fully understand the problem. To me a 2D scan is a
  2D dataset somehow like this:

       pos1 ->
  pos2 ******************************************
   |   ******************************************
   V   ******************************************
       ******************************************
       ******************************************
       ******************************************
                .
                .
       ******************************************

   with pos1 being the first axis varied and pos2 the second. I would
   store this then as:
      SDS counts(2D), signal = 1
      SDS pos1, axis = 1
      SDS pos2, axis = 2

   Why is this bad? Reasons I can think of:
   - you get the scan lines only one by one: then use NXputslab to 
     write just the scan line.
   - the positions for pos1 are wildly different for each step in pos2,
     i.e. your are measuring on an irregular grid. Then it is probably
     best to keep each scan separate in a different NXentry or at least
     NXdata, NXdetector. Or use the option in the next point.
   - you intend to measure on a regular grid, but your positioners are not
     quite up to that and position at random places (or not at all,
     sometimes). Then I would add two additional 2D datasets for trouble
     detection: real_pos1 and real_pos2, where the real (as given by
     your trusty?? encoder) positions of the positioners at each step are
     kept. 

   Concerning the projection business: If there is 2D data I would like
   to leave it at that. Creating projections along a dimension is IMHO
   something which should be an option of the data analysis software.
   Any further opinions? 

   
   Mark Koennecke







More information about the NeXus mailing list