diff --git a/.gitignore b/.gitignore index d15843202..9b0fe6610 100644 --- a/.gitignore +++ b/.gitignore @@ -88,6 +88,8 @@ cover/ # Django stuff: *.log +!tests/data/dataconverter/readers/mpes/Ref_nexus_mpes.log +!tests/data/nexus/Ref_nexus_test.log local_settings.py db.sqlite3 db.sqlite3-journal diff --git a/pynxtools/definitions b/pynxtools/definitions index 81c322910..3556005b7 160000 --- a/pynxtools/definitions +++ b/pynxtools/definitions @@ -1 +1 @@ -Subproject commit 81c3229100a9a8b1be4085cf16a65b279975757d +Subproject commit 3556005b7949dcd7314d085e989a1d3a58751e35 diff --git a/tests/data/dataconverter/readers/mpes/Ref_nexus_mpes.log b/tests/data/dataconverter/readers/mpes/Ref_nexus_mpes.log new file mode 100644 index 000000000..b9241804a --- /dev/null +++ b/tests/data/dataconverter/readers/mpes/Ref_nexus_mpes.log @@ -0,0 +1,5235 @@ +DEBUG - ===== GROUP (//entry [NXmpes::/NXentry]): +DEBUG - classpath: ['NXentry'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY +NXentry.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY): +DEBUG - +DEBUG - documentation (NXentry.nxdl.xml:): +DEBUG - + (**required**) :ref:`NXentry` describes the measurement. + + The top-level NeXus group which contains all the data and associated + information that comprise a single measurement. + It is mandatory that there is at least one + group of this type in the NeXus file. + +DEBUG - ===== ATTRS (//entry@NX_class) +DEBUG - value: NXentry +DEBUG - classpath: ['NXentry'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY +NXentry.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== ATTRS (//entry@default) +DEBUG - value: data +DEBUG - classpath: ['NXentry'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY +NXentry.nxdl.xml: +DEBUG - NXmpes.nxdl.xml:/ENTRY@default - [NX_CHAR] +DEBUG - NXentry.nxdl.xml:@default - [NX_CHAR] +DEBUG - documentation (NXentry.nxdl.xml:/default): +DEBUG - + .. index:: find the default plottable data + .. index:: plotting + .. index:: default attribute value + + Declares which :ref:`NXdata` group contains the data + to be shown by default. + It is used to resolve ambiguity when + one :ref:`NXdata` group exists. + The value :ref:`names ` a child group. If that group + itself has a ``default`` attribute, continue this chain until an + :ref:`NXdata` group is reached. + + For more information about how NeXus identifies the default + plottable data, see the + :ref:`Find Plottable Data, v3 ` + section. + +DEBUG - ===== FIELD (//entry/collection_time): +DEBUG - value: 2317.343 +DEBUG - classpath: ['NXentry', 'NX_FLOAT'] +DEBUG - classes: +NXentry.nxdl.xml:/collection_time +DEBUG - <> +DEBUG - documentation (NXentry.nxdl.xml:/collection_time): +DEBUG - + Time transpired actually collecting data i.e. taking out time when collection was + suspended due to e.g. temperature out of range + +DEBUG - ===== ATTRS (//entry/collection_time@units) +DEBUG - value: s +DEBUG - classpath: ['NXentry', 'NX_FLOAT'] +DEBUG - classes: +NXentry.nxdl.xml:/collection_time +DEBUG - NXentry.nxdl.xml:/collection_time@units [NX_TIME] +DEBUG - ===== GROUP (//entry/data [NXmpes::/NXentry/NXdata]): +DEBUG - classpath: ['NXentry', 'NXdata'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/DATA +NXentry.nxdl.xml:/DATA +NXdata.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/DATA): +DEBUG - +DEBUG - documentation (NXentry.nxdl.xml:/DATA): +DEBUG - + The data group + + .. note:: Before the NIAC2016 meeting [#]_, at least one + :ref:`NXdata` group was required in each :ref:`NXentry` group. + At the NIAC2016 meeting, it was decided to make :ref:`NXdata` + an optional group in :ref:`NXentry` groups for data files that + do not use an application definition. + It is recommended strongly that all NeXus data files provide + a NXdata group. + It is permissable to omit the NXdata group only when + defining the default plot is not practical or possible + from the available data. + + For example, neutron event data may not have anything that + makes a useful plot without extensive processing. + + Certain application definitions override this decision and + require an :ref:`NXdata` group + in the :ref:`NXentry` group. The ``minOccurs=0`` attribute + in the application definition will indicate the + :ref:`NXdata` group + is optional, otherwise, it is required. + + .. [#] NIAC2016: + https://www.nexusformat.org/NIAC2016.html, + https://github.com/nexusformat/NIAC/issues/16 + +DEBUG - documentation (NXdata.nxdl.xml:): +DEBUG - + :ref:`NXdata` describes the plottable data and related dimension scales. + + .. index:: plotting + + It is strongly recommended that there is at least one :ref:`NXdata` + group in each :ref:`NXentry` group. + Note that the fields named ``AXISNAME`` and ``DATA`` + can be defined with different names. + (Upper case is used to indicate that the actual name is left to the user.) + The ``signal`` and ``axes`` attributes of the + ``data`` group define which items + are plottable data and which are *dimension scales*, respectively. + + :ref:`NXdata` is used to implement one of the basic motivations in NeXus, + to provide a default plot for the data of this :ref:`NXentry`. The actual data + might be stored in another group and (hard) linked to the :ref:`NXdata` group. + + * Each :ref:`NXdata` group will define one field as the default + plottable data. The value of the ``signal`` attribute names this field. + Additional fields may be used to describe the dimension scales and + uncertainities. + The ``auxiliary_signals`` attribute is a list of the other fields + to be plotted with the ``signal`` data. + * The plottable data may be of arbitrary rank up to a maximum + of ``NX_MAXRANK=32`` (for compatibility with backend file formats). + * The plottable data will be named as the value of + the group ``signal`` attribute, such as:: + + data:NXdata + @signal = "counts" + @axes = "mr" + @mr_indices = 0 + counts: float[100] --> the default dependent data + mr: float[100] --> the default independent data + + The field named in the ``signal`` attribute **must** exist, either + directly as a NeXus field or defined through a link. + + * The group ``axes`` attribute will name the + *dimension scale* associated with the plottable data. + + If available, the standard deviations of the data are to be + stored in a data set of the same rank and dimensions, with the name ``errors``. + + * For each data dimension, there should be a one-dimensional array + of the same length. + * These one-dimensional arrays are the *dimension scales* of the + data, *i.e*. the values of the independent variables at which the data + is measured, such as scattering angle or energy transfer. + + .. index:: link + .. index:: axes (attribute) + + The preferred method to associate each data dimension with + its respective dimension scale is to specify the field name + of each dimension scale in the group ``axes`` attribute as a string list. + Here is an example for a 2-D data set *data* plotted + against *time*, and *pressure*. (An additional *temperature* data set + is provided and could be selected as an alternate for the *pressure* axis.):: + + data_2d:NXdata + @signal="data" + @axes=["time", "pressure"] + @pressure_indices=1 + @temperature_indices=1 + @time_indices=0 + data: float[1000,20] + pressure: float[20] + temperature: float[20] + time: float[1000] + + .. rubric:: Old methods to identify the plottable data + + There are two older methods of associating + each data dimension to its respective dimension scale. + Both are now out of date and + should not be used when writing new data files. + However, client software should expect to see data files + written with any of these methods. + + * One method uses the ``axes`` + attribute to specify the names of each *dimension scale*. + + * The oldest method uses the ``axis`` attribute on each + *dimension scale* to identify + with an integer the axis whose value is the number of the dimension. + + .. index: !plot; axis label + plot, axis units + units + dimension scale + + Each axis of the plot may be labeled with information from the + dimension scale for that axis. The optional ``@long_name`` attribute + is provided as the axis label default. If ``@long_name`` is not + defined, then use the name of the dimension scale. A ``@units`` attribute, + if available, may be added to the axis label for further description. + See the section :ref:`Design-Units` for more information. + + .. index: !plot; axis title + + The optional ``title`` field, if available, provides a suggested + title for the plot. If no ``title`` field is found in the :ref:`NXdata` + group, look for a ``title`` field in the parent :ref:`NXentry` group, + with a fallback to displaying the path to the :ref:`NXdata` group. + + NeXus is about how to find and annotate the data to be plotted + but not to describe how the data is to be plotted. + (https://www.nexusformat.org/NIAC2018Minutes.html#nxdata-plottype--attribute) + +DEBUG - ===== ATTRS (//entry/data@NX_class) +DEBUG - value: NXdata +DEBUG - classpath: ['NXentry', 'NXdata'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/DATA +NXentry.nxdl.xml:/DATA +NXdata.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== ATTRS (//entry/data@axes) +DEBUG - value: ['kx' 'ky' 'energy' 'delay'] +DEBUG - classpath: ['NXentry', 'NXdata'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/DATA +NXentry.nxdl.xml:/DATA +NXdata.nxdl.xml: +DEBUG - NXdata.nxdl.xml:@axes - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXdata.nxdl.xml:/axes): +DEBUG - + .. index:: plotting + + Array of strings holding the :ref:`names ` of + the independent data fields used in the default plot for all of + the dimensions of the :ref:`signal ` + as well as any :ref:`auxiliary signals `. + + One name is provided for every dimension in the *signal* or *auxiliary signal* fields. + + The *axes* values are the names of fields or links that *must* exist and be direct + children of this NXdata group. + + An axis slice is specified using a field named ``AXISNAME_indices`` + as described below (where the text shown here as ``AXISNAME`` is to be + replaced by the actual field name). + + When no default axis is available for a particular dimension + of the plottable data, use a "." in that position. + Such as:: + + @axes=["time", ".", "."] + + Since there are three items in the list, the *signal* field + must be a three-dimensional array (rank=3). The first dimension + is described by the values of a one-dimensional array named ``time`` + while the other two dimensions have no fields to be used as dimension scales. + + See examples provided on the NeXus wiki: + https://www.nexusformat.org/2014_axes_and_uncertainties.html + + If there are no axes at all (such as with a stack of images), + the axes attribute can be omitted. + +DEBUG - ===== ATTRS (//entry/data@delay_indices) +DEBUG - value: 3 +DEBUG - classpath: ['NXentry', 'NXdata'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/DATA +NXentry.nxdl.xml:/DATA +NXdata.nxdl.xml: +DEBUG - @delay_indices - IS NOT IN SCHEMA +DEBUG - +DEBUG - ===== ATTRS (//entry/data@energy_indices) +DEBUG - value: 2 +DEBUG - classpath: ['NXentry', 'NXdata'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/DATA +NXentry.nxdl.xml:/DATA +NXdata.nxdl.xml: +DEBUG - @energy_indices - IS NOT IN SCHEMA +DEBUG - +DEBUG - ===== ATTRS (//entry/data@kx_indices) +DEBUG - value: 0 +DEBUG - classpath: ['NXentry', 'NXdata'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/DATA +NXentry.nxdl.xml:/DATA +NXdata.nxdl.xml: +DEBUG - @kx_indices - IS NOT IN SCHEMA +DEBUG - +DEBUG - ===== ATTRS (//entry/data@ky_indices) +DEBUG - value: 1 +DEBUG - classpath: ['NXentry', 'NXdata'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/DATA +NXentry.nxdl.xml:/DATA +NXdata.nxdl.xml: +DEBUG - @ky_indices - IS NOT IN SCHEMA +DEBUG - +DEBUG - ===== ATTRS (//entry/data@signal) +DEBUG - value: data +DEBUG - classpath: ['NXentry', 'NXdata'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/DATA +NXentry.nxdl.xml:/DATA +NXdata.nxdl.xml: +DEBUG - NXmpes.nxdl.xml:/ENTRY/DATA@signal - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXmpes.nxdl.xml:/ENTRY/DATA/signal): +DEBUG - -> data +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/DATA/signal): +DEBUG - +DEBUG - NXdata.nxdl.xml:@signal - [NX_CHAR] +DEBUG - documentation (NXdata.nxdl.xml:/signal): +DEBUG - + .. index:: find the default plottable data + .. index:: plotting + .. index:: signal attribute value + + Declares which NeXus field is the default. + The value is the :ref:`name ` of the data field to be plotted. + This field or link *must* exist and be a direct child of this NXdata group. + + It is recommended (as of NIAC2014) to use this attribute + rather than adding a signal attribute to the field. + See https://www.nexusformat.org/2014_How_to_find_default_data.html + for a summary of the discussion. + +DEBUG - ===== FIELD (//entry/data/data): +DEBUG - value: [[[1.14760e+04 1.64560e+04 1.55440e+04 1.48940e+04 1.08810e+04] ... +DEBUG - classpath: ['NXentry', 'NXdata', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/DATA/data +NXdata.nxdl.xml:/DATA +DEBUG - <> +DEBUG - Dataset referenced as NXdata SIGNAL +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/DATA/data): +DEBUG - + Represents a measure of one- or more-dimensional photoemission counts, where the + varied axis may be for example energy, momentum, spatial coordinate, pump-probe + delay, spin index, temperature, etc. The axes traces should be linked to the + actual encoder position in NXinstrument or calibrated axes in NXprocess. + +DEBUG - documentation (NXdata.nxdl.xml:/DATA): +DEBUG - + .. index:: plotting + + This field contains the data values to be used as the + NeXus *plottable data*. + Client is responsible for defining the dimensions of the data. + The name of this field may be changed to fit the circumstances. + Standard NeXus client tools will use the attributes to determine + how to use this field. + +DEBUG - ===== ATTRS (//entry/data/data@units) +DEBUG - value: counts +DEBUG - classpath: ['NXentry', 'NXdata', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/DATA/data +NXdata.nxdl.xml:/DATA +DEBUG - NXmpes.nxdl.xml:/ENTRY/DATA/data@units [NX_ANY] +DEBUG - NXdata.nxdl.xml:/DATA@units - REQUIRED, but undefined unit category +DEBUG - ===== FIELD (//entry/data/delay): +DEBUG - value: [-2000. 125. 2250. 4375. 6500.] +DEBUG - classpath: ['NXentry', 'NXdata', 'NX_NUMBER'] +DEBUG - classes: +NXdata.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - Dataset referenced as NXdata AXIS #3 +DEBUG - documentation (NXdata.nxdl.xml:/AXISNAME): +DEBUG - + Dimension scale defining an axis of the data. + Client is responsible for defining the dimensions of the data. + The name of this field may be changed to fit the circumstances. + Standard NeXus client tools will use the attributes to determine + how to use this field. + +DEBUG - ===== ATTRS (//entry/data/delay@units) +DEBUG - value: ps +DEBUG - classpath: ['NXentry', 'NXdata', 'NX_NUMBER'] +DEBUG - classes: +NXdata.nxdl.xml:/AXISNAME +DEBUG - NXdata.nxdl.xml:/AXISNAME@units - REQUIRED, but undefined unit category +DEBUG - ===== FIELD (//entry/data/energy): +DEBUG - value: [-4. -3.44444444 -2.88888889 -2.33333333 -1.77777778 -1.22222222 ... +DEBUG - classpath: ['NXentry', 'NXdata', 'NX_NUMBER'] +DEBUG - classes: +NXdata.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - Dataset referenced as NXdata AXIS #2 +DEBUG - documentation (NXdata.nxdl.xml:/AXISNAME): +DEBUG - + Dimension scale defining an axis of the data. + Client is responsible for defining the dimensions of the data. + The name of this field may be changed to fit the circumstances. + Standard NeXus client tools will use the attributes to determine + how to use this field. + +DEBUG - ===== ATTRS (//entry/data/energy@units) +DEBUG - value: eV +DEBUG - classpath: ['NXentry', 'NXdata', 'NX_NUMBER'] +DEBUG - classes: +NXdata.nxdl.xml:/AXISNAME +DEBUG - NXdata.nxdl.xml:/AXISNAME@units - REQUIRED, but undefined unit category +DEBUG - ===== FIELD (//entry/data/kx): +DEBUG - value: [-1.5 -1.16666667 -0.83333333 -0.5 -0.16666667 0.16666667 ... +DEBUG - classpath: ['NXentry', 'NXdata', 'NX_NUMBER'] +DEBUG - classes: +NXdata.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - Dataset referenced as NXdata AXIS #0 +DEBUG - documentation (NXdata.nxdl.xml:/AXISNAME): +DEBUG - + Dimension scale defining an axis of the data. + Client is responsible for defining the dimensions of the data. + The name of this field may be changed to fit the circumstances. + Standard NeXus client tools will use the attributes to determine + how to use this field. + +DEBUG - ===== ATTRS (//entry/data/kx@units) +DEBUG - value: 1/A +DEBUG - classpath: ['NXentry', 'NXdata', 'NX_NUMBER'] +DEBUG - classes: +NXdata.nxdl.xml:/AXISNAME +DEBUG - NXdata.nxdl.xml:/AXISNAME@units - REQUIRED, but undefined unit category +DEBUG - ===== FIELD (//entry/data/ky): +DEBUG - value: [-1.5 -1.16666667 -0.83333333 -0.5 -0.16666667 0.16666667 ... +DEBUG - classpath: ['NXentry', 'NXdata', 'NX_NUMBER'] +DEBUG - classes: +NXdata.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - Dataset referenced as NXdata AXIS #1 +DEBUG - documentation (NXdata.nxdl.xml:/AXISNAME): +DEBUG - + Dimension scale defining an axis of the data. + Client is responsible for defining the dimensions of the data. + The name of this field may be changed to fit the circumstances. + Standard NeXus client tools will use the attributes to determine + how to use this field. + +DEBUG - ===== ATTRS (//entry/data/ky@units) +DEBUG - value: 1/A +DEBUG - classpath: ['NXentry', 'NXdata', 'NX_NUMBER'] +DEBUG - classes: +NXdata.nxdl.xml:/AXISNAME +DEBUG - NXdata.nxdl.xml:/AXISNAME@units - REQUIRED, but undefined unit category +DEBUG - ===== FIELD (//entry/definition): +DEBUG - value: b'NXmpes' +DEBUG - classpath: ['NXentry', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/definition +NXentry.nxdl.xml:/definition +DEBUG - <> +DEBUG - enumeration (NXmpes.nxdl.xml:/ENTRY/definition): +DEBUG - -> NXmpes +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/definition): +DEBUG - +DEBUG - documentation (NXentry.nxdl.xml:/definition): +DEBUG - + (alternate use: see same field in :ref:`NXsubentry` for preferred) + + Official NeXus NXDL schema to which this entry conforms which must be + the name of the NXDL file (case sensitive without the file extension) + that the NXDL schema is defined in. + + For example the ``definition`` field for a file that conformed to the + *NXarpes.nxdl.xml* definition must contain the string **NXarpes**. + + This field is provided so that :ref:`NXentry` can be the overlay position + in a NeXus data file for an application definition and its + set of groups, fields, and attributes. + + *It is advised* to use :ref:`NXsubentry`, instead, as the overlay position. + +DEBUG - ===== ATTRS (//entry/definition@version) +DEBUG - value: None +DEBUG - classpath: ['NXentry', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/definition +NXentry.nxdl.xml:/definition +DEBUG - NXmpes.nxdl.xml:/ENTRY/definition@version - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/definition/version): +DEBUG - +DEBUG - NXentry.nxdl.xml:/definition@version - [NX_CHAR] +DEBUG - documentation (NXentry.nxdl.xml:/definition/version): +DEBUG - + NXDL version number + +DEBUG - ===== FIELD (//entry/duration): +DEBUG - value: 2317 +DEBUG - classpath: ['NXentry', 'NX_INT'] +DEBUG - classes: +NXentry.nxdl.xml:/duration +DEBUG - <> +DEBUG - documentation (NXentry.nxdl.xml:/duration): +DEBUG - + Duration of measurement + +DEBUG - ===== ATTRS (//entry/duration@units) +DEBUG - value: s +DEBUG - classpath: ['NXentry', 'NX_INT'] +DEBUG - classes: +NXentry.nxdl.xml:/duration +DEBUG - NXentry.nxdl.xml:/duration@units [NX_TIME] +DEBUG - ===== FIELD (//entry/end_time): +DEBUG - value: b'2019-05-23T18:52:32+00:00' +DEBUG - classpath: ['NXentry', 'NX_DATE_TIME'] +DEBUG - classes: +NXentry.nxdl.xml:/end_time +DEBUG - <> +DEBUG - documentation (NXentry.nxdl.xml:/end_time): +DEBUG - + Ending time of measurement + +DEBUG - ===== FIELD (//entry/entry_identifier): +DEBUG - value: b'2019/2019_05/2019_05_23/Scan005' +DEBUG - classpath: ['NXentry', 'NX_CHAR'] +DEBUG - classes: +NXentry.nxdl.xml:/entry_identifier +DEBUG - <> +DEBUG - documentation (NXentry.nxdl.xml:/entry_identifier): +DEBUG - + unique identifier for the measurement, defined by the facility. + +DEBUG - ===== FIELD (//entry/experiment_facility): +DEBUG - value: b'Time Resolved ARPES' +DEBUG - classpath: ['NXentry', 'NX_CHAR'] +DEBUG - classes: +NXentry.nxdl.xml:/experiment_facility +DEBUG - <> +DEBUG - documentation (NXentry.nxdl.xml:/experiment_facility): +DEBUG - + Name of the experimental facility + +DEBUG - ===== FIELD (//entry/experiment_institution): +DEBUG - value: b'Fritz Haber Institute - Max Planck Society' +DEBUG - classpath: ['NXentry', 'NX_CHAR'] +DEBUG - classes: +NXentry.nxdl.xml:/experiment_institution +DEBUG - <> +DEBUG - documentation (NXentry.nxdl.xml:/experiment_institution): +DEBUG - + Name of the institution hosting the facility + +DEBUG - ===== FIELD (//entry/experiment_laboratory): +DEBUG - value: b'Clean Room 4' +DEBUG - classpath: ['NXentry', 'NX_CHAR'] +DEBUG - classes: +NXentry.nxdl.xml:/experiment_laboratory +DEBUG - <> +DEBUG - documentation (NXentry.nxdl.xml:/experiment_laboratory): +DEBUG - + Name of the laboratory or beamline + +DEBUG - ===== GROUP (//entry/instrument [NXmpes::/NXentry/NXinstrument]): +DEBUG - classpath: ['NXentry', 'NXinstrument'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT +NXentry.nxdl.xml:/INSTRUMENT +NXinstrument.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT): +DEBUG - +DEBUG - documentation (NXentry.nxdl.xml:/INSTRUMENT): +DEBUG - +DEBUG - documentation (NXinstrument.nxdl.xml:): +DEBUG - + Collection of the components of the instrument or beamline. + + Template of instrument descriptions comprising various beamline components. + Each component will also be a NeXus group defined by its distance from the + sample. Negative distances represent beamline components that are before the + sample while positive distances represent components that are after the sample. + This device allows the unique identification of beamline components in a way + that is valid for both reactor and pulsed instrumentation. + +DEBUG - ===== ATTRS (//entry/instrument@NX_class) +DEBUG - value: NXinstrument +DEBUG - classpath: ['NXentry', 'NXinstrument'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT +NXentry.nxdl.xml:/INSTRUMENT +NXinstrument.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== GROUP (//entry/instrument/beam [NXmpes::/NXentry/NXinstrument/NXbeam]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM +NXinstrument.nxdl.xml:/BEAM +NXbeam.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM): +DEBUG - +DEBUG - documentation (NXinstrument.nxdl.xml:/BEAM): +DEBUG - +DEBUG - documentation (NXbeam.nxdl.xml:): +DEBUG - + Properties of the neutron or X-ray beam at a given location. + + This group is intended to be referenced + by beamline component groups within the :ref:`NXinstrument` group or by the :ref:`NXsample` group. This group is + especially valuable in storing the results of instrument simulations in which it is useful + to specify the beam profile, time distribution etc. at each beamline component. Otherwise, + its most likely use is in the :ref:`NXsample` group in which it defines the results of the neutron + scattering by the sample, e.g., energy transfer, polarizations. Finally, There are cases where the beam is + considered as a beamline component and this group may be defined as a subgroup directly inside + :ref:`NXinstrument`, in which case it is recommended that the position of the beam is specified by an + :ref:`NXtransformations` group, unless the beam is at the origin (which is the sample). + + Note that incident_wavelength and related fields can be a scalar values or arrays, depending on the use case. + To support these use cases, the explicit dimensionality of these fields is not specified, but it can be inferred + by the presense of and shape of accompanying fields, such as incident_wavelength_weights for a polychromatic beam. + +DEBUG - ===== ATTRS (//entry/instrument/beam@NX_class) +DEBUG - value: NXbeam +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM +NXinstrument.nxdl.xml:/BEAM +NXbeam.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/beam/distance): +DEBUG - value: 0.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/distance +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/distance): +DEBUG - + Distance of the point of evaluation of the beam from the sample surface. + +DEBUG - ===== ATTRS (//entry/instrument/beam/distance@units) +DEBUG - value: mm +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/distance +DEBUG - NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/distance@units [NX_LENGTH] +DEBUG - ===== FIELD (//entry/instrument/beam/extent): +DEBUG - value: [ 80. 190.] +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/extent +DEBUG - <> +DEBUG - documentation (NXbeam.nxdl.xml:/extent): +DEBUG - + Size of the beam entering this component. Note this represents + a rectangular beam aperture, and values represent FWHM + +DEBUG - ===== ATTRS (//entry/instrument/beam/extent@units) +DEBUG - value: µm +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/extent +DEBUG - NXbeam.nxdl.xml:/extent@units [NX_LENGTH] +DEBUG - ===== FIELD (//entry/instrument/beam/incident_energy): +DEBUG - value: 21.7 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy +NXbeam.nxdl.xml:/incident_energy +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy): +DEBUG - +DEBUG - documentation (NXbeam.nxdl.xml:/incident_energy): +DEBUG - + Energy carried by each particle of the beam on entering the beamline component. + + In the case of a monochromatic beam this is the scalar energy. + Several other use cases are permitted, depending on the + presence of other incident_energy_X fields. + + * In the case of a polychromatic beam this is an array of length m of energies, with the relative weights in incident_energy_weights. + * In the case of a monochromatic beam that varies shot-to-shot, this is an array of energies, one for each recorded shot. + Here, incident_energy_weights and incident_energy_spread are not set. + * In the case of a polychromatic beam that varies shot-to-shot, + this is an array of length m with the relative weights in incident_energy_weights as a 2D array. + * In the case of a polychromatic beam that varies shot-to-shot and where the channels also vary, + this is a 2D array of dimensions nP by m (slow to fast) with the relative weights in incident_energy_weights as a 2D array. + + Note, variants are a good way to represent several of these use cases in a single dataset, + e.g. if a calibrated, single-value energy value is available along with the original spectrum from which it was calibrated. + +DEBUG - ===== ATTRS (//entry/instrument/beam/incident_energy@units) +DEBUG - value: eV +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy +NXbeam.nxdl.xml:/incident_energy +DEBUG - NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy@units [NX_ENERGY] +DEBUG - NXbeam.nxdl.xml:/incident_energy@units [NX_ENERGY] +DEBUG - ===== FIELD (//entry/instrument/beam/incident_energy_spread): +DEBUG - value: 0.11 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy_spread +NXbeam.nxdl.xml:/incident_energy_spread +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy_spread): +DEBUG - +DEBUG - documentation (NXbeam.nxdl.xml:/incident_energy_spread): +DEBUG - + The energy spread FWHM for the corresponding energy(ies) in incident_energy. In the case of shot-to-shot variation in + the energy spread, this is a 2D array of dimension nP by m + (slow to fast) of the spreads of the corresponding + wavelength in incident_wavelength. + +DEBUG - ===== ATTRS (//entry/instrument/beam/incident_energy_spread@units) +DEBUG - value: eV +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy_spread +NXbeam.nxdl.xml:/incident_energy_spread +DEBUG - NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy_spread@units [NX_ENERGY] +DEBUG - NXbeam.nxdl.xml:/incident_energy_spread@units [NX_ENERGY] +DEBUG - ===== FIELD (//entry/instrument/beam/incident_polarization): +DEBUG - value: [1. 1. 0. 0.] +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_polarization +NXbeam.nxdl.xml:/incident_polarization +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_polarization): +DEBUG - +DEBUG - documentation (NXbeam.nxdl.xml:/incident_polarization): +DEBUG - + Incident polarization as a Stokes vector + on entering beamline component + +DEBUG - ===== ATTRS (//entry/instrument/beam/incident_polarization@units) +DEBUG - value: V^2/mm^2 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_polarization +NXbeam.nxdl.xml:/incident_polarization +DEBUG - NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_polarization@units [NX_ANY] +DEBUG - NXbeam.nxdl.xml:/incident_polarization@units [NX_ANY] +DEBUG - ===== FIELD (//entry/instrument/beam/pulse_duration): +DEBUG - value: 20.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/pulse_duration +DEBUG - <> +DEBUG - documentation (NXbeam.nxdl.xml:/pulse_duration): +DEBUG - + FWHM duration of the pulses at the diagnostic point + +DEBUG - ===== ATTRS (//entry/instrument/beam/pulse_duration@units) +DEBUG - value: fs +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/pulse_duration +DEBUG - NXbeam.nxdl.xml:/pulse_duration@units [NX_TIME] +DEBUG - ===== GROUP (//entry/instrument/beam_pump [NXmpes::/NXentry/NXinstrument/NXbeam]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM +NXinstrument.nxdl.xml:/BEAM +NXbeam.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM): +DEBUG - +DEBUG - documentation (NXinstrument.nxdl.xml:/BEAM): +DEBUG - +DEBUG - documentation (NXbeam.nxdl.xml:): +DEBUG - + Properties of the neutron or X-ray beam at a given location. + + This group is intended to be referenced + by beamline component groups within the :ref:`NXinstrument` group or by the :ref:`NXsample` group. This group is + especially valuable in storing the results of instrument simulations in which it is useful + to specify the beam profile, time distribution etc. at each beamline component. Otherwise, + its most likely use is in the :ref:`NXsample` group in which it defines the results of the neutron + scattering by the sample, e.g., energy transfer, polarizations. Finally, There are cases where the beam is + considered as a beamline component and this group may be defined as a subgroup directly inside + :ref:`NXinstrument`, in which case it is recommended that the position of the beam is specified by an + :ref:`NXtransformations` group, unless the beam is at the origin (which is the sample). + + Note that incident_wavelength and related fields can be a scalar values or arrays, depending on the use case. + To support these use cases, the explicit dimensionality of these fields is not specified, but it can be inferred + by the presense of and shape of accompanying fields, such as incident_wavelength_weights for a polychromatic beam. + +DEBUG - ===== ATTRS (//entry/instrument/beam_pump@NX_class) +DEBUG - value: NXbeam +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM +NXinstrument.nxdl.xml:/BEAM +NXbeam.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/beam_pump/average_power): +DEBUG - value: 444.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/average_power +DEBUG - <> +DEBUG - documentation (NXbeam.nxdl.xml:/average_power): +DEBUG - + Average power at the diagnostic point + +DEBUG - ===== ATTRS (//entry/instrument/beam_pump/average_power@units) +DEBUG - value: mW +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/average_power +DEBUG - NXbeam.nxdl.xml:/average_power@units [NX_POWER] +DEBUG - ===== FIELD (//entry/instrument/beam_pump/distance): +DEBUG - value: 0.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/distance +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/distance): +DEBUG - + Distance of the point of evaluation of the beam from the sample surface. + +DEBUG - ===== ATTRS (//entry/instrument/beam_pump/distance@units) +DEBUG - value: mm +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/distance +DEBUG - NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/distance@units [NX_LENGTH] +DEBUG - ===== FIELD (//entry/instrument/beam_pump/extent): +DEBUG - value: [155. 367.] +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/extent +DEBUG - <> +DEBUG - documentation (NXbeam.nxdl.xml:/extent): +DEBUG - + Size of the beam entering this component. Note this represents + a rectangular beam aperture, and values represent FWHM + +DEBUG - ===== ATTRS (//entry/instrument/beam_pump/extent@units) +DEBUG - value: µm +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/extent +DEBUG - NXbeam.nxdl.xml:/extent@units [NX_LENGTH] +DEBUG - ===== FIELD (//entry/instrument/beam_pump/fluence): +DEBUG - value: 1.3 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/fluence +DEBUG - <> +DEBUG - documentation (NXbeam.nxdl.xml:/fluence): +DEBUG - + Incident fluence at the diagnostic point + +DEBUG - ===== ATTRS (//entry/instrument/beam_pump/fluence@units) +DEBUG - value: mJ/cm^2 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/fluence +DEBUG - NXbeam.nxdl.xml:/fluence@units [NX_ANY] +DEBUG - ===== FIELD (//entry/instrument/beam_pump/incident_energy): +DEBUG - value: 1.2 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy +NXbeam.nxdl.xml:/incident_energy +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy): +DEBUG - +DEBUG - documentation (NXbeam.nxdl.xml:/incident_energy): +DEBUG - + Energy carried by each particle of the beam on entering the beamline component. + + In the case of a monochromatic beam this is the scalar energy. + Several other use cases are permitted, depending on the + presence of other incident_energy_X fields. + + * In the case of a polychromatic beam this is an array of length m of energies, with the relative weights in incident_energy_weights. + * In the case of a monochromatic beam that varies shot-to-shot, this is an array of energies, one for each recorded shot. + Here, incident_energy_weights and incident_energy_spread are not set. + * In the case of a polychromatic beam that varies shot-to-shot, + this is an array of length m with the relative weights in incident_energy_weights as a 2D array. + * In the case of a polychromatic beam that varies shot-to-shot and where the channels also vary, + this is a 2D array of dimensions nP by m (slow to fast) with the relative weights in incident_energy_weights as a 2D array. + + Note, variants are a good way to represent several of these use cases in a single dataset, + e.g. if a calibrated, single-value energy value is available along with the original spectrum from which it was calibrated. + +DEBUG - ===== ATTRS (//entry/instrument/beam_pump/incident_energy@units) +DEBUG - value: eV +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy +NXbeam.nxdl.xml:/incident_energy +DEBUG - NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy@units [NX_ENERGY] +DEBUG - NXbeam.nxdl.xml:/incident_energy@units [NX_ENERGY] +DEBUG - ===== FIELD (//entry/instrument/beam_pump/incident_energy_spread): +DEBUG - value: 0.05 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy_spread +NXbeam.nxdl.xml:/incident_energy_spread +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy_spread): +DEBUG - +DEBUG - documentation (NXbeam.nxdl.xml:/incident_energy_spread): +DEBUG - + The energy spread FWHM for the corresponding energy(ies) in incident_energy. In the case of shot-to-shot variation in + the energy spread, this is a 2D array of dimension nP by m + (slow to fast) of the spreads of the corresponding + wavelength in incident_wavelength. + +DEBUG - ===== ATTRS (//entry/instrument/beam_pump/incident_energy_spread@units) +DEBUG - value: eV +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy_spread +NXbeam.nxdl.xml:/incident_energy_spread +DEBUG - NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_energy_spread@units [NX_ENERGY] +DEBUG - NXbeam.nxdl.xml:/incident_energy_spread@units [NX_ENERGY] +DEBUG - ===== FIELD (//entry/instrument/beam_pump/incident_polarization): +DEBUG - value: [1 1 0 0] +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_polarization +NXbeam.nxdl.xml:/incident_polarization +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_polarization): +DEBUG - +DEBUG - documentation (NXbeam.nxdl.xml:/incident_polarization): +DEBUG - + Incident polarization as a Stokes vector + on entering beamline component + +DEBUG - ===== ATTRS (//entry/instrument/beam_pump/incident_polarization@units) +DEBUG - value: V^2/mm^2 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_NUMBER'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_polarization +NXbeam.nxdl.xml:/incident_polarization +DEBUG - NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/BEAM/incident_polarization@units [NX_ANY] +DEBUG - NXbeam.nxdl.xml:/incident_polarization@units [NX_ANY] +DEBUG - ===== FIELD (//entry/instrument/beam_pump/incident_wavelength): +DEBUG - value: 1030.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/incident_wavelength +DEBUG - <> +DEBUG - documentation (NXbeam.nxdl.xml:/incident_wavelength): +DEBUG - + In the case of a monochromatic beam this is the scalar + wavelength. + + Several other use cases are permitted, depending on the + presence or absence of other incident_wavelength_X + fields. + + In the case of a polychromatic beam this is an array of + length **m** of wavelengths, with the relative weights + in ``incident_wavelength_weights``. + + In the case of a monochromatic beam that varies shot- + to-shot, this is an array of wavelengths, one for each + recorded shot. Here, ``incident_wavelength_weights`` and + incident_wavelength_spread are not set. + + In the case of a polychromatic beam that varies shot-to- + shot, this is an array of length **m** with the relative + weights in ``incident_wavelength_weights`` as a 2D array. + + In the case of a polychromatic beam that varies shot-to- + shot and where the channels also vary, this is a 2D array + of dimensions **nP** by **m** (slow to fast) with the + relative weights in ``incident_wavelength_weights`` as a 2D + array. + + Note, :ref:`variants ` are a good way + to represent several of these use cases in a single dataset, + e.g. if a calibrated, single-value wavelength value is + available along with the original spectrum from which it + was calibrated. + Wavelength on entering beamline component + +DEBUG - ===== ATTRS (//entry/instrument/beam_pump/incident_wavelength@units) +DEBUG - value: nm +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/incident_wavelength +DEBUG - NXbeam.nxdl.xml:/incident_wavelength@units [NX_WAVELENGTH] +DEBUG - ===== FIELD (//entry/instrument/beam_pump/pulse_duration): +DEBUG - value: 140.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/pulse_duration +DEBUG - <> +DEBUG - documentation (NXbeam.nxdl.xml:/pulse_duration): +DEBUG - + FWHM duration of the pulses at the diagnostic point + +DEBUG - ===== ATTRS (//entry/instrument/beam_pump/pulse_duration@units) +DEBUG - value: fs +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/pulse_duration +DEBUG - NXbeam.nxdl.xml:/pulse_duration@units [NX_TIME] +DEBUG - ===== FIELD (//entry/instrument/beam_pump/pulse_energy): +DEBUG - value: 0.889 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/pulse_energy +DEBUG - <> +DEBUG - documentation (NXbeam.nxdl.xml:/pulse_energy): +DEBUG - + Energy of a single pulse at the diagnostic point + +DEBUG - ===== ATTRS (//entry/instrument/beam_pump/pulse_energy@units) +DEBUG - value: µJ +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/pulse_energy +DEBUG - NXbeam.nxdl.xml:/pulse_energy@units [NX_ENERGY] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser [NXmpes::/NXentry/NXinstrument/NXelectronanalyser]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER +NXelectronanalyser.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER): +DEBUG - +DEBUG - documentation (NXelectronanalyser.nxdl.xml:): +DEBUG - + Subclass of NXinstrument to describe a photoelectron analyser. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser@NX_class) +DEBUG - value: NXelectronanalyser +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER +NXelectronanalyser.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN +NXelectronanalyser.nxdl.xml:/COLLECTIONCOLUMN +NXcollectioncolumn.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN): +DEBUG - +DEBUG - documentation (NXelectronanalyser.nxdl.xml:/COLLECTIONCOLUMN): +DEBUG - + Describes the electron collection (spatial and momentum imaging) column + +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:): +DEBUG - + Subclass of NXelectronanalyser to describe the electron collection + column of a photoelectron analyser. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn@NX_class) +DEBUG - value: NXcollectioncolumn +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN +NXelectronanalyser.nxdl.xml:/COLLECTIONCOLUMN +NXcollectioncolumn.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/contrast_aperture [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXaperture]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN/contrast_aperture +NXcollectioncolumn.nxdl.xml:/APERTURE +NXaperture.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN/contrast_aperture): +DEBUG - + The size and position of the contrast aperture inserted in the column. To add + additional or other apertures use the APERTURE group of NXcollectioncolumn. + +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/APERTURE): +DEBUG - + The size and position of an aperture inserted in the column, e.g. field aperture + or contrast aperture + +DEBUG - documentation (NXaperture.nxdl.xml:): +DEBUG - + A beamline aperture. This group is deprecated, use NXslit instead. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/contrast_aperture@NX_class) +DEBUG - value: NXaperture +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN/contrast_aperture +NXcollectioncolumn.nxdl.xml:/APERTURE +NXaperture.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/contrast_aperture/ca_m3 [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXaperture/NXpositioner]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NXpositioner'] +DEBUG - classes: +NXaperture.nxdl.xml:/POSITIONER +NXpositioner.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXaperture.nxdl.xml:/POSITIONER): +DEBUG - + Stores the raw positions of aperture motors. + +DEBUG - documentation (NXpositioner.nxdl.xml:): +DEBUG - + A generic positioner such as a motor or piezo-electric transducer. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/contrast_aperture/ca_m3@NX_class) +DEBUG - value: NXpositioner +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NXpositioner'] +DEBUG - classes: +NXaperture.nxdl.xml:/POSITIONER +NXpositioner.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/contrast_aperture/ca_m3/value): +DEBUG - value: -11.49979350759219 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NXpositioner', 'NX_NUMBER'] +DEBUG - classes: +NXpositioner.nxdl.xml:/value +DEBUG - <> +DEBUG - documentation (NXpositioner.nxdl.xml:/value): +DEBUG - best known value of positioner - need [n] as may be scanned +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/contrast_aperture/ca_m3/value@units) +DEBUG - value: mm +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NXpositioner', 'NX_NUMBER'] +DEBUG - classes: +NXpositioner.nxdl.xml:/value +DEBUG - NXpositioner.nxdl.xml:/value@units [NX_ANY] +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/contrast_aperture/shape): +DEBUG - value: b'open' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NX_CHAR'] +DEBUG - classes: +NXaperture.nxdl.xml:/shape +DEBUG - <> +DEBUG - enumeration (NXaperture.nxdl.xml:/shape): +DEBUG - -> straight slit +DEBUG - -> curved slit +DEBUG - -> pinhole +DEBUG - -> circle +DEBUG - -> square +DEBUG - -> hexagon +DEBUG - -> octagon +DEBUG - -> bladed +DEBUG - -> open +DEBUG - -> grid +DEBUG - documentation (NXaperture.nxdl.xml:/shape): +DEBUG - + Shape of the aperture. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/contrast_aperture/size): +DEBUG - value: nan +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NX_NUMBER'] +DEBUG - classes: +NXaperture.nxdl.xml:/size +DEBUG - <> +DEBUG - documentation (NXaperture.nxdl.xml:/size): +DEBUG - + The relevant dimension for the aperture, i.e. slit width, pinhole and iris + diameter + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/contrast_aperture/size@units) +DEBUG - value: µm +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NX_NUMBER'] +DEBUG - classes: +NXaperture.nxdl.xml:/size +DEBUG - NXaperture.nxdl.xml:/size@units [NX_LENGTH] +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/extractor_current): +DEBUG - value: -0.1309711275510204 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NX_FLOAT'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/extractor_current +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/extractor_current): +DEBUG - + Current necessary to keep the extractor lens at a set voltage. Variations + indicate leakage, field emission or arc currents to the extractor lens. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/extractor_current@units) +DEBUG - value: µA +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NX_FLOAT'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/extractor_current +DEBUG - NXcollectioncolumn.nxdl.xml:/extractor_current@units [NX_CURRENT] +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/extractor_voltage): +DEBUG - value: 6000.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NX_FLOAT'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/extractor_voltage +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/extractor_voltage): +DEBUG - + Voltage applied to the extractor lens + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/extractor_voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NX_FLOAT'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/extractor_voltage +DEBUG - NXcollectioncolumn.nxdl.xml:/extractor_voltage@units [NX_VOLTAGE] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/field_aperture [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXaperture]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN/field_aperture +NXcollectioncolumn.nxdl.xml:/APERTURE +NXaperture.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN/field_aperture): +DEBUG - + The size and position of the field aperture inserted in the column. To add + additional or other apertures use the APERTURE group of NXcollectioncolumn. + +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/APERTURE): +DEBUG - + The size and position of an aperture inserted in the column, e.g. field aperture + or contrast aperture + +DEBUG - documentation (NXaperture.nxdl.xml:): +DEBUG - + A beamline aperture. This group is deprecated, use NXslit instead. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/field_aperture@NX_class) +DEBUG - value: NXaperture +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN/field_aperture +NXcollectioncolumn.nxdl.xml:/APERTURE +NXaperture.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/field_aperture/fa_m1 [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXaperture/NXpositioner]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NXpositioner'] +DEBUG - classes: +NXaperture.nxdl.xml:/POSITIONER +NXpositioner.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXaperture.nxdl.xml:/POSITIONER): +DEBUG - + Stores the raw positions of aperture motors. + +DEBUG - documentation (NXpositioner.nxdl.xml:): +DEBUG - + A generic positioner such as a motor or piezo-electric transducer. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/field_aperture/fa_m1@NX_class) +DEBUG - value: NXpositioner +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NXpositioner'] +DEBUG - classes: +NXaperture.nxdl.xml:/POSITIONER +NXpositioner.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/field_aperture/fa_m1/value): +DEBUG - value: 3.749874153422982 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NXpositioner', 'NX_NUMBER'] +DEBUG - classes: +NXpositioner.nxdl.xml:/value +DEBUG - <> +DEBUG - documentation (NXpositioner.nxdl.xml:/value): +DEBUG - best known value of positioner - need [n] as may be scanned +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/field_aperture/fa_m1/value@units) +DEBUG - value: mm +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NXpositioner', 'NX_NUMBER'] +DEBUG - classes: +NXpositioner.nxdl.xml:/value +DEBUG - NXpositioner.nxdl.xml:/value@units [NX_ANY] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/field_aperture/fa_m2 [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXaperture/NXpositioner]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NXpositioner'] +DEBUG - classes: +NXaperture.nxdl.xml:/POSITIONER +NXpositioner.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXaperture.nxdl.xml:/POSITIONER): +DEBUG - + Stores the raw positions of aperture motors. + +DEBUG - documentation (NXpositioner.nxdl.xml:): +DEBUG - + A generic positioner such as a motor or piezo-electric transducer. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/field_aperture/fa_m2@NX_class) +DEBUG - value: NXpositioner +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NXpositioner'] +DEBUG - classes: +NXaperture.nxdl.xml:/POSITIONER +NXpositioner.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/field_aperture/fa_m2/value): +DEBUG - value: -5.200156936301793 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NXpositioner', 'NX_NUMBER'] +DEBUG - classes: +NXpositioner.nxdl.xml:/value +DEBUG - <> +DEBUG - documentation (NXpositioner.nxdl.xml:/value): +DEBUG - best known value of positioner - need [n] as may be scanned +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/field_aperture/fa_m2/value@units) +DEBUG - value: mm +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NXpositioner', 'NX_NUMBER'] +DEBUG - classes: +NXpositioner.nxdl.xml:/value +DEBUG - NXpositioner.nxdl.xml:/value@units [NX_ANY] +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/field_aperture/shape): +DEBUG - value: b'circle' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NX_CHAR'] +DEBUG - classes: +NXaperture.nxdl.xml:/shape +DEBUG - <> +DEBUG - enumeration (NXaperture.nxdl.xml:/shape): +DEBUG - -> straight slit +DEBUG - -> curved slit +DEBUG - -> pinhole +DEBUG - -> circle +DEBUG - -> square +DEBUG - -> hexagon +DEBUG - -> octagon +DEBUG - -> bladed +DEBUG - -> open +DEBUG - -> grid +DEBUG - documentation (NXaperture.nxdl.xml:/shape): +DEBUG - + Shape of the aperture. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/field_aperture/size): +DEBUG - value: 200.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NX_NUMBER'] +DEBUG - classes: +NXaperture.nxdl.xml:/size +DEBUG - <> +DEBUG - documentation (NXaperture.nxdl.xml:/size): +DEBUG - + The relevant dimension for the aperture, i.e. slit width, pinhole and iris + diameter + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/field_aperture/size@units) +DEBUG - value: µm +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXaperture', 'NX_NUMBER'] +DEBUG - classes: +NXaperture.nxdl.xml:/size +DEBUG - NXaperture.nxdl.xml:/size@units [NX_LENGTH] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/lens_A [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXlens_em]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/LENS_EM): +DEBUG - + Individual lenses in the collection column section + +DEBUG - documentation (NXlens_em.nxdl.xml:): +DEBUG - + Description of an electro-magnetic lens or a compound lens. + + For NXtransformations the origin of the coordinate system is placed + in the center of the lens + (its polepiece, pinhole, or another point of reference). + The origin should be specified in the NXtransformations. + + For details of electro-magnetic lenses in the literature see e.g. `L. Reimer `_ + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_A@NX_class) +DEBUG - value: NXlens_em +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_A/name): +DEBUG - value: b'A' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_CHAR'] +DEBUG - classes: +NXlens_em.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/name): +DEBUG - + Given name, alias, colloquial, or short name for the lens. + For manufacturer names and identifiers use respective manufacturer fields. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_A/voltage): +DEBUG - value: 784.58 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/voltage): +DEBUG - + Excitation voltage of the lens. For dipoles it is a single number. For higher + orders, it is an array. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_A/voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - NXlens_em.nxdl.xml:/voltage@units [NX_VOLTAGE] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/lens_B [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXlens_em]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/LENS_EM): +DEBUG - + Individual lenses in the collection column section + +DEBUG - documentation (NXlens_em.nxdl.xml:): +DEBUG - + Description of an electro-magnetic lens or a compound lens. + + For NXtransformations the origin of the coordinate system is placed + in the center of the lens + (its polepiece, pinhole, or another point of reference). + The origin should be specified in the NXtransformations. + + For details of electro-magnetic lenses in the literature see e.g. `L. Reimer `_ + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_B@NX_class) +DEBUG - value: NXlens_em +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_B/name): +DEBUG - value: b'B' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_CHAR'] +DEBUG - classes: +NXlens_em.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/name): +DEBUG - + Given name, alias, colloquial, or short name for the lens. + For manufacturer names and identifiers use respective manufacturer fields. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_B/voltage): +DEBUG - value: 3253.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/voltage): +DEBUG - + Excitation voltage of the lens. For dipoles it is a single number. For higher + orders, it is an array. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_B/voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - NXlens_em.nxdl.xml:/voltage@units [NX_VOLTAGE] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/lens_C [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXlens_em]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/LENS_EM): +DEBUG - + Individual lenses in the collection column section + +DEBUG - documentation (NXlens_em.nxdl.xml:): +DEBUG - + Description of an electro-magnetic lens or a compound lens. + + For NXtransformations the origin of the coordinate system is placed + in the center of the lens + (its polepiece, pinhole, or another point of reference). + The origin should be specified in the NXtransformations. + + For details of electro-magnetic lenses in the literature see e.g. `L. Reimer `_ + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_C@NX_class) +DEBUG - value: NXlens_em +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_C/name): +DEBUG - value: b'C' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_CHAR'] +DEBUG - classes: +NXlens_em.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/name): +DEBUG - + Given name, alias, colloquial, or short name for the lens. + For manufacturer names and identifiers use respective manufacturer fields. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_C/voltage): +DEBUG - value: 752.07 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/voltage): +DEBUG - + Excitation voltage of the lens. For dipoles it is a single number. For higher + orders, it is an array. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_C/voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - NXlens_em.nxdl.xml:/voltage@units [NX_VOLTAGE] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/lens_D [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXlens_em]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/LENS_EM): +DEBUG - + Individual lenses in the collection column section + +DEBUG - documentation (NXlens_em.nxdl.xml:): +DEBUG - + Description of an electro-magnetic lens or a compound lens. + + For NXtransformations the origin of the coordinate system is placed + in the center of the lens + (its polepiece, pinhole, or another point of reference). + The origin should be specified in the NXtransformations. + + For details of electro-magnetic lenses in the literature see e.g. `L. Reimer `_ + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_D@NX_class) +DEBUG - value: NXlens_em +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_D/name): +DEBUG - value: b'D' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_CHAR'] +DEBUG - classes: +NXlens_em.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/name): +DEBUG - + Given name, alias, colloquial, or short name for the lens. + For manufacturer names and identifiers use respective manufacturer fields. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_D/voltage): +DEBUG - value: 682.18 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/voltage): +DEBUG - + Excitation voltage of the lens. For dipoles it is a single number. For higher + orders, it is an array. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_D/voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - NXlens_em.nxdl.xml:/voltage@units [NX_VOLTAGE] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/lens_E [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXlens_em]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/LENS_EM): +DEBUG - + Individual lenses in the collection column section + +DEBUG - documentation (NXlens_em.nxdl.xml:): +DEBUG - + Description of an electro-magnetic lens or a compound lens. + + For NXtransformations the origin of the coordinate system is placed + in the center of the lens + (its polepiece, pinhole, or another point of reference). + The origin should be specified in the NXtransformations. + + For details of electro-magnetic lenses in the literature see e.g. `L. Reimer `_ + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_E@NX_class) +DEBUG - value: NXlens_em +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_E/name): +DEBUG - value: b'E' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_CHAR'] +DEBUG - classes: +NXlens_em.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/name): +DEBUG - + Given name, alias, colloquial, or short name for the lens. + For manufacturer names and identifiers use respective manufacturer fields. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_E/voltage): +DEBUG - value: 200.93 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/voltage): +DEBUG - + Excitation voltage of the lens. For dipoles it is a single number. For higher + orders, it is an array. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_E/voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - NXlens_em.nxdl.xml:/voltage@units [NX_VOLTAGE] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/lens_F [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXlens_em]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/LENS_EM): +DEBUG - + Individual lenses in the collection column section + +DEBUG - documentation (NXlens_em.nxdl.xml:): +DEBUG - + Description of an electro-magnetic lens or a compound lens. + + For NXtransformations the origin of the coordinate system is placed + in the center of the lens + (its polepiece, pinhole, or another point of reference). + The origin should be specified in the NXtransformations. + + For details of electro-magnetic lenses in the literature see e.g. `L. Reimer `_ + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_F@NX_class) +DEBUG - value: NXlens_em +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_F/name): +DEBUG - value: b'F' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_CHAR'] +DEBUG - classes: +NXlens_em.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/name): +DEBUG - + Given name, alias, colloquial, or short name for the lens. + For manufacturer names and identifiers use respective manufacturer fields. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_F/voltage): +DEBUG - value: 68.557 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/voltage): +DEBUG - + Excitation voltage of the lens. For dipoles it is a single number. For higher + orders, it is an array. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_F/voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - NXlens_em.nxdl.xml:/voltage@units [NX_VOLTAGE] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/lens_Foc [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXlens_em]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/LENS_EM): +DEBUG - + Individual lenses in the collection column section + +DEBUG - documentation (NXlens_em.nxdl.xml:): +DEBUG - + Description of an electro-magnetic lens or a compound lens. + + For NXtransformations the origin of the coordinate system is placed + in the center of the lens + (its polepiece, pinhole, or another point of reference). + The origin should be specified in the NXtransformations. + + For details of electro-magnetic lenses in the literature see e.g. `L. Reimer `_ + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_Foc@NX_class) +DEBUG - value: NXlens_em +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_Foc/name): +DEBUG - value: b'Foc' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_CHAR'] +DEBUG - classes: +NXlens_em.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/name): +DEBUG - + Given name, alias, colloquial, or short name for the lens. + For manufacturer names and identifiers use respective manufacturer fields. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_Foc/voltage): +DEBUG - value: 158.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/voltage): +DEBUG - + Excitation voltage of the lens. For dipoles it is a single number. For higher + orders, it is an array. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_Foc/voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - NXlens_em.nxdl.xml:/voltage@units [NX_VOLTAGE] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/lens_G [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXlens_em]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/LENS_EM): +DEBUG - + Individual lenses in the collection column section + +DEBUG - documentation (NXlens_em.nxdl.xml:): +DEBUG - + Description of an electro-magnetic lens or a compound lens. + + For NXtransformations the origin of the coordinate system is placed + in the center of the lens + (its polepiece, pinhole, or another point of reference). + The origin should be specified in the NXtransformations. + + For details of electro-magnetic lenses in the literature see e.g. `L. Reimer `_ + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_G@NX_class) +DEBUG - value: NXlens_em +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_G/name): +DEBUG - value: b'G' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_CHAR'] +DEBUG - classes: +NXlens_em.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/name): +DEBUG - + Given name, alias, colloquial, or short name for the lens. + For manufacturer names and identifiers use respective manufacturer fields. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_G/voltage): +DEBUG - value: 30.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/voltage): +DEBUG - + Excitation voltage of the lens. For dipoles it is a single number. For higher + orders, it is an array. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_G/voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - NXlens_em.nxdl.xml:/voltage@units [NX_VOLTAGE] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/lens_H [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXlens_em]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/LENS_EM): +DEBUG - + Individual lenses in the collection column section + +DEBUG - documentation (NXlens_em.nxdl.xml:): +DEBUG - + Description of an electro-magnetic lens or a compound lens. + + For NXtransformations the origin of the coordinate system is placed + in the center of the lens + (its polepiece, pinhole, or another point of reference). + The origin should be specified in the NXtransformations. + + For details of electro-magnetic lenses in the literature see e.g. `L. Reimer `_ + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_H@NX_class) +DEBUG - value: NXlens_em +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_H/name): +DEBUG - value: b'H' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_CHAR'] +DEBUG - classes: +NXlens_em.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/name): +DEBUG - + Given name, alias, colloquial, or short name for the lens. + For manufacturer names and identifiers use respective manufacturer fields. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_H/voltage): +DEBUG - value: 30.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/voltage): +DEBUG - + Excitation voltage of the lens. For dipoles it is a single number. For higher + orders, it is an array. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_H/voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - NXlens_em.nxdl.xml:/voltage@units [NX_VOLTAGE] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/lens_I [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXlens_em]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/LENS_EM): +DEBUG - + Individual lenses in the collection column section + +DEBUG - documentation (NXlens_em.nxdl.xml:): +DEBUG - + Description of an electro-magnetic lens or a compound lens. + + For NXtransformations the origin of the coordinate system is placed + in the center of the lens + (its polepiece, pinhole, or another point of reference). + The origin should be specified in the NXtransformations. + + For details of electro-magnetic lenses in the literature see e.g. `L. Reimer `_ + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_I@NX_class) +DEBUG - value: NXlens_em +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_I/name): +DEBUG - value: b'I' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_CHAR'] +DEBUG - classes: +NXlens_em.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/name): +DEBUG - + Given name, alias, colloquial, or short name for the lens. + For manufacturer names and identifiers use respective manufacturer fields. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_I/voltage): +DEBUG - value: 44.5 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/voltage): +DEBUG - + Excitation voltage of the lens. For dipoles it is a single number. For higher + orders, it is an array. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_I/voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - NXlens_em.nxdl.xml:/voltage@units [NX_VOLTAGE] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/lens_UCA [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXlens_em]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/LENS_EM): +DEBUG - + Individual lenses in the collection column section + +DEBUG - documentation (NXlens_em.nxdl.xml:): +DEBUG - + Description of an electro-magnetic lens or a compound lens. + + For NXtransformations the origin of the coordinate system is placed + in the center of the lens + (its polepiece, pinhole, or another point of reference). + The origin should be specified in the NXtransformations. + + For details of electro-magnetic lenses in the literature see e.g. `L. Reimer `_ + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_UCA@NX_class) +DEBUG - value: NXlens_em +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_UCA/name): +DEBUG - value: b'UCA' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_CHAR'] +DEBUG - classes: +NXlens_em.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/name): +DEBUG - + Given name, alias, colloquial, or short name for the lens. + For manufacturer names and identifiers use respective manufacturer fields. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_UCA/voltage): +DEBUG - value: 1200.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/voltage): +DEBUG - + Excitation voltage of the lens. For dipoles it is a single number. For higher + orders, it is an array. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_UCA/voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - NXlens_em.nxdl.xml:/voltage@units [NX_VOLTAGE] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/collectioncolumn/lens_UFA [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXcollectioncolumn/NXlens_em]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/LENS_EM): +DEBUG - + Individual lenses in the collection column section + +DEBUG - documentation (NXlens_em.nxdl.xml:): +DEBUG - + Description of an electro-magnetic lens or a compound lens. + + For NXtransformations the origin of the coordinate system is placed + in the center of the lens + (its polepiece, pinhole, or another point of reference). + The origin should be specified in the NXtransformations. + + For details of electro-magnetic lenses in the literature see e.g. `L. Reimer `_ + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_UFA@NX_class) +DEBUG - value: NXlens_em +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/LENS_EM +NXlens_em.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_UFA/name): +DEBUG - value: b'UFA' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_CHAR'] +DEBUG - classes: +NXlens_em.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/name): +DEBUG - + Given name, alias, colloquial, or short name for the lens. + For manufacturer names and identifiers use respective manufacturer fields. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/lens_UFA/voltage): +DEBUG - value: 600.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - <> +DEBUG - documentation (NXlens_em.nxdl.xml:/voltage): +DEBUG - + Excitation voltage of the lens. For dipoles it is a single number. For higher + orders, it is an array. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/lens_UFA/voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NXlens_em', 'NX_NUMBER'] +DEBUG - classes: +NXlens_em.nxdl.xml:/voltage +DEBUG - NXlens_em.nxdl.xml:/voltage@units [NX_VOLTAGE] +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/mode): +DEBUG - value: b'6kV_kmodem2.0_30VTOF_MoTe2_2340VMCP.sav' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN/mode +NXcollectioncolumn.nxdl.xml:/mode +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN/mode): +DEBUG - +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/mode): +DEBUG - + Labelling of the lens setting in use. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/projection): +DEBUG - value: b'reciprocal' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN/projection +NXcollectioncolumn.nxdl.xml:/projection +DEBUG - <> +DEBUG - enumeration (NXcollectioncolumn.nxdl.xml:/projection): +DEBUG - -> real +DEBUG - -> reciprocal +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN/projection): +DEBUG - +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/projection): +DEBUG - + The space projected in the angularly dispersive directions, real or reciprocal + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/scheme): +DEBUG - value: b'Momentum Microscope' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN/scheme +NXcollectioncolumn.nxdl.xml:/scheme +DEBUG - <> +DEBUG - enumeration (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN/scheme): +DEBUG - -> Standard +DEBUG - -> Angular dispersive +DEBUG - -> Selective area +DEBUG - -> Deflector +DEBUG - -> PEEM +DEBUG - -> Momentum Microscope +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/COLLECTIONCOLUMN/scheme): +DEBUG - + Scheme of the electron collection column. + +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/scheme): +DEBUG - + Scheme of the electron collection lens, i.e. standard, deflector, PEEM, momentum + microscope, etc. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/collectioncolumn/working_distance): +DEBUG - value: 4.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NX_FLOAT'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/working_distance +DEBUG - <> +DEBUG - documentation (NXcollectioncolumn.nxdl.xml:/working_distance): +DEBUG - + Distance between sample and detector entrance + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/collectioncolumn/working_distance@units) +DEBUG - value: mm +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXcollectioncolumn', 'NX_FLOAT'] +DEBUG - classes: +NXcollectioncolumn.nxdl.xml:/working_distance +DEBUG - NXcollectioncolumn.nxdl.xml:/working_distance@units [NX_LENGTH] +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/depends_on): +DEBUG - value: b'/entry/instrument/electronanalyser/transformations/trans_z' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NX_CHAR'] +DEBUG - classes: +NXelectronanalyser.nxdl.xml:/depends_on +DEBUG - <> +DEBUG - documentation (NXelectronanalyser.nxdl.xml:/depends_on): +DEBUG - + Refers to the last transformation specifying the positon of the manipulator in + the NXtransformations chain. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/description): +DEBUG - value: b'SPECS Metis 1000 Momentum Microscope' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/description +NXelectronanalyser.nxdl.xml:/description +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/description): +DEBUG - +DEBUG - documentation (NXelectronanalyser.nxdl.xml:/description): +DEBUG - + Free text description of the type of the detector + +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/detector [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXdetector]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXdetector'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/DETECTOR +NXelectronanalyser.nxdl.xml:/DETECTOR +NXdetector.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/DETECTOR): +DEBUG - +DEBUG - documentation (NXelectronanalyser.nxdl.xml:/DETECTOR): +DEBUG - + Describes the electron detector + +DEBUG - documentation (NXdetector.nxdl.xml:): +DEBUG - + A detector, detector bank, or multidetector. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/detector@NX_class) +DEBUG - value: NXdetector +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXdetector'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/DETECTOR +NXelectronanalyser.nxdl.xml:/DETECTOR +NXdetector.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/detector/amplifier_bias): +DEBUG - value: 30.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXdetector', 'NX_FLOAT'] +DEBUG - classes: +NXdetector.nxdl.xml:/amplifier_bias +DEBUG - <> +DEBUG - documentation (NXdetector.nxdl.xml:/amplifier_bias): +DEBUG - + The low voltage of the amplifier migh not be the ground. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/detector/amplifier_bias@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXdetector', 'NX_FLOAT'] +DEBUG - classes: +NXdetector.nxdl.xml:/amplifier_bias +DEBUG - NXdetector.nxdl.xml:/amplifier_bias@units [NX_VOLTAGE] +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/detector/amplifier_type): +DEBUG - value: b'MCP' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXdetector', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/DETECTOR/amplifier_type +NXdetector.nxdl.xml:/amplifier_type +DEBUG - <> +DEBUG - enumeration (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/DETECTOR/amplifier_type): +DEBUG - -> MCP +DEBUG - -> channeltron +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/DETECTOR/amplifier_type): +DEBUG - + Type of electron amplifier in the first amplification step. + +DEBUG - documentation (NXdetector.nxdl.xml:/amplifier_type): +DEBUG - + Type of electron amplifier, MCP, channeltron, etc. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/detector/amplifier_voltage): +DEBUG - value: 2340.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXdetector', 'NX_FLOAT'] +DEBUG - classes: +NXdetector.nxdl.xml:/amplifier_voltage +DEBUG - <> +DEBUG - documentation (NXdetector.nxdl.xml:/amplifier_voltage): +DEBUG - + Voltage applied to the amplifier. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/detector/amplifier_voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXdetector', 'NX_FLOAT'] +DEBUG - classes: +NXdetector.nxdl.xml:/amplifier_voltage +DEBUG - NXdetector.nxdl.xml:/amplifier_voltage@units [NX_VOLTAGE] +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/detector/detector_type): +DEBUG - value: b'DLD' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXdetector', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/DETECTOR/detector_type +NXdetector.nxdl.xml:/detector_type +DEBUG - <> +DEBUG - enumeration (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/DETECTOR/detector_type): +DEBUG - -> DLD +DEBUG - -> Phosphor+CCD +DEBUG - -> Phosphor+CMOS +DEBUG - -> ECMOS +DEBUG - -> Anode +DEBUG - -> Multi-anode +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/DETECTOR/detector_type): +DEBUG - + Description of the detector type. + +DEBUG - documentation (NXdetector.nxdl.xml:/detector_type): +DEBUG - + Description of the detector type, DLD, Phosphor+CCD, CMOS. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/detector/detector_voltage): +DEBUG - value: 399.99712810186986 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXdetector', 'NX_FLOAT'] +DEBUG - classes: +NXdetector.nxdl.xml:/detector_voltage +DEBUG - <> +DEBUG - documentation (NXdetector.nxdl.xml:/detector_voltage): +DEBUG - + Voltage applied to detector. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/detector/detector_voltage@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXdetector', 'NX_FLOAT'] +DEBUG - classes: +NXdetector.nxdl.xml:/detector_voltage +DEBUG - NXdetector.nxdl.xml:/detector_voltage@units [NX_VOLTAGE] +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/detector/sensor_pixels): +DEBUG - value: [1800 1800] +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXdetector', 'NX_INT'] +DEBUG - classes: +NXdetector.nxdl.xml:/sensor_pixels +DEBUG - <> +DEBUG - documentation (NXdetector.nxdl.xml:/sensor_pixels): +DEBUG - + Number of raw active elements in each dimension. Important for swept scans. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/energy_resolution): +DEBUG - value: 110.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/energy_resolution +NXelectronanalyser.nxdl.xml:/energy_resolution +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/energy_resolution): +DEBUG - + Energy resolution of the analyser with the current setting. May be linked from a + NXcalibration. + +DEBUG - documentation (NXelectronanalyser.nxdl.xml:/energy_resolution): +DEBUG - + Energy resolution of the electron analyser (FWHM of gaussian broadening) + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/energy_resolution@units) +DEBUG - value: meV +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/energy_resolution +NXelectronanalyser.nxdl.xml:/energy_resolution +DEBUG - NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/energy_resolution@units [NX_ENERGY] +DEBUG - NXelectronanalyser.nxdl.xml:/energy_resolution@units [NX_ENERGY] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/energydispersion [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXenergydispersion]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXenergydispersion'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/ENERGYDISPERSION +NXelectronanalyser.nxdl.xml:/ENERGYDISPERSION +NXenergydispersion.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/ENERGYDISPERSION): +DEBUG - +DEBUG - documentation (NXelectronanalyser.nxdl.xml:/ENERGYDISPERSION): +DEBUG - + Describes the energy dispersion section + +DEBUG - documentation (NXenergydispersion.nxdl.xml:): +DEBUG - + Subclass of NXelectronanalyser to describe the energy dispersion section of a + photoelectron analyser. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/energydispersion@NX_class) +DEBUG - value: NXenergydispersion +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXenergydispersion'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/ENERGYDISPERSION +NXelectronanalyser.nxdl.xml:/ENERGYDISPERSION +NXenergydispersion.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/energydispersion/energy_scan_mode): +DEBUG - value: b'fixed' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXenergydispersion', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/ENERGYDISPERSION/energy_scan_mode +NXenergydispersion.nxdl.xml:/energy_scan_mode +DEBUG - <> +DEBUG - enumeration (NXenergydispersion.nxdl.xml:/energy_scan_mode): +DEBUG - -> fixed +DEBUG - -> sweep +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/ENERGYDISPERSION/energy_scan_mode): +DEBUG - +DEBUG - documentation (NXenergydispersion.nxdl.xml:/energy_scan_mode): +DEBUG - + Way of scanning the energy axis (fixed or sweep). + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/energydispersion/pass_energy): +DEBUG - value: 30.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXenergydispersion', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/ENERGYDISPERSION/pass_energy +NXenergydispersion.nxdl.xml:/pass_energy +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/ENERGYDISPERSION/pass_energy): +DEBUG - +DEBUG - documentation (NXenergydispersion.nxdl.xml:/pass_energy): +DEBUG - + Energy of the electrons on the mean path of the analyser. Pass energy for + hemispherics, drift energy for tofs. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/energydispersion/pass_energy@units) +DEBUG - value: eV +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXenergydispersion', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/ENERGYDISPERSION/pass_energy +NXenergydispersion.nxdl.xml:/pass_energy +DEBUG - NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/ENERGYDISPERSION/pass_energy@units [NX_ENERGY] +DEBUG - NXenergydispersion.nxdl.xml:/pass_energy@units [NX_ENERGY] +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/energydispersion/scheme): +DEBUG - value: b'tof' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXenergydispersion', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/ENERGYDISPERSION/scheme +NXenergydispersion.nxdl.xml:/scheme +DEBUG - <> +DEBUG - enumeration (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/ENERGYDISPERSION/scheme): +DEBUG - -> tof +DEBUG - -> hemispherical +DEBUG - -> double hemispherical +DEBUG - -> cylindrical mirror +DEBUG - -> display mirror +DEBUG - -> retarding grid +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/ENERGYDISPERSION/scheme): +DEBUG - +DEBUG - documentation (NXenergydispersion.nxdl.xml:/scheme): +DEBUG - + Energy dispersion scheme employed, for example: tof, hemispherical, cylindrical, + mirror, retarding grid, etc. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/energydispersion/tof_distance): +DEBUG - value: 0.9 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXenergydispersion', 'NX_FLOAT'] +DEBUG - classes: +NXenergydispersion.nxdl.xml:/tof_distance +DEBUG - <> +DEBUG - documentation (NXenergydispersion.nxdl.xml:/tof_distance): +DEBUG - + Length of the tof drift electrode + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/energydispersion/tof_distance@units) +DEBUG - value: m +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXenergydispersion', 'NX_FLOAT'] +DEBUG - classes: +NXenergydispersion.nxdl.xml:/tof_distance +DEBUG - NXenergydispersion.nxdl.xml:/tof_distance@units [NX_LENGTH] +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/fast_axes): +DEBUG - value: [b'kx' b'ky' b'E'] +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/fast_axes +NXelectronanalyser.nxdl.xml:/fast_axes +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/fast_axes): +DEBUG - +DEBUG - documentation (NXelectronanalyser.nxdl.xml:/fast_axes): +DEBUG - + List of the axes that are acquired simultaneously by the detector. + These refer only to the experimental variables recorded by the electron analyser. + Other variables such as temperature, manipulator angles etc. are labeled as fast or slow in the data. + + .. csv-table:: Examples + :header: "Mode", "fast_axes", "slow_axes" + + Hemispherical in ARPES mode, "['energy', 'kx']","" + "Hemispherical with channeltron, sweeping energy mode", "", [\"energy\"] + "Tof", "['energy', 'kx', 'ky']","" + "Momentum microscope, spin-resolved", "['energy', 'kx', 'ky']", "['spin up-down', 'spin left-right']" + + Axes may be less abstract than this, i.e. ['detector_x', 'detector_y']. + If energy_scan_mode=sweep, fast_axes: ['energy', 'kx']; slow_axes: ['energy'] is allowed. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/momentum_resolution): +DEBUG - value: 0.08 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NX_FLOAT'] +DEBUG - classes: +NXelectronanalyser.nxdl.xml:/momentum_resolution +DEBUG - <> +DEBUG - documentation (NXelectronanalyser.nxdl.xml:/momentum_resolution): +DEBUG - + Momentum resolution of the electron analyser (FWHM) + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/momentum_resolution@units) +DEBUG - value: 1/angstrom +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NX_FLOAT'] +DEBUG - classes: +NXelectronanalyser.nxdl.xml:/momentum_resolution +DEBUG - NXelectronanalyser.nxdl.xml:/momentum_resolution@units [NX_WAVENUMBER] +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/slow_axes): +DEBUG - value: b'delay' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/slow_axes +NXelectronanalyser.nxdl.xml:/slow_axes +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/ELECTRONANALYSER/slow_axes): +DEBUG - +DEBUG - documentation (NXelectronanalyser.nxdl.xml:/slow_axes): +DEBUG - + List of the axes that are acquired by scanning a physical parameter, listed in + order of decreasing speed. See fast_axes for examples. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/spatial_resolution): +DEBUG - value: 10.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NX_FLOAT'] +DEBUG - classes: +NXelectronanalyser.nxdl.xml:/spatial_resolution +DEBUG - <> +DEBUG - documentation (NXelectronanalyser.nxdl.xml:/spatial_resolution): +DEBUG - + Spatial resolution of the electron analyser (Airy disk radius) + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/spatial_resolution@units) +DEBUG - value: µm +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NX_FLOAT'] +DEBUG - classes: +NXelectronanalyser.nxdl.xml:/spatial_resolution +DEBUG - NXelectronanalyser.nxdl.xml:/spatial_resolution@units [NX_LENGTH] +DEBUG - ===== GROUP (//entry/instrument/electronanalyser/transformations [NXmpes::/NXentry/NXinstrument/NXelectronanalyser/NXtransformations]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXtransformations'] +DEBUG - classes: +NXelectronanalyser.nxdl.xml:/TRANSFORMATIONS +NXtransformations.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXelectronanalyser.nxdl.xml:/TRANSFORMATIONS): +DEBUG - + Collection of axis-based translations and rotations to describe the location and + geometry of the electron analyser as a component in the instrument. Conventions + from the NXtransformations base class are used. In principle, the McStas + coordinate system is used. The first transformation has to point either to + another component of the system or . (for pointing to the reference frame) to + relate it relative to the experimental setup. Typically, the components of a + system should all be related relative to each other and only one component + should relate to the reference coordinate system. + +DEBUG - documentation (NXtransformations.nxdl.xml:): +DEBUG - + Collection of axis-based translations and rotations to describe a geometry. + May also contain axes that do not move and therefore do not have a transformation + type specified, but are useful in understanding coordinate frames within which + transformations are done, or in documenting important directions, such as the + direction of gravity. + + A nested sequence of transformations lists the translation and rotation steps + needed to describe the position and orientation of any movable or fixed device. + + There will be one or more transformations (axes) defined by one or more fields + for each transformation. Transformations can also be described by NXlog groups when + the values change with time. The all-caps name ``AXISNAME`` designates the + particular axis generating a transformation (e.g. a rotation axis or a translation + axis or a general axis). The attribute ``units="NX_TRANSFORMATION"`` designates the + units will be appropriate to the ``transformation_type`` attribute: + + * ``NX_LENGTH`` for ``translation`` + * ``NX_ANGLE`` for ``rotation`` + * ``NX_UNITLESS`` for axes for which no transformation type is specified + + This class will usually contain all axes of a sample stage or goniometer or + a detector. The NeXus default McSTAS coordinate frame is assumed, but additional + useful coordinate axes may be defined by using axes for which no transformation + type has been specified. + + The entry point (``depends_on``) will be outside of this class and point to a + field in here. Following the chain may also require following ``depends_on`` + links to transformations outside, for example to a common base table. If + a relative path is given, it is relative to the group enclosing the ``depends_on`` + specification. + + For a chain of three transformations, where :math:`T_1` depends on :math:`T_2` + and that in turn depends on :math:`T_3`, the final transformation :math:`T_f` is + + .. math:: T_f = T_3 T_2 T_1 + + In explicit terms, the transformations are a subset of affine transformations + expressed as 4x4 matrices that act on homogeneous coordinates, :math:`w=(x,y,z,1)^T`. + + For rotation and translation, + + .. math:: T_r &= \begin{pmatrix} R & o \\ 0_3 & 1 \end{pmatrix} \\ T_t &= \begin{pmatrix} I_3 & t + o \\ 0_3 & 1 \end{pmatrix} + + where :math:`R` is the usual 3x3 rotation matrix, :math:`o` is an offset vector, + :math:`0_3` is a row of 3 zeros, :math:`I_3` is the 3x3 identity matrix and + :math:`t` is the translation vector. + + :math:`o` is given by the ``offset`` attribute, :math:`t` is given by the ``vector`` + attribute multiplied by the field value, and :math:`R` is defined as a rotation + about an axis in the direction of ``vector``, of angle of the field value. + + NOTE + + One possible use of ``NXtransformations`` is to define the motors and + transformations for a diffractometer (goniometer). Such use is mentioned + in the ``NXinstrument`` base class. Use one ``NXtransformations`` group + for each diffractometer and name the group appropriate to the device. + Collecting the motors of a sample table or xyz-stage in an NXtransformations + group is equally possible. + + + Following the section on the general dscription of axis in NXtransformations is a section which + documents the fields commonly used within NeXus for positioning purposes and their meaning. Whenever + there is a need for positioning a beam line component please use the existing names. Use as many fields + as needed in order to position the component. Feel free to add more axis if required. In the description + given below, only those atttributes which are defined through the name are spcified. Add the other attributes + of the full set: + + * vector + * offset + * transformation_type + * depends_on + + as needed. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/transformations@NX_class) +DEBUG - value: NXtransformations +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXtransformations'] +DEBUG - classes: +NXelectronanalyser.nxdl.xml:/TRANSFORMATIONS +NXtransformations.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/transformations/rot_y): +DEBUG - value: -115.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/transformations/rot_y@depends_on) +DEBUG - value: . +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/transformations/rot_y@transformation_type) +DEBUG - value: rotation +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/transformations/rot_y@units) +DEBUG - value: degrees +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/transformations/rot_y@vector) +DEBUG - value: [0 1 0] +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/instrument/electronanalyser/transformations/trans_z): +DEBUG - value: 4.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/transformations/trans_z@depends_on) +DEBUG - value: rot_y +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/transformations/trans_z@transformation_type) +DEBUG - value: translation +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/transformations/trans_z@units) +DEBUG - value: mm +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/instrument/electronanalyser/transformations/trans_z@vector) +DEBUG - value: [0 0 1] +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXelectronanalyser', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/instrument/energy_resolution): +DEBUG - value: 140.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/energy_resolution +NXinstrument.nxdl.xml:/energy_resolution +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/energy_resolution): +DEBUG - +DEBUG - documentation (NXinstrument.nxdl.xml:/energy_resolution): +DEBUG - + Energy resolution of the experiment (FWHM or gaussian broadening) + +DEBUG - ===== ATTRS (//entry/instrument/energy_resolution@units) +DEBUG - value: meV +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/energy_resolution +NXinstrument.nxdl.xml:/energy_resolution +DEBUG - NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/energy_resolution@units [NX_ENERGY] +DEBUG - NXinstrument.nxdl.xml:/energy_resolution@units [NX_ENERGY] +DEBUG - ===== GROUP (//entry/instrument/manipulator [NXmpes::/NXentry/NXinstrument/NXmanipulator]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/MANIPULATOR +NXmanipulator.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/MANIPULATOR): +DEBUG - + Manipulator for positioning of the sample. + +DEBUG - documentation (NXmanipulator.nxdl.xml:): +DEBUG - + Extension of NXpositioner to include fields to describe the use of manipulators + in photoemission experiments. + +DEBUG - ===== ATTRS (//entry/instrument/manipulator@NX_class) +DEBUG - value: NXmanipulator +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/MANIPULATOR +NXmanipulator.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/manipulator/depends_on): +DEBUG - value: b'/entry/instrument/manipulator/transformations/trans_z' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NX_CHAR'] +DEBUG - classes: +NXmanipulator.nxdl.xml:/depends_on +DEBUG - <> +DEBUG - documentation (NXmanipulator.nxdl.xml:/depends_on): +DEBUG - + Refers to the last transformation specifying the positon of the manipulator in + the NXtransformations chain. + +DEBUG - ===== FIELD (//entry/instrument/manipulator/sample_bias): +DEBUG - value: 17.799719004221362 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/MANIPULATOR/sample_bias +NXmanipulator.nxdl.xml:/sample_bias +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/MANIPULATOR/sample_bias): +DEBUG - +DEBUG - documentation (NXmanipulator.nxdl.xml:/sample_bias): +DEBUG - + Possible bias of the sample with trespect to analyser ground. This field may + also be found in NXsample if present. + +DEBUG - ===== ATTRS (//entry/instrument/manipulator/sample_bias@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/MANIPULATOR/sample_bias +NXmanipulator.nxdl.xml:/sample_bias +DEBUG - NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/MANIPULATOR/sample_bias@units [NX_CURRENT] +DEBUG - NXmanipulator.nxdl.xml:/sample_bias@units [NX_CURRENT] +DEBUG - ===== FIELD (//entry/instrument/manipulator/sample_temperature): +DEBUG - value: 23.050763803680983 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/MANIPULATOR/sample_temperature +NXmanipulator.nxdl.xml:/sample_temperature +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/MANIPULATOR/sample_temperature): +DEBUG - +DEBUG - documentation (NXmanipulator.nxdl.xml:/sample_temperature): +DEBUG - + Temperature at the closest point to the sample. This field may also be found in + NXsample if present. + +DEBUG - ===== ATTRS (//entry/instrument/manipulator/sample_temperature@units) +DEBUG - value: K +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/MANIPULATOR/sample_temperature +NXmanipulator.nxdl.xml:/sample_temperature +DEBUG - NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/MANIPULATOR/sample_temperature@units [NX_TEMPERATURE] +DEBUG - NXmanipulator.nxdl.xml:/sample_temperature@units [NX_TEMPERATURE] +DEBUG - ===== GROUP (//entry/instrument/manipulator/transformations [NXmpes::/NXentry/NXinstrument/NXmanipulator/NXtransformations]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations'] +DEBUG - classes: +NXmanipulator.nxdl.xml:/TRANSFORMATIONS +NXtransformations.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmanipulator.nxdl.xml:/TRANSFORMATIONS): +DEBUG - + Collection of axis-based translations and rotations to describe the location and + geometry of the manipulator as a component in the instrument. Conventions from + the NXtransformations base class are used. In principle, the McStas coordinate + system is used. The first transformation has to point either to another + component of the system or . (for pointing to the reference frame) to relate it + relative to the experimental setup. Typically, the components of a system should + all be related relative to each other and only one component should relate to + the reference coordinate system. + +DEBUG - documentation (NXtransformations.nxdl.xml:): +DEBUG - + Collection of axis-based translations and rotations to describe a geometry. + May also contain axes that do not move and therefore do not have a transformation + type specified, but are useful in understanding coordinate frames within which + transformations are done, or in documenting important directions, such as the + direction of gravity. + + A nested sequence of transformations lists the translation and rotation steps + needed to describe the position and orientation of any movable or fixed device. + + There will be one or more transformations (axes) defined by one or more fields + for each transformation. Transformations can also be described by NXlog groups when + the values change with time. The all-caps name ``AXISNAME`` designates the + particular axis generating a transformation (e.g. a rotation axis or a translation + axis or a general axis). The attribute ``units="NX_TRANSFORMATION"`` designates the + units will be appropriate to the ``transformation_type`` attribute: + + * ``NX_LENGTH`` for ``translation`` + * ``NX_ANGLE`` for ``rotation`` + * ``NX_UNITLESS`` for axes for which no transformation type is specified + + This class will usually contain all axes of a sample stage or goniometer or + a detector. The NeXus default McSTAS coordinate frame is assumed, but additional + useful coordinate axes may be defined by using axes for which no transformation + type has been specified. + + The entry point (``depends_on``) will be outside of this class and point to a + field in here. Following the chain may also require following ``depends_on`` + links to transformations outside, for example to a common base table. If + a relative path is given, it is relative to the group enclosing the ``depends_on`` + specification. + + For a chain of three transformations, where :math:`T_1` depends on :math:`T_2` + and that in turn depends on :math:`T_3`, the final transformation :math:`T_f` is + + .. math:: T_f = T_3 T_2 T_1 + + In explicit terms, the transformations are a subset of affine transformations + expressed as 4x4 matrices that act on homogeneous coordinates, :math:`w=(x,y,z,1)^T`. + + For rotation and translation, + + .. math:: T_r &= \begin{pmatrix} R & o \\ 0_3 & 1 \end{pmatrix} \\ T_t &= \begin{pmatrix} I_3 & t + o \\ 0_3 & 1 \end{pmatrix} + + where :math:`R` is the usual 3x3 rotation matrix, :math:`o` is an offset vector, + :math:`0_3` is a row of 3 zeros, :math:`I_3` is the 3x3 identity matrix and + :math:`t` is the translation vector. + + :math:`o` is given by the ``offset`` attribute, :math:`t` is given by the ``vector`` + attribute multiplied by the field value, and :math:`R` is defined as a rotation + about an axis in the direction of ``vector``, of angle of the field value. + + NOTE + + One possible use of ``NXtransformations`` is to define the motors and + transformations for a diffractometer (goniometer). Such use is mentioned + in the ``NXinstrument`` base class. Use one ``NXtransformations`` group + for each diffractometer and name the group appropriate to the device. + Collecting the motors of a sample table or xyz-stage in an NXtransformations + group is equally possible. + + + Following the section on the general dscription of axis in NXtransformations is a section which + documents the fields commonly used within NeXus for positioning purposes and their meaning. Whenever + there is a need for positioning a beam line component please use the existing names. Use as many fields + as needed in order to position the component. Feel free to add more axis if required. In the description + given below, only those atttributes which are defined through the name are spcified. Add the other attributes + of the full set: + + * vector + * offset + * transformation_type + * depends_on + + as needed. + +DEBUG - ===== ATTRS (//entry/instrument/manipulator/transformations@NX_class) +DEBUG - value: NXtransformations +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations'] +DEBUG - classes: +NXmanipulator.nxdl.xml:/TRANSFORMATIONS +NXtransformations.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/manipulator/transformations/rot_x): +DEBUG - value: -90.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/instrument/manipulator/transformations/rot_x@depends_on) +DEBUG - value: . +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/instrument/manipulator/transformations/rot_x@transformation_type) +DEBUG - value: rotation +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/instrument/manipulator/transformations/rot_x@units) +DEBUG - value: degrees +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/instrument/manipulator/transformations/rot_x@vector) +DEBUG - value: [1 0 0] +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/instrument/manipulator/transformations/rot_z): +DEBUG - value: -25.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/instrument/manipulator/transformations/rot_z@depends_on) +DEBUG - value: rot_x +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/instrument/manipulator/transformations/rot_z@transformation_type) +DEBUG - value: rotation +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/instrument/manipulator/transformations/rot_z@units) +DEBUG - value: degrees +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/instrument/manipulator/transformations/rot_z@vector) +DEBUG - value: [0 0 1] +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/instrument/manipulator/transformations/trans_z): +DEBUG - value: -0.32 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/instrument/manipulator/transformations/trans_z@depends_on) +DEBUG - value: rot_z +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/instrument/manipulator/transformations/trans_z@transformation_type) +DEBUG - value: translation +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/instrument/manipulator/transformations/trans_z@units) +DEBUG - value: m +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/instrument/manipulator/transformations/trans_z@vector) +DEBUG - value: [0 0 1] +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXmanipulator', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/instrument/momentum_resolution): +DEBUG - value: 0.08 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_FLOAT'] +DEBUG - classes: +NXinstrument.nxdl.xml:/momentum_resolution +DEBUG - <> +DEBUG - documentation (NXinstrument.nxdl.xml:/momentum_resolution): +DEBUG - + Momentum resolution of the experiment (FWHM) + +DEBUG - ===== ATTRS (//entry/instrument/momentum_resolution@units) +DEBUG - value: 1/angstrom +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_FLOAT'] +DEBUG - classes: +NXinstrument.nxdl.xml:/momentum_resolution +DEBUG - NXinstrument.nxdl.xml:/momentum_resolution@units [NX_WAVENUMBER] +DEBUG - ===== FIELD (//entry/instrument/name): +DEBUG - value: b'Time-of-flight momentum microscope equipped delay line detector, at the endstation of the high rep-rate HHG source at FHI' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_CHAR'] +DEBUG - classes: +NXinstrument.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXinstrument.nxdl.xml:/name): +DEBUG - + Name of instrument + +DEBUG - ===== ATTRS (//entry/instrument/name@short_name) +DEBUG - value: TR-ARPES @ FHI +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_CHAR'] +DEBUG - classes: +NXinstrument.nxdl.xml:/name +DEBUG - NXinstrument.nxdl.xml:/name@short_name - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXinstrument.nxdl.xml:/name/short_name): +DEBUG - + short name for instrument, perhaps the acronym + +DEBUG - ===== GROUP (//entry/instrument/source [NXmpes::/NXentry/NXinstrument/NXsource]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE +NXinstrument.nxdl.xml:/SOURCE +NXsource.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE): +DEBUG - + The source used to generate the primary photons. Properties refer strictly to + parameters of the source, not of the output beam. For example, the energy of the + source is not the optical power of the beam, but the energy of the electron beam + in a synchrotron and so on. + +DEBUG - documentation (NXinstrument.nxdl.xml:/SOURCE): +DEBUG - +DEBUG - documentation (NXsource.nxdl.xml:): +DEBUG - + The neutron or x-ray storage ring/facility. + +DEBUG - ===== ATTRS (//entry/instrument/source@NX_class) +DEBUG - value: NXsource +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE +NXinstrument.nxdl.xml:/SOURCE +NXsource.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/source/frequency): +DEBUG - value: 500.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] +DEBUG - classes: +NXsource.nxdl.xml:/frequency +DEBUG - <> +DEBUG - documentation (NXsource.nxdl.xml:/frequency): +DEBUG - + Frequency of pulsed source + +DEBUG - ===== ATTRS (//entry/instrument/source/frequency@units) +DEBUG - value: kHz +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] +DEBUG - classes: +NXsource.nxdl.xml:/frequency +DEBUG - NXsource.nxdl.xml:/frequency@units [NX_FREQUENCY] +DEBUG - ===== FIELD (//entry/instrument/source/mode): +DEBUG - value: b'Single Bunch' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_CHAR'] +DEBUG - classes: +NXsource.nxdl.xml:/mode +DEBUG - <> +DEBUG - enumeration (NXsource.nxdl.xml:/mode): +DEBUG - -> Single Bunch +DEBUG - -> Multi Bunch +DEBUG - documentation (NXsource.nxdl.xml:/mode): +DEBUG - + source operating mode + +DEBUG - ===== FIELD (//entry/instrument/source/name): +DEBUG - value: b'HHG @ TR-ARPES @ FHI' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/name +NXsource.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/name): +DEBUG - +DEBUG - documentation (NXsource.nxdl.xml:/name): +DEBUG - + Name of source + +DEBUG - ===== FIELD (//entry/instrument/source/photon_energy): +DEBUG - value: 21.7 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] +DEBUG - classes: +NXsource.nxdl.xml:/photon_energy +DEBUG - <> +DEBUG - documentation (NXsource.nxdl.xml:/photon_energy): +DEBUG - + The center photon energy of the source, before it is + monochromatized or converted + +DEBUG - ===== ATTRS (//entry/instrument/source/photon_energy@units) +DEBUG - value: eV +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] +DEBUG - classes: +NXsource.nxdl.xml:/photon_energy +DEBUG - NXsource.nxdl.xml:/photon_energy@units [NX_ENERGY] +DEBUG - ===== FIELD (//entry/instrument/source/probe): +DEBUG - value: b'ultraviolet' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/probe +NXsource.nxdl.xml:/probe +DEBUG - <> +DEBUG - enumeration (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/probe): +DEBUG - -> x-ray +DEBUG - -> ultraviolet +DEBUG - -> visible light +DEBUG - enumeration (NXsource.nxdl.xml:/probe): +DEBUG - -> neutron +DEBUG - -> x-ray +DEBUG - -> muon +DEBUG - -> electron +DEBUG - -> ultraviolet +DEBUG - -> visible light +DEBUG - -> positron +DEBUG - -> proton +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/probe): +DEBUG - + Type of probe. In photoemission it's always photons, so the full NIAC list is + restricted. + +DEBUG - documentation (NXsource.nxdl.xml:/probe): +DEBUG - + type of radiation probe (pick one from the enumerated list and spell exactly) + +DEBUG - ===== FIELD (//entry/instrument/source/type): +DEBUG - value: b'HHG laser' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/type +NXsource.nxdl.xml:/type +DEBUG - <> +DEBUG - enumeration (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/type): +DEBUG - -> Synchrotron X-ray Source +DEBUG - -> Rotating Anode X-ray +DEBUG - -> Fixed Tube X-ray +DEBUG - -> UV Laser +DEBUG - -> Free-Electron Laser +DEBUG - -> Optical Laser +DEBUG - -> UV Plasma Source +DEBUG - -> Metal Jet X-ray +DEBUG - -> HHG laser +DEBUG - enumeration (NXsource.nxdl.xml:/type): +DEBUG - -> Spallation Neutron Source +DEBUG - -> Pulsed Reactor Neutron Source +DEBUG - -> Reactor Neutron Source +DEBUG - -> Synchrotron X-ray Source +DEBUG - -> Pulsed Muon Source +DEBUG - -> Rotating Anode X-ray +DEBUG - -> Fixed Tube X-ray +DEBUG - -> UV Laser +DEBUG - -> Free-Electron Laser +DEBUG - -> Optical Laser +DEBUG - -> Ion Source +DEBUG - -> UV Plasma Source +DEBUG - -> Metal Jet X-ray +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/type): +DEBUG - +DEBUG - documentation (NXsource.nxdl.xml:/type): +DEBUG - + type of radiation source (pick one from the enumerated list and spell exactly) + +DEBUG - ===== GROUP (//entry/instrument/source_pump [NXmpes::/NXentry/NXinstrument/NXsource]): +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE +NXinstrument.nxdl.xml:/SOURCE +NXsource.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE): +DEBUG - + The source used to generate the primary photons. Properties refer strictly to + parameters of the source, not of the output beam. For example, the energy of the + source is not the optical power of the beam, but the energy of the electron beam + in a synchrotron and so on. + +DEBUG - documentation (NXinstrument.nxdl.xml:/SOURCE): +DEBUG - +DEBUG - documentation (NXsource.nxdl.xml:): +DEBUG - + The neutron or x-ray storage ring/facility. + +DEBUG - ===== ATTRS (//entry/instrument/source_pump@NX_class) +DEBUG - value: NXsource +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE +NXinstrument.nxdl.xml:/SOURCE +NXsource.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/instrument/source_pump/frequency): +DEBUG - value: 500.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] +DEBUG - classes: +NXsource.nxdl.xml:/frequency +DEBUG - <> +DEBUG - documentation (NXsource.nxdl.xml:/frequency): +DEBUG - + Frequency of pulsed source + +DEBUG - ===== ATTRS (//entry/instrument/source_pump/frequency@units) +DEBUG - value: kHz +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] +DEBUG - classes: +NXsource.nxdl.xml:/frequency +DEBUG - NXsource.nxdl.xml:/frequency@units [NX_FREQUENCY] +DEBUG - ===== FIELD (//entry/instrument/source_pump/mode): +DEBUG - value: b'Single Bunch' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_CHAR'] +DEBUG - classes: +NXsource.nxdl.xml:/mode +DEBUG - <> +DEBUG - enumeration (NXsource.nxdl.xml:/mode): +DEBUG - -> Single Bunch +DEBUG - -> Multi Bunch +DEBUG - documentation (NXsource.nxdl.xml:/mode): +DEBUG - + source operating mode + +DEBUG - ===== FIELD (//entry/instrument/source_pump/name): +DEBUG - value: b'OPCPA @ TR-ARPES @ FHI' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/name +NXsource.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/name): +DEBUG - +DEBUG - documentation (NXsource.nxdl.xml:/name): +DEBUG - + Name of source + +DEBUG - ===== FIELD (//entry/instrument/source_pump/photon_energy): +DEBUG - value: 1.2 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] +DEBUG - classes: +NXsource.nxdl.xml:/photon_energy +DEBUG - <> +DEBUG - documentation (NXsource.nxdl.xml:/photon_energy): +DEBUG - + The center photon energy of the source, before it is + monochromatized or converted + +DEBUG - ===== ATTRS (//entry/instrument/source_pump/photon_energy@units) +DEBUG - value: eV +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] +DEBUG - classes: +NXsource.nxdl.xml:/photon_energy +DEBUG - NXsource.nxdl.xml:/photon_energy@units [NX_ENERGY] +DEBUG - ===== FIELD (//entry/instrument/source_pump/probe): +DEBUG - value: b'visible light' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/probe +NXsource.nxdl.xml:/probe +DEBUG - <> +DEBUG - enumeration (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/probe): +DEBUG - -> x-ray +DEBUG - -> ultraviolet +DEBUG - -> visible light +DEBUG - enumeration (NXsource.nxdl.xml:/probe): +DEBUG - -> neutron +DEBUG - -> x-ray +DEBUG - -> muon +DEBUG - -> electron +DEBUG - -> ultraviolet +DEBUG - -> visible light +DEBUG - -> positron +DEBUG - -> proton +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/probe): +DEBUG - + Type of probe. In photoemission it's always photons, so the full NIAC list is + restricted. + +DEBUG - documentation (NXsource.nxdl.xml:/probe): +DEBUG - + type of radiation probe (pick one from the enumerated list and spell exactly) + +DEBUG - ===== FIELD (//entry/instrument/source_pump/type): +DEBUG - value: b'Optical Laser' +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/type +NXsource.nxdl.xml:/type +DEBUG - <> +DEBUG - enumeration (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/type): +DEBUG - -> Synchrotron X-ray Source +DEBUG - -> Rotating Anode X-ray +DEBUG - -> Fixed Tube X-ray +DEBUG - -> UV Laser +DEBUG - -> Free-Electron Laser +DEBUG - -> Optical Laser +DEBUG - -> UV Plasma Source +DEBUG - -> Metal Jet X-ray +DEBUG - -> HHG laser +DEBUG - enumeration (NXsource.nxdl.xml:/type): +DEBUG - -> Spallation Neutron Source +DEBUG - -> Pulsed Reactor Neutron Source +DEBUG - -> Reactor Neutron Source +DEBUG - -> Synchrotron X-ray Source +DEBUG - -> Pulsed Muon Source +DEBUG - -> Rotating Anode X-ray +DEBUG - -> Fixed Tube X-ray +DEBUG - -> UV Laser +DEBUG - -> Free-Electron Laser +DEBUG - -> Optical Laser +DEBUG - -> Ion Source +DEBUG - -> UV Plasma Source +DEBUG - -> Metal Jet X-ray +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/type): +DEBUG - +DEBUG - documentation (NXsource.nxdl.xml:/type): +DEBUG - + type of radiation source (pick one from the enumerated list and spell exactly) + +DEBUG - ===== FIELD (//entry/instrument/temporal_resolution): +DEBUG - value: 35.0 +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_FLOAT'] +DEBUG - classes: +NXinstrument.nxdl.xml:/temporal_resolution +DEBUG - <> +DEBUG - documentation (NXinstrument.nxdl.xml:/temporal_resolution): +DEBUG - + Temporal resolution of the experiment (FWHM) + +DEBUG - ===== ATTRS (//entry/instrument/temporal_resolution@units) +DEBUG - value: fs +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_FLOAT'] +DEBUG - classes: +NXinstrument.nxdl.xml:/temporal_resolution +DEBUG - NXinstrument.nxdl.xml:/temporal_resolution@units [NX_TIME] +DEBUG - ===== GROUP (//entry/process [NXmpes::/NXentry/NXprocess]): +DEBUG - classpath: ['NXentry', 'NXprocess'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/PROCESS +NXentry.nxdl.xml:/PROCESS +NXprocess.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/PROCESS): +DEBUG - + Document an event of data processing, reconstruction, or analysis for this data. + Describe the appropriate axis calibrations for your experiment using one or more + of the following NXcalibrations + +DEBUG - documentation (NXentry.nxdl.xml:/PROCESS): +DEBUG - +DEBUG - documentation (NXprocess.nxdl.xml:): +DEBUG - + Document an event of data processing, reconstruction, or analysis for this data. + +DEBUG - ===== ATTRS (//entry/process@NX_class) +DEBUG - value: NXprocess +DEBUG - classpath: ['NXentry', 'NXprocess'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/PROCESS +NXentry.nxdl.xml:/PROCESS +NXprocess.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== GROUP (//entry/process/distortion [NXmpes::/NXentry/NXprocess/NXdistortion]): +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXdistortion'] +DEBUG - classes: +NXprocess.nxdl.xml:/DISTORTION +NXdistortion.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXprocess.nxdl.xml:/DISTORTION): +DEBUG - + Describes the operations of image distortion correction + +DEBUG - documentation (NXdistortion.nxdl.xml:): +DEBUG - + Subclass of NXprocess to describe post-processing distortion correction. + +DEBUG - ===== ATTRS (//entry/process/distortion@NX_class) +DEBUG - value: NXdistortion +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXdistortion'] +DEBUG - classes: +NXprocess.nxdl.xml:/DISTORTION +NXdistortion.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/process/distortion/applied): +DEBUG - value: True +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXdistortion', 'NX_BOOLEAN'] +DEBUG - classes: +NXdistortion.nxdl.xml:/applied +DEBUG - <> +DEBUG - documentation (NXdistortion.nxdl.xml:/applied): +DEBUG - + Has the distortion correction been applied? + +DEBUG - ===== FIELD (//entry/process/distortion/cdeform_field): +DEBUG - value: [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ... +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXdistortion', 'NX_FLOAT'] +DEBUG - classes: +NXdistortion.nxdl.xml:/cdeform_field +DEBUG - <> +DEBUG - documentation (NXdistortion.nxdl.xml:/cdeform_field): +DEBUG - + Column deformation field for general non-rigid distortion corrections. 2D matrix + holding the column information of the mapping of each original coordinate. + +DEBUG - ===== FIELD (//entry/process/distortion/original_centre): +DEBUG - value: [203. 215.] +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXdistortion', 'NX_FLOAT'] +DEBUG - classes: +NXdistortion.nxdl.xml:/original_centre +DEBUG - <> +DEBUG - documentation (NXdistortion.nxdl.xml:/original_centre): +DEBUG - + For symmetry-guided distortion correction. Here we record the coordinates of the + symmetry centre point. + +DEBUG - ===== FIELD (//entry/process/distortion/original_points): +DEBUG - value: [166. 283.] +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXdistortion', 'NX_FLOAT'] +DEBUG - classes: +NXdistortion.nxdl.xml:/original_points +DEBUG - <> +DEBUG - documentation (NXdistortion.nxdl.xml:/original_points): +DEBUG - + For symmetry-guided distortion correction. Here we record the coordinates of the + relevant symmetry points. + +DEBUG - ===== FIELD (//entry/process/distortion/rdeform_field): +DEBUG - value: [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. ... +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXdistortion', 'NX_FLOAT'] +DEBUG - classes: +NXdistortion.nxdl.xml:/rdeform_field +DEBUG - <> +DEBUG - documentation (NXdistortion.nxdl.xml:/rdeform_field): +DEBUG - + Row deformation field for general non-rigid distortion corrections. 2D matrix + holding the row information of the mapping of each original coordinate. + +DEBUG - ===== FIELD (//entry/process/distortion/symmetry): +DEBUG - value: 6 +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXdistortion', 'NX_INT'] +DEBUG - classes: +NXdistortion.nxdl.xml:/symmetry +DEBUG - <> +DEBUG - documentation (NXdistortion.nxdl.xml:/symmetry): +DEBUG - + For `symmetry-guided distortion correction`_, + where a pattern of features is mapped to the regular geometric structure expected + from the symmetry. Here we record the number of elementary symmetry operations. + + .. _symmetry-guided distortion correction: https://www.sciencedirect.com/science/article/abs/pii/S0304399118303474?via%3Dihub + +DEBUG - ===== GROUP (//entry/process/energy_calibration [NXmpes::/NXentry/NXprocess/NXcalibration]): +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/PROCESS/energy_calibration +NXprocess.nxdl.xml:/CALIBRATION +NXcalibration.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/PROCESS/energy_calibration): +DEBUG - +DEBUG - documentation (NXprocess.nxdl.xml:/CALIBRATION): +DEBUG - + Describes the operations of calibration procedures, e.g. axis calibrations. + +DEBUG - documentation (NXcalibration.nxdl.xml:): +DEBUG - + Subclass of NXprocess to describe post-processing calibrations. + +DEBUG - ===== ATTRS (//entry/process/energy_calibration@NX_class) +DEBUG - value: NXcalibration +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/PROCESS/energy_calibration +NXprocess.nxdl.xml:/CALIBRATION +NXcalibration.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/process/energy_calibration/applied): +DEBUG - value: True +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration', 'NX_BOOLEAN'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/PROCESS/energy_calibration/applied +NXcalibration.nxdl.xml:/applied +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/PROCESS/energy_calibration/applied): +DEBUG - + Has an energy calibration been applied? + +DEBUG - documentation (NXcalibration.nxdl.xml:/applied): +DEBUG - + Has the calibration been applied? + +DEBUG - ===== FIELD (//entry/process/energy_calibration/calibrated_axis): +DEBUG - value: [ 5.22069940e+01 5.10746894e+01 4.99673811e+01 4.88843387e+01 ... +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/PROCESS/energy_calibration/calibrated_axis +NXcalibration.nxdl.xml:/calibrated_axis +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/PROCESS/energy_calibration/calibrated_axis): +DEBUG - + This is the calibrated energy axis to be used for data plotting. + +DEBUG - documentation (NXcalibration.nxdl.xml:/calibrated_axis): +DEBUG - + A vector representing the axis after calibration, matching the data length + +DEBUG - ===== FIELD (//entry/process/energy_calibration/fit_function): +DEBUG - value: b'(a0/(x0-a1))**2 + a2' +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration', 'NX_CHAR'] +DEBUG - classes: +NXcalibration.nxdl.xml:/fit_function +DEBUG - <> +DEBUG - documentation (NXcalibration.nxdl.xml:/fit_function): +DEBUG - + For non-linear energy calibrations. Here we can store the formula of the + fit function. + + Use a0, a1, ..., an for the coefficients, corresponding to the values in the coefficients field. + + Use x0, x1, ..., xn for the variables. + + The formula should be numpy compliant. + +DEBUG - ===== FIELD (//entry/process/energy_calibration/original_axis): +DEBUG - value: [ 60027.77777778 60083.33333333 60138.88888889 60194.44444444 ... +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration', 'NX_FLOAT'] +DEBUG - classes: +NXcalibration.nxdl.xml:/original_axis +DEBUG - <> +DEBUG - documentation (NXcalibration.nxdl.xml:/original_axis): +DEBUG - + Vector containing the data coordinates in the original uncalibrated axis + +DEBUG - ===== GROUP (//entry/process/kx_calibration [NXmpes::/NXentry/NXprocess/NXcalibration]): +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration'] +DEBUG - classes: +NXprocess.nxdl.xml:/CALIBRATION +NXcalibration.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXprocess.nxdl.xml:/CALIBRATION): +DEBUG - + Describes the operations of calibration procedures, e.g. axis calibrations. + +DEBUG - documentation (NXcalibration.nxdl.xml:): +DEBUG - + Subclass of NXprocess to describe post-processing calibrations. + +DEBUG - ===== ATTRS (//entry/process/kx_calibration@NX_class) +DEBUG - value: NXcalibration +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration'] +DEBUG - classes: +NXprocess.nxdl.xml:/CALIBRATION +NXcalibration.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/process/kx_calibration/applied): +DEBUG - value: True +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration', 'NX_BOOLEAN'] +DEBUG - classes: +NXcalibration.nxdl.xml:/applied +DEBUG - <> +DEBUG - documentation (NXcalibration.nxdl.xml:/applied): +DEBUG - + Has the calibration been applied? + +DEBUG - ===== FIELD (//entry/process/kx_calibration/calibrated_axis): +DEBUG - value: [-2.68021375 -2.66974416 -2.65927458 -2.64880499 -2.63833541 -2.62786582 ... +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration', 'NX_FLOAT'] +DEBUG - classes: +NXcalibration.nxdl.xml:/calibrated_axis +DEBUG - <> +DEBUG - documentation (NXcalibration.nxdl.xml:/calibrated_axis): +DEBUG - + A vector representing the axis after calibration, matching the data length + +DEBUG - ===== FIELD (//entry/process/kx_calibration/offset): +DEBUG - value: 256.0 +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration', 'NX_FLOAT'] +DEBUG - classes: +NXcalibration.nxdl.xml:/offset +DEBUG - <> +DEBUG - documentation (NXcalibration.nxdl.xml:/offset): +DEBUG - + For linear calibration. Offset parameter. + +DEBUG - ===== FIELD (//entry/process/kx_calibration/scaling): +DEBUG - value: 0.01046958495673419 +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration', 'NX_FLOAT'] +DEBUG - classes: +NXcalibration.nxdl.xml:/scaling +DEBUG - <> +DEBUG - documentation (NXcalibration.nxdl.xml:/scaling): +DEBUG - + For linear calibration. Scaling parameter. + +DEBUG - ===== GROUP (//entry/process/ky_calibration [NXmpes::/NXentry/NXprocess/NXcalibration]): +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration'] +DEBUG - classes: +NXprocess.nxdl.xml:/CALIBRATION +NXcalibration.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXprocess.nxdl.xml:/CALIBRATION): +DEBUG - + Describes the operations of calibration procedures, e.g. axis calibrations. + +DEBUG - documentation (NXcalibration.nxdl.xml:): +DEBUG - + Subclass of NXprocess to describe post-processing calibrations. + +DEBUG - ===== ATTRS (//entry/process/ky_calibration@NX_class) +DEBUG - value: NXcalibration +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration'] +DEBUG - classes: +NXprocess.nxdl.xml:/CALIBRATION +NXcalibration.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/process/ky_calibration/applied): +DEBUG - value: True +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration', 'NX_BOOLEAN'] +DEBUG - classes: +NXcalibration.nxdl.xml:/applied +DEBUG - <> +DEBUG - documentation (NXcalibration.nxdl.xml:/applied): +DEBUG - + Has the calibration been applied? + +DEBUG - ===== FIELD (//entry/process/ky_calibration/calibrated_axis): +DEBUG - value: [-2.68021375 -2.66974416 -2.65927458 -2.64880499 -2.63833541 -2.62786582 ... +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration', 'NX_FLOAT'] +DEBUG - classes: +NXcalibration.nxdl.xml:/calibrated_axis +DEBUG - <> +DEBUG - documentation (NXcalibration.nxdl.xml:/calibrated_axis): +DEBUG - + A vector representing the axis after calibration, matching the data length + +DEBUG - ===== FIELD (//entry/process/ky_calibration/offset): +DEBUG - value: 256.0 +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration', 'NX_FLOAT'] +DEBUG - classes: +NXcalibration.nxdl.xml:/offset +DEBUG - <> +DEBUG - documentation (NXcalibration.nxdl.xml:/offset): +DEBUG - + For linear calibration. Offset parameter. + +DEBUG - ===== FIELD (//entry/process/ky_calibration/scaling): +DEBUG - value: 0.01046958495673419 +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXcalibration', 'NX_FLOAT'] +DEBUG - classes: +NXcalibration.nxdl.xml:/scaling +DEBUG - <> +DEBUG - documentation (NXcalibration.nxdl.xml:/scaling): +DEBUG - + For linear calibration. Scaling parameter. + +DEBUG - ===== GROUP (//entry/process/registration [NXmpes::/NXentry/NXprocess/NXregistration]): +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration'] +DEBUG - classes: +NXprocess.nxdl.xml:/REGISTRATION +NXregistration.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXprocess.nxdl.xml:/REGISTRATION): +DEBUG - + Describes the operations of image registration + +DEBUG - documentation (NXregistration.nxdl.xml:): +DEBUG - + Describes image registration procedures. + +DEBUG - ===== ATTRS (//entry/process/registration@NX_class) +DEBUG - value: NXregistration +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration'] +DEBUG - classes: +NXprocess.nxdl.xml:/REGISTRATION +NXregistration.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/process/registration/applied): +DEBUG - value: True +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NX_BOOLEAN'] +DEBUG - classes: +NXregistration.nxdl.xml:/applied +DEBUG - <> +DEBUG - documentation (NXregistration.nxdl.xml:/applied): +DEBUG - + Has the registration been applied? + +DEBUG - ===== FIELD (//entry/process/registration/depends_on): +DEBUG - value: b'/entry/process/registration/tranformations/rot_z' +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NX_CHAR'] +DEBUG - classes: +NXregistration.nxdl.xml:/depends_on +DEBUG - <> +DEBUG - documentation (NXregistration.nxdl.xml:/depends_on): +DEBUG - + Specifies the position by pointing to the last transformation in the + transformation chain in the NXtransformations group. + +DEBUG - ===== GROUP (//entry/process/registration/tranformations [NXmpes::/NXentry/NXprocess/NXregistration/NXtransformations]): +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations'] +DEBUG - classes: +NXregistration.nxdl.xml:/TRANSFORMATIONS +NXtransformations.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXregistration.nxdl.xml:/TRANSFORMATIONS): +DEBUG - + To describe the operations of image registration (combinations of rigid + translations and rotations) + +DEBUG - documentation (NXtransformations.nxdl.xml:): +DEBUG - + Collection of axis-based translations and rotations to describe a geometry. + May also contain axes that do not move and therefore do not have a transformation + type specified, but are useful in understanding coordinate frames within which + transformations are done, or in documenting important directions, such as the + direction of gravity. + + A nested sequence of transformations lists the translation and rotation steps + needed to describe the position and orientation of any movable or fixed device. + + There will be one or more transformations (axes) defined by one or more fields + for each transformation. Transformations can also be described by NXlog groups when + the values change with time. The all-caps name ``AXISNAME`` designates the + particular axis generating a transformation (e.g. a rotation axis or a translation + axis or a general axis). The attribute ``units="NX_TRANSFORMATION"`` designates the + units will be appropriate to the ``transformation_type`` attribute: + + * ``NX_LENGTH`` for ``translation`` + * ``NX_ANGLE`` for ``rotation`` + * ``NX_UNITLESS`` for axes for which no transformation type is specified + + This class will usually contain all axes of a sample stage or goniometer or + a detector. The NeXus default McSTAS coordinate frame is assumed, but additional + useful coordinate axes may be defined by using axes for which no transformation + type has been specified. + + The entry point (``depends_on``) will be outside of this class and point to a + field in here. Following the chain may also require following ``depends_on`` + links to transformations outside, for example to a common base table. If + a relative path is given, it is relative to the group enclosing the ``depends_on`` + specification. + + For a chain of three transformations, where :math:`T_1` depends on :math:`T_2` + and that in turn depends on :math:`T_3`, the final transformation :math:`T_f` is + + .. math:: T_f = T_3 T_2 T_1 + + In explicit terms, the transformations are a subset of affine transformations + expressed as 4x4 matrices that act on homogeneous coordinates, :math:`w=(x,y,z,1)^T`. + + For rotation and translation, + + .. math:: T_r &= \begin{pmatrix} R & o \\ 0_3 & 1 \end{pmatrix} \\ T_t &= \begin{pmatrix} I_3 & t + o \\ 0_3 & 1 \end{pmatrix} + + where :math:`R` is the usual 3x3 rotation matrix, :math:`o` is an offset vector, + :math:`0_3` is a row of 3 zeros, :math:`I_3` is the 3x3 identity matrix and + :math:`t` is the translation vector. + + :math:`o` is given by the ``offset`` attribute, :math:`t` is given by the ``vector`` + attribute multiplied by the field value, and :math:`R` is defined as a rotation + about an axis in the direction of ``vector``, of angle of the field value. + + NOTE + + One possible use of ``NXtransformations`` is to define the motors and + transformations for a diffractometer (goniometer). Such use is mentioned + in the ``NXinstrument`` base class. Use one ``NXtransformations`` group + for each diffractometer and name the group appropriate to the device. + Collecting the motors of a sample table or xyz-stage in an NXtransformations + group is equally possible. + + + Following the section on the general dscription of axis in NXtransformations is a section which + documents the fields commonly used within NeXus for positioning purposes and their meaning. Whenever + there is a need for positioning a beam line component please use the existing names. Use as many fields + as needed in order to position the component. Feel free to add more axis if required. In the description + given below, only those atttributes which are defined through the name are spcified. Add the other attributes + of the full set: + + * vector + * offset + * transformation_type + * depends_on + + as needed. + +DEBUG - ===== ATTRS (//entry/process/registration/tranformations@NX_class) +DEBUG - value: NXtransformations +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations'] +DEBUG - classes: +NXregistration.nxdl.xml:/TRANSFORMATIONS +NXtransformations.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/process/registration/tranformations/rot_z): +DEBUG - value: -1.0 +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/process/registration/tranformations/rot_z@depends_on) +DEBUG - value: trans_y +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/process/registration/tranformations/rot_z@offset) +DEBUG - value: [256. 256. 0.] +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@offset - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/offset): +DEBUG - + A fixed offset applied before the transformation (three vector components). + This is not intended to be a substitute for a fixed ``translation`` axis but, for example, + as the mechanical offset from mounting the axis to its dependency. + +DEBUG - ===== ATTRS (//entry/process/registration/tranformations/rot_z@transformation_type) +DEBUG - value: rotation +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/process/registration/tranformations/rot_z@units) +DEBUG - value: degrees +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/process/registration/tranformations/rot_z@vector) +DEBUG - value: [0. 0. 1.] +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/process/registration/tranformations/trans_x): +DEBUG - value: 43.0 +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/process/registration/tranformations/trans_x@depends_on) +DEBUG - value: . +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/process/registration/tranformations/trans_x@transformation_type) +DEBUG - value: translation +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/process/registration/tranformations/trans_x@units) +DEBUG - value: pixels +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/process/registration/tranformations/trans_x@vector) +DEBUG - value: [1. 0. 0.] +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/process/registration/tranformations/trans_y): +DEBUG - value: 55.0 +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/process/registration/tranformations/trans_y@depends_on) +DEBUG - value: trans_x +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/process/registration/tranformations/trans_y@transformation_type) +DEBUG - value: translation +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/process/registration/tranformations/trans_y@units) +DEBUG - value: pixels +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/process/registration/tranformations/trans_y@vector) +DEBUG - value: [0. 1. 0.] +DEBUG - classpath: ['NXentry', 'NXprocess', 'NXregistration', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== GROUP (//entry/sample [NXmpes::/NXentry/NXsample]): +DEBUG - classpath: ['NXentry', 'NXsample'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE +NXentry.nxdl.xml:/SAMPLE +NXsample.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/SAMPLE): +DEBUG - +DEBUG - documentation (NXentry.nxdl.xml:/SAMPLE): +DEBUG - +DEBUG - documentation (NXsample.nxdl.xml:): +DEBUG - + Any information on the sample. + + This could include scanned variables that + are associated with one of the data dimensions, e.g. the magnetic field, or + logged data, e.g. monitored temperature vs elapsed time. + +DEBUG - ===== ATTRS (//entry/sample@NX_class) +DEBUG - value: NXsample +DEBUG - classpath: ['NXentry', 'NXsample'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE +NXentry.nxdl.xml:/SAMPLE +NXsample.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/sample/bias): +DEBUG - value: 17.799719004221362 +DEBUG - classpath: ['NXentry', 'NXsample', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/bias +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/SAMPLE/bias): +DEBUG - + Voltage applied to sample and sample holder. + +DEBUG - ===== ATTRS (//entry/sample/bias@units) +DEBUG - value: V +DEBUG - classpath: ['NXentry', 'NXsample', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/bias +DEBUG - NXmpes.nxdl.xml:/ENTRY/SAMPLE/bias@units [NX_VOLTAGE] +DEBUG - ===== FIELD (//entry/sample/chemical_formula): +DEBUG - value: b'MoTe2' +DEBUG - classpath: ['NXentry', 'NXsample', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/chemical_formula +NXsample.nxdl.xml:/chemical_formula +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/SAMPLE/chemical_formula): +DEBUG - + The chemical formula of the sample. For mixtures use the NXsample_component + group in NXsample instead. + +DEBUG - documentation (NXsample.nxdl.xml:/chemical_formula): +DEBUG - + The chemical formula specified using CIF conventions. + Abbreviated version of CIF standard: + + * Only recognized element symbols may be used. + * Each element symbol is followed by a 'count' number. A count of '1' may be omitted. + * A space or parenthesis must separate each cluster of (element symbol + count). + * Where a group of elements is enclosed in parentheses, the multiplier for the + group must follow the closing parentheses. That is, all element and group + multipliers are assumed to be printed as subscripted numbers. + * Unless the elements are ordered in a manner that corresponds to their chemical + structure, the order of the elements within any group or moiety depends on + whether or not carbon is present. + * If carbon is present, the order should be: + + - C, then H, then the other elements in alphabetical order of their symbol. + - If carbon is not present, the elements are listed purely in alphabetic order of their symbol. + + * This is the *Hill* system used by Chemical Abstracts. + +DEBUG - ===== FIELD (//entry/sample/depends_on): +DEBUG - value: b'/entry/sample/transformations/corrected_phi' +DEBUG - classpath: ['NXentry', 'NXsample', 'NX_CHAR'] +DEBUG - classes: +NXsample.nxdl.xml:/depends_on +DEBUG - <> +DEBUG - documentation (NXsample.nxdl.xml:/depends_on): +DEBUG - + NeXus positions components by applying a set of translations and rotations + to apply to the component starting from 0, 0, 0. The order of these operations + is critical and forms what NeXus calls a dependency chain. The depends_on + field defines the path to the top most operation of the dependency chain or the + string "." if located in the origin. Usually these operations are stored in a + NXtransformations group. But NeXus allows them to be stored anywhere. + +DEBUG - ===== FIELD (//entry/sample/description): +DEBUG - value: b'MoTe2' +DEBUG - classpath: ['NXentry', 'NXsample', 'NX_CHAR'] +DEBUG - classes: +NXsample.nxdl.xml:/description +DEBUG - <> +DEBUG - documentation (NXsample.nxdl.xml:/description): +DEBUG - + Description of the sample + +DEBUG - ===== FIELD (//entry/sample/gas_pressure): +DEBUG - value: 4.5599999999999996e-11 +DEBUG - classpath: ['NXentry', 'NXsample', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/gas_pressure +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/SAMPLE/gas_pressure): +DEBUG - +DEBUG - ===== ATTRS (//entry/sample/gas_pressure@units) +DEBUG - value: mbar +DEBUG - classpath: ['NXentry', 'NXsample', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/gas_pressure +DEBUG - NXmpes.nxdl.xml:/ENTRY/SAMPLE/gas_pressure@units [NX_PRESSURE] +DEBUG - ===== FIELD (//entry/sample/name): +DEBUG - value: b'MoTe2' +DEBUG - classpath: ['NXentry', 'NXsample', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/name +NXsample.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/SAMPLE/name): +DEBUG - +DEBUG - documentation (NXsample.nxdl.xml:/name): +DEBUG - + Descriptive name of sample + +DEBUG - ===== FIELD (//entry/sample/preparation_date): +DEBUG - value: b'2019-05-22T14:00:00+00:00' +DEBUG - classpath: ['NXentry', 'NXsample', 'NX_DATE_TIME'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/preparation_date +NXsample.nxdl.xml:/preparation_date +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/SAMPLE/preparation_date): +DEBUG - + Date of preparation of the sample for the XPS experiment (i.e. cleaving, last + annealing). + +DEBUG - documentation (NXsample.nxdl.xml:/preparation_date): +DEBUG - + Date of preparation of the sample + +DEBUG - ===== GROUP (//entry/sample/preparation_description [NXmpes::/NXentry/NXsample/NXnote]): +DEBUG - classpath: ['NXentry', 'NXsample', 'NXnote'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/preparation_description +NXnote.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/SAMPLE/preparation_description): +DEBUG - + Description of the surface preparation technique for the XPS experiment, i.e. + UHV cleaving, in-situ growth, sputtering/annealing etc. Ideally, a full report + of the previous operations, in any format(NXnote allows to add pictures, audio, + movies). Alternatively, a reference to the location or a unique identifier or + other metadata file. In the case these are not available, free-text description. + +DEBUG - documentation (NXnote.nxdl.xml:): +DEBUG - + Any additional freeform information not covered by the other base classes. + + This class can be used to store additional information in a + NeXus file e.g. pictures, movies, audio, additional text logs + +DEBUG - ===== ATTRS (//entry/sample/preparation_description@NX_class) +DEBUG - value: NXnote +DEBUG - classpath: ['NXentry', 'NXsample', 'NXnote'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/preparation_description +NXnote.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/sample/preparation_description/description): +DEBUG - value: b'Here should be a description of the preparation procedure.' +DEBUG - classpath: ['NXentry', 'NXsample', 'NXnote', 'NX_CHAR'] +DEBUG - classes: +NXnote.nxdl.xml:/description +DEBUG - <> +DEBUG - documentation (NXnote.nxdl.xml:/description): +DEBUG - Title of an image or other details of the note +DEBUG - ===== GROUP (//entry/sample/sample_history [NXmpes::/NXentry/NXsample/NXnote]): +DEBUG - classpath: ['NXentry', 'NXsample', 'NXnote'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/sample_history +NXnote.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/SAMPLE/sample_history): +DEBUG - + A descriptor to keep track of the treatment of the sample before entering the + photoemission experiment. Ideally, a full report of the previous operations, in + any format (NXnote allows to add pictures, audio, movies). Alternatively, a + reference to the location or a unique identifier or other metadata file. In the + case these are not available, free-text description. + +DEBUG - documentation (NXnote.nxdl.xml:): +DEBUG - + Any additional freeform information not covered by the other base classes. + + This class can be used to store additional information in a + NeXus file e.g. pictures, movies, audio, additional text logs + +DEBUG - ===== ATTRS (//entry/sample/sample_history@NX_class) +DEBUG - value: NXnote +DEBUG - classpath: ['NXentry', 'NXsample', 'NXnote'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/sample_history +NXnote.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/sample/sample_history/description): +DEBUG - value: b'Cleaved' +DEBUG - classpath: ['NXentry', 'NXsample', 'NXnote', 'NX_CHAR'] +DEBUG - classes: +NXnote.nxdl.xml:/description +DEBUG - <> +DEBUG - documentation (NXnote.nxdl.xml:/description): +DEBUG - Title of an image or other details of the note +DEBUG - ===== FIELD (//entry/sample/situation): +DEBUG - value: b'vacuum' +DEBUG - classpath: ['NXentry', 'NXsample', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/situation +NXsample.nxdl.xml:/situation +DEBUG - <> +DEBUG - enumeration (NXmpes.nxdl.xml:/ENTRY/SAMPLE/situation): +DEBUG - -> vacuum +DEBUG - -> inert atmosphere +DEBUG - -> oxidising atmosphere +DEBUG - -> reducing atmosphere +DEBUG - enumeration (NXsample.nxdl.xml:/situation): +DEBUG - -> air +DEBUG - -> vacuum +DEBUG - -> inert atmosphere +DEBUG - -> oxidising atmosphere +DEBUG - -> reducing atmosphere +DEBUG - -> sealed can +DEBUG - -> other +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/SAMPLE/situation): +DEBUG - +DEBUG - documentation (NXsample.nxdl.xml:/situation): +DEBUG - + The atmosphere will be one of the components, which is where + its details will be stored; the relevant components will be + indicated by the entry in the sample_component member. + +DEBUG - ===== FIELD (//entry/sample/temperature): +DEBUG - value: 23.050763803680983 +DEBUG - classpath: ['NXentry', 'NXsample', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/temperature +NXsample.nxdl.xml:/temperature +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/SAMPLE/temperature): +DEBUG - + In the case of a fixed temperature measurement this is the scalar temperature of + the sample. In the case of an experiment in which the temperature is changed and + recoded, this is an array of length m of temperatures. This should be a link to + /entry/instrument/manipulator/sample_temperature. + +DEBUG - documentation (NXsample.nxdl.xml:/temperature): +DEBUG - + Sample temperature. This could be a scanned variable + +DEBUG - ===== ATTRS (//entry/sample/temperature@units) +DEBUG - value: K +DEBUG - classpath: ['NXentry', 'NXsample', 'NX_FLOAT'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/SAMPLE/temperature +NXsample.nxdl.xml:/temperature +DEBUG - NXmpes.nxdl.xml:/ENTRY/SAMPLE/temperature@units [NX_TEMPERATURE] +DEBUG - NXsample.nxdl.xml:/temperature@units [NX_TEMPERATURE] +DEBUG - ===== GROUP (//entry/sample/transformations [NXmpes::/NXentry/NXsample/NXtransformations]): +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations'] +DEBUG - classes: +NXsample.nxdl.xml:/TRANSFORMATIONS +NXtransformations.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXsample.nxdl.xml:/TRANSFORMATIONS): +DEBUG - + This is the group recommended for holding the chain of translation + and rotation operations necessary to position the component within + the instrument. The dependency chain may however traverse similar groups in + other component groups. + +DEBUG - documentation (NXtransformations.nxdl.xml:): +DEBUG - + Collection of axis-based translations and rotations to describe a geometry. + May also contain axes that do not move and therefore do not have a transformation + type specified, but are useful in understanding coordinate frames within which + transformations are done, or in documenting important directions, such as the + direction of gravity. + + A nested sequence of transformations lists the translation and rotation steps + needed to describe the position and orientation of any movable or fixed device. + + There will be one or more transformations (axes) defined by one or more fields + for each transformation. Transformations can also be described by NXlog groups when + the values change with time. The all-caps name ``AXISNAME`` designates the + particular axis generating a transformation (e.g. a rotation axis or a translation + axis or a general axis). The attribute ``units="NX_TRANSFORMATION"`` designates the + units will be appropriate to the ``transformation_type`` attribute: + + * ``NX_LENGTH`` for ``translation`` + * ``NX_ANGLE`` for ``rotation`` + * ``NX_UNITLESS`` for axes for which no transformation type is specified + + This class will usually contain all axes of a sample stage or goniometer or + a detector. The NeXus default McSTAS coordinate frame is assumed, but additional + useful coordinate axes may be defined by using axes for which no transformation + type has been specified. + + The entry point (``depends_on``) will be outside of this class and point to a + field in here. Following the chain may also require following ``depends_on`` + links to transformations outside, for example to a common base table. If + a relative path is given, it is relative to the group enclosing the ``depends_on`` + specification. + + For a chain of three transformations, where :math:`T_1` depends on :math:`T_2` + and that in turn depends on :math:`T_3`, the final transformation :math:`T_f` is + + .. math:: T_f = T_3 T_2 T_1 + + In explicit terms, the transformations are a subset of affine transformations + expressed as 4x4 matrices that act on homogeneous coordinates, :math:`w=(x,y,z,1)^T`. + + For rotation and translation, + + .. math:: T_r &= \begin{pmatrix} R & o \\ 0_3 & 1 \end{pmatrix} \\ T_t &= \begin{pmatrix} I_3 & t + o \\ 0_3 & 1 \end{pmatrix} + + where :math:`R` is the usual 3x3 rotation matrix, :math:`o` is an offset vector, + :math:`0_3` is a row of 3 zeros, :math:`I_3` is the 3x3 identity matrix and + :math:`t` is the translation vector. + + :math:`o` is given by the ``offset`` attribute, :math:`t` is given by the ``vector`` + attribute multiplied by the field value, and :math:`R` is defined as a rotation + about an axis in the direction of ``vector``, of angle of the field value. + + NOTE + + One possible use of ``NXtransformations`` is to define the motors and + transformations for a diffractometer (goniometer). Such use is mentioned + in the ``NXinstrument`` base class. Use one ``NXtransformations`` group + for each diffractometer and name the group appropriate to the device. + Collecting the motors of a sample table or xyz-stage in an NXtransformations + group is equally possible. + + + Following the section on the general dscription of axis in NXtransformations is a section which + documents the fields commonly used within NeXus for positioning purposes and their meaning. Whenever + there is a need for positioning a beam line component please use the existing names. Use as many fields + as needed in order to position the component. Feel free to add more axis if required. In the description + given below, only those atttributes which are defined through the name are spcified. Add the other attributes + of the full set: + + * vector + * offset + * transformation_type + * depends_on + + as needed. + +DEBUG - ===== ATTRS (//entry/sample/transformations@NX_class) +DEBUG - value: NXtransformations +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations'] +DEBUG - classes: +NXsample.nxdl.xml:/TRANSFORMATIONS +NXtransformations.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/sample/transformations/corrected_phi): +DEBUG - value: 90.0 +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/sample/transformations/corrected_phi@depends_on) +DEBUG - value: rot_omg +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/sample/transformations/corrected_phi@transformation_type) +DEBUG - value: rotation +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/sample/transformations/corrected_phi@units) +DEBUG - value: degrees +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/sample/transformations/corrected_phi@vector) +DEBUG - value: [0 1 0] +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/sample/transformations/rot_omg): +DEBUG - value: 131.7 +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/sample/transformations/rot_omg@depends_on) +DEBUG - value: rot_phi +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/sample/transformations/rot_omg@transformation_type) +DEBUG - value: rotation +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/sample/transformations/rot_omg@units) +DEBUG - value: degrees +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/sample/transformations/rot_omg@vector) +DEBUG - value: [1 0 0] +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/sample/transformations/rot_phi): +DEBUG - value: 2.5 +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/sample/transformations/rot_phi@depends_on) +DEBUG - value: rot_tht +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/sample/transformations/rot_phi@transformation_type) +DEBUG - value: rotation +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/sample/transformations/rot_phi@units) +DEBUG - value: degrees +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/sample/transformations/rot_phi@vector) +DEBUG - value: [0 1 0] +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/sample/transformations/rot_tht): +DEBUG - value: 401.18 +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/sample/transformations/rot_tht@depends_on) +DEBUG - value: trans_z +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/sample/transformations/rot_tht@transformation_type) +DEBUG - value: rotation +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/sample/transformations/rot_tht@units) +DEBUG - value: degrees +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/sample/transformations/rot_tht@vector) +DEBUG - value: [0 0 1] +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/sample/transformations/trans_x): +DEBUG - value: 2.65 +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/sample/transformations/trans_x@depends_on) +DEBUG - value: /entry/instrument/manipulator/transformations/trans_z +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/sample/transformations/trans_x@transformation_type) +DEBUG - value: translation +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/sample/transformations/trans_x@units) +DEBUG - value: mm +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/sample/transformations/trans_x@vector) +DEBUG - value: [1 0 0] +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/sample/transformations/trans_y): +DEBUG - value: -4.321 +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/sample/transformations/trans_y@depends_on) +DEBUG - value: trans_x +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/sample/transformations/trans_y@transformation_type) +DEBUG - value: translation +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/sample/transformations/trans_y@units) +DEBUG - value: mm +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/sample/transformations/trans_y@vector) +DEBUG - value: [0 1 0] +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/sample/transformations/trans_z): +DEBUG - value: 34.82 +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME): +DEBUG - + Units need to be appropriate for translation or rotation + + The name of this field is not forced. The user is free to use any name + that does not cause confusion. When using more than one ``AXISNAME`` field, + make sure that each field name is unique in the same group, as required + by HDF5. + + The values given should be the start points of exposures for the corresponding + frames. The end points should be given in ``AXISNAME_end``. + +DEBUG - ===== ATTRS (//entry/sample/transformations/trans_z@depends_on) +DEBUG - value: trans_y +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@depends_on - [NX_CHAR] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/depends_on): +DEBUG - + Points to the path to a field defining the axis on which this + depends or the string ".". + +DEBUG - ===== ATTRS (//entry/sample/transformations/trans_z@transformation_type) +DEBUG - value: translation +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@transformation_type - [NX_CHAR] +DEBUG - <> +DEBUG - enumeration (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - -> translation +DEBUG - -> rotation +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/transformation_type): +DEBUG - + The transformation_type may be ``translation``, in which case the + values are linear displacements along the axis, ``rotation``, + in which case the values are angular rotations around the axis. + + If this attribute is omitted, this is an axis for which there + is no motion to be specifies, such as the direction of gravity, + or the direction to the source, or a basis vector of a + coordinate frame. + +DEBUG - ===== ATTRS (//entry/sample/transformations/trans_z@units) +DEBUG - value: mm +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@units [NX_TRANSFORMATION] +DEBUG - ===== ATTRS (//entry/sample/transformations/trans_z@vector) +DEBUG - value: [0 0 1] +DEBUG - classpath: ['NXentry', 'NXsample', 'NXtransformations', 'NX_NUMBER'] +DEBUG - classes: +NXtransformations.nxdl.xml:/AXISNAME +DEBUG - NXtransformations.nxdl.xml:/AXISNAME@vector - [NX_NUMBER] +DEBUG - <> +DEBUG - documentation (NXtransformations.nxdl.xml:/AXISNAME/vector): +DEBUG - + Three values that define the axis for this transformation. + The axis should be normalized to unit length, making it + dimensionless. For ``rotation`` axes, the direction should be + chosen for a right-handed rotation with increasing angle. + For ``translation`` axes the direction should be chosen for + increasing displacement. For general axes, an appropriate direction + should be chosen. + +DEBUG - ===== FIELD (//entry/start_time): +DEBUG - value: b'2019-05-23T18:13:54.657000+00:00' +DEBUG - classpath: ['NXentry', 'NX_DATE_TIME'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/start_time +NXentry.nxdl.xml:/start_time +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/start_time): +DEBUG - + Datetime of the start of the measurement. + +DEBUG - documentation (NXentry.nxdl.xml:/start_time): +DEBUG - + Starting time of measurement + +DEBUG - ===== FIELD (//entry/title): +DEBUG - value: b'Valence Band Dynamics - 1030 nm linear p-polarized pump, 0.6 mJ/cm2 absorbed fluence' +DEBUG - classpath: ['NXentry', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/title +NXentry.nxdl.xml:/title +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/title): +DEBUG - +DEBUG - documentation (NXentry.nxdl.xml:/title): +DEBUG - + Extended title for entry + +DEBUG - ===== GROUP (//entry/user [NXmpes::/NXentry/NXuser]): +DEBUG - classpath: ['NXentry', 'NXuser'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/USER +NXentry.nxdl.xml:/USER +NXuser.nxdl.xml: +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/USER): +DEBUG - + Contact information of at least the user of the instrument or the investigator + who performed this experiment. Adding multiple users if relevant is recommended. + +DEBUG - documentation (NXentry.nxdl.xml:/USER): +DEBUG - +DEBUG - documentation (NXuser.nxdl.xml:): +DEBUG - + Contact information for a user. + + The format allows more + than one user with the same affiliation and contact information, + but a second :ref:`NXuser` group should be used if they have different + affiliations, etc. + +DEBUG - ===== ATTRS (//entry/user@NX_class) +DEBUG - value: NXuser +DEBUG - classpath: ['NXentry', 'NXuser'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/USER +NXentry.nxdl.xml:/USER +NXuser.nxdl.xml: +DEBUG - @NX_class [NX_CHAR] +DEBUG - +DEBUG - ===== FIELD (//entry/user/address): +DEBUG - value: b'Faradayweg 4-6, 14195 Berlin' +DEBUG - classpath: ['NXentry', 'NXuser', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/USER/address +NXuser.nxdl.xml:/address +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/USER/address): +DEBUG - + Full address (street, street number, ZIP, city, country) of the user's + affiliation. + +DEBUG - documentation (NXuser.nxdl.xml:/address): +DEBUG - Address of user +DEBUG - ===== FIELD (//entry/user/affiliation): +DEBUG - value: b'Fritz Haber Institute of the Max Planck Society' +DEBUG - classpath: ['NXentry', 'NXuser', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/USER/affiliation +NXuser.nxdl.xml:/affiliation +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/USER/affiliation): +DEBUG - + Name of the affiliation of the user at the point in time when the experiment was + performed. + +DEBUG - documentation (NXuser.nxdl.xml:/affiliation): +DEBUG - Affiliation of user +DEBUG - ===== FIELD (//entry/user/email): +DEBUG - value: b'beaulieu@fhi-berlin.mpg.de' +DEBUG - classpath: ['NXentry', 'NXuser', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/USER/email +NXuser.nxdl.xml:/email +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/USER/email): +DEBUG - + Email address of the user. + +DEBUG - documentation (NXuser.nxdl.xml:/email): +DEBUG - Email of user +DEBUG - ===== FIELD (//entry/user/name): +DEBUG - value: b'Samuel Beaulieu' +DEBUG - classpath: ['NXentry', 'NXuser', 'NX_CHAR'] +DEBUG - classes: +NXmpes.nxdl.xml:/ENTRY/USER/name +NXuser.nxdl.xml:/name +DEBUG - <> +DEBUG - documentation (NXmpes.nxdl.xml:/ENTRY/USER/name): +DEBUG - + Name of the user. + +DEBUG - documentation (NXuser.nxdl.xml:/name): +DEBUG - Name of user responsible for this entry +DEBUG - ===== FIELD (//entry/user/role): +DEBUG - value: b'Principal Investigator' +DEBUG - classpath: ['NXentry', 'NXuser', 'NX_CHAR'] +DEBUG - classes: +NXuser.nxdl.xml:/role +DEBUG - <> +DEBUG - documentation (NXuser.nxdl.xml:/role): +DEBUG - + Role of user responsible for this entry. + Suggested roles are "local_contact", + "principal_investigator", and "proposer" + +DEBUG - ======================== +DEBUG - === Default Plotable === +DEBUG - ======================== +DEBUG - +DEBUG - NXentry has been identified: /entry +DEBUG - +DEBUG - NXdata group has been identified: /entry/data +DEBUG - ===== GROUP (//entry/data [NXmpes::/NXentry/NXdata]): +DEBUG - ===== ATTRS (//entry/data@NX_class) +DEBUG - value: NXdata +DEBUG - ===== ATTRS (//entry/data@axes) +DEBUG - value: ['kx' 'ky' 'energy' 'delay'] +DEBUG - ===== ATTRS (//entry/data@delay_indices) +DEBUG - value: 3 +DEBUG - ===== ATTRS (//entry/data@energy_indices) +DEBUG - value: 2 +DEBUG - ===== ATTRS (//entry/data@kx_indices) +DEBUG - value: 0 +DEBUG - ===== ATTRS (//entry/data@ky_indices) +DEBUG - value: 1 +DEBUG - ===== ATTRS (//entry/data@signal) +DEBUG - value: data +DEBUG - +DEBUG - Signal has been identified: /entry/data/data +DEBUG - ===== FIELD (//entry/data/data): +DEBUG - value: [[[1.14760e+04 1.64560e+04 1.55440e+04 1.48940e+04 1.08810e+04] ... +DEBUG - Dataset referenced as NXdata SIGNAL +DEBUG - ===== ATTRS (//entry/data/data@units) +DEBUG - value: counts +DEBUG - +DEBUG - For Axis #0, 1 axes have been identified: [] +DEBUG - +DEBUG - For Axis #1, 1 axes have been identified: [] +DEBUG - +DEBUG - For Axis #2, 1 axes have been identified: [] +DEBUG - +DEBUG - For Axis #3, 1 axes have been identified: [] diff --git a/tests/data/eln_mapper/eln.yaml b/tests/data/eln_mapper/eln.yaml index cde98bf4c..6a6884017 100644 --- a/tests/data/eln_mapper/eln.yaml +++ b/tests/data/eln_mapper/eln.yaml @@ -76,6 +76,9 @@ Process: calibrated_axis: null Sample: atom_types: null + bias: + value: null + unit: null chemical_formula: null gas_pressure: value: null diff --git a/tests/data/nexus/Ref_nexus_test.log b/tests/data/nexus/Ref_nexus_test.log index 9bd98dd5b..ec7214cc4 100644 --- a/tests/data/nexus/Ref_nexus_test.log +++ b/tests/data/nexus/Ref_nexus_test.log @@ -8,12 +8,13 @@ DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY): DEBUG - DEBUG - documentation (NXentry.nxdl.xml:): DEBUG - - (**required**) :ref:`NXentry` describes the measurement. - - The top-level NeXus group which contains all the data and associated - information that comprise a single measurement. - It is mandatory that there is at least one - group of this type in the NeXus file. + (**required**) :ref:`NXentry` describes the measurement. + + The top-level NeXus group which contains all the data and associated + information that comprise a single measurement. + It is mandatory that there is at least one + group of this type in the NeXus file. + DEBUG - ===== ATTRS (//entry@NX_class) DEBUG - value: NXentry DEBUG - classpath: ['NXentry'] @@ -30,9 +31,9 @@ NXentry.nxdl.xml:/collection_time DEBUG - <> DEBUG - documentation (NXentry.nxdl.xml:/collection_time): DEBUG - - Time transpired actually collecting data i.e. taking out time when collection was - suspended due to e.g. temperature out of range - + Time transpired actually collecting data i.e. taking out time when collection was + suspended due to e.g. temperature out of range + DEBUG - ===== ATTRS (//entry/collection_time@units) DEBUG - value: s DEBUG - classpath: ['NXentry', 'NX_FLOAT'] @@ -50,34 +51,33 @@ DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY/DATA): DEBUG - DEBUG - documentation (NXentry.nxdl.xml:/DATA): DEBUG - - The data group - - .. note:: Before the NIAC2016 meeting [#]_, at least one - :ref:`NXdata` group was required in each :ref:`NXentry` group. - At the NIAC2016 meeting, it was decided to make :ref:`NXdata` - an optional group in :ref:`NXentry` groups for data files that - do not use an application definition. - It is recommended strongly that all NeXus data files provide - a NXdata group. - It is permissable to omit the NXdata group only when - defining the default plot is not practical or possible - from the available data. - - For example, neutron event data may not have anything that - makes a useful plot without extensive processing. - - Certain application definitions override this decision and - require an :ref:`NXdata` group - in the :ref:`NXentry` group. The ``minOccurs=0`` attribute - in the application definition will indicate the - :ref:`NXdata` group - is optional, otherwise, it is required. - - .. [#] NIAC2016: - https://www.nexusformat.org/NIAC2016.html, - https://github.com/nexusformat/NIAC/issues/16 - - + The data group + + .. note:: Before the NIAC2016 meeting [#]_, at least one + :ref:`NXdata` group was required in each :ref:`NXentry` group. + At the NIAC2016 meeting, it was decided to make :ref:`NXdata` + an optional group in :ref:`NXentry` groups for data files that + do not use an application definition. + It is recommended strongly that all NeXus data files provide + a NXdata group. + It is permissable to omit the NXdata group only when + defining the default plot is not practical or possible + from the available data. + + For example, neutron event data may not have anything that + makes a useful plot without extensive processing. + + Certain application definitions override this decision and + require an :ref:`NXdata` group + in the :ref:`NXentry` group. The ``minOccurs=0`` attribute + in the application definition will indicate the + :ref:`NXdata` group + is optional, otherwise, it is required. + + .. [#] NIAC2016: + https://www.nexusformat.org/NIAC2016.html, + https://github.com/nexusformat/NIAC/issues/16 + DEBUG - documentation (NXdata.nxdl.xml:): DEBUG - :ref:`NXdata` describes the plottable data and related dimension scales. @@ -395,21 +395,21 @@ DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY/definition): DEBUG - Official NeXus NXDL schema to which this file conforms. DEBUG - documentation (NXentry.nxdl.xml:/definition): DEBUG - - (alternate use: see same field in :ref:`NXsubentry` for preferred) - - Official NeXus NXDL schema to which this entry conforms which must be - the name of the NXDL file (case sensitive without the file extension) - that the NXDL schema is defined in. - - For example the ``definition`` field for a file that conformed to the - *NXarpes.nxdl.xml* definition must contain the string **NXarpes**. - - This field is provided so that :ref:`NXentry` can be the overlay position - in a NeXus data file for an application definition and its - set of groups, fields, and attributes. - - *It is advised* to use :ref:`NXsubentry`, instead, as the overlay position. - + (alternate use: see same field in :ref:`NXsubentry` for preferred) + + Official NeXus NXDL schema to which this entry conforms which must be + the name of the NXDL file (case sensitive without the file extension) + that the NXDL schema is defined in. + + For example the ``definition`` field for a file that conformed to the + *NXarpes.nxdl.xml* definition must contain the string **NXarpes**. + + This field is provided so that :ref:`NXentry` can be the overlay position + in a NeXus data file for an application definition and its + set of groups, fields, and attributes. + + *It is advised* to use :ref:`NXsubentry`, instead, as the overlay position. + DEBUG - ===== FIELD (//entry/duration): DEBUG - value: 7200 DEBUG - classpath: ['NXentry', 'NX_INT'] @@ -417,7 +417,9 @@ DEBUG - classes: NXentry.nxdl.xml:/duration DEBUG - <> DEBUG - documentation (NXentry.nxdl.xml:/duration): -DEBUG - Duration of measurement +DEBUG - + Duration of measurement + DEBUG - ===== ATTRS (//entry/duration@units) DEBUG - value: s DEBUG - classpath: ['NXentry', 'NX_INT'] @@ -431,7 +433,9 @@ DEBUG - classes: NXentry.nxdl.xml:/end_time DEBUG - <> DEBUG - documentation (NXentry.nxdl.xml:/end_time): -DEBUG - Ending time of measurement +DEBUG - + Ending time of measurement + DEBUG - ===== FIELD (//entry/entry_identifier): DEBUG - value: b'Run 22118' DEBUG - classpath: ['NXentry', 'NX_CHAR'] @@ -439,7 +443,9 @@ DEBUG - classes: NXentry.nxdl.xml:/entry_identifier DEBUG - <> DEBUG - documentation (NXentry.nxdl.xml:/entry_identifier): -DEBUG - unique identifier for the measurement, defined by the facility. +DEBUG - + unique identifier for the measurement, defined by the facility. + DEBUG - ===== FIELD (//entry/experiment_identifier): DEBUG - value: b'F-20170538' DEBUG - classpath: ['NXentry', 'NX_CHAR'] @@ -448,10 +454,10 @@ NXentry.nxdl.xml:/experiment_identifier DEBUG - <> DEBUG - documentation (NXentry.nxdl.xml:/experiment_identifier): DEBUG - - Unique identifier for the experiment, - defined by the facility, - possibly linked to the proposals - + Unique identifier for the experiment, + defined by the facility, + possibly linked to the proposals + DEBUG - ===== GROUP (//entry/instrument [NXarpes::/NXentry/NXinstrument]): DEBUG - classpath: ['NXentry', 'NXinstrument'] DEBUG - classes: @@ -465,15 +471,15 @@ DEBUG - documentation (NXentry.nxdl.xml:/INSTRUMENT): DEBUG - DEBUG - documentation (NXinstrument.nxdl.xml:): DEBUG - - Collection of the components of the instrument or beamline. - - Template of instrument descriptions comprising various beamline components. - Each component will also be a NeXus group defined by its distance from the - sample. Negative distances represent beamline components that are before the - sample while positive distances represent components that are after the sample. - This device allows the unique identification of beamline components in a way - that is valid for both reactor and pulsed instrumentation. - + Collection of the components of the instrument or beamline. + + Template of instrument descriptions comprising various beamline components. + Each component will also be a NeXus group defined by its distance from the + sample. Negative distances represent beamline components that are before the + sample while positive distances represent components that are after the sample. + This device allows the unique identification of beamline components in a way + that is valid for both reactor and pulsed instrumentation. + DEBUG - ===== ATTRS (//entry/instrument@NX_class) DEBUG - value: NXinstrument DEBUG - classpath: ['NXentry', 'NXinstrument'] @@ -496,8 +502,8 @@ DEBUG - documentation (NXinstrument.nxdl.xml:/DETECTOR): DEBUG - DEBUG - documentation (NXdetector.nxdl.xml:): DEBUG - - A detector, detector bank, or multidetector. - + A detector, detector bank, or multidetector. + DEBUG - ===== ATTRS (//entry/instrument/analyser@NX_class) DEBUG - value: NXdetector DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXdetector'] @@ -527,12 +533,19 @@ DEBUG - -> decimated DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY/INSTRUMENT/analyser/acquisition_mode): DEBUG - DEBUG - documentation (NXdetector.nxdl.xml:/acquisition_mode): -DEBUG - The acquisition mode of the detector. +DEBUG - + The acquisition mode of the detector. + DEBUG - ===== FIELD (//entry/instrument/analyser/amplifier_type): DEBUG - value: b'MCP' -DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXdetector'] -DEBUG - NOT IN SCHEMA +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXdetector', 'NX_CHAR'] +DEBUG - classes: +NXdetector.nxdl.xml:/amplifier_type +DEBUG - <> +DEBUG - documentation (NXdetector.nxdl.xml:/amplifier_type): DEBUG - + Type of electron amplifier, MCP, channeltron, etc. + DEBUG - ===== FIELD (//entry/instrument/analyser/angles): DEBUG - value: [-1.96735314 -1.91500657 -1.86266001 -1.81031344 -1.75796688 -1.70562031 ... DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXdetector', 'NX_NUMBER'] @@ -574,29 +587,29 @@ DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY/INSTRUMENT/analyser/data): DEBUG - DEBUG - documentation (NXdetector.nxdl.xml:/data): DEBUG - - Data values from the detector. The rank and dimension ordering should follow a principle of - slowest to fastest measurement axes and may be explicitly specified in application definitions. - - Mechanical scanning of objects (e.g. sample position/angle, incident beam energy, etc) tends to be - the slowest part of an experiment and so any such scan axes should be allocated to the first dimensions - of the array. Note that in some cases it may be useful to represent a 2D set of scan points as a single - scan-axis in the data array, especially if the scan pattern doesn't fit a rectangular array nicely. - Repetition of an experiment in a time series tends to be used similar to a slow scan axis - and so will often be in the first dimension of the data array. - - The next fastest axes are typically the readout of the detector. A point detector will not add any dimensions - (as it is just a single value per scan point) to the data array, a strip detector will add one dimension, an - imaging detector will add two dimensions (e.g. X, Y axes) and detectors outputting higher dimensional data - will add the corresponding number of dimensions. Note that the detector dimensions don't necessarily have to - be written in order of the actual readout speeds - the slowest to fastest rule principle is only a guide. - - Finally, detectors that operate in a time-of-flight mode, such as a neutron spectrometer or a silicon drift - detector (used for X-ray fluorescence) tend to have their dimension(s) added to the last dimensions in the data array. - - The type of each dimension should should follow the order of scan points, detector pixels, - then time-of-flight (i.e. spectroscopy, spectrometry). The rank and dimension sizes (see symbol list) - shown here are merely illustrative of coordination between related datasets. - + Data values from the detector. The rank and dimension ordering should follow a principle of + slowest to fastest measurement axes and may be explicitly specified in application definitions. + + Mechanical scanning of objects (e.g. sample position/angle, incident beam energy, etc) tends to be + the slowest part of an experiment and so any such scan axes should be allocated to the first dimensions + of the array. Note that in some cases it may be useful to represent a 2D set of scan points as a single + scan-axis in the data array, especially if the scan pattern doesn't fit a rectangular array nicely. + Repetition of an experiment in a time series tends to be used similar to a slow scan axis + and so will often be in the first dimension of the data array. + + The next fastest axes are typically the readout of the detector. A point detector will not add any dimensions + (as it is just a single value per scan point) to the data array, a strip detector will add one dimension, an + imaging detector will add two dimensions (e.g. X, Y axes) and detectors outputting higher dimensional data + will add the corresponding number of dimensions. Note that the detector dimensions don't necessarily have to + be written in order of the actual readout speeds - the slowest to fastest rule principle is only a guide. + + Finally, detectors that operate in a time-of-flight mode, such as a neutron spectrometer or a silicon drift + detector (used for X-ray fluorescence) tend to have their dimension(s) added to the last dimensions in the data array. + + The type of each dimension should should follow the order of scan points, detector pixels, + then time-of-flight (i.e. spectroscopy, spectrometry). The rank and dimension sizes (see symbol list) + shown here are merely illustrative of coordination between related datasets. + DEBUG - ===== ATTRS (//entry/instrument/analyser/data@target) DEBUG - value: /entry/instrument/analyser/data DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXdetector', 'NX_NUMBER'] @@ -630,9 +643,14 @@ DEBUG - NOT IN SCHEMA DEBUG - DEBUG - ===== FIELD (//entry/instrument/analyser/detector_type): DEBUG - value: b'DLD' -DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXdetector'] -DEBUG - NOT IN SCHEMA +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXdetector', 'NX_CHAR'] +DEBUG - classes: +NXdetector.nxdl.xml:/detector_type +DEBUG - <> +DEBUG - documentation (NXdetector.nxdl.xml:/detector_type): DEBUG - + Description of the detector type, DLD, Phosphor+CCD, CMOS. + DEBUG - ===== FIELD (//entry/instrument/analyser/dispersion_scheme): DEBUG - value: b'Time of flight' DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXdetector'] @@ -776,9 +794,14 @@ DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY/INSTRUMENT/analyser/region_size): DEBUG - size of rectangular region selected for readout DEBUG - ===== FIELD (//entry/instrument/analyser/sensor_count): DEBUG - value: 4 -DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXdetector'] -DEBUG - NOT IN SCHEMA +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXdetector', 'NX_INT'] +DEBUG - classes: +NXdetector.nxdl.xml:/sensor_count +DEBUG - <> +DEBUG - documentation (NXdetector.nxdl.xml:/sensor_count): DEBUG - + Number of imaging sensor chips on the detector. + DEBUG - ===== FIELD (//entry/instrument/analyser/sensor_size): DEBUG - value: [ 80 146] DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXdetector', 'NX_INT'] @@ -821,22 +844,22 @@ DEBUG - documentation (NXinstrument.nxdl.xml:/BEAM): DEBUG - DEBUG - documentation (NXbeam.nxdl.xml:): DEBUG - - Properties of the neutron or X-ray beam at a given location. - - This group is intended to be referenced - by beamline component groups within the :ref:`NXinstrument` group or by the :ref:`NXsample` group. This group is - especially valuable in storing the results of instrument simulations in which it is useful - to specify the beam profile, time distribution etc. at each beamline component. Otherwise, - its most likely use is in the :ref:`NXsample` group in which it defines the results of the neutron - scattering by the sample, e.g., energy transfer, polarizations. Finally, There are cases where the beam is - considered as a beamline component and this group may be defined as a subgroup directly inside - :ref:`NXinstrument`, in which case it is recommended that the position of the beam is specified by an - :ref:`NXtransformations` group, unless the beam is at the origin (which is the sample). - - Note that incident_wavelength and related fields can be a scalar values or arrays, depending on the use case. - To support these use cases, the explicit dimensionality of these fields is not specified, but it can be inferred - by the presense of and shape of accompanying fields, such as incident_wavelength_weights for a polychromatic beam. - + Properties of the neutron or X-ray beam at a given location. + + This group is intended to be referenced + by beamline component groups within the :ref:`NXinstrument` group or by the :ref:`NXsample` group. This group is + especially valuable in storing the results of instrument simulations in which it is useful + to specify the beam profile, time distribution etc. at each beamline component. Otherwise, + its most likely use is in the :ref:`NXsample` group in which it defines the results of the neutron + scattering by the sample, e.g., energy transfer, polarizations. Finally, There are cases where the beam is + considered as a beamline component and this group may be defined as a subgroup directly inside + :ref:`NXinstrument`, in which case it is recommended that the position of the beam is specified by an + :ref:`NXtransformations` group, unless the beam is at the origin (which is the sample). + + Note that incident_wavelength and related fields can be a scalar values or arrays, depending on the use case. + To support these use cases, the explicit dimensionality of these fields is not specified, but it can be inferred + by the presense of and shape of accompanying fields, such as incident_wavelength_weights for a polychromatic beam. + DEBUG - ===== ATTRS (//entry/instrument/beam_probe_0@NX_class) DEBUG - value: NXbeam DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] @@ -852,7 +875,9 @@ DEBUG - classes: NXbeam.nxdl.xml:/distance DEBUG - <> DEBUG - documentation (NXbeam.nxdl.xml:/distance): -DEBUG - Distance from sample. Note, it is recommended to use NXtransformations instead. +DEBUG - + Distance from sample. Note, it is recommended to use NXtransformations instead. + DEBUG - ===== ATTRS (//entry/instrument/beam_probe_0/distance@units) DEBUG - value: cm DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] @@ -886,14 +911,20 @@ DEBUG - NOT IN SCHEMA DEBUG - DEBUG - ===== FIELD (//entry/instrument/beam_probe_0/pulse_duration): DEBUG - value: 70 -DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] -DEBUG - NOT IN SCHEMA +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/pulse_duration +DEBUG - <> +DEBUG - documentation (NXbeam.nxdl.xml:/pulse_duration): DEBUG - + FWHM duration of the pulses at the diagnostic point + DEBUG - ===== ATTRS (//entry/instrument/beam_probe_0/pulse_duration@units) DEBUG - value: fs -DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] -DEBUG - NOT IN SCHEMA -DEBUG - +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/pulse_duration +DEBUG - NXbeam.nxdl.xml:/pulse_duration@units [NX_TIME] DEBUG - ===== FIELD (//entry/instrument/beam_probe_0/size_x): DEBUG - value: 500 DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] @@ -924,22 +955,22 @@ DEBUG - documentation (NXinstrument.nxdl.xml:/BEAM): DEBUG - DEBUG - documentation (NXbeam.nxdl.xml:): DEBUG - - Properties of the neutron or X-ray beam at a given location. - - This group is intended to be referenced - by beamline component groups within the :ref:`NXinstrument` group or by the :ref:`NXsample` group. This group is - especially valuable in storing the results of instrument simulations in which it is useful - to specify the beam profile, time distribution etc. at each beamline component. Otherwise, - its most likely use is in the :ref:`NXsample` group in which it defines the results of the neutron - scattering by the sample, e.g., energy transfer, polarizations. Finally, There are cases where the beam is - considered as a beamline component and this group may be defined as a subgroup directly inside - :ref:`NXinstrument`, in which case it is recommended that the position of the beam is specified by an - :ref:`NXtransformations` group, unless the beam is at the origin (which is the sample). - - Note that incident_wavelength and related fields can be a scalar values or arrays, depending on the use case. - To support these use cases, the explicit dimensionality of these fields is not specified, but it can be inferred - by the presense of and shape of accompanying fields, such as incident_wavelength_weights for a polychromatic beam. - + Properties of the neutron or X-ray beam at a given location. + + This group is intended to be referenced + by beamline component groups within the :ref:`NXinstrument` group or by the :ref:`NXsample` group. This group is + especially valuable in storing the results of instrument simulations in which it is useful + to specify the beam profile, time distribution etc. at each beamline component. Otherwise, + its most likely use is in the :ref:`NXsample` group in which it defines the results of the neutron + scattering by the sample, e.g., energy transfer, polarizations. Finally, There are cases where the beam is + considered as a beamline component and this group may be defined as a subgroup directly inside + :ref:`NXinstrument`, in which case it is recommended that the position of the beam is specified by an + :ref:`NXtransformations` group, unless the beam is at the origin (which is the sample). + + Note that incident_wavelength and related fields can be a scalar values or arrays, depending on the use case. + To support these use cases, the explicit dimensionality of these fields is not specified, but it can be inferred + by the presense of and shape of accompanying fields, such as incident_wavelength_weights for a polychromatic beam. + DEBUG - ===== ATTRS (//entry/instrument/beam_pump_0@NX_class) DEBUG - value: NXbeam DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] @@ -950,14 +981,20 @@ DEBUG - @NX_class [NX_CHAR] DEBUG - DEBUG - ===== FIELD (//entry/instrument/beam_pump_0/average_power): DEBUG - value: 6.21289 -DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] -DEBUG - NOT IN SCHEMA +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/average_power +DEBUG - <> +DEBUG - documentation (NXbeam.nxdl.xml:/average_power): DEBUG - + Average power at the diagnostic point + DEBUG - ===== ATTRS (//entry/instrument/beam_pump_0/average_power@units) DEBUG - value: uW -DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] -DEBUG - NOT IN SCHEMA -DEBUG - +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/average_power +DEBUG - NXbeam.nxdl.xml:/average_power@units [NX_POWER] DEBUG - ===== FIELD (//entry/instrument/beam_pump_0/center_wavelength): DEBUG - value: 800 DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] @@ -975,7 +1012,9 @@ DEBUG - classes: NXbeam.nxdl.xml:/distance DEBUG - <> DEBUG - documentation (NXbeam.nxdl.xml:/distance): -DEBUG - Distance from sample. Note, it is recommended to use NXtransformations instead. +DEBUG - + Distance from sample. Note, it is recommended to use NXtransformations instead. + DEBUG - ===== ATTRS (//entry/instrument/beam_pump_0/distance@units) DEBUG - value: cm DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] @@ -984,14 +1023,20 @@ NXbeam.nxdl.xml:/distance DEBUG - NXbeam.nxdl.xml:/distance@units [NX_LENGTH] DEBUG - ===== FIELD (//entry/instrument/beam_pump_0/fluence): DEBUG - value: 5 -DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] -DEBUG - NOT IN SCHEMA +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/fluence +DEBUG - <> +DEBUG - documentation (NXbeam.nxdl.xml:/fluence): DEBUG - + Incident fluence at the diagnostic point + DEBUG - ===== ATTRS (//entry/instrument/beam_pump_0/fluence@units) DEBUG - value: mJ/cm^2 -DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] -DEBUG - NOT IN SCHEMA -DEBUG - +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/fluence +DEBUG - NXbeam.nxdl.xml:/fluence@units [NX_ANY] DEBUG - ===== FIELD (//entry/instrument/beam_pump_0/photon_energy): DEBUG - value: 1.55 DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] @@ -1019,24 +1064,36 @@ DEBUG - NOT IN SCHEMA DEBUG - DEBUG - ===== FIELD (//entry/instrument/beam_pump_0/pulse_duration): DEBUG - value: 50 -DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] -DEBUG - NOT IN SCHEMA +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/pulse_duration +DEBUG - <> +DEBUG - documentation (NXbeam.nxdl.xml:/pulse_duration): DEBUG - + FWHM duration of the pulses at the diagnostic point + DEBUG - ===== ATTRS (//entry/instrument/beam_pump_0/pulse_duration@units) DEBUG - value: fs -DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] -DEBUG - NOT IN SCHEMA -DEBUG - +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/pulse_duration +DEBUG - NXbeam.nxdl.xml:/pulse_duration@units [NX_TIME] DEBUG - ===== FIELD (//entry/instrument/beam_pump_0/pulse_energy): DEBUG - value: 1.24258 -DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] -DEBUG - NOT IN SCHEMA +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/pulse_energy +DEBUG - <> +DEBUG - documentation (NXbeam.nxdl.xml:/pulse_energy): DEBUG - + Energy of a single pulse at the diagnostic point + DEBUG - ===== ATTRS (//entry/instrument/beam_pump_0/pulse_energy@units) DEBUG - value: nJ -DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] -DEBUG - NOT IN SCHEMA -DEBUG - +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam', 'NX_FLOAT'] +DEBUG - classes: +NXbeam.nxdl.xml:/pulse_energy +DEBUG - NXbeam.nxdl.xml:/pulse_energy@units [NX_ENERGY] DEBUG - ===== FIELD (//entry/instrument/beam_pump_0/size_x): DEBUG - value: 500 DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXbeam'] @@ -1059,14 +1116,20 @@ DEBUG - NOT IN SCHEMA DEBUG - DEBUG - ===== FIELD (//entry/instrument/energy_resolution): DEBUG - value: 100 -DEBUG - classpath: ['NXentry', 'NXinstrument'] -DEBUG - NOT IN SCHEMA +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_FLOAT'] +DEBUG - classes: +NXinstrument.nxdl.xml:/energy_resolution +DEBUG - <> +DEBUG - documentation (NXinstrument.nxdl.xml:/energy_resolution): DEBUG - + Energy resolution of the experiment (FWHM or gaussian broadening) + DEBUG - ===== ATTRS (//entry/instrument/energy_resolution@units) DEBUG - value: meV -DEBUG - classpath: ['NXentry', 'NXinstrument'] -DEBUG - NOT IN SCHEMA -DEBUG - +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_FLOAT'] +DEBUG - classes: +NXinstrument.nxdl.xml:/energy_resolution +DEBUG - NXinstrument.nxdl.xml:/energy_resolution@units [NX_ENERGY] DEBUG - ===== GROUP (//entry/instrument/manipulator [NXarpes::/NXentry/NXinstrument/NXpositioner]): DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXpositioner'] DEBUG - classes: @@ -1272,7 +1335,9 @@ DEBUG - classes: NXinstrument.nxdl.xml:/name DEBUG - <> DEBUG - documentation (NXinstrument.nxdl.xml:/name): -DEBUG - Name of instrument +DEBUG - + Name of instrument + DEBUG - ===== GROUP (//entry/instrument/source [NXarpes::/NXentry/NXinstrument/NXsource]): DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource'] DEBUG - classes: @@ -1285,7 +1350,9 @@ DEBUG - DEBUG - documentation (NXinstrument.nxdl.xml:/SOURCE): DEBUG - DEBUG - documentation (NXsource.nxdl.xml:): -DEBUG - The neutron or x-ray storage ring/facility. +DEBUG - + The neutron or x-ray storage ring/facility. + DEBUG - ===== ATTRS (//entry/instrument/source@NX_class) DEBUG - value: NXsource DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource'] @@ -1302,7 +1369,9 @@ DEBUG - classes: NXsource.nxdl.xml:/bunch_distance DEBUG - <> DEBUG - documentation (NXsource.nxdl.xml:/bunch_distance): -DEBUG - For storage rings, time between bunches +DEBUG - + For storage rings, time between bunches + DEBUG - ===== ATTRS (//entry/instrument/source/bunch_distance@units) DEBUG - value: us DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] @@ -1316,7 +1385,9 @@ DEBUG - classes: NXsource.nxdl.xml:/bunch_length DEBUG - <> DEBUG - documentation (NXsource.nxdl.xml:/bunch_length): -DEBUG - For storage rings, temporal length of the bunch +DEBUG - + For storage rings, temporal length of the bunch + DEBUG - ===== ATTRS (//entry/instrument/source/bunch_length@units) DEBUG - value: fs DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] @@ -1360,7 +1431,9 @@ DEBUG - classes: NXsource.nxdl.xml:/current DEBUG - <> DEBUG - documentation (NXsource.nxdl.xml:/current): -DEBUG - Accelerator, X-ray tube, or storage ring current +DEBUG - + Accelerator, X-ray tube, or storage ring current + DEBUG - ===== ATTRS (//entry/instrument/source/current@units) DEBUG - value: uA DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] @@ -1375,10 +1448,10 @@ NXsource.nxdl.xml:/energy DEBUG - <> DEBUG - documentation (NXsource.nxdl.xml:/energy): DEBUG - - Source energy. - For storage rings, this would be the particle beam energy. - For X-ray tubes, this would be the excitation voltage. - + Source energy. + For storage rings, this would be the particle beam energy. + For X-ray tubes, this would be the excitation voltage. + DEBUG - ===== ATTRS (//entry/instrument/source/energy@units) DEBUG - value: MeV DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] @@ -1392,7 +1465,9 @@ DEBUG - classes: NXsource.nxdl.xml:/frequency DEBUG - <> DEBUG - documentation (NXsource.nxdl.xml:/frequency): -DEBUG - Frequency of pulsed source +DEBUG - + Frequency of pulsed source + DEBUG - ===== ATTRS (//entry/instrument/source/frequency@units) DEBUG - value: Hz DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] @@ -1409,7 +1484,9 @@ DEBUG - enumeration (NXsource.nxdl.xml:/mode): DEBUG - -> Single Bunch DEBUG - -> Multi Bunch DEBUG - documentation (NXsource.nxdl.xml:/mode): -DEBUG - source operating mode +DEBUG - + source operating mode + DEBUG - ===== FIELD (//entry/instrument/source/name): DEBUG - value: b'FLASH' DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_CHAR'] @@ -1420,7 +1497,9 @@ DEBUG - <> DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/name): DEBUG - DEBUG - documentation (NXsource.nxdl.xml:/name): -DEBUG - Name of source +DEBUG - + Name of source + DEBUG - ===== FIELD (//entry/instrument/source/number_of_bunches): DEBUG - value: 500 DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_INT'] @@ -1428,7 +1507,9 @@ DEBUG - classes: NXsource.nxdl.xml:/number_of_bunches DEBUG - <> DEBUG - documentation (NXsource.nxdl.xml:/number_of_bunches): -DEBUG - For storage rings, the number of bunches in use. +DEBUG - + For storage rings, the number of bunches in use. + DEBUG - ===== FIELD (//entry/instrument/source/number_of_bursts): DEBUG - value: 1 DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource'] @@ -1455,7 +1536,9 @@ DEBUG - -> proton DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/probe): DEBUG - DEBUG - documentation (NXsource.nxdl.xml:/probe): -DEBUG - type of radiation probe (pick one from the enumerated list and spell exactly) +DEBUG - + type of radiation probe (pick one from the enumerated list and spell exactly) + DEBUG - ===== FIELD (//entry/instrument/source/top_up): DEBUG - value: True DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_BOOLEAN'] @@ -1463,7 +1546,9 @@ DEBUG - classes: NXsource.nxdl.xml:/top_up DEBUG - <> DEBUG - documentation (NXsource.nxdl.xml:/top_up): -DEBUG - Is the synchrotron operating in top_up mode? +DEBUG - + Is the synchrotron operating in top_up mode? + DEBUG - ===== FIELD (//entry/instrument/source/type): DEBUG - value: b'Free Electron Laser' DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_CHAR'] @@ -1488,7 +1573,9 @@ DEBUG - -> Metal Jet X-ray DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/type): DEBUG - DEBUG - documentation (NXsource.nxdl.xml:/type): -DEBUG - type of radiation source (pick one from the enumerated list and spell exactly) +DEBUG - + type of radiation source (pick one from the enumerated list and spell exactly) + DEBUG - ===== GROUP (//entry/instrument/source_pump [NXarpes::/NXentry/NXinstrument/NXsource]): DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource'] DEBUG - classes: @@ -1501,7 +1588,9 @@ DEBUG - DEBUG - documentation (NXinstrument.nxdl.xml:/SOURCE): DEBUG - DEBUG - documentation (NXsource.nxdl.xml:): -DEBUG - The neutron or x-ray storage ring/facility. +DEBUG - + The neutron or x-ray storage ring/facility. + DEBUG - ===== ATTRS (//entry/instrument/source_pump@NX_class) DEBUG - value: NXsource DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource'] @@ -1518,7 +1607,9 @@ DEBUG - classes: NXsource.nxdl.xml:/bunch_distance DEBUG - <> DEBUG - documentation (NXsource.nxdl.xml:/bunch_distance): -DEBUG - For storage rings, time between bunches +DEBUG - + For storage rings, time between bunches + DEBUG - ===== ATTRS (//entry/instrument/source_pump/bunch_distance@units) DEBUG - value: us DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] @@ -1532,7 +1623,9 @@ DEBUG - classes: NXsource.nxdl.xml:/bunch_length DEBUG - <> DEBUG - documentation (NXsource.nxdl.xml:/bunch_length): -DEBUG - For storage rings, temporal length of the bunch +DEBUG - + For storage rings, temporal length of the bunch + DEBUG - ===== ATTRS (//entry/instrument/source_pump/bunch_length@units) DEBUG - value: fs DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] @@ -1566,7 +1659,9 @@ DEBUG - classes: NXsource.nxdl.xml:/frequency DEBUG - <> DEBUG - documentation (NXsource.nxdl.xml:/frequency): -DEBUG - Frequency of pulsed source +DEBUG - + Frequency of pulsed source + DEBUG - ===== ATTRS (//entry/instrument/source_pump/frequency@units) DEBUG - value: Hz DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_FLOAT'] @@ -1583,7 +1678,9 @@ DEBUG - enumeration (NXsource.nxdl.xml:/mode): DEBUG - -> Single Bunch DEBUG - -> Multi Bunch DEBUG - documentation (NXsource.nxdl.xml:/mode): -DEBUG - source operating mode +DEBUG - + source operating mode + DEBUG - ===== FIELD (//entry/instrument/source_pump/name): DEBUG - value: b'User Laser @ FLASH' DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_CHAR'] @@ -1594,7 +1691,9 @@ DEBUG - <> DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/name): DEBUG - DEBUG - documentation (NXsource.nxdl.xml:/name): -DEBUG - Name of source +DEBUG - + Name of source + DEBUG - ===== FIELD (//entry/instrument/source_pump/number_of_bunches): DEBUG - value: 400 DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource', 'NX_INT'] @@ -1602,7 +1701,9 @@ DEBUG - classes: NXsource.nxdl.xml:/number_of_bunches DEBUG - <> DEBUG - documentation (NXsource.nxdl.xml:/number_of_bunches): -DEBUG - For storage rings, the number of bunches in use. +DEBUG - + For storage rings, the number of bunches in use. + DEBUG - ===== FIELD (//entry/instrument/source_pump/number_of_bursts): DEBUG - value: 1 DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource'] @@ -1629,7 +1730,9 @@ DEBUG - -> proton DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/probe): DEBUG - DEBUG - documentation (NXsource.nxdl.xml:/probe): -DEBUG - type of radiation probe (pick one from the enumerated list and spell exactly) +DEBUG - + type of radiation probe (pick one from the enumerated list and spell exactly) + DEBUG - ===== FIELD (//entry/instrument/source_pump/rms_jitter): DEBUG - value: 204.68816194453154 DEBUG - classpath: ['NXentry', 'NXinstrument', 'NXsource'] @@ -1664,27 +1767,41 @@ DEBUG - -> Metal Jet X-ray DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY/INSTRUMENT/SOURCE/type): DEBUG - DEBUG - documentation (NXsource.nxdl.xml:/type): -DEBUG - type of radiation source (pick one from the enumerated list and spell exactly) +DEBUG - + type of radiation source (pick one from the enumerated list and spell exactly) + DEBUG - ===== FIELD (//entry/instrument/spatial_resolution): DEBUG - value: 500 -DEBUG - classpath: ['NXentry', 'NXinstrument'] -DEBUG - NOT IN SCHEMA +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_FLOAT'] +DEBUG - classes: +NXinstrument.nxdl.xml:/spatial_resolution +DEBUG - <> +DEBUG - documentation (NXinstrument.nxdl.xml:/spatial_resolution): DEBUG - + Spatial resolution of the experiment (Airy disk radius) + DEBUG - ===== ATTRS (//entry/instrument/spatial_resolution@units) DEBUG - value: um -DEBUG - classpath: ['NXentry', 'NXinstrument'] -DEBUG - NOT IN SCHEMA -DEBUG - +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_FLOAT'] +DEBUG - classes: +NXinstrument.nxdl.xml:/spatial_resolution +DEBUG - NXinstrument.nxdl.xml:/spatial_resolution@units [NX_LENGTH] DEBUG - ===== FIELD (//entry/instrument/temporal_resolution): DEBUG - value: 100 -DEBUG - classpath: ['NXentry', 'NXinstrument'] -DEBUG - NOT IN SCHEMA +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_FLOAT'] +DEBUG - classes: +NXinstrument.nxdl.xml:/temporal_resolution +DEBUG - <> +DEBUG - documentation (NXinstrument.nxdl.xml:/temporal_resolution): DEBUG - + Temporal resolution of the experiment (FWHM) + DEBUG - ===== ATTRS (//entry/instrument/temporal_resolution@units) DEBUG - value: fs -DEBUG - classpath: ['NXentry', 'NXinstrument'] -DEBUG - NOT IN SCHEMA -DEBUG - +DEBUG - classpath: ['NXentry', 'NXinstrument', 'NX_FLOAT'] +DEBUG - classes: +NXinstrument.nxdl.xml:/temporal_resolution +DEBUG - NXinstrument.nxdl.xml:/temporal_resolution@units [NX_TIME] DEBUG - ===== FIELD (//entry/run_cycle): DEBUG - value: b'2018 User Run Block 2' DEBUG - classpath: ['NXentry', 'NX_CHAR'] @@ -1692,7 +1809,9 @@ DEBUG - classes: NXentry.nxdl.xml:/run_cycle DEBUG - <> DEBUG - documentation (NXentry.nxdl.xml:/run_cycle): -DEBUG - Such as "2007-3". Some user facilities organize their beam time into run cycles. +DEBUG - + Such as "2007-3". Some user facilities organize their beam time into run cycles. + DEBUG - ===== GROUP (//entry/sample [NXarpes::/NXentry/NXsample]): DEBUG - classpath: ['NXentry', 'NXsample'] DEBUG - classes: @@ -1857,7 +1976,9 @@ DEBUG - <> DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY/start_time): DEBUG - DEBUG - documentation (NXentry.nxdl.xml:/start_time): -DEBUG - Starting time of measurement +DEBUG - + Starting time of measurement + DEBUG - ===== FIELD (//entry/title): DEBUG - value: b'Excited-state dynamics of WSe2 in the Valence Band and Core-Levels' DEBUG - classpath: ['NXentry', 'NX_CHAR'] @@ -1868,7 +1989,9 @@ DEBUG - <> DEBUG - documentation (NXarpes.nxdl.xml:/ENTRY/title): DEBUG - DEBUG - documentation (NXentry.nxdl.xml:/title): -DEBUG - Extended title for entry +DEBUG - + Extended title for entry + DEBUG - ======================== DEBUG - === Default Plotable === DEBUG - ======================== diff --git a/tests/dataconverter/test_convert.py b/tests/dataconverter/test_convert.py index 22d7803d7..f6702bf01 100644 --- a/tests/dataconverter/test_convert.py +++ b/tests/dataconverter/test_convert.py @@ -197,7 +197,13 @@ def test_mpes_writing(tmp_path): nexus_helper.process_nexus_master_file(None) with open(os.path.join(tmp_path, 'mpes_test.log'), 'r', encoding='utf-8') as logfile: log = logfile.readlines() - assert len(log) == 4486 + with open( + os.path.join(dirpath, 'Ref_nexus_mpes.log'), + 'r', + encoding='utf-8' + ) as logfile: + ref_log = logfile.readlines() + assert log == ref_log def test_eln_data(tmp_path): diff --git a/tests/nexus/test_nexus.py b/tests/nexus/test_nexus.py index 4cc924c8a..aec3feb17 100644 --- a/tests/nexus/test_nexus.py +++ b/tests/nexus/test_nexus.py @@ -49,9 +49,9 @@ def test_get_nexus_classes_units_attributes(): def test_nexus(tmp_path): - """The nexus test function - -""" + """ + The nexus test function + """ local_dir = os.path.abspath(os.path.dirname(__file__)) example_data = os.path.join(local_dir, '../data/nexus/201805_WSe2_arpes.nxs') logger = logging.getLogger(__name__) @@ -75,10 +75,11 @@ def test_nexus(tmp_path): ref = reffile.readlines() assert log == ref - # didn't work with filecmp library - # log = os.path.join(local_dir, 'data/nexus_test_data/nexus_test.log') - # ref = os.path.join(local_dir, 'data/nexus_test_data/Ref2_nexus_test.log') - # print('yoyo', filecmp.cmp(log, ref, shallow=False)) + # import filecmp + # # didn't work with filecmp library + # log = os.path.join(local_dir, '../data/nexus_test_data/nexus_test.log') + # ref = os.path.join(local_dir, '../data/nexus_test_data/Ref_nexus_test.log') + # print(filecmp.cmp(log, ref, shallow=False)) # print('Testing of nexus.py is SUCCESSFUL.')