diff --git a/base_classes/NXsample.nxdl.xml b/base_classes/NXsample.nxdl.xml index 3ac357d261..65bd90b83d 100644 --- a/base_classes/NXsample.nxdl.xml +++ b/base_classes/NXsample.nxdl.xml @@ -486,6 +486,12 @@ This group describes the shape of the sample + + + Physical form of the sample material. + Examples include single crystal, foil, pellet, powder, thin film, disc, foam, gas, liquid, amorphous. + + If the sample is a single crystal, add description of single crystal and unit diff --git a/base_classes/nyaml/NXdetector.yaml b/base_classes/nyaml/NXdetector.yaml index 12df646e15..7b1978a75a 100644 --- a/base_classes/nyaml/NXdetector.yaml +++ b/base_classes/nyaml/NXdetector.yaml @@ -753,7 +753,7 @@ type: group other component groups. # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# cf337a792e12304ca6fa5767928b3a58b6527152c48a24d0406e227efc050cb7 +# c0122bf1b36ed05ee0424397d2f8d0ca22beb2fc2d5d816a37829403a91b104b # # # - + The symbols used in the schema to specify e.g. dimensions of arrays @@ -103,9 +103,23 @@ - + A description of the procedures employed. + + + File containing the input data for calibration. + + + + + Mapping data for calibration. + + This can be used to map data points from uncalibrated + to calibrated values, e.g., by multiplying each point by the + corresponding point in the mapping data. + + diff --git a/contributed_definitions/NXelectron_level.nxdl.xml b/contributed_definitions/NXelectron_level.nxdl.xml new file mode 100644 index 0000000000..1bc63a6035 --- /dev/null +++ b/contributed_definitions/NXelectron_level.nxdl.xml @@ -0,0 +1,918 @@ + + + + + + Electronic level probed in X-ray spectroscopy or resonance experiments. + + + + Symbol of the chemical element. + + For each, the atomic number, common English name, and standard atomic weight are also given. + + + + + Z=1, name="hydrogen", standard_atomic_weight=1.0078 + + + + + Z=2, name="helium", standard_atomic_weight=4.0026 + + + + + Z=3, name="lithium", standard_atomic_weight=6.94 + + + + + Z=4, name="beryllium", standard_atomic_weight=9.0122 + + + + + Z=5, name="boron", standard_atomic_weight=10.81 + + + + + Z=6, name="carbon", standard_atomic_weight=12.011 + + + + + Z=7, name="nitrogen", standard_atomic_weight=14.007 + + + + + Z=8, name="oxygen", standard_atomic_weight=15.999 + + + + + Z=9, name="fluorine", standard_atomic_weight=18.9984 + + + + + Z=10, name="neon", standard_atomic_weight=20.1797 + + + + + Z=11, name="sodium", standard_atomic_weight=22.9898 + + + + + Z=12, name="magnesium", standard_atomic_weight=24.305 + + + + + Z=13, name="aluminum", standard_atomic_weight=26.9815 + + + + + Z=14, name="silicon", standard_atomic_weight=28.085 + + + + + Z=15, name="phosphorus", standard_atomic_weight=30.9738 + + + + + Z=16, name="sulfur", standard_atomic_weight=32.06 + + + + + Z=17, name="chlorine", standard_atomic_weight=35.453 + + + + + Z=18, name="argon", standard_atomic_weight=39.948 + + + + + Z=19, name="potassium", standard_atomic_weight=39.0983 + + + + + Z=20, name="calcium", standard_atomic_weight=40.078 + + + + + Z=21, name="scandium", standard_atomic_weight=44.9559 + + + + + Z=22, name="titanium", standard_atomic_weight=47.867 + + + + + Z=23, name="vanadium", standard_atomic_weight=50.9415 + + + + + Z=24, name="chromium", standard_atomic_weight=51.996 + + + + + Z=25, name="manganese", standard_atomic_weight=54.938 + + + + + Z=26, name="iron", standard_atomic_weight=55.845 + + + + + Z=27, name="cobalt", standard_atomic_weight=58.9332 + + + + + Z=28, name="nickel", standard_atomic_weight=58.6934 + + + + + Z=29, name="copper", standard_atomic_weight=63.546 + + + + + Z=30, name="zinc", standard_atomic_weight=65.38 + + + + + Z=31, name="gallium", standard_atomic_weight=69.72 + + + + + Z=32, name="germanium", standard_atomic_weight=72.63 + + + + + Z=33, name="arsenic", standard_atomic_weight=74.9216 + + + + + Z=34, name="selenium", standard_atomic_weight=78.971 + + + + + Z=35, name="bromine", standard_atomic_weight=79.904 + + + + + Z=36, name="krypton", standard_atomic_weight=83.798 + + + + + Z=37, name="rubidium", standard_atomic_weight=85.4678 + + + + + Z=38, name="strontium", standard_atomic_weight=87.62 + + + + + Z=39, name="yttrium", standard_atomic_weight=88.9058 + + + + + Z=40, name="zirconium", standard_atomic_weight=91.224 + + + + + Z=41, name="niobium", standard_atomic_weight=92.9064 + + + + + Z=42, name="molybdenum", standard_atomic_weight=95.95 + + + + + Z=43, name="technetium", standard_atomic_weight=97.907 + + + + + Z=44, name="ruthenium", standard_atomic_weight=101.07 + + + + + Z=45, name="rhodium", standard_atomic_weight=102.906 + + + + + Z=46, name="palladium", standard_atomic_weight=106.42 + + + + + Z=47, name="silver", standard_atomic_weight=107.868 + + + + + Z=48, name="cadmium", standard_atomic_weight=112.414 + + + + + Z=49, name="indium", standard_atomic_weight=114.818 + + + + + Z=50, name="tin", standard_atomic_weight=118.71 + + + + + Z=51, name="antimony", standard_atomic_weight=121.76 + + + + + Z=52, name="tellurium", standard_atomic_weight=127.6 + + + + + Z=53, name="iodine", standard_atomic_weight=126.905 + + + + + Z=54, name="xenon", standard_atomic_weight=131.293 + + + + + Z=55, name="cesium", standard_atomic_weight=132.905 + + + + + Z=56, name="barium", standard_atomic_weight=137.327 + + + + + Z=57, name="lanthanum", standard_atomic_weight=138.905 + + + + + Z=58, name="cerium", standard_atomic_weight=140.116 + + + + + Z=59, name="praseodymium", standard_atomic_weight=140.908 + + + + + Z=60, name="neodymium", standard_atomic_weight=144.242 + + + + + Z=61, name="promethium", standard_atomic_weight=145.0 + + + + + Z=62, name="samarium", standard_atomic_weight=150.36 + + + + + Z=63, name="europium", standard_atomic_weight=151.96 + + + + + Z=64, name="gadolinium", standard_atomic_weight=157.25 + + + + + Z=65, name="terbium", standard_atomic_weight=158.925 + + + + + Z=66, name="dysprosium", standard_atomic_weight=162.5 + + + + + Z=67, name="holmium", standard_atomic_weight=164.93 + + + + + Z=68, name="erbium", standard_atomic_weight=167.259 + + + + + Z=69, name="thulium", standard_atomic_weight=168.934 + + + + + Z=70, name="ytterbium", standard_atomic_weight=173.045 + + + + + Z=71, name="lutetium", standard_atomic_weight=174.967 + + + + + Z=72, name="hafnium", standard_atomic_weight=178.49 + + + + + Z=73, name="tantalum", standard_atomic_weight=180.948 + + + + + Z=74, name="tungsten", standard_atomic_weight=183.84 + + + + + Z=75, name="rhenium", standard_atomic_weight=186.207 + + + + + Z=76, name="osmium", standard_atomic_weight=190.23 + + + + + Z=77, name="iridium", standard_atomic_weight=192.217 + + + + + Z=78, name="platinum", standard_atomic_weight=195.084 + + + + + Z=79, name="gold", standard_atomic_weight=196.967 + + + + + Z=80, name="mercury", standard_atomic_weight=200.592 + + + + + Z=81, name="thallium", standard_atomic_weight=204.383 + + + + + Z=82, name="lead", standard_atomic_weight=207.2 + + + + + Z=83, name="bismuth", standard_atomic_weight=208.98 + + + + + Z=84, name="polonium", standard_atomic_weight=209.0 + + + + + Z=85, name="astatine", standard_atomic_weight=210.0 + + + + + Z=86, name="radon", standard_atomic_weight=222.0 + + + + + Z=87, name="francium", standard_atomic_weight=223.0 + + + + + Z=88, name="radium", standard_atomic_weight=226.0 + + + + + Z=89, name="actinium", standard_atomic_weight=227.0 + + + + + Z=90, name="thorium", standard_atomic_weight=232.038 + + + + + Z=91, name="protactinium", standard_atomic_weight=231.036 + + + + + Z=92, name="uranium", standard_atomic_weight=238.029 + + + + + Z=93, name="neptunium", standard_atomic_weight=237.048 + + + + + Z=94, name="plutonium", standard_atomic_weight=239.052 + + + + + Z=95, name="americium", standard_atomic_weight=243.0 + + + + + Z=96, name="curium", standard_atomic_weight=247.0 + + + + + Z=97, name="berkelium", standard_atomic_weight=247.0 + + + + + Z=98, name="californium", standard_atomic_weight=251.0 + + + + + Z=99, name="einsteinium", standard_atomic_weight=252 + + + + + Z=100, name="fermium", standard_atomic_weight=257 + + + + + Z=101, name="mendelevium", standard_atomic_weight=258 + + + + + Z=102, name="nobelium", standard_atomic_weight=259 + + + + + Z=103, name="lawrencium", standard_atomic_weight=266 + + + + + Z=104, name="rutherfordium", standard_atomic_weight=267 + + + + + Z=105, name="dubnium", standard_atomic_weight=268 + + + + + Z=106, name="seaborgium", standard_atomic_weight=269 + + + + + Z=107, name="bohrium", standard_atomic_weight=270 + + + + + Z=108, name="hassium", standard_atomic_weight=269 + + + + + Z=109, name="meitnerium", standard_atomic_weight=278 + + + + + Z=110, name="darmstadtium", standard_atomic_weight=281 + + + + + Z=111, name="roentgenium", standard_atomic_weight=282 + + + + + Z=112, name="copernicium", standard_atomic_weight=285 + + + + + Z=113, name="nihonium", standard_atomic_weight=286 + + + + + Z=114, name="flerovium", standard_atomic_weight=289 + + + + + Z=115, name="moscovium", standard_atomic_weight=290 + + + + + Z=116, name="livermorium", standard_atomic_weight=293 + + + + + Z=117, name="tennessine", standard_atomic_weight=294 + + + + + Z=118, name="oganesson", standard_atomic_weight=294 + + + + + + + IUPAC symbol of the electronic level. + For each level, the electronic orbital configuration is also given + + For reference, see Jenkins, R., Manne, R., Robin, R., & Senemaud, C. (1991). + IUPAC—nomenclature system for x-ray spectroscopy. X-Ray Spectrometry, 20(3), 149-155. + + + + + same as 1s in level_xray + + + + + 2s + + + + + 2p_{1/2} + + + + + 2p_{3/2} + + + + + 3s + + + + + 3p_{1/2} + + + + + 3p_{3/2} + + + + + 3d_{3/2} + + + + + 3d_{5/2} + + + + + 4s + + + + + 4p_{1/2} + + + + + 4p_{3/2} + + + + + 4d_{3/2} + + + + + 4d_{5/2} + + + + + 4f_{5/2} + + + + + 4f_{7/2} + + + + + 5s + + + + + 5p_{1/2} + + + + + 5p_{3/2} + + + + + 5d_{3/2} + + + + + 5d_{5/2} + + + + + 5f_{5/2} + + + + + 5f_{7/2} + + + + + 6s + + + + + 6p_{1/2} + + + + + 6p_{3/2} + + + + + + + Electronic orbital configuration of the electronic level. + + + + + same as K in level_xray + + + + + L1 + + + + + L3 + + + + + M1 + + + + + M2 + + + + + M3 + + + + + M4 + + + + + M5 + + + + + N1 + + + + + N2 + + + + + N3 + + + + + N4 + + + + + N5 + + + + + N6 + + + + + N7 + + + + + O1 + + + + + O2 + + + + + O3 + + + + + O4 + + + + + O5 + + + + + O6 + + + + + O7 + + + + + P1 + + + + + P2 + + + + + P3 + + + + + + + description of X-ray electronic level + + + + + .. index:: plotting + + Declares which child group contains a path leading + to a :ref:`NXdata` group. + + It is recommended (as of NIAC2014) to use this attribute + to help define the path to the default dataset to be plotted. + See https://www.nexusformat.org/2014_How_to_find_default_data.html + for a summary of the discussion. + + + diff --git a/contributed_definitions/NXelectronanalyser.nxdl.xml b/contributed_definitions/NXelectronanalyser.nxdl.xml index 3a7ac1db1e..4189b83d91 100644 --- a/contributed_definitions/NXelectronanalyser.nxdl.xml +++ b/contributed_definitions/NXelectronanalyser.nxdl.xml @@ -37,9 +37,18 @@ Number of slow axes (axes acquired scanning a physical quantity) + + + Number of data points in the transmission function. + + Subclass of NXinstrument to describe a photoelectron analyser. + + Refers to Term `12.59`_ of the ISO 18115-1:2023 specification. + + .. _12.59: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:12.59 @@ -56,9 +65,34 @@ + + + Work function of the electron analyser. + + The work function of a uniform surface of a conductor is the minimum energy required to remove + an electron from the interior of the solid to a vacuum level immediately outside the solid surface. + + The kinetic energy :math:`E_K` of a photoelectron emitted from an energy-level with binding energy + :math:`E_B` below the Fermi level is given by :math:`E_K = h\nu - E_B - e \phi_{\mathrm{sample}}`, + where :math:`\phi_{\mathrm{sample}}` is the work function of the sample surface. In PES measurements, + the sample and the spectrometer (with work function :math:`\phi_{\mathrm{spectr.}}`) are electrically + connected and therefore their Fermi levels are aligned. Due to the difference in local vacuum level + between the sample and spectrometer, there exists an electric potential difference (contact potential) + :math:`\Delta\phi = \phi_{\mathrm{sample}} - \phi_{\mathrm{spectr.}}`. The measured kinetic energy of + a photoelectron in PES is therefore given by + :math:`E_K^{\mathrm{meas.}} = h\nu - E_B + \Delta \phi = h\nu - E_B - e \phi_{\mathrm{spectr.}}`. + As a result, the measured kinetic energy :math:`E_K^{\mathrm{meas.}}` of a photoelectron is `independent` + of the sample work function. Nonetheless, the work function :math:`\phi_s` needs to be known to + accurately determine the binding energy scale. + + Energy resolution of the electron analyser (FWHM of gaussian broadening) + + Refers to Term `10.7`_ of the ISO 18115-1:2023 specification. + + .. _10.7: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:10.7 @@ -74,6 +108,10 @@ Spatial resolution of the electron analyser (Airy disk radius) + + Refers to Term `10.15`_ ff. of the ISO 18115-1:2023 specification. + + .. _10.15: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:10.15 @@ -106,9 +144,54 @@ + + + Transmission function of the electron analyser. + + The transmission function (TF) specifies the detection efficiency per solid angle for electrons of + different kinetic energy passing through the electron analyser. It depends on the spectrometer + geometry as well as operation settings such as lens mode and pass energy. + The transmission function is usually given as kinetic energy vs. relative intensity. + + The TF is used for calibration of the intensity scale in quantitative XPS. Without proper + transmission correction, a comparison of results measured from the same sample using different + operating modes for an instrument would show significant variations in atomic + concentrations. + + Refers to Term `7.15`_ ff. of the ISO 18115-1:2023 specification. + + .. _7.15: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:7.15 + + + + + + + + + + + + + + Kinetic energy values + + + + + + + + Relative transmission efficiency for the given kinetic energies + + + + + + - Refers to the last transformation specifying the positon of the manipulator in + Refers to the last transformation specifying the position of the manipulator in the NXtransformations chain. diff --git a/contributed_definitions/NXenergydispersion.nxdl.xml b/contributed_definitions/NXenergydispersion.nxdl.xml index 6487fdb2ae..ead97311db 100644 --- a/contributed_definitions/NXenergydispersion.nxdl.xml +++ b/contributed_definitions/NXenergydispersion.nxdl.xml @@ -36,6 +36,10 @@ Energy of the electrons on the mean path of the analyser. Pass energy for hemispherics, drift energy for tofs. + + Refers to Term `12.63`_ of the ISO 18115-1:2023 specification. + + .. _12.63: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:12.63 @@ -66,6 +70,11 @@ Way of scanning the energy axis (fixed or sweep). + + Refers to Terms `12.65`_ and `12.66`_ of the ISO 18115-1:2023 specification. + + .. _12.65: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:12.65 + .. _12.66: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:12.66 diff --git a/contributed_definitions/NXmanipulator.nxdl.xml b/contributed_definitions/NXmanipulator.nxdl.xml index 52d7330f40..928bbdd773 100644 --- a/contributed_definitions/NXmanipulator.nxdl.xml +++ b/contributed_definitions/NXmanipulator.nxdl.xml @@ -70,7 +70,7 @@ - Possible bias of the sample with trespect to analyser ground. This field may + Possible bias of the sample with respect to analyser ground. This field may also be found in NXsample if present. diff --git a/contributed_definitions/NXmpes.nxdl.xml b/contributed_definitions/NXmpes.nxdl.xml index 09f63d7559..efe6574c6d 100644 --- a/contributed_definitions/NXmpes.nxdl.xml +++ b/contributed_definitions/NXmpes.nxdl.xml @@ -22,9 +22,25 @@ # For further information, see http://www.nexusformat.org --> + + + The symbols used in the schema to specify e.g. dimensions of arrays + + + + Number of data points in the transmission function. + + + This is the most general application definition for multidimensional photoelectron spectroscopy. + + Groups and fields are named according to the + `ISO 18115-1:2023`_ specification as well as the `IUPAC Recommendations 2020`_. + + .. _ISO 18115-1:2023: https://www.iso.org/standard/74811.html + .. _IUPAC Recommendations 2020: https://doi.org/10.1515/pac-2019-0404 @@ -40,10 +56,21 @@ - A name of the experimental method according - to the `ISO 18115-1:2023`_ specification. + A name of the experimental method according to `Clause 11`_ of + the `ISO 18115-1:2023`_ specification. + + Examples include: + * X-ray photoelectron spectroscopy (XPS) + * angle-resolved X-ray photoelectron spectroscopy (ARXPS) + * ultraviolet photoelectron spectroscopy (UPS) + * angle-resolved photoelectron spectroscopy (ARPES) + * hard X-ray photoemission spectroscopy (HAXPES) + * near ambient pressure X-ray photoelectron spectroscopy (NAPXPS) + * photoelectron emission microscopy (PEEM) + * electron spectroscopy for chemical analysis (ESCA) .. _ISO 18115-1:2023: https://www.iso.org/standard/74811.html + .. _Clause 11: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:sec:11 @@ -86,7 +113,22 @@ + + MPES spectrometer + + Refers to Term `12.58`_ of the ISO 18115-1:2023 specification. + + .. _12.58: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:12.58 + + + Overall energy resolution of the MPES instrument + + Refers to Terms `10.7`_ ff. and `10.24`_ of the ISO 18115-1:2023 specification. + + .. _10.7: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:10.7 + .. _10.24: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:10.24 + @@ -149,13 +191,27 @@ The beam emitted by this source. Should be named with the same appendix, e.g., for `source_probe` it should refer to `beam_probe`. - Refers to the same concept as /NXentry/NXinstrument/source_TYPE + Refers to the same concept as /NXentry/NXinstrument/beam_TYPE and may be linked. + + + + The beam emitted by this source. + Should be named with the same appendix, e.g., + for `source_probe` it should refer to `beam_probe`. + Refers to the same concept as /NXentry/NXinstrument/source_TYPE + and may be linked. + + + + @@ -173,10 +229,10 @@ This would also be helpful for NXtransformations--> - The beam emitted by this source. + The source that emitted this beam. Should be named with the same appendix, e.g., for `beam_probe` it should refer to `source_probe`. - Refers to the same concept as /NXentry/NXinstrument/beam_TYPE + Refers to the same concept as /NXentry/NXinstrument/source_TYPE and may be linked. @@ -192,10 +248,15 @@ This would also be helpful for NXtransformations--> Energy resolution of the analyser with the current setting. May be linked from a NXcalibration. + + Refers to Term `10.24`_ of the ISO 18115-1:2023 specification. + + .. _10.24: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:10.24 - + + -# +# # # # The symbols used in the schema to specify e.g. dimensions of arrays @@ -170,9 +180,23 @@ NXcalibration(NXobject): # # # -# +# # # A description of the procedures employed. # # +# +# +# File containing the input data for calibration. +# +# +# +# +# Mapping data for calibration. +# +# This can be used to map data points from uncalibrated +# to calibrated values, e.g., by multiplying each point by the +# corresponding point in the mapping data. +# +# # diff --git a/contributed_definitions/nyaml/NXdetector.yaml b/contributed_definitions/nyaml/NXdetector.yaml deleted file mode 100644 index 8fd286fc58..0000000000 --- a/contributed_definitions/nyaml/NXdetector.yaml +++ /dev/null @@ -1,1758 +0,0 @@ -category: base -doc: | - A detector, detector bank, or multidetector. -symbols: - doc: | - These symbols will be used below to illustrate the coordination of the - rank and sizes of datasets and the preferred ordering of the - dimensions. Each of these are optional (so the rank of the datasets - will vary according to the situation) and the general ordering - principle is slowest to fastest. The type of each dimension should - follow the order of scan points, detector output (e.g. pixels), then - time-of-flight (i.e. spectroscopy, spectrometry). Note that the output - of a detector is not limited to single values (0D), lists (1D) and - images (2), but three or higher dimensional arrays can be produced by - a detector at each trigger. - nP: | - number of scan points (only present in scanning measurements) - i: | - number of detector pixels in the first (slowest) direction - j: | - number of detector pixels in the second (faster) direction - k: | - number of detector pixels in the third (if necessary, fastest) - direction - tof: | - number of bins in the time-of-flight histogram -type: group -(NXobject)NXdetector: - time_of_flight(NX_FLOAT): - unit: NX_TIME_OF_FLIGHT - doc: | - Total time of flight - dimensions: - rank: 1 - dim: [[1, tof+1]] - \@axis: - type: NX_POSINT - deprecated: | - see: https://github.com/nexusformat/definitions/issues/436 - enumeration: [3] - \@primary: - type: NX_POSINT - deprecated: | - see: https://github.com/nexusformat/definitions/issues/436 - enumeration: [1] - \@long_name: - doc: | - Total time of flight - raw_time_of_flight(NX_INT): - unit: NX_PULSES - doc: | - In DAQ clock pulses - dimensions: - rank: 1 - dim: [[1, tof+1]] - \@frequency: - type: NX_NUMBER - doc: | - Clock frequency in Hz - detector_number(NX_INT): - doc: | - Identifier for detector (pixels) - Can be multidimensional, if needed - data(NX_NUMBER): - unit: NX_ANY - doc: | - 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. - dimensions: - rank: 4 - dim: [[1, nP], [2, i], [3, j], [4, tof]] - \@long_name: - doc: | - Title of measurement - \@check_sum: - type: NX_INT - doc: | - Integral of data as check of data integrity - data_errors(NX_NUMBER): - unit: NX_ANY - doc: | - The best estimate of the uncertainty in the data value (array size should match the data field). Where - possible, this should be the standard deviation, which has the same units - as the data. The form data_error is deprecated. - dimensions: - rank: 4 - dim: [[1, nP], [2, i], [3, j], [4, tof]] - x_pixel_offset(NX_FLOAT): - unit: NX_LENGTH - doc: | - Offset from the detector center in x-direction. - Can be multidimensional when needed. - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - \@axis: - type: NX_POSINT - deprecated: | - see: https://github.com/nexusformat/definitions/issues/436 - enumeration: [1] - \@primary: - type: NX_POSINT - deprecated: | - see: https://github.com/nexusformat/definitions/issues/436 - enumeration: [1] - \@long_name: - doc: | - x-axis offset from detector center - y_pixel_offset(NX_FLOAT): - unit: NX_LENGTH - doc: | - Offset from the detector center in the y-direction. - Can be multidimensional when different values are required for each pixel. - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - \@axis: - type: NX_POSINT - deprecated: | - see: https://github.com/nexusformat/definitions/issues/436 - enumeration: [2] - \@primary: - type: NX_POSINT - deprecated: | - see: https://github.com/nexusformat/definitions/issues/436 - enumeration: [1] - \@long_name: - doc: | - y-axis offset from detector center - z_pixel_offset(NX_FLOAT): - unit: NX_LENGTH - doc: | - Offset from the detector center in the z-direction. - Can be multidimensional when different values are required for each pixel. - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - \@axis: - type: NX_POSINT - deprecated: | - see: https://github.com/nexusformat/definitions/issues/436 - enumeration: [3] - \@primary: - type: NX_POSINT - deprecated: | - see: https://github.com/nexusformat/definitions/issues/436 - enumeration: [1] - \@long_name: - doc: | - y-axis offset from detector center - distance(NX_FLOAT): - unit: NX_LENGTH - doc: | - This is the distance to the previous component in the - instrument; most often the sample. The usage depends on the - nature of the detector: Most often it is the distance of the - detector assembly. But there are irregular detectors. In this - case the distance must be specified for each detector pixel. - - Note, it is recommended to use NXtransformations instead. - dimensions: - rank: 3 - dim: [[1, nP], [2, i], [3, j]] - polar_angle(NX_FLOAT): - unit: NX_ANGLE - doc: | - This is the polar angle of the detector towards the previous - component in the instrument; most often the sample. - The usage depends on the - nature of the detector. - Most often it is the polar_angle of the detector assembly. - But there are irregular detectors. - In this - case, the polar_angle must be specified for each detector pixel. - - Note, it is recommended to use NXtransformations instead. - dimensions: - rank: 3 - dim: [[1, nP], [2, i], [3, j]] - azimuthal_angle(NX_FLOAT): - unit: NX_ANGLE - doc: | - This is the azimuthal angle angle of the detector towards - the previous component in the instrument; most often the sample. - The usage depends on the - nature of the detector. - Most often it is the azimuthal_angle of the detector assembly. - But there are irregular detectors. - In this - case, the azimuthal_angle must be specified for each detector pixel. - - Note, it is recommended to use NXtransformations instead. - dimensions: - rank: 3 - dim: [[1, nP], [2, i], [3, j]] - description: - doc: | - name/manufacturer/model/etc. information - serial_number: - doc: | - Serial number for the detector - local_name: - doc: | - Local name for the detector - (NXgeometry): - deprecated: | - Use the field `depends_on` and :ref:`NXtransformations` to position the detector and NXoff_geometry to describe its shape instead - doc: | - Position and orientation of detector - solid_angle(NX_FLOAT): - unit: NX_SOLID_ANGLE - doc: | - Solid angle subtended by the detector at the sample - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - x_pixel_size(NX_FLOAT): - unit: NX_LENGTH - doc: | - Size of each detector pixel. If it is scalar all pixels are the same size. - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - y_pixel_size(NX_FLOAT): - unit: NX_LENGTH - doc: | - Size of each detector pixel. If it is scalar all pixels are the same size - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - dead_time(NX_FLOAT): - unit: NX_TIME - doc: | - Detector dead time - dimensions: - rank: 3 - dim: [[1, nP], [2, i], [3, j]] - gas_pressure(NX_FLOAT): - unit: NX_PRESSURE - doc: | - Detector gas pressure - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - detection_gas_path(NX_FLOAT): - unit: NX_LENGTH - doc: | - maximum drift space dimension - crate(NX_INT): - doc: | - Crate number of detector - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - \@local_name: - doc: | - Equivalent local term - slot(NX_INT): - doc: | - Slot number of detector - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - \@local_name: - doc: | - Equivalent local term - input(NX_INT): - doc: | - Input number of detector - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - \@local_name: - doc: | - Equivalent local term - type: - doc: | - Description of type such as He3 gas cylinder, He3 PSD, scintillator, - fission chamber, proportion counter, ion chamber, ccd, pixel, image plate, - CMOS, ... - efficiency(NXdata): - doc: | - Spectral efficiency of detector with respect to e.g. wavelength - \@signal: - enumeration: [efficiency] - \@axes: - - # TODO: clarify the various use cases - enumeration: [., . ., . . ., . . . ., wavelength] - \@wavelength_indices: - - # TODO: clarify the actual possibilities - enumeration: [0] - efficiency(NX_FLOAT): - unit: NX_DIMENSIONLESS - doc: | - efficiency of the detector - dimensions: - rank: 3 - dim: [[1, i], [2, j], [3, k]] - wavelength(NX_FLOAT): - unit: NX_WAVELENGTH - doc: | - This field can be two things: - - 1. For a pixel detector it provides the nominal wavelength - for which the detector has been calibrated. - - 2. For other detectors this field has to be seen together with - the efficiency field above. - For some detectors, the efficiency is wavelength dependent. - Thus this field provides the wavelength axis for the efficiency field. - In this use case, the efficiency and wavelength arrays must - have the same dimensionality. - dimensions: - rank: 3 - dim: [[1, i], [2, j], [3, k]] - real_time(NX_NUMBER): - unit: NX_TIME - doc: | - Real-time of the exposure (use this if exposure time varies for - each array element, otherwise use ``count_time`` field). - - Most often there is a single real time value that is constant across - an entire image frame. In such cases, only a 1-D array is needed. - But there are detectors in which the real time - changes per pixel. In that case, more than one dimension is needed. Therefore - the rank of this field should be less than or equal to (detector rank + 1). - dimensions: - rank: 3 - dim: [[1, nP], [2, i], [3, j]] - start_time(NX_FLOAT): - unit: NX_TIME - doc: | - start time for each frame, with the ``start`` attribute as absolute reference - dimensions: - rank: 1 - dim: [[1, nP]] - \@start: - type: NX_DATE_TIME - stop_time(NX_FLOAT): - unit: NX_TIME - doc: | - stop time for each frame, with the ``start`` attribute as absolute reference - dimensions: - rank: 1 - dim: [[1, nP]] - \@start: - type: NX_DATE_TIME - calibration_date(NX_DATE_TIME): - doc: | - date of last calibration (geometry and/or efficiency) measurements - calibration_method(NXnote): - doc: | - summary of conversion of array data to pixels (e.g. polynomial - approximations) and location of details of the calibrations - layout: - doc: | - How the detector is represented - enumeration: [point, linear, area] - count_time(NX_NUMBER): - unit: NX_TIME - doc: | - Elapsed actual counting time - dimensions: - rank: 1 - dim: [[1, nP]] - data_file(NXnote): - (NXcollection): - doc: | - Use this group to provide other data related to this NXdetector group. - sequence_number(NX_INT): - doc: | - In order to properly sort the order of the images taken in (for - example) a tomography experiment, a sequence number is stored with each - image. - dimensions: - rank: 1 - dim: [[1, nBrightFrames]] - beam_center_x(NX_FLOAT): - unit: NX_LENGTH - doc: | - This is the x position where the direct beam would hit the detector. - This is a length and can be outside of the actual - detector. The length can be in physical units or pixels - as documented by the units attribute. - beam_center_y(NX_FLOAT): - unit: NX_LENGTH - doc: | - This is the y position where the direct beam would hit the detector. - This is a length and can be outside of the actual - detector. The length can be in physical units or pixels - as documented by the units attribute. - frame_start_number(NX_INT): - doc: | - This is the start number of the first frame of a scan. In protein crystallography measurements one - often scans a couple of frames on a give sample, then does something else, - then returns to the same sample and scans some more frames. Each time with - a new data file. This number helps concatenating such measurements. - diameter(NX_FLOAT): - unit: NX_LENGTH - doc: | - The diameter of a cylindrical detector - acquisition_mode(NX_CHAR): - doc: | - The acquisition mode of the detector. - enumeration: [gated, triggered, summed, event, histogrammed, decimated] - angular_calibration_applied(NX_BOOLEAN): - doc: | - True when the angular calibration has been applied in the - electronics, false otherwise. - angular_calibration(NX_FLOAT): - doc: | - Angular calibration data. - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - flatfield_applied(NX_BOOLEAN): - doc: | - True when the flat field correction has been applied in the - electronics, false otherwise. - flatfield(NX_FLOAT): - doc: | - Flat field correction data. - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - flatfield_errors(NX_FLOAT): - doc: | - Errors of the flat field correction data. - The form flatfield_error is deprecated. - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - pixel_mask_applied(NX_BOOLEAN): - doc: | - True when the pixel mask correction has been applied in the - electronics, false otherwise. - pixel_mask(NX_INT): - doc: | - The 32-bit pixel mask for the detector. Can be either one mask - for the whole dataset (i.e. an array with indices i, j) or - each frame can have its own mask (in which case it would be - an array with indices np, i, j). - - Contains a bit field for each pixel to signal dead, - blind or high or otherwise unwanted or undesirable pixels. - They have the following meaning: - - .. can't make a table here, a bullet list will have to do for now - - * bit 0: gap (pixel with no sensor) - * bit 1: dead - * bit 2: under responding - * bit 3: over responding - * bit 4: noisy - * bit 5: -undefined- - * bit 6: pixel is part of a cluster of problematic pixels (bit set in addition to others) - * bit 7: -undefined- - * bit 8: user defined mask (e.g. around beamstop) - * bits 9-30: -undefined- - * bit 31: virtual pixel (corner pixel with interpolated value) - - Normal data analysis software would - not take pixels into account - when a bit in (mask & 0x0000FFFF) is - set. Tag bit in the upper - two bytes would indicate special pixel - properties that normally - would not be a sole reason to reject the - intensity value (unless - lower bits are set. - - If the full bit depths is not required, providing a - mask with fewer bits is permissible. - - If needed, additional pixel masks can be specified by - including additional entries named pixel_mask_N, where - N is an integer. For example, a general bad pixel mask - could be specified in pixel_mask that indicates noisy - and dead pixels, and an additional pixel mask from - experiment-specific shadowing could be specified in - pixel_mask_2. The cumulative mask is the bitwise OR - of pixel_mask and any pixel_mask_N entries. - dimensions: - rank: 2 - dim: [[1, i], [2, j]] - image_key(NX_INT): - doc: | - This field allow to distinguish different types of exposure to the same detector "data" field. - Some techniques require frequent (re-)calibration inbetween measuremnts and this way of - recording the different measurements preserves the chronological order with is important for - correct processing. - - This is used for example in tomography (`:ref:`NXtomo`) sample projections, - dark and flat images, a magic number is recorded per frame. - - The key is as follows: - - * projection (sample) = 0 - * flat field = 1 - * dark field = 2 - * invalid = 3 - * background (no sample, but buffer where applicable) = 4 - - In cases where the data is of type :ref:`NXlog` this can also be an NXlog. - dimensions: - rank: 1 - dim: [[1, np]] - countrate_correction_applied(NX_BOOLEAN): - doc: | - Counting detectors usually are not able to measure all incoming particles, - especially at higher count-rates. Count-rate correction is applied to - account for these errors. - - True when count-rate correction has been applied, false otherwise. - countrate_correction_lookup_table(NX_NUMBER): - doc: | - The countrate_correction_lookup_table defines the LUT used for count-rate - correction. It maps a measured count :math:`c` to its corrected value - :math:`countrate\_correction\_lookup\_table[c]`. - - :math:`m` denotes the length of the table. - dimensions: - rank: 1 - dim: [[1, m]] - virtual_pixel_interpolation_applied(NX_BOOLEAN): - doc: | - True when virtual pixel interpolation has been applied, false otherwise. - - When virtual pixel interpolation is applied, values of some pixels may - contain interpolated values. For example, to account for space between - readout chips on a module, physical pixels on edges and corners between - chips may have larger sensor areas and counts may be distributed between - their logical pixels. - bit_depth_readout(NX_INT): - doc: | - How many bits the electronics reads per pixel. - With CCD's and single photon counting detectors, - this must not align with traditional integer sizes. - This can be 4, 8, 12, 14, 16, ... - detector_readout_time(NX_FLOAT): - unit: NX_TIME - doc: | - Time it takes to read the detector (typically milliseconds). - This is important to know for time resolved experiments. - trigger_delay_time(NX_FLOAT): - unit: NX_TIME - doc: | - Time it takes to start exposure after a trigger signal has been received. - This is the reaction time of the detector firmware after receiving the trigger signal - to when the detector starts to acquire the exposure, including any user set delay.. - This is important to know for time resolved experiments. - trigger_delay_time_set(NX_FLOAT): - unit: NX_TIME - doc: | - User-specified trigger delay. - trigger_internal_delay_time(NX_FLOAT): - unit: NX_TIME - doc: | - Time it takes to start exposure after a trigger signal has been received. - This is the reaction time of the detector hardware after receiving the - trigger signal to when the detector starts to acquire the exposure. - It forms the lower boundary of the trigger_delay_time when the user - does not request an additional delay. - trigger_dead_time(NX_FLOAT): - unit: NX_TIME - doc: | - Time during which no new trigger signal can be accepted. - Typically this is the - trigger_delay_time + exposure_time + readout_time. - This is important to know for time resolved experiments. - frame_time(NX_FLOAT): - unit: NX_TIME - doc: | - This is time for each frame. This is exposure_time + readout time. - dimensions: - rank: 1 - dim: [[1, nP]] - gain_setting(NX_CHAR): - doc: | - The gain setting of the detector. This is a detector-specific value - meant to document the gain setting of the detector during data - collection, for detectors with multiple available gain settings. - - Examples of gain settings include: - - * ``standard`` - * ``fast`` - * ``auto`` - * ``high`` - * ``medium`` - * ``low`` - * ``mixed high to medium`` - * ``mixed medium to low`` - - Developers are encouraged to use one of these terms, or to submit - additional terms to add to the list. - saturation_value(NX_NUMBER): - doc: | - The value at which the detector goes into saturation. - Especially common to CCD detectors, the data - is known to be invalid above this value. - - For example, given a saturation_value and an underload_value, the valid - pixels are those less than or equal to the saturation_value and greater - than or equal to the underload_value. - - The precise type should match the type of the data. - underload_value(NX_NUMBER): - doc: | - The lowest value at which pixels for this detector would be reasonably - measured. The data is known to be invalid below this value. - - For example, given a saturation_value and an underload_value, the valid - pixels are those less than or equal to the saturation_value and greater - than or equal to the underload_value. - - The precise type should match the type of the data. - number_of_cycles(NX_INT): - doc: | - CCD images are sometimes constructed by summing - together multiple short exposures in the - electronics. This reduces background etc. - This is the number of short exposures used to sum - images for an image. - sensor_material(NX_CHAR): - doc: | - At times, radiation is not directly sensed by the detector. - Rather, the detector might sense the output from some - converter like a scintillator. - This is the name of this converter material. - sensor_thickness(NX_FLOAT): - unit: NX_LENGTH - doc: | - At times, radiation is not directly sensed by the detector. - Rather, the detector might sense the output from some - converter like a scintillator. - This is the thickness of this converter material. - threshold_energy(NX_FLOAT): - unit: NX_ENERGY - doc: | - Single photon counter detectors can be adjusted - for a certain energy range in which they - work optimally. This is the energy setting for this. - (NXdetector_module): - doc: | - For use in special cases where the data in NXdetector - is represented in several parts, each with a separate geometry. - pixel_shape(choice): - (NXoff_geometry): - doc: | - Shape description of each pixel. Use only if all pixels in the detector - are of uniform shape. - (NXcylindrical_geometry): - doc: | - Shape description of each pixel. Use only if all pixels in the detector - are of uniform shape and require being described by cylinders. - detector_shape(choice): - (NXoff_geometry): - doc: | - Shape description of the whole detector. Use only if pixels in the - detector are not of uniform shape. - (NXcylindrical_geometry): - doc: | - Shape description of the whole detector. Use only if pixels in the - detector are not of uniform shape and require being described by cylinders. - \@default: - doc: | - .. index:: plotting - - Declares which child group contains a path leading - to a :ref:`NXdata` group. - - It is recommended (as of NIAC2014) to use this attribute - to help define the path to the default dataset to be plotted. - See https://www.nexusformat.org/2014_How_to_find_default_data.html - for a summary of the discussion. - amplifier_type(NX_CHAR): - doc: | - Type of electron amplifier, MCP, channeltron, etc. - detector_type(NX_CHAR): - doc: | - Description of the detector type, DLD, Phosphor+CCD, CMOS. - detector_voltage(NX_FLOAT): - unit: NX_VOLTAGE - doc: | - Voltage applied to detector. - amplifier_voltage(NX_FLOAT): - unit: NX_VOLTAGE - doc: | - Voltage applied to the amplifier. - amplifier_bias(NX_FLOAT): - unit: NX_VOLTAGE - doc: | - The low voltage of the amplifier migh not be the ground. - sensor_size(NX_FLOAT): - unit: NX_LENGTH - doc: | - Size of each imaging sensor chip on the detector. - sensor_count(NX_INT): - unit: NX_UNITLESS - doc: | - Number of imaging sensor chips on the detector. - sensor_pixel_size(NX_FLOAT): - unit: NX_LENGTH - doc: | - Physical size of the pixels of the imaging chip on the detector. - sensor_pixels(NX_INT): - unit: NX_UNITLESS - doc: | - Number of raw active elements in each dimension. Important for swept scans. - (NXfabrication): - (NXdata): - doc: | - raw data output from the detector - depends_on(NX_CHAR): - doc: | - 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. - - The reference point of the detector is the center of the first pixel. - In complex geometries the NXoff_geometry groups can be used to provide an unambiguous reference. - (NXtransformations): - doc: | - 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. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 6b256ef0615dca7d8faf4a3bc04d3e62f29a1745e9cd35205e5f0bb9e2c6520c -# -# -# -# -# -# -# These symbols will be used below to illustrate the coordination of the -# rank and sizes of datasets and the preferred ordering of the -# dimensions. Each of these are optional (so the rank of the datasets -# will vary according to the situation) and the general ordering -# principle is slowest to fastest. The type of each dimension should -# follow the order of scan points, detector output (e.g. pixels), then -# time-of-flight (i.e. spectroscopy, spectrometry). Note that the output -# of a detector is not limited to single values (0D), lists (1D) and -# images (2), but three or higher dimensional arrays can be produced by -# a detector at each trigger. -# -# -# -# number of scan points (only present in scanning measurements) -# -# -# -# -# number of detector pixels in the first (slowest) direction -# -# -# -# -# number of detector pixels in the second (faster) direction -# -# -# -# -# number of detector pixels in the third (if necessary, fastest) -# direction -# -# -# -# -# number of bins in the time-of-flight histogram -# -# -# -# -# A detector, detector bank, or multidetector. -# -# -# -# Total time of flight -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# Total time of flight -# -# -# -# -# -# In DAQ clock pulses -# -# -# -# -# -# -# Clock frequency in Hz -# -# -# -# -# -# Identifier for detector (pixels) -# Can be multidimensional, if needed -# -# -# -# -# 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. -# -# -# -# -# -# -# -# -# -# Title of measurement -# -# -# -# -# Integral of data as check of data integrity -# -# -# -# -# -# The best estimate of the uncertainty in the data value (array size should match the data field). Where -# possible, this should be the standard deviation, which has the same units -# as the data. The form data_error is deprecated. -# -# -# -# -# -# -# -# -# -# -# Offset from the detector center in x-direction. -# Can be multidimensional when needed. -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# x-axis offset from detector center -# -# -# -# -# -# Offset from the detector center in the y-direction. -# Can be multidimensional when different values are required for each pixel. -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# y-axis offset from detector center -# -# -# -# -# -# Offset from the detector center in the z-direction. -# Can be multidimensional when different values are required for each pixel. -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# y-axis offset from detector center -# -# -# -# -# -# This is the distance to the previous component in the -# instrument; most often the sample. The usage depends on the -# nature of the detector: Most often it is the distance of the -# detector assembly. But there are irregular detectors. In this -# case the distance must be specified for each detector pixel. -# -# Note, it is recommended to use NXtransformations instead. -# -# -# -# -# -# -# -# -# -# This is the polar angle of the detector towards the previous -# component in the instrument; most often the sample. -# The usage depends on the -# nature of the detector. -# Most often it is the polar_angle of the detector assembly. -# But there are irregular detectors. -# In this -# case, the polar_angle must be specified for each detector pixel. -# -# Note, it is recommended to use NXtransformations instead. -# -# -# -# -# -# -# -# -# -# This is the azimuthal angle angle of the detector towards -# the previous component in the instrument; most often the sample. -# The usage depends on the -# nature of the detector. -# Most often it is the azimuthal_angle of the detector assembly. -# But there are irregular detectors. -# In this -# case, the azimuthal_angle must be specified for each detector pixel. -# -# Note, it is recommended to use NXtransformations instead. -# -# -# -# -# -# -# -# -# -# name/manufacturer/model/etc. information -# -# -# -# -# Serial number for the detector -# -# -# -# -# Local name for the detector -# -# -# -# -# Position and orientation of detector -# -# -# -# -# Solid angle subtended by the detector at the sample -# -# -# -# -# -# -# -# -# Size of each detector pixel. If it is scalar all pixels are the same size. -# -# -# -# -# -# -# -# -# Size of each detector pixel. If it is scalar all pixels are the same size -# -# -# -# -# -# -# -# -# Detector dead time -# -# -# -# -# -# -# -# -# -# Detector gas pressure -# -# -# -# -# -# -# -# -# maximum drift space dimension -# -# -# -# -# Crate number of detector -# -# -# -# -# -# -# -# Equivalent local term -# -# -# -# -# -# Slot number of detector -# -# -# -# -# -# -# -# Equivalent local term -# -# -# -# -# -# Input number of detector -# -# -# -# -# -# -# -# Equivalent local term -# -# -# -# -# -# Description of type such as He3 gas cylinder, He3 PSD, scintillator, -# fission chamber, proportion counter, ion chamber, ccd, pixel, image plate, -# CMOS, ... -# -# -# -# -# Spectral efficiency of detector with respect to e.g. wavelength -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# efficiency of the detector -# -# -# -# -# -# -# -# -# -# This field can be two things: -# -# 1. For a pixel detector it provides the nominal wavelength -# for which the detector has been calibrated. -# -# 2. For other detectors this field has to be seen together with -# the efficiency field above. -# For some detectors, the efficiency is wavelength dependent. -# Thus this field provides the wavelength axis for the efficiency field. -# In this use case, the efficiency and wavelength arrays must -# have the same dimensionality. -# -# -# -# -# -# -# -# -# -# -# Real-time of the exposure (use this if exposure time varies for -# each array element, otherwise use ``count_time`` field). -# -# Most often there is a single real time value that is constant across -# an entire image frame. In such cases, only a 1-D array is needed. -# But there are detectors in which the real time -# changes per pixel. In that case, more than one dimension is needed. Therefore -# the rank of this field should be less than or equal to (detector rank + 1). -# -# -# -# -# -# -# -# -# -# start time for each frame, with the ``start`` attribute as absolute reference -# -# -# -# -# -# -# -# -# stop time for each frame, with the ``start`` attribute as absolute reference -# -# -# -# -# -# -# -# -# date of last calibration (geometry and/or efficiency) measurements -# -# -# -# -# summary of conversion of array data to pixels (e.g. polynomial -# approximations) and location of details of the calibrations -# -# -# -# -# How the detector is represented -# -# -# -# -# -# -# -# -# -# Elapsed actual counting time -# -# -# -# -# -# -# -# -# Use this group to provide other data related to this NXdetector group. -# -# -# -# -# In order to properly sort the order of the images taken in (for -# example) a tomography experiment, a sequence number is stored with each -# image. -# -# -# -# -# -# -# -# This is the x position where the direct beam would hit the detector. -# This is a length and can be outside of the actual -# detector. The length can be in physical units or pixels -# as documented by the units attribute. -# -# -# -# -# This is the y position where the direct beam would hit the detector. -# This is a length and can be outside of the actual -# detector. The length can be in physical units or pixels -# as documented by the units attribute. -# -# -# -# -# This is the start number of the first frame of a scan. In protein crystallography measurements one -# often scans a couple of frames on a give sample, then does something else, -# then returns to the same sample and scans some more frames. Each time with -# a new data file. This number helps concatenating such measurements. -# -# -# -# -# The diameter of a cylindrical detector -# -# -# -# -# The acquisition mode of the detector. -# -# -# -# -# -# -# -# -# -# -# -# -# True when the angular calibration has been applied in the -# electronics, false otherwise. -# -# -# -# -# Angular calibration data. -# -# -# -# -# -# -# -# -# True when the flat field correction has been applied in the -# electronics, false otherwise. -# -# -# -# -# Flat field correction data. -# -# -# -# -# -# -# -# -# Errors of the flat field correction data. -# The form flatfield_error is deprecated. -# -# -# -# -# -# -# -# -# True when the pixel mask correction has been applied in the -# electronics, false otherwise. -# -# -# -# -# The 32-bit pixel mask for the detector. Can be either one mask -# for the whole dataset (i.e. an array with indices i, j) or -# each frame can have its own mask (in which case it would be -# an array with indices np, i, j). -# -# Contains a bit field for each pixel to signal dead, -# blind or high or otherwise unwanted or undesirable pixels. -# They have the following meaning: -# -# .. can't make a table here, a bullet list will have to do for now -# -# * bit 0: gap (pixel with no sensor) -# * bit 1: dead -# * bit 2: under responding -# * bit 3: over responding -# * bit 4: noisy -# * bit 5: -undefined- -# * bit 6: pixel is part of a cluster of problematic pixels (bit set in addition to others) -# * bit 7: -undefined- -# * bit 8: user defined mask (e.g. around beamstop) -# * bits 9-30: -undefined- -# * bit 31: virtual pixel (corner pixel with interpolated value) -# -# Normal data analysis software would -# not take pixels into account -# when a bit in (mask & 0x0000FFFF) is -# set. Tag bit in the upper -# two bytes would indicate special pixel -# properties that normally -# would not be a sole reason to reject the -# intensity value (unless -# lower bits are set. -# -# If the full bit depths is not required, providing a -# mask with fewer bits is permissible. -# -# If needed, additional pixel masks can be specified by -# including additional entries named pixel_mask_N, where -# N is an integer. For example, a general bad pixel mask -# could be specified in pixel_mask that indicates noisy -# and dead pixels, and an additional pixel mask from -# experiment-specific shadowing could be specified in -# pixel_mask_2. The cumulative mask is the bitwise OR -# of pixel_mask and any pixel_mask_N entries. -# -# -# -# -# -# -# -# -# This field allow to distinguish different types of exposure to the same detector "data" field. -# Some techniques require frequent (re-)calibration inbetween measuremnts and this way of -# recording the different measurements preserves the chronological order with is important for -# correct processing. -# -# This is used for example in tomography (`:ref:`NXtomo`) sample projections, -# dark and flat images, a magic number is recorded per frame. -# -# The key is as follows: -# -# * projection (sample) = 0 -# * flat field = 1 -# * dark field = 2 -# * invalid = 3 -# * background (no sample, but buffer where applicable) = 4 -# -# In cases where the data is of type :ref:`NXlog` this can also be an NXlog. -# -# -# -# -# -# -# -# Counting detectors usually are not able to measure all incoming particles, -# especially at higher count-rates. Count-rate correction is applied to -# account for these errors. -# -# True when count-rate correction has been applied, false otherwise. -# -# -# -# -# The countrate_correction_lookup_table defines the LUT used for count-rate -# correction. It maps a measured count :math:`c` to its corrected value -# :math:`countrate\_correction\_lookup\_table[c]`. -# -# :math:`m` denotes the length of the table. -# -# -# -# -# -# -# -# True when virtual pixel interpolation has been applied, false otherwise. -# -# When virtual pixel interpolation is applied, values of some pixels may -# contain interpolated values. For example, to account for space between -# readout chips on a module, physical pixels on edges and corners between -# chips may have larger sensor areas and counts may be distributed between -# their logical pixels. -# -# -# -# -# How many bits the electronics reads per pixel. -# With CCD's and single photon counting detectors, -# this must not align with traditional integer sizes. -# This can be 4, 8, 12, 14, 16, ... -# -# -# -# -# Time it takes to read the detector (typically milliseconds). -# This is important to know for time resolved experiments. -# -# -# -# -# Time it takes to start exposure after a trigger signal has been received. -# This is the reaction time of the detector firmware after receiving the trigger signal -# to when the detector starts to acquire the exposure, including any user set delay.. -# This is important to know for time resolved experiments. -# -# -# -# -# User-specified trigger delay. -# -# -# -# -# Time it takes to start exposure after a trigger signal has been received. -# This is the reaction time of the detector hardware after receiving the -# trigger signal to when the detector starts to acquire the exposure. -# It forms the lower boundary of the trigger_delay_time when the user -# does not request an additional delay. -# -# -# -# -# Time during which no new trigger signal can be accepted. -# Typically this is the -# trigger_delay_time + exposure_time + readout_time. -# This is important to know for time resolved experiments. -# -# -# -# -# This is time for each frame. This is exposure_time + readout time. -# -# -# -# -# -# -# -# The gain setting of the detector. This is a detector-specific value -# meant to document the gain setting of the detector during data -# collection, for detectors with multiple available gain settings. -# -# Examples of gain settings include: -# -# * ``standard`` -# * ``fast`` -# * ``auto`` -# * ``high`` -# * ``medium`` -# * ``low`` -# * ``mixed high to medium`` -# * ``mixed medium to low`` -# -# Developers are encouraged to use one of these terms, or to submit -# additional terms to add to the list. -# -# -# -# -# The value at which the detector goes into saturation. -# Especially common to CCD detectors, the data -# is known to be invalid above this value. -# -# For example, given a saturation_value and an underload_value, the valid -# pixels are those less than or equal to the saturation_value and greater -# than or equal to the underload_value. -# -# The precise type should match the type of the data. -# -# -# -# -# The lowest value at which pixels for this detector would be reasonably -# measured. The data is known to be invalid below this value. -# -# For example, given a saturation_value and an underload_value, the valid -# pixels are those less than or equal to the saturation_value and greater -# than or equal to the underload_value. -# -# The precise type should match the type of the data. -# -# -# -# -# CCD images are sometimes constructed by summing -# together multiple short exposures in the -# electronics. This reduces background etc. -# This is the number of short exposures used to sum -# images for an image. -# -# -# -# -# At times, radiation is not directly sensed by the detector. -# Rather, the detector might sense the output from some -# converter like a scintillator. -# This is the name of this converter material. -# -# -# -# -# At times, radiation is not directly sensed by the detector. -# Rather, the detector might sense the output from some -# converter like a scintillator. -# This is the thickness of this converter material. -# -# -# -# -# Single photon counter detectors can be adjusted -# for a certain energy range in which they -# work optimally. This is the energy setting for this. -# -# -# -# -# For use in special cases where the data in NXdetector -# is represented in several parts, each with a separate geometry. -# -# -# -# -# -# Shape description of each pixel. Use only if all pixels in the detector -# are of uniform shape. -# -# -# -# -# Shape description of each pixel. Use only if all pixels in the detector -# are of uniform shape and require being described by cylinders. -# -# -# -# -# -# -# Shape description of the whole detector. Use only if pixels in the -# detector are not of uniform shape. -# -# -# -# -# Shape description of the whole detector. Use only if pixels in the -# detector are not of uniform shape and require being described by cylinders. -# -# -# -# -# -# .. index:: plotting -# -# Declares which child group contains a path leading -# to a :ref:`NXdata` group. -# -# It is recommended (as of NIAC2014) to use this attribute -# to help define the path to the default dataset to be plotted. -# See https://www.nexusformat.org/2014_How_to_find_default_data.html -# for a summary of the discussion. -# -# -# -# -# Type of electron amplifier, MCP, channeltron, etc. -# -# -# -# -# Description of the detector type, DLD, Phosphor+CCD, CMOS. -# -# -# -# -# Voltage applied to detector. -# -# -# -# -# Voltage applied to the amplifier. -# -# -# -# -# The low voltage of the amplifier migh not be the ground. -# -# -# -# -# Size of each imaging sensor chip on the detector. -# -# -# -# -# Number of imaging sensor chips on the detector. -# -# -# -# -# Physical size of the pixels of the imaging chip on the detector. -# -# -# -# -# Number of raw active elements in each dimension. Important for swept scans. -# -# -# -# -# raw data output from the detector -# -# -# -# -# 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. -# -# The reference point of the detector is the center of the first pixel. -# In complex geometries the NXoff_geometry groups can be used to provide an unambiguous reference. -# -# -# -# -# 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. -# -# -# diff --git a/contributed_definitions/nyaml/NXelectron_level.yaml b/contributed_definitions/nyaml/NXelectron_level.yaml new file mode 100644 index 0000000000..0b5c8143d0 --- /dev/null +++ b/contributed_definitions/nyaml/NXelectron_level.yaml @@ -0,0 +1,1465 @@ +category: base +doc: | + Electronic level probed in X-ray spectroscopy or resonance experiments. +type: group +NXelectron_level(NXobject): + element: + doc: | + Symbol of the chemical element. + + For each, the atomic number, common English name, and standard atomic weight are also given. + enumeration: + H: + doc: | + Z=1, name="hydrogen", standard_atomic_weight=1.0078 + He: + doc: | + Z=2, name="helium", standard_atomic_weight=4.0026 + Li: + doc: | + Z=3, name="lithium", standard_atomic_weight=6.94 + Be: + doc: | + Z=4, name="beryllium", standard_atomic_weight=9.0122 + B: + doc: | + Z=5, name="boron", standard_atomic_weight=10.81 + C: + doc: | + Z=6, name="carbon", standard_atomic_weight=12.011 + N: + doc: | + Z=7, name="nitrogen", standard_atomic_weight=14.007 + O: + doc: | + Z=8, name="oxygen", standard_atomic_weight=15.999 + F: + doc: | + Z=9, name="fluorine", standard_atomic_weight=18.9984 + Ne: + doc: | + Z=10, name="neon", standard_atomic_weight=20.1797 + Na: + doc: | + Z=11, name="sodium", standard_atomic_weight=22.9898 + Mg: + doc: | + Z=12, name="magnesium", standard_atomic_weight=24.305 + Al: + doc: | + Z=13, name="aluminum", standard_atomic_weight=26.9815 + Si: + doc: | + Z=14, name="silicon", standard_atomic_weight=28.085 + P: + doc: | + Z=15, name="phosphorus", standard_atomic_weight=30.9738 + S: + doc: | + Z=16, name="sulfur", standard_atomic_weight=32.06 + Cl: + doc: | + Z=17, name="chlorine", standard_atomic_weight=35.453 + Ar: + doc: | + Z=18, name="argon", standard_atomic_weight=39.948 + K: + doc: | + Z=19, name="potassium", standard_atomic_weight=39.0983 + Ca: + doc: | + Z=20, name="calcium", standard_atomic_weight=40.078 + Sc: + doc: | + Z=21, name="scandium", standard_atomic_weight=44.9559 + Ti: + doc: | + Z=22, name="titanium", standard_atomic_weight=47.867 + V: + doc: | + Z=23, name="vanadium", standard_atomic_weight=50.9415 + Cr: + doc: | + Z=24, name="chromium", standard_atomic_weight=51.996 + Mn: + doc: | + Z=25, name="manganese", standard_atomic_weight=54.938 + Fe: + doc: | + Z=26, name="iron", standard_atomic_weight=55.845 + Co: + doc: | + Z=27, name="cobalt", standard_atomic_weight=58.9332 + Ni: + doc: | + Z=28, name="nickel", standard_atomic_weight=58.6934 + Cu: + doc: | + Z=29, name="copper", standard_atomic_weight=63.546 + Zn: + doc: | + Z=30, name="zinc", standard_atomic_weight=65.38 + Ga: + doc: | + Z=31, name="gallium", standard_atomic_weight=69.72 + Ge: + doc: | + Z=32, name="germanium", standard_atomic_weight=72.63 + As: + doc: | + Z=33, name="arsenic", standard_atomic_weight=74.9216 + Se: + doc: | + Z=34, name="selenium", standard_atomic_weight=78.971 + Br: + doc: | + Z=35, name="bromine", standard_atomic_weight=79.904 + Kr: + doc: | + Z=36, name="krypton", standard_atomic_weight=83.798 + Rb: + doc: | + Z=37, name="rubidium", standard_atomic_weight=85.4678 + Sr: + doc: | + Z=38, name="strontium", standard_atomic_weight=87.62 + Y: + doc: | + Z=39, name="yttrium", standard_atomic_weight=88.9058 + Zr: + doc: | + Z=40, name="zirconium", standard_atomic_weight=91.224 + Nb: + doc: | + Z=41, name="niobium", standard_atomic_weight=92.9064 + Mo: + doc: | + Z=42, name="molybdenum", standard_atomic_weight=95.95 + Tc: + doc: | + Z=43, name="technetium", standard_atomic_weight=97.907 + Ru: + doc: | + Z=44, name="ruthenium", standard_atomic_weight=101.07 + Rh: + doc: | + Z=45, name="rhodium", standard_atomic_weight=102.906 + Pd: + doc: | + Z=46, name="palladium", standard_atomic_weight=106.42 + Ag: + doc: | + Z=47, name="silver", standard_atomic_weight=107.868 + Cd: + doc: | + Z=48, name="cadmium", standard_atomic_weight=112.414 + In: + doc: | + Z=49, name="indium", standard_atomic_weight=114.818 + Sn: + doc: | + Z=50, name="tin", standard_atomic_weight=118.71 + Sb: + doc: | + Z=51, name="antimony", standard_atomic_weight=121.76 + Te: + doc: | + Z=52, name="tellurium", standard_atomic_weight=127.6 + I: + doc: | + Z=53, name="iodine", standard_atomic_weight=126.905 + Xe: + doc: | + Z=54, name="xenon", standard_atomic_weight=131.293 + Cs: + doc: | + Z=55, name="cesium", standard_atomic_weight=132.905 + Ba: + doc: | + Z=56, name="barium", standard_atomic_weight=137.327 + La: + doc: | + Z=57, name="lanthanum", standard_atomic_weight=138.905 + Ce: + doc: | + Z=58, name="cerium", standard_atomic_weight=140.116 + Pr: + doc: | + Z=59, name="praseodymium", standard_atomic_weight=140.908 + Nd: + doc: | + Z=60, name="neodymium", standard_atomic_weight=144.242 + Pm: + doc: | + Z=61, name="promethium", standard_atomic_weight=145.0 + Sm: + doc: | + Z=62, name="samarium", standard_atomic_weight=150.36 + Eu: + doc: | + Z=63, name="europium", standard_atomic_weight=151.96 + Gd: + doc: | + Z=64, name="gadolinium", standard_atomic_weight=157.25 + Tb: + doc: | + Z=65, name="terbium", standard_atomic_weight=158.925 + Dy: + doc: | + Z=66, name="dysprosium", standard_atomic_weight=162.5 + Ho: + doc: | + Z=67, name="holmium", standard_atomic_weight=164.93 + Er: + doc: | + Z=68, name="erbium", standard_atomic_weight=167.259 + Tm: + doc: | + Z=69, name="thulium", standard_atomic_weight=168.934 + Yb: + doc: | + Z=70, name="ytterbium", standard_atomic_weight=173.045 + Lu: + doc: | + Z=71, name="lutetium", standard_atomic_weight=174.967 + Hf: + doc: | + Z=72, name="hafnium", standard_atomic_weight=178.49 + Ta: + doc: | + Z=73, name="tantalum", standard_atomic_weight=180.948 + W: + doc: | + Z=74, name="tungsten", standard_atomic_weight=183.84 + Re: + doc: | + Z=75, name="rhenium", standard_atomic_weight=186.207 + Os: + doc: | + Z=76, name="osmium", standard_atomic_weight=190.23 + Ir: + doc: | + Z=77, name="iridium", standard_atomic_weight=192.217 + Pt: + doc: | + Z=78, name="platinum", standard_atomic_weight=195.084 + Au: + doc: | + Z=79, name="gold", standard_atomic_weight=196.967 + Hg: + doc: | + Z=80, name="mercury", standard_atomic_weight=200.592 + Tl: + doc: | + Z=81, name="thallium", standard_atomic_weight=204.383 + Pb: + doc: | + Z=82, name="lead", standard_atomic_weight=207.2 + Bi: + doc: | + Z=83, name="bismuth", standard_atomic_weight=208.98 + Po: + doc: | + Z=84, name="polonium", standard_atomic_weight=209.0 + At: + doc: | + Z=85, name="astatine", standard_atomic_weight=210.0 + Rn: + doc: | + Z=86, name="radon", standard_atomic_weight=222.0 + Fr: + doc: | + Z=87, name="francium", standard_atomic_weight=223.0 + Ra: + doc: | + Z=88, name="radium", standard_atomic_weight=226.0 + Ac: + doc: | + Z=89, name="actinium", standard_atomic_weight=227.0 + Th: + doc: | + Z=90, name="thorium", standard_atomic_weight=232.038 + Pa: + doc: | + Z=91, name="protactinium", standard_atomic_weight=231.036 + U: + doc: | + Z=92, name="uranium", standard_atomic_weight=238.029 + Np: + doc: | + Z=93, name="neptunium", standard_atomic_weight=237.048 + Pu: + doc: | + Z=94, name="plutonium", standard_atomic_weight=239.052 + Am: + doc: | + Z=95, name="americium", standard_atomic_weight=243.0 + Cm: + doc: | + Z=96, name="curium", standard_atomic_weight=247.0 + Bk: + doc: | + Z=97, name="berkelium", standard_atomic_weight=247.0 + Cf: + doc: | + Z=98, name="californium", standard_atomic_weight=251.0 + Es: + doc: | + Z=99, name="einsteinium", standard_atomic_weight=252 + Fm: + doc: | + Z=100, name="fermium", standard_atomic_weight=257 + Md: + doc: | + Z=101, name="mendelevium", standard_atomic_weight=258 + No: + doc: | + Z=102, name="nobelium", standard_atomic_weight=259 + Lr: + doc: | + Z=103, name="lawrencium", standard_atomic_weight=266 + Rf: + doc: | + Z=104, name="rutherfordium", standard_atomic_weight=267 + Db: + doc: | + Z=105, name="dubnium", standard_atomic_weight=268 + Sg: + doc: | + Z=106, name="seaborgium", standard_atomic_weight=269 + Bh: + doc: | + Z=107, name="bohrium", standard_atomic_weight=270 + Hs: + doc: | + Z=108, name="hassium", standard_atomic_weight=269 + Mt: + doc: | + Z=109, name="meitnerium", standard_atomic_weight=278 + Ds: + doc: | + Z=110, name="darmstadtium", standard_atomic_weight=281 + Rg: + doc: | + Z=111, name="roentgenium", standard_atomic_weight=282 + Cn: + doc: | + Z=112, name="copernicium", standard_atomic_weight=285 + Nh: + doc: | + Z=113, name="nihonium", standard_atomic_weight=286 + Fl: + doc: | + Z=114, name="flerovium", standard_atomic_weight=289 + Mc: + doc: | + Z=115, name="moscovium", standard_atomic_weight=290 + Lv: + doc: | + Z=116, name="livermorium", standard_atomic_weight=293 + Ts: + doc: | + Z=117, name="tennessine", standard_atomic_weight=294 + Og: + doc: | + Z=118, name="oganesson", standard_atomic_weight=294 + level_iupac: + doc: | + IUPAC symbol of the electronic level. + For each level, the electronic orbital configuration is also given + + For reference, see Jenkins, R., Manne, R., Robin, R., & Senemaud, C. (1991). + IUPAC—nomenclature system for x-ray spectroscopy. X-Ray Spectrometry, 20(3), 149-155. + enumeration: + K: + doc: | + same as 1s in level_xray + L1: + doc: | + 2s + L2: + doc: | + 2p_{1/2} + L3: + doc: | + 2p_{3/2} + M1: + doc: | + 3s + M2: + doc: | + 3p_{1/2} + M3: + doc: | + 3p_{3/2} + M4: + doc: | + 3d_{3/2} + M5: + doc: | + 3d_{5/2} + N1: + doc: | + 4s + N2: + doc: | + 4p_{1/2} + N3: + doc: | + 4p_{3/2} + N4: + doc: | + 4d_{3/2} + N5: + doc: | + 4d_{5/2} + N6: + doc: | + 4f_{5/2} + N7: + doc: | + 4f_{7/2} + O1: + doc: | + 5s + O2: + doc: | + 5p_{1/2} + O3: + doc: | + 5p_{3/2} + O4: + doc: | + 5d_{3/2} + O5: + doc: | + 5d_{5/2} + O6: + doc: | + 5f_{5/2} + O7: + doc: | + 5f_{7/2} + P1: + doc: | + 6s + P2: + doc: | + 6p_{1/2} + P3: + doc: | + 6p_{3/2} + level_electron_config: + doc: | + Electronic orbital configuration of the electronic level. + enumeration: + 1s: + doc: | + same as K in level_xray + 2s: + doc: | + L1 + 2p1/2: + doc: | + L3 + 3s: + doc: | + M1 + 3p1/2: + doc: | + M2 + 3p3/2: + doc: | + M3 + 3d3/2: + doc: | + M4 + 3d5/2: + doc: | + M5 + 4s: + doc: | + N1 + 4p1/2: + doc: | + N2 + 4p3/2: + doc: | + N3 + 4d3/2: + doc: | + N4 + 4d5/2: + doc: | + N5 + 4f5/2: + doc: | + N6 + 4f7/2: + doc: | + N7 + 5s: + doc: | + O1 + 5p1/2: + doc: | + O2 + 5p3/2: + doc: | + O3 + 5d3/2: + doc: | + O4 + 5d5/2: + doc: | + O5 + 5f5/2: + doc: | + O6 + 5f7/2: + doc: | + O7 + 6s: + doc: | + P1 + 6p1/2: + doc: | + P2 + 6p3/2: + doc: | + P3 + \@description: + doc: | + description of X-ray electronic level + \@default: + doc: | + .. index:: plotting + + Declares which child group contains a path leading + to a :ref:`NXdata` group. + + It is recommended (as of NIAC2014) to use this attribute + to help define the path to the default dataset to be plotted. + See https://www.nexusformat.org/2014_How_to_find_default_data.html + for a summary of the discussion. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# f15a465a52ff8afca9ae40f5a19eaaa00cf0defe098ab7a0b76a3692acd4bc29 +# +# +# +# +# +# Electronic level probed in X-ray spectroscopy or resonance experiments. +# +# +# +# Symbol of the chemical element. +# +# For each, the atomic number, common English name, and standard atomic weight are also given. +# +# +# +# +# Z=1, name="hydrogen", standard_atomic_weight=1.0078 +# +# +# +# +# Z=2, name="helium", standard_atomic_weight=4.0026 +# +# +# +# +# Z=3, name="lithium", standard_atomic_weight=6.94 +# +# +# +# +# Z=4, name="beryllium", standard_atomic_weight=9.0122 +# +# +# +# +# Z=5, name="boron", standard_atomic_weight=10.81 +# +# +# +# +# Z=6, name="carbon", standard_atomic_weight=12.011 +# +# +# +# +# Z=7, name="nitrogen", standard_atomic_weight=14.007 +# +# +# +# +# Z=8, name="oxygen", standard_atomic_weight=15.999 +# +# +# +# +# Z=9, name="fluorine", standard_atomic_weight=18.9984 +# +# +# +# +# Z=10, name="neon", standard_atomic_weight=20.1797 +# +# +# +# +# Z=11, name="sodium", standard_atomic_weight=22.9898 +# +# +# +# +# Z=12, name="magnesium", standard_atomic_weight=24.305 +# +# +# +# +# Z=13, name="aluminum", standard_atomic_weight=26.9815 +# +# +# +# +# Z=14, name="silicon", standard_atomic_weight=28.085 +# +# +# +# +# Z=15, name="phosphorus", standard_atomic_weight=30.9738 +# +# +# +# +# Z=16, name="sulfur", standard_atomic_weight=32.06 +# +# +# +# +# Z=17, name="chlorine", standard_atomic_weight=35.453 +# +# +# +# +# Z=18, name="argon", standard_atomic_weight=39.948 +# +# +# +# +# Z=19, name="potassium", standard_atomic_weight=39.0983 +# +# +# +# +# Z=20, name="calcium", standard_atomic_weight=40.078 +# +# +# +# +# Z=21, name="scandium", standard_atomic_weight=44.9559 +# +# +# +# +# Z=22, name="titanium", standard_atomic_weight=47.867 +# +# +# +# +# Z=23, name="vanadium", standard_atomic_weight=50.9415 +# +# +# +# +# Z=24, name="chromium", standard_atomic_weight=51.996 +# +# +# +# +# Z=25, name="manganese", standard_atomic_weight=54.938 +# +# +# +# +# Z=26, name="iron", standard_atomic_weight=55.845 +# +# +# +# +# Z=27, name="cobalt", standard_atomic_weight=58.9332 +# +# +# +# +# Z=28, name="nickel", standard_atomic_weight=58.6934 +# +# +# +# +# Z=29, name="copper", standard_atomic_weight=63.546 +# +# +# +# +# Z=30, name="zinc", standard_atomic_weight=65.38 +# +# +# +# +# Z=31, name="gallium", standard_atomic_weight=69.72 +# +# +# +# +# Z=32, name="germanium", standard_atomic_weight=72.63 +# +# +# +# +# Z=33, name="arsenic", standard_atomic_weight=74.9216 +# +# +# +# +# Z=34, name="selenium", standard_atomic_weight=78.971 +# +# +# +# +# Z=35, name="bromine", standard_atomic_weight=79.904 +# +# +# +# +# Z=36, name="krypton", standard_atomic_weight=83.798 +# +# +# +# +# Z=37, name="rubidium", standard_atomic_weight=85.4678 +# +# +# +# +# Z=38, name="strontium", standard_atomic_weight=87.62 +# +# +# +# +# Z=39, name="yttrium", standard_atomic_weight=88.9058 +# +# +# +# +# Z=40, name="zirconium", standard_atomic_weight=91.224 +# +# +# +# +# Z=41, name="niobium", standard_atomic_weight=92.9064 +# +# +# +# +# Z=42, name="molybdenum", standard_atomic_weight=95.95 +# +# +# +# +# Z=43, name="technetium", standard_atomic_weight=97.907 +# +# +# +# +# Z=44, name="ruthenium", standard_atomic_weight=101.07 +# +# +# +# +# Z=45, name="rhodium", standard_atomic_weight=102.906 +# +# +# +# +# Z=46, name="palladium", standard_atomic_weight=106.42 +# +# +# +# +# Z=47, name="silver", standard_atomic_weight=107.868 +# +# +# +# +# Z=48, name="cadmium", standard_atomic_weight=112.414 +# +# +# +# +# Z=49, name="indium", standard_atomic_weight=114.818 +# +# +# +# +# Z=50, name="tin", standard_atomic_weight=118.71 +# +# +# +# +# Z=51, name="antimony", standard_atomic_weight=121.76 +# +# +# +# +# Z=52, name="tellurium", standard_atomic_weight=127.6 +# +# +# +# +# Z=53, name="iodine", standard_atomic_weight=126.905 +# +# +# +# +# Z=54, name="xenon", standard_atomic_weight=131.293 +# +# +# +# +# Z=55, name="cesium", standard_atomic_weight=132.905 +# +# +# +# +# Z=56, name="barium", standard_atomic_weight=137.327 +# +# +# +# +# Z=57, name="lanthanum", standard_atomic_weight=138.905 +# +# +# +# +# Z=58, name="cerium", standard_atomic_weight=140.116 +# +# +# +# +# Z=59, name="praseodymium", standard_atomic_weight=140.908 +# +# +# +# +# Z=60, name="neodymium", standard_atomic_weight=144.242 +# +# +# +# +# Z=61, name="promethium", standard_atomic_weight=145.0 +# +# +# +# +# Z=62, name="samarium", standard_atomic_weight=150.36 +# +# +# +# +# Z=63, name="europium", standard_atomic_weight=151.96 +# +# +# +# +# Z=64, name="gadolinium", standard_atomic_weight=157.25 +# +# +# +# +# Z=65, name="terbium", standard_atomic_weight=158.925 +# +# +# +# +# Z=66, name="dysprosium", standard_atomic_weight=162.5 +# +# +# +# +# Z=67, name="holmium", standard_atomic_weight=164.93 +# +# +# +# +# Z=68, name="erbium", standard_atomic_weight=167.259 +# +# +# +# +# Z=69, name="thulium", standard_atomic_weight=168.934 +# +# +# +# +# Z=70, name="ytterbium", standard_atomic_weight=173.045 +# +# +# +# +# Z=71, name="lutetium", standard_atomic_weight=174.967 +# +# +# +# +# Z=72, name="hafnium", standard_atomic_weight=178.49 +# +# +# +# +# Z=73, name="tantalum", standard_atomic_weight=180.948 +# +# +# +# +# Z=74, name="tungsten", standard_atomic_weight=183.84 +# +# +# +# +# Z=75, name="rhenium", standard_atomic_weight=186.207 +# +# +# +# +# Z=76, name="osmium", standard_atomic_weight=190.23 +# +# +# +# +# Z=77, name="iridium", standard_atomic_weight=192.217 +# +# +# +# +# Z=78, name="platinum", standard_atomic_weight=195.084 +# +# +# +# +# Z=79, name="gold", standard_atomic_weight=196.967 +# +# +# +# +# Z=80, name="mercury", standard_atomic_weight=200.592 +# +# +# +# +# Z=81, name="thallium", standard_atomic_weight=204.383 +# +# +# +# +# Z=82, name="lead", standard_atomic_weight=207.2 +# +# +# +# +# Z=83, name="bismuth", standard_atomic_weight=208.98 +# +# +# +# +# Z=84, name="polonium", standard_atomic_weight=209.0 +# +# +# +# +# Z=85, name="astatine", standard_atomic_weight=210.0 +# +# +# +# +# Z=86, name="radon", standard_atomic_weight=222.0 +# +# +# +# +# Z=87, name="francium", standard_atomic_weight=223.0 +# +# +# +# +# Z=88, name="radium", standard_atomic_weight=226.0 +# +# +# +# +# Z=89, name="actinium", standard_atomic_weight=227.0 +# +# +# +# +# Z=90, name="thorium", standard_atomic_weight=232.038 +# +# +# +# +# Z=91, name="protactinium", standard_atomic_weight=231.036 +# +# +# +# +# Z=92, name="uranium", standard_atomic_weight=238.029 +# +# +# +# +# Z=93, name="neptunium", standard_atomic_weight=237.048 +# +# +# +# +# Z=94, name="plutonium", standard_atomic_weight=239.052 +# +# +# +# +# Z=95, name="americium", standard_atomic_weight=243.0 +# +# +# +# +# Z=96, name="curium", standard_atomic_weight=247.0 +# +# +# +# +# Z=97, name="berkelium", standard_atomic_weight=247.0 +# +# +# +# +# Z=98, name="californium", standard_atomic_weight=251.0 +# +# +# +# +# Z=99, name="einsteinium", standard_atomic_weight=252 +# +# +# +# +# Z=100, name="fermium", standard_atomic_weight=257 +# +# +# +# +# Z=101, name="mendelevium", standard_atomic_weight=258 +# +# +# +# +# Z=102, name="nobelium", standard_atomic_weight=259 +# +# +# +# +# Z=103, name="lawrencium", standard_atomic_weight=266 +# +# +# +# +# Z=104, name="rutherfordium", standard_atomic_weight=267 +# +# +# +# +# Z=105, name="dubnium", standard_atomic_weight=268 +# +# +# +# +# Z=106, name="seaborgium", standard_atomic_weight=269 +# +# +# +# +# Z=107, name="bohrium", standard_atomic_weight=270 +# +# +# +# +# Z=108, name="hassium", standard_atomic_weight=269 +# +# +# +# +# Z=109, name="meitnerium", standard_atomic_weight=278 +# +# +# +# +# Z=110, name="darmstadtium", standard_atomic_weight=281 +# +# +# +# +# Z=111, name="roentgenium", standard_atomic_weight=282 +# +# +# +# +# Z=112, name="copernicium", standard_atomic_weight=285 +# +# +# +# +# Z=113, name="nihonium", standard_atomic_weight=286 +# +# +# +# +# Z=114, name="flerovium", standard_atomic_weight=289 +# +# +# +# +# Z=115, name="moscovium", standard_atomic_weight=290 +# +# +# +# +# Z=116, name="livermorium", standard_atomic_weight=293 +# +# +# +# +# Z=117, name="tennessine", standard_atomic_weight=294 +# +# +# +# +# Z=118, name="oganesson", standard_atomic_weight=294 +# +# +# +# +# +# +# IUPAC symbol of the electronic level. +# For each level, the electronic orbital configuration is also given +# +# For reference, see Jenkins, R., Manne, R., Robin, R., & Senemaud, C. (1991). +# IUPAC—nomenclature system for x-ray spectroscopy. X-Ray Spectrometry, 20(3), 149-155. +# +# +# +# +# same as 1s in level_xray +# +# +# +# +# 2s +# +# +# +# +# 2p_{1/2} +# +# +# +# +# 2p_{3/2} +# +# +# +# +# 3s +# +# +# +# +# 3p_{1/2} +# +# +# +# +# 3p_{3/2} +# +# +# +# +# 3d_{3/2} +# +# +# +# +# 3d_{5/2} +# +# +# +# +# 4s +# +# +# +# +# 4p_{1/2} +# +# +# +# +# 4p_{3/2} +# +# +# +# +# 4d_{3/2} +# +# +# +# +# 4d_{5/2} +# +# +# +# +# 4f_{5/2} +# +# +# +# +# 4f_{7/2} +# +# +# +# +# 5s +# +# +# +# +# 5p_{1/2} +# +# +# +# +# 5p_{3/2} +# +# +# +# +# 5d_{3/2} +# +# +# +# +# 5d_{5/2} +# +# +# +# +# 5f_{5/2} +# +# +# +# +# 5f_{7/2} +# +# +# +# +# 6s +# +# +# +# +# 6p_{1/2} +# +# +# +# +# 6p_{3/2} +# +# +# +# +# +# +# Electronic orbital configuration of the electronic level. +# +# +# +# +# same as K in level_xray +# +# +# +# +# L1 +# +# +# +# +# L3 +# +# +# +# +# M1 +# +# +# +# +# M2 +# +# +# +# +# M3 +# +# +# +# +# M4 +# +# +# +# +# M5 +# +# +# +# +# N1 +# +# +# +# +# N2 +# +# +# +# +# N3 +# +# +# +# +# N4 +# +# +# +# +# N5 +# +# +# +# +# N6 +# +# +# +# +# N7 +# +# +# +# +# O1 +# +# +# +# +# O2 +# +# +# +# +# O3 +# +# +# +# +# O4 +# +# +# +# +# O5 +# +# +# +# +# O6 +# +# +# +# +# O7 +# +# +# +# +# P1 +# +# +# +# +# P2 +# +# +# +# +# P3 +# +# +# +# +# +# +# description of X-ray electronic level +# +# +# +# +# .. index:: plotting +# +# Declares which child group contains a path leading +# to a :ref:`NXdata` group. +# +# It is recommended (as of NIAC2014) to use this attribute +# to help define the path to the default dataset to be plotted. +# See https://www.nexusformat.org/2014_How_to_find_default_data.html +# for a summary of the discussion. +# +# +# diff --git a/contributed_definitions/nyaml/NXelectronanalyser.yaml b/contributed_definitions/nyaml/NXelectronanalyser.yaml index b3264af8c5..d576ffd6f4 100644 --- a/contributed_definitions/nyaml/NXelectronanalyser.yaml +++ b/contributed_definitions/nyaml/NXelectronanalyser.yaml @@ -1,6 +1,10 @@ category: base doc: | Subclass of NXinstrument to describe a photoelectron analyser. + + Refers to Term `12.59`_ of the ISO 18115-1:2023 specification. + + .. _12.59: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:12.59 symbols: doc: | The symbols used in the schema to specify e.g. dimensions of arrays @@ -9,6 +13,8 @@ symbols: physical quantity) nsa: | Number of slow axes (axes acquired scanning a physical quantity) + n_transmission_function: | + Number of data points in the transmission function. type: group NXelectronanalyser(NXobject): description(NX_CHAR): @@ -21,10 +27,34 @@ NXelectronanalyser(NXobject): type: NX_CHAR doc: | Acronym or other shorthand name + work_function(NX_FLOAT): + unit: NX_ENERGY + doc: | + Work function of the electron analyser. + + The work function of a uniform surface of a conductor is the minimum energy required to remove + an electron from the interior of the solid to a vacuum level immediately outside the solid surface. + + The kinetic energy :math:`E_K` of a photoelectron emitted from an energy-level with binding energy + :math:`E_B` below the Fermi level is given by :math:`E_K = h\nu - E_B - e \phi_{\mathrm{sample}}`, + where :math:`\phi_{\mathrm{sample}}` is the work function of the sample surface. In PES measurements, + the sample and the spectrometer (with work function :math:`\phi_{\mathrm{spectr.}}`) are electrically + connected and therefore their Fermi levels are aligned. Due to the difference in local vacuum level + between the sample and spectrometer, there exists an electric potential difference (contact potential) + :math:`\Delta\phi = \phi_{\mathrm{sample}} - \phi_{\mathrm{spectr.}}`. The measured kinetic energy of + a photoelectron in PES is therefore given by + :math:`E_K^{\mathrm{meas.}} = h\nu - E_B + \Delta \phi = h\nu - E_B - e \phi_{\mathrm{spectr.}}`. + As a result, the measured kinetic energy :math:`E_K^{\mathrm{meas.}}` of a photoelectron is `independent` + of the sample work function. Nonetheless, the work function :math:`\phi_s` needs to be known to + accurately determine the binding energy scale. energy_resolution(NX_FLOAT): unit: NX_ENERGY doc: | Energy resolution of the electron analyser (FWHM of gaussian broadening) + + Refers to Term `10.7`_ of the ISO 18115-1:2023 specification. + + .. _10.7: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:10.7 momentum_resolution(NX_FLOAT): unit: NX_WAVENUMBER doc: | @@ -37,6 +67,10 @@ NXelectronanalyser(NXobject): unit: NX_LENGTH doc: | Spatial resolution of the electron analyser (Airy disk radius) + + Refers to Term `10.15`_ ff. of the ISO 18115-1:2023 specification. + + .. _10.15: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:10.15 fast_axes(NX_CHAR): doc: | List of the axes that are acquired simultaneously by the detector. @@ -63,9 +97,44 @@ NXelectronanalyser(NXobject): dimensions: rank: 1 dim: [[1, nsa]] + transmission_function(NXdata): + doc: | + Transmission function of the electron analyser. + + The transmission function (TF) specifies the detection efficiency per solid angle for electrons of + different kinetic energy passing through the electron analyser. It depends on the spectrometer + geometry as well as operation settings such as lens mode and pass energy. + The transmission function is usually given as kinetic energy vs. relative intensity. + + The TF is used for calibration of the intensity scale in quantitative XPS. Without proper + transmission correction, a comparison of results measured from the same sample using different + operating modes for an instrument would show significant variations in atomic + concentrations. + + Refers to Term `7.15`_ ff. of the ISO 18115-1:2023 specification. + + .. _7.15: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:7.15 + \@signal: + enumeration: [relative_intensity] + \@axes: + enumeration: [kinetic_energy] + kinetic_energy(NX_FLOAT): + unit: NX_ENERGY + doc: | + Kinetic energy values + dimensions: + rank: 1 + dim: [[1, n_transmission_function]] + relative_intensity(NX_FLOAT): + unit: NX_UNITLESS + doc: | + Relative transmission efficiency for the given kinetic energies + dimensions: + rank: 1 + dim: [[1, n_transmission_function]] depends_on(NX_CHAR): doc: | - Refers to the last transformation specifying the positon of the manipulator in + Refers to the last transformation specifying the position of the manipulator in the NXtransformations chain. (NXtransformations): doc: | @@ -98,7 +167,7 @@ NXelectronanalyser(NXobject): (NXfabrication): # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 8f8507c0c2afbfa0bd1b18e863e8f7c90326769b8ffcc52f48bf88712e1c5b15 +# 9c03d1de4220953d6aaa62a9a36d641e38a166d3f5ca2f4e2e990c8ab9f9c7f8 # # # # +# +# +# The symbols used in the schema to specify e.g. dimensions of arrays +# +# +# +# Number of data points in the transmission function. +# +# +# # # This is the most general application definition for multidimensional # photoelectron spectroscopy. +# +# Groups and fields are named according to the +# `ISO 18115-1:2023`_ specification as well as the `IUPAC Recommendations 2020`_. +# +# .. _ISO 18115-1:2023: https://www.iso.org/standard/74811.html +# .. _IUPAC Recommendations 2020: https://doi.org/10.1515/pac-2019-0404 # # # @@ -410,10 +617,21 @@ NXmpes(NXobject): # # # -# A name of the experimental method according -# to the `ISO 18115-1:2023`_ specification. +# A name of the experimental method according to `Clause 11`_ of +# the `ISO 18115-1:2023`_ specification. +# +# Examples include: +# * X-ray photoelectron spectroscopy (XPS) +# * angle-resolved X-ray photoelectron spectroscopy (ARXPS) +# * ultraviolet photoelectron spectroscopy (UPS) +# * angle-resolved photoelectron spectroscopy (ARPES) +# * hard X-ray photoemission spectroscopy (HAXPES) +# * near ambient pressure X-ray photoelectron spectroscopy (NAPXPS) +# * photoelectron emission microscopy (PEEM) +# * electron spectroscopy for chemical analysis (ESCA) # # .. _ISO 18115-1:2023: https://www.iso.org/standard/74811.html +# .. _Clause 11: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:sec:11 # # # @@ -456,7 +674,22 @@ NXmpes(NXobject): # # # +# +# MPES spectrometer +# +# Refers to Term `12.58`_ of the ISO 18115-1:2023 specification. +# +# .. _12.58: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:12.58 +# # +# +# Overall energy resolution of the MPES instrument +# +# Refers to Terms `10.7`_ ff. and `10.24`_ of the ISO 18115-1:2023 specification. +# +# .. _10.7: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:10.7 +# .. _10.24: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:10.24 +# # # # @@ -519,7 +752,7 @@ NXmpes(NXobject): # The beam emitted by this source. # Should be named with the same appendix, e.g., # for `source_probe` it should refer to `beam_probe`. -# Refers to the same concept as /NXentry/NXinstrument/source_TYPE +# Refers to the same concept as /NXentry/NXinstrument/beam_TYPE # and may be linked. # # @@ -528,6 +761,20 @@ NXmpes(NXobject): # we have a subdefinition NXlink to refer to a path. # This would also be helpful for NXtransformations--> # +# +# +# The beam emitted by this source. +# Should be named with the same appendix, e.g., +# for `source_probe` it should refer to `beam_probe`. +# Refers to the same concept as /NXentry/NXinstrument/source_TYPE +# and may be linked. +# +# +# +# +# # # # @@ -543,10 +790,10 @@ NXmpes(NXobject): # # # -# The beam emitted by this source. +# The source that emitted this beam. # Should be named with the same appendix, e.g., # for `beam_probe` it should refer to `source_probe`. -# Refers to the same concept as /NXentry/NXinstrument/beam_TYPE +# Refers to the same concept as /NXentry/NXinstrument/source_TYPE # and may be linked. # # @@ -562,10 +809,15 @@ NXmpes(NXobject): # # Energy resolution of the analyser with the current setting. May be linked from a # NXcalibration. +# +# Refers to Term `10.24`_ of the ISO 18115-1:2023 specification. +# +# .. _10.24: https://www.iso.org/obp/ui/en/#iso:std:iso:18115:-1:ed-3:v1:en:term:10.24 # # -# +# # +# # #