Levels of NeXus compliance & More compression

Mark Koennecke Mark.Koennecke at psi.ch
Thu Jan 27 07:15:14 GMT 2000


  Sorry for replying late to this....


On Fri, 21 Jan 2000 C.M.Moreton-Smith at rl.ac.uk wrote:

> Level 0 NeXus Files
> -------------------
> At ISIS, we can now automatically create what I'm calling "Level 0" or
> ".nx0" NeXus file from any ISIS raw file using an automatic conversion
> program.  The Level 0 specifies the minimum level of NeXus compliance,
> simply that the file is written using only the NeXus API, nothing else, no
> dictionary or structure.
> 
> Even at this level, NeXus is very valuable, it insulates us from the
> complexities of HDF, it provides for a unified set of code for reading and
> writing and since compression is part of the standard, it now allows us to
> create smaller files just by re-writing them!
> 
> Level 1 NeXus Files
> -------------------
> These I think are what we are discussing currently as NeXus files;
> informally, we aim to provide the normally expected NeXus groups,
> appropriate attributes for axes etc. but we are fairly flexible about what
> has to be there - and in fact, we can't really tell the difference between a
> "valid" data file or not.  Extra fields can be added and most dictionary
> fields are optional.
> 
> Level 2 NeXus Files
> -------------------
> When we start describing specific file formats for, say, reflectometry.  It
> becomes more important to be sure that the file is a valid file for a
> particular group of users.  At this point we could really do with being able
> to define the sort of data in the data group, specific elements in the
> instrument configuration which must be there and, importantly, be able to
> validate the file automatically against a definition.  At the point of a
> definition and some form of automatic validation I think we cross from a
> Level 1 to a Level 2 file.

  I think this is a nice way of looking at it. In this scheme we are
  currently creating Level 1 NeXus files. Level 2 is ill defined because
  our glossary is ill defined and we do not have a scheme for defining and
  validating an instrument description. For a fully general reading
  routine for a specific instrument type, for example a powder
  diffractometer, it would be nice if  structures and names match up. This
  part of NeXus still needs development.

  Semi consciously I was aware of this already after my first data file 
  definition, for the powder diffractometer. Partly this was the reason
  to devise NXDICT which allows me to change names and placements of data
  items in the file by editing the template file.  
     
> Compression ++
> ==============
> Currently a de-motivator to storing our data in NeXus is that the
> compression is not as good as we can currently get with our native format
> files.  We use two simple FORTRAN routines which compress/decompress our
> integer signal data based on the assumption that the difference between two
> adjacent data points can usually be stored as a relative offset in a single
> byte rather than as a longword integer value.
> 
  I would follow Ray in this respect that I'am reluctant to give up
  general HDF reading tools for this. And I think the case should be
  proven more carefully. Tim Mooney made extensive tests with compression 
  and achieved surprisingly good results with the HDF compression schemes. 
  One would need to prove that the ISIS scheme + LZW or whatever is
  really substantially better then the HDF-schemes alone for a couple of
  dozen data files from different instruments. 

                   Regards,

                            Mark
  




More information about the NeXus mailing list