.. auto-generated by script ../../../../utils/nxdl2rst.py from the NXDL source NXstxm.nxdl.xml

.. index::
    ! NXstxm (application definition)
    ! stxm (application definition)
    see: stxm (application definition); NXstxm

.. _NXstxm:

======
NXstxm
======

**Status**:

  application definition, extends :ref:`NXobject`

**Description**:

  Application definition for a STXM instrument.

  The interferometer
  position measurements, monochromator photon energy values and
  detector measurements are all treated as NXdetectors and stored
  within the NXinstrument group as lists of values stored in 
  chronological order. The NXdata group then holds another version
  of the data in a regular 3D array (NumE by NumY by NumX, for a
  total of nP points in a sample image stack type scan). The former
  data values should be stored with a minimum loss of precision, while
  the latter values can be simplified and/or approximated in order to
  fit the constraints of a regular 3D array. 'Line scans' and 'point spectra'
  are just sample_image scan types with reduced dimensions in the same way 
  as single images have reduced E dimensions compared to image 'stacks'.

**Symbols**:

  These symbols will be used below to coordinate the shapes of the datasets.

  **nP**: Total number of scan points

  **nE**: Number of photon energies scanned

  **nX**: Number of pixels in X direction

  **nY**: Number of pixels in Y direction

  **detectorRank**: Rank of data array provided by the detector for a single measurement

**Groups cited**:
  :ref:`NXdata`, :ref:`NXdetector`, :ref:`NXentry`, :ref:`NXinstrument`, :ref:`NXmonitor`, :ref:`NXmonochromator`, :ref:`NXsample`, :ref:`NXsource`

.. index:: NXentry (base class); used in application definition, NXinstrument (base class); used in application definition, NXsource (base class); used in application definition, NXmonochromator (base class); used in application definition, NXdetector (base class); used in application definition, NXsample (base class); used in application definition, NXdata (base class); used in application definition, NXmonitor (base class); used in application definition

**Structure**:

  .. _/NXstxm/ENTRY-group:

  **ENTRY**: (required) :ref:`NXentry`


    .. _/NXstxm/ENTRY/title-field:

    .. index:: title (field)

    **title**: (required) :ref:`NX_CHAR <NX_CHAR>`


    .. _/NXstxm/ENTRY/start_time-field:

    .. index:: start_time (field)

    **start_time**: (required) :ref:`NX_DATE_TIME <NX_DATE_TIME>`


    .. _/NXstxm/ENTRY/end_time-field:

    .. index:: end_time (field)

    **end_time**: (required) :ref:`NX_DATE_TIME <NX_DATE_TIME>`


    .. _/NXstxm/ENTRY/definition-field:

    .. index:: definition (field)

    **definition**: (required) :ref:`NX_CHAR <NX_CHAR>`

      Official NeXus NXDL schema to which this file conforms

      Obligatory value: ``NXstxm``

    .. _/NXstxm/ENTRY/INSTRUMENT-group:

    **INSTRUMENT**: (required) :ref:`NXinstrument`


      .. _/NXstxm/ENTRY/INSTRUMENT/SOURCE-group:

      **SOURCE**: (required) :ref:`NXsource`


        .. _/NXstxm/ENTRY/INSTRUMENT/SOURCE/type-field:

        .. index:: type (field)

        **type**: (required) :ref:`NX_CHAR <NX_CHAR>`


        .. _/NXstxm/ENTRY/INSTRUMENT/SOURCE/name-field:

        .. index:: name (field)

        **name**: (required) :ref:`NX_CHAR <NX_CHAR>`


        .. _/NXstxm/ENTRY/INSTRUMENT/SOURCE/probe-field:

        .. index:: probe (field)

        **probe**: (required) :ref:`NX_CHAR <NX_CHAR>`


      .. _/NXstxm/ENTRY/INSTRUMENT/monochromator-group:

      **monochromator**: (required) :ref:`NXmonochromator`


        .. _/NXstxm/ENTRY/INSTRUMENT/monochromator/energy-field:

        .. index:: energy (field)

        **energy[nP]**: (required) :ref:`NX_FLOAT <NX_FLOAT>`


      .. _/NXstxm/ENTRY/INSTRUMENT/DETECTOR-group:

      **DETECTOR**: (required) :ref:`NXdetector`


        .. _/NXstxm/ENTRY/INSTRUMENT/DETECTOR/data-field:

        .. index:: data (field)

        **data[nP]**: (required) :ref:`NX_NUMBER <NX_NUMBER>`


      .. _/NXstxm/ENTRY/INSTRUMENT/sample_x-group:

      **sample_x**: (optional) :ref:`NXdetector`

        Measurements of the sample position from the x-axis interferometer.

        .. _/NXstxm/ENTRY/INSTRUMENT/sample_x/data-field:

        .. index:: data (field)

        **data[nP]**: (required) :ref:`NX_FLOAT <NX_FLOAT>`


      .. _/NXstxm/ENTRY/INSTRUMENT/sample_y-group:

      **sample_y**: (optional) :ref:`NXdetector`

        Measurements of the sample position from the y-axis interferometer.

        .. _/NXstxm/ENTRY/INSTRUMENT/sample_y/data-field:

        .. index:: data (field)

        **data[nP]**: (required) :ref:`NX_FLOAT <NX_FLOAT>`


      .. _/NXstxm/ENTRY/INSTRUMENT/sample_z-group:

      **sample_z**: (optional) :ref:`NXdetector`

        Measurements of the sample position from the z-axis interferometer.

        .. _/NXstxm/ENTRY/INSTRUMENT/sample_z/data-field:

        .. index:: data (field)

        **data[nP]**: (required) :ref:`NX_FLOAT <NX_FLOAT>`


    .. _/NXstxm/ENTRY/SAMPLE-group:

    **SAMPLE**: (required) :ref:`NXsample`


      .. _/NXstxm/ENTRY/SAMPLE/rotation_angle-field:

      .. index:: rotation_angle (field)

      **rotation_angle**: (required) :ref:`NX_FLOAT <NX_FLOAT>`


    .. _/NXstxm/ENTRY/DATA-group:

    **DATA**: (required) :ref:`NXdata`


      .. _/NXstxm/ENTRY/DATA/stxm_scan_type-field:

      .. index:: stxm_scan_type (field)

      **stxm_scan_type**: (required) :ref:`NX_CHAR <NX_CHAR>`

        Label for typical scan types as a convenience for humans. 
                       Each label corresponds to a specific set of axes being scanned 
                       to produce a data array of shape:

                       * sample point spectrum: (photon_energy,)
                       * sample line spectrum: (photon_energy, sample_y/sample_x)
                       * sample image: (sample_y, sample_x)
                       * sample image stack: (photon_energy, sample_y, sample_x)
                       * sample focus: (zoneplate_z, sample_y/sample_x)
                       * osa image: (osa_y, osa_x)
                       * osa focus: (zoneplate_z, osa_y/osa_x)
                       * detector image: (detector_y, detector_x)

                       The "generic scan" string is to be used when none of the 
                       other choices are appropriate.

        Any of these values:

          * ``sample point spectrum``

          * ``sample line spectrum``

          * ``sample image``

          * ``sample image stack``

          * ``sample focus``

          * ``osa image``

          * ``osa focus``

          * ``detector image``

          * ``generic scan``


      .. _/NXstxm/ENTRY/DATA/data-field:

      .. index:: data (field)

      **data**: (required) :ref:`NX_NUMBER <NX_NUMBER>`

        Detectors that provide more than one value per scan point should be summarised
                     to a single value per scan point for this array in order to simplify plotting.

                     Note that 'Line scans' and focus type scans measure along one spatial dimension
                     but are not restricted to being parallel to the X or Y axes. Such scans 
                     should therefore use a single dimension for the positions along the spatial
                     line. The 'sample_x' and 'sample_y' fields should then contain lists of the
                     x- and y-positions and should both have the 'axis' attribute pointing to the same dimension.

      .. _/NXstxm/ENTRY/DATA/energy-field:

      .. index:: energy (field)

      **energy[nE]**: (required) :ref:`NX_FLOAT <NX_FLOAT>`

        List of photon energies of the X-ray beam. If scanned through multiple values,
                     then an 'axis' attribute will be required to link the field to the appropriate data array dimension.

      .. _/NXstxm/ENTRY/DATA/sample_y-field:

      .. index:: sample_y (field)

      **sample_y[nY]**: (required) :ref:`NX_FLOAT <NX_FLOAT>`

        List of Y positions on the sample. If scanned through multiple values,
                     then an 'axis' attribute will be required to link the field to the appropriate data array dimension.

      .. _/NXstxm/ENTRY/DATA/sample_x-field:

      .. index:: sample_x (field)

      **sample_x[nX]**: (required) :ref:`NX_FLOAT <NX_FLOAT>`

        List of X positions on the sample. If scanned through multiple values,
                     then an 'axis' attribute will be required to link the field to the appropriate data array dimension.

    .. _/NXstxm/ENTRY/control-group:

    **control**: (optional) :ref:`NXmonitor`


      .. _/NXstxm/ENTRY/control/data-field:

      .. index:: data (field)

      **data**: (required) :ref:`NX_FLOAT <NX_FLOAT>`

        Values to use to normalise for time-variations in photon flux. Typically, the synchrotron storage ring
                     electron beam current is used as a proxy for the X-ray beam intensity. Array must have same shape as the
                     NXdata groups.


Hypertext Anchors
-----------------

Table of hypertext anchors for all groups, fields,
attributes, and links defined in this class.


================================================================================================================ ================================================================================================================
documentation (reST source) anchor                                                                               web page (HTML) anchor                                                                                          
================================================================================================================ ================================================================================================================
:ref:`/NXstxm/ENTRY-group </NXstxm/ENTRY-group>`                                                                 :ref:`#nxstxm-entry-group </NXstxm/ENTRY-group>`                                                                
:ref:`/NXstxm/ENTRY/control-group </NXstxm/ENTRY/control-group>`                                                 :ref:`#nxstxm-entry-control-group </NXstxm/ENTRY/control-group>`                                                
:ref:`/NXstxm/ENTRY/control/data-field </NXstxm/ENTRY/control/data-field>`                                       :ref:`#nxstxm-entry-control-data-field </NXstxm/ENTRY/control/data-field>`                                      
:ref:`/NXstxm/ENTRY/DATA-group </NXstxm/ENTRY/DATA-group>`                                                       :ref:`#nxstxm-entry-data-group </NXstxm/ENTRY/DATA-group>`                                                      
:ref:`/NXstxm/ENTRY/DATA/data-field </NXstxm/ENTRY/DATA/data-field>`                                             :ref:`#nxstxm-entry-data-data-field </NXstxm/ENTRY/DATA/data-field>`                                            
:ref:`/NXstxm/ENTRY/DATA/energy-field </NXstxm/ENTRY/DATA/energy-field>`                                         :ref:`#nxstxm-entry-data-energy-field </NXstxm/ENTRY/DATA/energy-field>`                                        
:ref:`/NXstxm/ENTRY/DATA/sample_x-field </NXstxm/ENTRY/DATA/sample_x-field>`                                     :ref:`#nxstxm-entry-data-sample-x-field </NXstxm/ENTRY/DATA/sample_x-field>`                                    
:ref:`/NXstxm/ENTRY/DATA/sample_y-field </NXstxm/ENTRY/DATA/sample_y-field>`                                     :ref:`#nxstxm-entry-data-sample-y-field </NXstxm/ENTRY/DATA/sample_y-field>`                                    
:ref:`/NXstxm/ENTRY/DATA/stxm_scan_type-field </NXstxm/ENTRY/DATA/stxm_scan_type-field>`                         :ref:`#nxstxm-entry-data-stxm-scan-type-field </NXstxm/ENTRY/DATA/stxm_scan_type-field>`                        
:ref:`/NXstxm/ENTRY/definition-field </NXstxm/ENTRY/definition-field>`                                           :ref:`#nxstxm-entry-definition-field </NXstxm/ENTRY/definition-field>`                                          
:ref:`/NXstxm/ENTRY/end_time-field </NXstxm/ENTRY/end_time-field>`                                               :ref:`#nxstxm-entry-end-time-field </NXstxm/ENTRY/end_time-field>`                                              
:ref:`/NXstxm/ENTRY/INSTRUMENT-group </NXstxm/ENTRY/INSTRUMENT-group>`                                           :ref:`#nxstxm-entry-instrument-group </NXstxm/ENTRY/INSTRUMENT-group>`                                          
:ref:`/NXstxm/ENTRY/INSTRUMENT/DETECTOR-group </NXstxm/ENTRY/INSTRUMENT/DETECTOR-group>`                         :ref:`#nxstxm-entry-instrument-detector-group </NXstxm/ENTRY/INSTRUMENT/DETECTOR-group>`                        
:ref:`/NXstxm/ENTRY/INSTRUMENT/DETECTOR/data-field </NXstxm/ENTRY/INSTRUMENT/DETECTOR/data-field>`               :ref:`#nxstxm-entry-instrument-detector-data-field </NXstxm/ENTRY/INSTRUMENT/DETECTOR/data-field>`              
:ref:`/NXstxm/ENTRY/INSTRUMENT/monochromator-group </NXstxm/ENTRY/INSTRUMENT/monochromator-group>`               :ref:`#nxstxm-entry-instrument-monochromator-group </NXstxm/ENTRY/INSTRUMENT/monochromator-group>`              
:ref:`/NXstxm/ENTRY/INSTRUMENT/monochromator/energy-field </NXstxm/ENTRY/INSTRUMENT/monochromator/energy-field>` :ref:`#nxstxm-entry-instrument-monochromator-energy-field </NXstxm/ENTRY/INSTRUMENT/monochromator/energy-field>`
:ref:`/NXstxm/ENTRY/INSTRUMENT/sample_x-group </NXstxm/ENTRY/INSTRUMENT/sample_x-group>`                         :ref:`#nxstxm-entry-instrument-sample-x-group </NXstxm/ENTRY/INSTRUMENT/sample_x-group>`                        
:ref:`/NXstxm/ENTRY/INSTRUMENT/sample_x/data-field </NXstxm/ENTRY/INSTRUMENT/sample_x/data-field>`               :ref:`#nxstxm-entry-instrument-sample-x-data-field </NXstxm/ENTRY/INSTRUMENT/sample_x/data-field>`              
:ref:`/NXstxm/ENTRY/INSTRUMENT/sample_y-group </NXstxm/ENTRY/INSTRUMENT/sample_y-group>`                         :ref:`#nxstxm-entry-instrument-sample-y-group </NXstxm/ENTRY/INSTRUMENT/sample_y-group>`                        
:ref:`/NXstxm/ENTRY/INSTRUMENT/sample_y/data-field </NXstxm/ENTRY/INSTRUMENT/sample_y/data-field>`               :ref:`#nxstxm-entry-instrument-sample-y-data-field </NXstxm/ENTRY/INSTRUMENT/sample_y/data-field>`              
:ref:`/NXstxm/ENTRY/INSTRUMENT/sample_z-group </NXstxm/ENTRY/INSTRUMENT/sample_z-group>`                         :ref:`#nxstxm-entry-instrument-sample-z-group </NXstxm/ENTRY/INSTRUMENT/sample_z-group>`                        
:ref:`/NXstxm/ENTRY/INSTRUMENT/sample_z/data-field </NXstxm/ENTRY/INSTRUMENT/sample_z/data-field>`               :ref:`#nxstxm-entry-instrument-sample-z-data-field </NXstxm/ENTRY/INSTRUMENT/sample_z/data-field>`              
:ref:`/NXstxm/ENTRY/INSTRUMENT/SOURCE-group </NXstxm/ENTRY/INSTRUMENT/SOURCE-group>`                             :ref:`#nxstxm-entry-instrument-source-group </NXstxm/ENTRY/INSTRUMENT/SOURCE-group>`                            
:ref:`/NXstxm/ENTRY/INSTRUMENT/SOURCE/name-field </NXstxm/ENTRY/INSTRUMENT/SOURCE/name-field>`                   :ref:`#nxstxm-entry-instrument-source-name-field </NXstxm/ENTRY/INSTRUMENT/SOURCE/name-field>`                  
:ref:`/NXstxm/ENTRY/INSTRUMENT/SOURCE/probe-field </NXstxm/ENTRY/INSTRUMENT/SOURCE/probe-field>`                 :ref:`#nxstxm-entry-instrument-source-probe-field </NXstxm/ENTRY/INSTRUMENT/SOURCE/probe-field>`                
:ref:`/NXstxm/ENTRY/INSTRUMENT/SOURCE/type-field </NXstxm/ENTRY/INSTRUMENT/SOURCE/type-field>`                   :ref:`#nxstxm-entry-instrument-source-type-field </NXstxm/ENTRY/INSTRUMENT/SOURCE/type-field>`                  
:ref:`/NXstxm/ENTRY/SAMPLE-group </NXstxm/ENTRY/SAMPLE-group>`                                                   :ref:`#nxstxm-entry-sample-group </NXstxm/ENTRY/SAMPLE-group>`                                                  
:ref:`/NXstxm/ENTRY/SAMPLE/rotation_angle-field </NXstxm/ENTRY/SAMPLE/rotation_angle-field>`                     :ref:`#nxstxm-entry-sample-rotation-angle-field </NXstxm/ENTRY/SAMPLE/rotation_angle-field>`                    
:ref:`/NXstxm/ENTRY/start_time-field </NXstxm/ENTRY/start_time-field>`                                           :ref:`#nxstxm-entry-start-time-field </NXstxm/ENTRY/start_time-field>`                                          
:ref:`/NXstxm/ENTRY/title-field </NXstxm/ENTRY/title-field>`                                                     :ref:`#nxstxm-entry-title-field </NXstxm/ENTRY/title-field>`                                                    
================================================================================================================ ================================================================================================================


**NXDL Source**:
  https://github.com/nexusformat/definitions/blob/main/applications/NXstxm.nxdl.xml