From a96c6256c2d8af5e6dbc0c22689750e1e49445d6 Mon Sep 17 00:00:00 2001 From: Rubel Date: Mon, 16 Sep 2024 13:30:00 +0200 Subject: [PATCH 1/8] First final draft for application definiton NXsts, NXstm, NXaf, NXspm and base classes NXlockin, NXbias_spectroscopy, cantilever_spm, NXbias_sweep, NXpiezo_config_spm, NXpositioner_spm, NXscan_control, NXpiezoelectric_material and NXrcs. Finish review comments from Lev. --- base_classes/NXpositioner.nxdl.xml | 152 +- base_classes/nyaml/NXpositioner.yaml | 249 ++ contributed_definitions/NXafm.nxdl.xml | 156 ++ .../NXbias_spectroscopy.nxdl.xml | 302 +-- contributed_definitions/NXbias_sweep.nxdl.xml | 93 + .../NXcalibration.nxdl.xml | 70 +- .../NXcantilever_spm.nxdl.xml | 142 ++ contributed_definitions/NXcircuit.nxdl.xml | 143 ++ .../NXfabrication.nxdl.xml | 13 +- contributed_definitions/NXlockin.nxdl.xml | 134 +- .../NXoptical_spectroscopy.nxdl.xml | 1211 +++++++++ .../NXpiezo_config_spm.nxdl.xml | 117 + .../NXpiezoelectric_material.nxdl.xml | 113 + .../NXpositioner_spm.nxdl.xml | 60 + contributed_definitions/NXrcs.nxdl.xml | 67 + .../NXscan_control.nxdl.xml | 611 +++++ .../NXsensor_scan.nxdl.xml | 29 +- contributed_definitions/NXspm.nxdl.xml | 475 ++++ contributed_definitions/NXstm.nxdl.xml | 445 ++++ contributed_definitions/NXsts.nxdl.xml | 967 +------- contributed_definitions/nyaml/NXafm.yaml | 254 ++ .../nyaml/NXbias_spectroscopy.yaml | 306 +++ .../nyaml/NXbias_sweep.yaml | 149 ++ .../nyaml/NXcalibration.yaml | 427 ++++ .../nyaml/NXcantilever_spm.yaml | 235 ++ contributed_definitions/nyaml/NXcircuit.yaml | 235 ++ .../nyaml/NXfabrication.yaml | 103 + contributed_definitions/nyaml/NXlockin.yaml | 305 +++ .../nyaml/NXoptical_spectroscopy.yaml | 2157 +++++++++++++++++ .../nyaml/NXpiezo_config_spm.yaml | 192 ++ .../nyaml/NXpiezoelectric_material.yaml | 191 ++ .../nyaml/NXpositioner_spm.yaml | 94 + contributed_definitions/nyaml/NXrcs.yaml | 101 + .../nyaml/NXscan_control.yaml | 1066 ++++++++ .../nyaml/NXsensor_scan.yaml | 374 +++ contributed_definitions/nyaml/NXspm.yaml | 832 +++++++ contributed_definitions/nyaml/NXstm.yaml | 781 ++++++ contributed_definitions/nyaml/NXsts.yaml | 63 + contributed_definitions/nyaml/README.md | 75 + contributed_definitions/nyaml/SPM/NXafm.yaml | 254 ++ .../nyaml/SPM/NXbias_spectroscopy.yaml | 306 +++ .../nyaml/SPM/NXbias_sweep.yaml | 149 ++ .../nyaml/SPM/NXcantilever_spm.yaml | 235 ++ .../nyaml/SPM/NXlockin.yaml | 305 +++ .../nyaml/SPM/NXpiezo_config_spm.yaml | 192 ++ .../nyaml/SPM/NXpiezoelectric_material.yaml | 191 ++ .../nyaml/SPM/NXpositioner_spm.yaml | 94 + contributed_definitions/nyaml/SPM/NXrcs.yaml | 101 + .../nyaml/SPM/NXscan_control.yaml | 1066 ++++++++ .../nyaml/SPM/NXsensor_scan.yaml | 374 +++ contributed_definitions/nyaml/SPM/NXspm.yaml | 832 +++++++ contributed_definitions/nyaml/SPM/NXstm.yaml | 781 ++++++ contributed_definitions/nyaml/SPM/NXsts.yaml | 63 + contributed_definitions/nyaml/SPM/README.md | 82 + .../nyaml/SPM/nyaml2nxdl.sh | 39 + dev_tools/docs/nxdl_index.py | 1 + .../contributed_definitions/spm-structure.rst | 58 + manual/source/spm-structure.rst | 15 + 58 files changed, 17405 insertions(+), 1222 deletions(-) create mode 100644 base_classes/nyaml/NXpositioner.yaml create mode 100644 contributed_definitions/NXafm.nxdl.xml create mode 100644 contributed_definitions/NXbias_sweep.nxdl.xml create mode 100644 contributed_definitions/NXcantilever_spm.nxdl.xml create mode 100644 contributed_definitions/NXcircuit.nxdl.xml create mode 100644 contributed_definitions/NXoptical_spectroscopy.nxdl.xml create mode 100644 contributed_definitions/NXpiezo_config_spm.nxdl.xml create mode 100644 contributed_definitions/NXpiezoelectric_material.nxdl.xml create mode 100644 contributed_definitions/NXpositioner_spm.nxdl.xml create mode 100644 contributed_definitions/NXrcs.nxdl.xml create mode 100644 contributed_definitions/NXscan_control.nxdl.xml create mode 100644 contributed_definitions/NXspm.nxdl.xml create mode 100644 contributed_definitions/NXstm.nxdl.xml create mode 100644 contributed_definitions/nyaml/NXafm.yaml create mode 100644 contributed_definitions/nyaml/NXbias_spectroscopy.yaml create mode 100644 contributed_definitions/nyaml/NXbias_sweep.yaml create mode 100644 contributed_definitions/nyaml/NXcalibration.yaml create mode 100644 contributed_definitions/nyaml/NXcantilever_spm.yaml create mode 100644 contributed_definitions/nyaml/NXcircuit.yaml create mode 100644 contributed_definitions/nyaml/NXfabrication.yaml create mode 100644 contributed_definitions/nyaml/NXlockin.yaml create mode 100644 contributed_definitions/nyaml/NXoptical_spectroscopy.yaml create mode 100644 contributed_definitions/nyaml/NXpiezo_config_spm.yaml create mode 100644 contributed_definitions/nyaml/NXpiezoelectric_material.yaml create mode 100644 contributed_definitions/nyaml/NXpositioner_spm.yaml create mode 100644 contributed_definitions/nyaml/NXrcs.yaml create mode 100644 contributed_definitions/nyaml/NXscan_control.yaml create mode 100644 contributed_definitions/nyaml/NXsensor_scan.yaml create mode 100644 contributed_definitions/nyaml/NXspm.yaml create mode 100644 contributed_definitions/nyaml/NXstm.yaml create mode 100644 contributed_definitions/nyaml/NXsts.yaml create mode 100644 contributed_definitions/nyaml/README.md create mode 100644 contributed_definitions/nyaml/SPM/NXafm.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXbias_sweep.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXcantilever_spm.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXlockin.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXrcs.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXscan_control.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXsensor_scan.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXspm.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXstm.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXsts.yaml create mode 100644 contributed_definitions/nyaml/SPM/README.md create mode 100644 contributed_definitions/nyaml/SPM/nyaml2nxdl.sh create mode 100644 manual/source/classes/contributed_definitions/spm-structure.rst create mode 100644 manual/source/spm-structure.rst diff --git a/base_classes/NXpositioner.nxdl.xml b/base_classes/NXpositioner.nxdl.xml index 27a088718..1667c803a 100644 --- a/base_classes/NXpositioner.nxdl.xml +++ b/base_classes/NXpositioner.nxdl.xml @@ -1,10 +1,10 @@ - - + + - + - A generic positioner such as a motor or piezo-electric transducer. + A generic positioner such as a motor or piezo-electric transducer. + + + .. 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. + + - symbolic or mnemonic name (one word) + + symbolic or mnemonic name (one word) + - description of positioner + + description of positioner + - best known value of positioner - need [n] as may be scanned - + + best known value of positioner - need [n] as may be scanned + + + + - raw value of positioner - need [n] as may be scanned - + + raw value of positioner - need [n] as may be scanned + + + + - targeted (commanded) value of positioner - need [n] as may be scanned - + + targeted (commanded) value of positioner - need [n] as may be scanned + + + + - maximum allowable difference between target_value and value - + + maximum allowable difference between target_value and value + + + + - minimum allowed limit to set value + + minimum allowed limit to set value + - maximum allowed limit to set value + + maximum allowed limit to set value + - velocity of the positioner (distance moved per unit time) + + velocity of the positioner (distance moved per unit time) + - time to ramp the velocity up to full speed + + time to ramp the velocity up to full speed + - + - Hardware device record, e.g. EPICS process variable, taco/tango ... - - - .. 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. + Hardware device record, e.g. EPICS process variable, taco/tango. - + - 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. - - .. todo:: - Add a definition for the reference point of a positioner. - + 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. + + .. todo:: + Add a definition for the reference point of a positioner. - 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. + 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. + + + + + The actuator of the positioner which is responsible for the movement of the + probe. + + + The feedback of the actual position of the positioner. + + + + If present, the value and the value_log of this pv_sensor is the same as + the value and raw_value of the position itself. + + + diff --git a/base_classes/nyaml/NXpositioner.yaml b/base_classes/nyaml/NXpositioner.yaml new file mode 100644 index 000000000..1b500081b --- /dev/null +++ b/base_classes/nyaml/NXpositioner.yaml @@ -0,0 +1,249 @@ +category: base +doc: | + A generic positioner such as a motor or piezo-electric transducer. +type: group +NXpositioner(NXobject): + \@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. + name: + doc: | + symbolic or mnemonic name (one word) + description: + doc: | + description of positioner + value(NX_NUMBER): + unit: NX_ANY + doc: | + best known value of positioner - need [n] as may be scanned + dimensions: + rank: 1 + dim: (n,) + raw_value(NX_NUMBER): + unit: NX_ANY + doc: | + raw value of positioner - need [n] as may be scanned + dimensions: + rank: 1 + dim: (n,) + target_value(NX_NUMBER): + unit: NX_ANY + doc: | + targeted (commanded) value of positioner - need [n] as may be scanned + dimensions: + rank: 1 + dim: (n,) + tolerance(NX_NUMBER): + unit: NX_ANY + doc: | + maximum allowable difference between target_value and value + dimensions: + rank: 1 + dim: (n,) + soft_limit_min(NX_NUMBER): + unit: NX_ANY + doc: | + minimum allowed limit to set value + soft_limit_max(NX_NUMBER): + unit: NX_ANY + doc: | + maximum allowed limit to set value + velocity(NX_NUMBER): + unit: NX_ANY + doc: | + velocity of the positioner (distance moved per unit time) + acceleration_time(NX_NUMBER): + unit: NX_ANY + doc: | + time to ramp the velocity up to full speed + + # TODO other parameters: settling time, backlash, link to readback channel + controller_record: + doc: | + Hardware device record, e.g. EPICS process variable, taco/tango. + 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. + + .. todo:: + Add a definition for the reference point of a positioner. + (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. + actuator(NXactuator): + doc: | + The actuator of the positioner which is responsible for the movement of the + probe. + feedback(NXpid): + doc: | + The feedback of the actual position of the positioner. + pv_sensor(NXsensor): + doc: | + If present, the value and the value_log of this pv_sensor is the same as + the value and raw_value of the position itself. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 6ec490e1ecc7a173d67cc3c8e7d0cfb08a4106defa8d5a3a269cb6ff1e006200 +# +# +# +# +# +# A generic positioner such as a motor or piezo-electric transducer. +# +# +# +# .. 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. +# +# +# +# +# symbolic or mnemonic name (one word) +# +# +# +# +# description of positioner +# +# +# +# +# best known value of positioner - need [n] as may be scanned +# +# +# +# +# +# +# +# raw value of positioner - need [n] as may be scanned +# +# +# +# +# +# +# +# targeted (commanded) value of positioner - need [n] as may be scanned +# +# +# +# +# +# +# +# maximum allowable difference between target_value and value +# +# +# +# +# +# +# +# minimum allowed limit to set value +# +# +# +# +# maximum allowed limit to set value +# +# +# +# +# velocity of the positioner (distance moved per unit time) +# +# +# +# +# time to ramp the velocity up to full speed +# +# +# +# +# +# Hardware device record, e.g. EPICS process variable, taco/tango. +# +# +# +# +# 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. +# +# .. todo:: +# Add a definition for the reference point of a positioner. +# +# +# +# +# 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. +# +# +# +# +# The actuator of the positioner which is responsible for the movement of the +# probe. +# +# +# +# The feedback of the actual position of the positioner. +# +# +# +# If present, the value and the value_log of this pv_sensor is the same as +# the value and raw_value of the position itself. +# +# +# +# +# diff --git a/contributed_definitions/NXafm.nxdl.xml b/contributed_definitions/NXafm.nxdl.xml new file mode 100644 index 000000000..8ed4c4fb3 --- /dev/null +++ b/contributed_definitions/NXafm.nxdl.xml @@ -0,0 +1,156 @@ + + + + + + An application definition to describe Atomic Force Microscopy (AFM) scanning + technique. + + + + + Name of the definition that is used for the application. + + + + + + + + The mode of the scan. + + + + + + + + + + The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding + instruments. + + + + The photo detector instrument information. + + + + + The cantilever information. + + + + Generally speaking, the cantilever resembles a simple harmonic oscillator. + When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. + In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. + + + + The threshold voltage for oscillator excitation. + + + + + Phase locked loop for cantilever lock-in device. + + + + The reference amplitude (also called drive amplitude) of the cantilever. + + + + + + + + The environment information. + + + + Link to the group ENTRY[entry]/experiment_instrument/height_piezo_sensor. + + + + + Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. + + + + + Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. + + + + + + The sensor information for the height piezo device. + + + + The piezo configuration information like piezoelectric calibration and material + properties. + + + + The material description and properties of the piezoelectric scanner materials. + + + + + + The positioner information like the position of the tip, the position of the + sample, PID loop feedback etc. + + + + + + The sensor information for the xy piezo device. + + + + The piezo configuration information like piezoelectric calibration and material + properties. + + + + The material description and properties of the piezoelectric scanner materials. + + + + + + The positioner information like the position of the tip, the position of the + sample, PID loop feedback etc. + + + + + + The temperature of the scan environment or tip of the cantilever. + + + + + diff --git a/contributed_definitions/NXbias_spectroscopy.nxdl.xml b/contributed_definitions/NXbias_spectroscopy.nxdl.xml index ad484c806..b1094607a 100644 --- a/contributed_definitions/NXbias_spectroscopy.nxdl.xml +++ b/contributed_definitions/NXbias_spectroscopy.nxdl.xml @@ -1,10 +1,10 @@ - + - + - Base classes definition for bias spectroscopy. - - Bias sweeps while measuring arbitrary channels with I(V) curves. + A base class for bias spectroscopy to describe the change in the physical properties + of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. - - - Select the channels to record. - - - - - If chosen, the Bias voltage resets to its initial value (before the sweep initiation) at - the conclusion of the spectroscopy measurement. When this option is not selected, the Bias - voltage maintains the last value acquired during the sweep. This functionality proves - beneficial, especially when combining multiple sweep segments. As an illustration of an - automated measurement: turn off the z-Controller, commence spectroscopy sweep segments ( - forward sweep only, without resetting the bias), restore the bias to its initial value, - and then turn on the z-Controller. - - - - - Select whether to record the Z position during Z averaging time at the end of - the sweep (after Z control time) and store the average value in the header of - the file when saving. Using this option increases the sweep time by Z averaging - time. - - - - - Select whether to set the Lock-In to run during the measurement. When using this - feature, make sure the Lock-In is configured correctly and settling times are - set to twice the Lock-In period at least. This option is ignored when Lock-In is - already running. This option is disabled if the Sweep Mode is MLS and the flag - to configure the Lock-In per segment in the Multiline segment editor is set. - - - - - Time during which the spectroscopy data are acquired and averaged. - - - - - Number of sweeps to measure and average. - - - - - The first bias values of the sweep. - - - - - The last bias values of the sweep. - - - - - Define the sweep number of points, that is, the maximum spectrum resolution eq. - Bias window divide by Num Pixel. - - - - - Duration over which the Z position is recorded and averaged before and after the - sweep (the latter only if Record final Z position is selected in the Advanced - section). After the initial z averaging time, if Z-Controller to Hold is - selected in the Advanced section, the z-Controller is set to hold and the tip is - placed at the previously averaged z position (plus z offset). - - - - - Select a filter to smooth the displayed data. When saving, if any filter is selected, - filtered data are saved to file along with the unfiltered data. - - - - - Filter order of a dynamic filter or width (in number of points) for the Gaussian - filter. - - - - - Cutoff frequency for dynamic filters. - - - - - Offset added to the initial averaged position Zaver before starting to sweep. - This parameter is disabled when Z-Controller to Hold is deselected in the - Advanced section. The LED “Alt” next to the Z offset indicates if an alternate - Z-controller setpoint is enabled. - - - - - Time to wait after changing the bias to the next level and before - starting to acquire data. - - - - - No doc yet. - - - - - Time to wait after the sweep has finished and the bias is ramped to - the initial value. - - - - - Time during which the Z-Controller is enabled once a sweep has finished. - When averaging multiple sweeps (i.e. Sweeps>1), the Z-Controller is enabled - for this duration between each sweep. After the last sweep, it will wait the - specified time before continuing a running scan. This ensures each sweep - reliably starts from the same position. This parameter is disabled when - Z-Controller to Hold is deselected in the Advanced section. - - - - - Maximum rate at which the bias changes (before, during and after sweeping). - (V/s) - - - - - Select whether to measure the backward (return) sweep or the forward only. - - - - - Select whether to set the Z-Controller on hold (i.e. disabled) during the sweep. - It is selected by default. When deselected, Z-offset and Z control time parameters - are disabled. - - + + + The measurement of the I(V) curve can come in two ways: + 1. Constant Spacing: The bias voltage is swept from the start to the end with a constant + spacing between the tip and surface. + 2. Variadic Spacing: The bias voltage is swept from the start to the end in a discretized + spacing between the tip and surface. + + + + + + + + + The pid positioner information while running bias voltage-tunneling current + measurement. + + + + The z-offset is a starting tip position before the sweep starts. + + + + + + + The time or period is taken by a bias sweep to acquire the data for + a single bias sweep point. + + + + + The time or period is taken by a bias sweep to be displayed. + + + + + The time or period is taken by the circuit to measure a full bias sweep voltage or + bias current. + + + + + The time or period is taken by the circuit to indicate the bias sweep voltage + after measuring the voltage. + + + + + + The bias sweep information. + + + + The type of scan like mesh, spiral, etc. For STS experiment, the scan type is + usually a single-point scan (trajectory scan). + + + + + + + + The number of sweeps taken during the bias spectroscopy. + + + + + The initial time is taken to settle the bias voltage at the desired value. + On each sweep usually, the system takes time to settle to the bias voltage + at the next value. + + + + + The time is taken to settle the bias voltage at the desired value. + The time (at the last sweep) to settle for the last value of the sweep. + + + + + The rate at which the amplifier responds to the voltage change + (to reach at the desired value). It defines if the tip movement and + voltage sweep are synchronized. + + + + + The z position after the sweeps are done. + + + + + The total time needed for the entire voltage sweep. + + + + + The region of the scan area. + + + + The range of the scan area. + + + + + The offset of the scan area in 2D (X and Y) space. + + + + + The N (substring) denotes the angle of the scan area with different physical + axes. + + + + + + The linear scan information for scanning of a smaple. + + + + The speed of the scanner or the probe during the scan. + + + + + The time taken by the scanner to scan the entire area. + + + + + Speed of the scanner or the probe moves forward direction. + + + + + Speed of the scanner or the probe that moves backward direction. + + + + + The data that comes from scanning the area. + + + + diff --git a/contributed_definitions/NXbias_sweep.nxdl.xml b/contributed_definitions/NXbias_sweep.nxdl.xml new file mode 100644 index 000000000..b47a51183 --- /dev/null +++ b/contributed_definitions/NXbias_sweep.nxdl.xml @@ -0,0 +1,93 @@ + + + + + + A base class that defines how the bias voltage sweep is performed in the + scanning probe microscopy experiments. + + + + The scan region is the area of phase space or sub-phase space where the scan is + performed. + + + + The starting voltage of the bias sweep. The range of voltages for the sweep can + be defined with scan voltage offset and scan voltage range (difference between + minimum and maximum voltage values in a sweep) + + + + + The range of voltages for the sweep can be defined with scan voltage offset and + scan voltage range (difference between minimum and maximum voltage values in a + sweep) + + + + + The start of the bias scan voltage. + + + + + The end value of the bias scan voltage. + + + + + + In the linear sweep, the bias voltage is changed linearly from the start value + to the end value. + + + + If the bias voltage sweep is also performed in the opposite direction. + + + + + The number of voltage points per sweep. + + + + + The step size between the two consecutive bias voltage values during the sweep. + + + + + The reset_bias defines whether the bias voltage should be reset to the starting + value after the sweep is completed. + + + + + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, + please duplicate this NXdata group for each. + + + + diff --git a/contributed_definitions/NXcalibration.nxdl.xml b/contributed_definitions/NXcalibration.nxdl.xml index 8dd7a6da5..43aa73cb4 100644 --- a/contributed_definitions/NXcalibration.nxdl.xml +++ b/contributed_definitions/NXcalibration.nxdl.xml @@ -45,6 +45,74 @@ Subclass of NXprocess to describe post-processing calibrations. + + + A description of the procedures employed. + + + + + The start time of the calibration. + + + + + The end time of the calibration. + + + + + The time difference between the start and end time of the calibration. + Or the value directly comes from the instrument. + + + + + The period for which the calibration is valid. Usually, every instrument or part of the + needs to be calibrated at regular intervals. + + + + + The type of calibration, e.g., active calibration, passive calibration, + or according to the laboratory defined type. + + + + + The physical quantity of the calibration, e.g., + energy, momentum, time, etc. + + + + + A digital persistent identifier (e.g., DOI, ISO standard) referring to a detailed description of a + calibration method but no actual calibration data. + + + + The type of calibration. + + + + + + A digital persistent identifier (e.g., a DOI) referring to a publicly available calibration measurement + used for this instrument, e.g., a measurement of a known standard containing calibration information. + The axis values may be copied or linked in the appropriate NXcalibration fields for reference. + + + + + A file serialisation of a calibration which may not be publicly available (externally from the nexus file). + + This metadata can be a documentation of the source (file) or database (entry) from which pieces + of information have been extracted for consumption (e.g. in a research data management system (RDMS)). + It is also possible to include the actual file by using the `file` field. + + The axis values may be copied or linked in the appropriate NXcalibration fields for reference. + + Indicates the name of the last operation applied in the NXprocess sequence. @@ -87,7 +155,7 @@ For linear calibration. Offset parameter. - + A vector representing the axis after calibration, matching the data length diff --git a/contributed_definitions/NXcantilever_spm.nxdl.xml b/contributed_definitions/NXcantilever_spm.nxdl.xml new file mode 100644 index 000000000..bdcb1b367 --- /dev/null +++ b/contributed_definitions/NXcantilever_spm.nxdl.xml @@ -0,0 +1,142 @@ + + + + + + A base class to describe the cantilever used in Atomic Force Microscopy (AFM) + techniques. + + + + Generally speaking, the cantilever resembles a simple harmonic oscillator. + When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. + In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. + + + + The reference amplitude (also called drive amplitude) of the cantilever. + + + + + The reference frequency (also called drive frequency or resonance frequency) of + the cantilever. + + + + + The harmonic (e.g., second harmonic of the fundamental frequency) frequency of + the cantilever. + + + + + Phase locked loop for cantilever lock-in device. + + + + Describes the cantilever frequency positioner, if it exists. + + + + + Describes the cantilever phase positioner, if it exists. + + + + + Describes the cantilever frequency positioner, if it exists. + + + + + + The phase difference between the reference signal of cantilever and response + signal. + + + + + Shift in the resonance frequency of the cantilever. + + + + + The cutoff frequency of the cantilever. + + + + + The bandwidth of the resonance frequency. + + + + + The target amplitude of the cantilever to start the AFM/SPM experiment. + + + + + The active frequency of the cantilever to start the experiment. + + + + + The reference phase of the cantilever oscillator. + + + + + + The configuration information of the cantilever such as calibration information, + material properties, etc. + + + + The coating material of the cantilever. + + + + + The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. + + + + + The calibration information of the cantilever. + + + + A force applied to the cantilever tip will cause a change in + cantilever's oscillation amplitude (in dynamic mode) or deflection of the cantilever. + The sensitivity of the cantilever is calculated as the ratio of this change to the force causing it. + + + + + The spring constant coefficient of the cantilever. + + + + + diff --git a/contributed_definitions/NXcircuit.nxdl.xml b/contributed_definitions/NXcircuit.nxdl.xml new file mode 100644 index 000000000..0d91dc98c --- /dev/null +++ b/contributed_definitions/NXcircuit.nxdl.xml @@ -0,0 +1,143 @@ + + + + + + Application definition for circuit devices. + + + + List of components used in the circuit, e.g., resistors, capacitors, transistors or any + other complex components. + + + + + Description of how components are interconnected, including connection points + and wiring. + + + + + Details of the power source for the circuit, including voltage and current + ratings. + + + + + Type of signal (input signal) the circuit is designed to handle, e.g., analog, + digital, mixed-signal. + + + + + The operating frequency range of the circuit. + + + + + Input impedance of the circuit. + + + + + Output impedance of the circuit. + + + + + Gain of the circuit, if applicable, usually all instruments have a gain which might be + important or not. + + + + + Noise level (in current or voltage) in the circuit. + + + + + If circuit handles AC current or signal it may have a band Bandwidth of the circuit to be + responded. + + + + + Operating temperature range of the circuit. + + + + + Calibration data for the circuit. + + + + + Offset value for current or voltage. + + + + + Number of output channels collected to this circuit. + + + + + Type of output signal, e.g., voltage, current, digital. + + + + + Power consumption of the circuit per unit time. + + + + + Status indicators for the circuit, e.g., LEDs, display readouts. + + + + + Protection features built into the circuit, e.g., overvoltage protection, + thermal shutdown. + + + + + Hardware where the circuit is implanted; includes hardware manufacturers and + type + + + + + Updated rate for several processes using the input signal, e.g., History Graph, the circuit + uses for any such process. + + + + + The rate at which the signal changes when ramping from the starting + value. + + + diff --git a/contributed_definitions/NXfabrication.nxdl.xml b/contributed_definitions/NXfabrication.nxdl.xml index 1f940f079..2d7485b2c 100644 --- a/contributed_definitions/NXfabrication.nxdl.xml +++ b/contributed_definitions/NXfabrication.nxdl.xml @@ -41,7 +41,18 @@ a serial number or hash identifier of the component. - + + + Datetime of components initial construction. This refers to the date of + first measurement after new construction or to the relocation date, + if it describes a multicomponent/custom-build setup. + Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, + otherwise the local time zone is assumed per ISO8601. + + This could be year of construction or year and month of construction if full data is not available + + + Free-text list with eventually multiple terms of functionalities which the component offers. diff --git a/contributed_definitions/NXlockin.nxdl.xml b/contributed_definitions/NXlockin.nxdl.xml index f72a279d4..72f23b11d 100644 --- a/contributed_definitions/NXlockin.nxdl.xml +++ b/contributed_definitions/NXlockin.nxdl.xml @@ -23,129 +23,157 @@ --> - Base classes definition for lock in devices. + A base class definition for a lock-in amplifier. + The lock-in amplifier information: the device is being used to extract a (potentially) + very weak input signal buried in the noisy background, where the input signal has + the same frequency (or its harmonic) as a known reference signal. Additionally, + the phase shift between the input signal and the reference signal is measured. + The reference signal might be created by a generator built-in into the lock-in amplifier. - Hardware manufacturers and type of lockin amplifier. + Hardware manufacturers and type of lock-in amplifier. - By mixing the input signal (STS signal) with the modulated signal (such as Bias) - and comparing it with the reference signal, they are enhanced and the effects of - noise interference are reduced, resulting in more accurate measurements. + Description of the amplifier (after detection of the signal from the noise) - if Lock-in -- Bias Divider 1/10 or 1/100, Bias divider = - V(ref)/[V(ref)+V(input)] + Bias divider for lock-in channel if if has. + Bias divider = V(ref)/[V(ref)+V(input)] - Switch the lock-in moulation on or off. + Switch the lock-in modulation on or off. - + - A modulation signal (such as bias, current et.al.) is a periodic voltage signal, - usually applied to the surface of a sample, which serves to modify the physical - properties of the sample surface and generate weak AC current signals that can - be detected and analysed by instruments such as lock-in amplifiers. + A periodic voltage signal generated by the lock-in, + usually applied to a sample and used to create a reference signal for the detection of the input signal + + + + + The number that defines the sign of the lock-in current. The calibration procedure + with retracted tip is normally performed to compensate for the signal phase delay + in SPM. The procedure yields two possible solutions, this number should be equal + to 1 or -1 depending on which solution is chosen. - + + + + Amplitude of the reference signal for the lock-in amplifier. + + + - Sets the amplitude (in physical units of the modulated signal) of the sine - modulation. + Frequency of the reference signal for the lock-in amplifier. - + - Sets the frequency of the sine modulation added to the signal to modulate. + Phase of the reference signal for the lock-in amplifier. - + - The input signal (STS signal) will be demodulated, in order to determine the amplitude + The modulated output signal will be demodulated, in order to determine the amplitude and phase at the frequency set in the Frequency field or harmonics, such as current, bias, et.al. - - + + + The frequency of the demodulated signal. + + + + + The bandwidth of the modulated signal that can be applied in frequency + demodulation mechanism. + + + + + + The amplitude of the demodulated signal. + + + - The number of signals which will be demodulated. + The bandwidth of the modulated signal that can be applied in amplitude + demodulation mechanism. - + - Order and cut-off frequency of the low-pass filter applied on the demodulated - signals (X,Y). Cut-off frq (low pass filter) (foreach DemodulatorChannels) + The phase of the demodulated signal. - + - Order and cut-off frequency of the high-pass filter applied on the demodulation - signal. Cut-off frq (hi pass filter) (foreach DemodulatorChannels) + The bandwidth of the modulated signal that can be applied in phase demodulation + mechanism. - + - Sets the cut-off frequency of the low-pass filter (affects the displayed TC (s) - value) for D1. The filter is applied to the demodulated signals (X,Y). + List of the demodulator channels. - + - Order and cut-off frequency of the low-pass filter applied on the demodulated - signals (X,Y). Reducing the bandwidth or increasing the order reduces noise on - the demodulated signals, but will require longer settling and measurement times. + Frequency of the low-pass filter applied on the demodulated + signals (X,Y), cut-off frq (low pass filter) (for each DemodulatorChannels). - + - Sets the cut-off frequency of the high-pass filter (affects the displayed TC (s) - value) for D1. The filter is applied to the demodulated signals (X,Y). + Frequency of the high-pass filter applied on the demodulation + signal cut-off frq (hi pass filter) (for each DemodulatorChannels). - + - Order and cut-off frequency of the high-pass filter applied on the demodulation - signal of D!. This is used mainly to suppress a DC component of the demodulation - signal, which would lead to a component at modulation frequency in the - demodulated signals. + Order of the low-pass filter applied on the demodulated signals (X, Y). + Reducing the bandwidth or increasing the order reduces noise on the demodulated signals, + but increases settling and measurement times. - + - Switch on/off the Sync filter on the demodulated signals (X,Y) on or off. - (foreach DemodulatorChannels) + Order of the high-pass filter applied on the demodulation + signal. This is used mainly to suppress a DC component of the input + signal noise. - Reference phase for the sine on the demodulated signal with respect to the - modulation signal. (foreach DemodulatorChannels) + Reference phase of reference signal with respect to the demodulated signal + (foreach Channels). - Time during which the data are acquired and averaged. (for the input filter) + Integration time for the product of the input and the reference signals - The order of the harmonic oscillation to detect on the demodulated signals. - (with respect to the modulation frequency) + The reference signal can be a higher harmonic of the modulation signal. + Here the order of the harmonic is stored. - Ratio of output signal amplitude to input signal amplitue (V/V). (input gain) + Ratio of output signal amplitude to input signal amplitue (V/V). diff --git a/contributed_definitions/NXoptical_spectroscopy.nxdl.xml b/contributed_definitions/NXoptical_spectroscopy.nxdl.xml new file mode 100644 index 000000000..61bd639a3 --- /dev/null +++ b/contributed_definitions/NXoptical_spectroscopy.nxdl.xml @@ -0,0 +1,1211 @@ + + + + + + + + Variables used throughout the document, e.g. dimensions or parameters. + + + + Length of the spectrum array (e.g. wavelength or energy) of the measured + data. + + + + + Number of measurements (1st dimension of measured_data array). This is + equal to the number of parameters scanned. For example, if the experiment + was performed at three different temperatures and two different pressures + N_measurements = 2*3 = 6. + + + + + A general application definition of optical spectroscopy elements, which may + be used as a template to derive specialized optical spectroscopy experiments. + + Possible specializations are ellipsometry, Raman spectroscopy, photoluminescence, + reflectivity/transmission spectroscopy. + + A general optical experiment consists of (i) a light/photon source, (ii) a sample, + (iii) a detector. + + For any free text descriptions, it is recommended to enter data in english + language, as this is the most FAIR representation. + + + + + An application definition describing a general optical experiment. + + + + Version number to identify which definition of this application + definition was used for this entry/data. + + + + + URL where to find further material (documentation, examples) relevant + to the application definition. + + + + + + + + + + Datetime of the start of the measurement. + Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, + otherwise, the local time zone is assumed per ISO8601. + + It is required to enter at least one of both measurement times, either "start_time" or "end_time". + + + + + Datetime of the end of the measurement. + Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, + otherwise the local time zone is assumed per ISO8601. + + It is required to enter at least one of both measurement times, either "start_time" or "end_time". + + + + + A (globally persistent) unique identifier of the experiment. + (i) The identifier is usually defined by the facility, laboratory or + principal investigator. + (ii) The identifier enables to link experiments to e.g. proposals. + + + + + + Select the range of validity of this identier. + Local: Setup#1 at Institute building #2 in Room #3 + Global: Unique identification of with by unique location and unique + globally persistent time stamp. + + + + + + + + + + + An optional free-text description of the experiment. + + Users are strongly advised to parameterize the description of their experiment + by using respective groups and fields and base classes instead of writing prose + into this field. + + The reason is that such a free-text field is difficult to machine-interpret. + The motivation behind keeping this field for now is to learn how far the + current base classes need extension based on user feedback. + + + + + Specify the type of the optical experiment. + + Chose other if none of these methods are suitable. You may specify + fundamental characteristics or properties in the experimental sub-type. + + For Raman spectroscopy or ellipsometry use the respective specializations + of NXoptical_spectroscopy. + + + + + + + + + + + Specify a special property or characteristic of the experiment, which specifies + the generic experiment type. + + + + + + + + + + + If "other" was selected in "experiment_type" and/or in "experiment_sub_type", + specify the experiment here with a free text name, which is knwon in the + respective community of interest. + + + + + Description of one or more coordinate systems that are specific to the + experiment. Examples are beam centered, sample-normal centered, + laboratory-system centered, sample-stage centered, crystal-symmetry centered. + + + + + This refers to the coordinate system along the beam path. The origin and + base is defined at z=0, where the incident beam hits the sample at the surface. + + + + + This is the default NeXus coordinate system (McStas), if the transformation + does not change the coordinate system at all - i.e. it is unity. + Otherwise, by this a respective transformation of the beam + reference frame to the default reference frame could be made. i.e. + exchange of x and z coordinate, rotation of respective coordinates + towards each other. + + + + + + + Link to transformations defining the sample-normal base coordinate system, + which is defined such that the positive z-axis is parallel to the sample normal, + and the x-y-plane lies inside the sample surface. + + + + + Set of transformations, describing the orientation of the sample-normal coordinate system + with respect to the beam coordinate system (.). + + + + + + + Contact information and eventually details of at persons who + performed the measurements. This can be for example the principal + investigator or student. Examples are: name, affiliation, address, telephone + number, email, role as well as identifiers such as orcid or similar. + It is recommended to add multiple users if relevant. + + Due to data privacy concerns, there is no minimum requirement. + If no user with specific name is allowed to be given, it is required to + assign at least an affiliation + + + + + Devices or elements of the optical spectroscopy setup described with its + properties and general information. + + This includes for example: + - The beam device's or instrument's model, company, serial number, construction year, etc. + - Used software or code + - Experiment descriptive parameters as reference frames, resolution, calibration + - Photon beams with their respective properties such as angles and polarization + - Various optical beam path devices, which interact, manipulate or measure optical beams + - Characteristics of the medium surrounding the sample + - "Beam devices" for a beam path description + - Stages(NXmanipulator) + - Sensors and actuators to control or measure sample or beam properties + + + + This can be used to describe properties of a photon beam. + A beam is always defined between two beam_devices, via + "previous_device" and "next_device". + + It is required to define at least one incident beam which is incident + to the sample. You may specify if this beam parameters are acutally measured + or just nominal. + If this beam is the output of a source, chose the same + name appendix as for the NXsource instance (e.g. TYPE=532nm) + + + + Select the reliability of the respective beam characteristics. Either, + the parameters are measured via another device or method or just given + nominally via the properties of a light source properties (532nm, 100mW). + + + + + + + + + + + + + The path to the device which emitted this beam (light source or frequency doubler). + + This parameter is recommended, if the previous optical element is a photon source. + In this way, the properties of the laser or light souce can be described + and associated. + The beam should be named with the same appendix as the source, e.g., + for TYPE=532nmlaser, there should be both a NXsource named + "source_532nmlaser" and a NXbeam named "beam_532nmlaser". + + Example: /entry/instrument/source_532nmlaser + + + + + + + + + + + + + + Angle of the linear polarized light, with respect to a fixed arbitrary + defined 0° position. This can be used if no definition of respective + cooridnate systems for beam and sample normal is done. If coordinate systems + are defined, refer to beam "incident_polarization". + + + + + + + + + + + + + Description of the detector type. + + + + + + + + + + + + + + + + + Type of detector, if "other" was selected in "detector_type". + + + + + Contains the raw data collected by the detector before calibration. + The data which is considered raw might change from experiment to experiment + due to hardware pre-processing of the data. + This field ideally collects the data with the lowest level of processing + possible. + + + + + + + + + + Raw data before calibration. + + + + + + Specify respective hardware which was used for the detector. For + example special electronics required for time-correlated single photon + counting (TCSPC). + + + + + + + + + + + + + + + + + + + + + + + + + + + Specification of type, may also go to name. + + + + + + If available, name/ID/norm of the light source standard. + + + + + Details about the device information. + + + + + The path to a beam emitted by this source. + Should be named with the same appendix, e.g., + for TYPE=532nmlaser, there should as well be + a NXbeam named "beam_532nmlaser" together with this source + instance named "source_532nmlaser" + + Example: /entry/instrument/beam_532nmlaser + + + + + + + + + Defines the reference frame which is used to describe the sample orientation + with respect to the beam directions. + + A beam centered description is the default and uses 4 angles(similar to XRD): + - Omega (angle between sample surface and incident beam) + - 2Theta (angle between the transmitted beam and the detection beam) + - Chi (sample tilt angle, angle between plane#1 and the surface normal, + plane#1 = spanned by incidence beam and detection + and detection. If Chi=0°, then plane#1 is the plane of + incidence in reflection setups) + - Phi (inplane rotation of sample, rotation axis is the samples + surface normal) + + + A sample normal centered description is as well possible: + - angle of incidence (angle between incident beam and sample surface) + - angle of detection (angle between detection beam and sample surface) + - angle of incident and detection beam + - angle of in-plane sample rotation (direction along the sample's surface normal) + + An arbitrary reference frame can be defined by "reference_frames" + and used via "instrument/angle_sample_and_beam_TYPE" + + + + + + + + + Angle between sample incident beam and sample surface. + + + + + Angle between incident and detection beam + + + + + Sample tilt between sample normal, and the plane spanned by detection and + incident beam. + + + + + Inplane rotation of the sample, with rotation axis along sample normal. + + + + + Angle(s) of the incident beam vs. the normal of the bottom reflective + (substrate) surface in the sample. These two directions span the plane + of incidence. + + + + + Detection angle(s) of the beam reflected or scattered off the sample + vs. the normal of the bottom reflective (substrate) surface in the + sample if not equal to the angle(s) of incidence. + These two directions span the plane of detection. + + + + + Angle between the incident and detection beam. + If angle_of_detection + angle_of_incidence = angle_of_incident_and_detection_beam, + then the setup is a reflection setup. + If angle_of_detection + angle_of_incidence != angle_of_incident_and_detection_beam + then the setup may be a light scattering setup. + (i.e. 90° + 90° != 90°, i.e. incident and detection beam in the sample surface, but + the angle source-sample-detector is 90°) + + + + + Angle of the inplane orientation of the sample. This might be an arbitrary, + angle without specific relation to the sample symmetry, + of the angle to a specific sample property (i.e. crystallographic axis or sample + shape such as wafer flat) + + + + + Set of transformations, describing the relative orientation of different + parts of the experiment (beams or sample). You may select one of the specified + angles for incident and detection beam or sample, and then use polar and azimuthal + angles to define the direction via sperical coordinates. + This allows consistent defintion between different coordinate system. + You may refer to self defined coordinate system as well. + + + If "angle_reference_frame = beam centered", then this coordinate system is used: + McStas system (NeXus default) + (https://manual.nexusformat.org/design.html#mcstas-and-nxgeometry-system) + + i.e. the z-coordinate math:`[0,0,1]` is along the incident beam direction and + the x-coordinate math:`[1,0,0]` is in the horizontal plane. Hence, usually math:`[0,1,0]` + is vertically oriented. + + If "angle_reference_frame = sample-normal centered", then this coordinate + system is used + z - math:`[0,0,1]` along sample surface normal + x - math:`[1,0,0]` defined by sample surface projected incident beam. + y - math:`[0,1,0]` in the sample surface, orthogonal to z and x. + For this case, x may be ill defined, if the incident beam is perpendicular + to the sample surface. In this case, use the beam centered description. + + + + + + + + + + + Rotation about the y axis (polar rotation within the sample plane). + + + + + + + + + + + + + + Path to a transformation that places the sample surface + into the origin of the arpes_geometry coordinate system. + + + + + + Rotation about the z axis (azimuthal rotation within the sample plane). + + + + + + + + + + + + + + + + + + + + + Specify if there is a lateral offset on the sample surface, between the focal + points of the incident beam and the detection beam. + + + + + Describes the order of respective beam devices in the optical beam + path. + + Everything object which interacts or modifies optical beam properties, + may be an beam device, e.g. Filter, Window, Beamsplitter, Photon Source, + Detector, etc, + + It is intended, to include this functionality later to "older" beam + components, such as NXsource, NXdetector, NXlens, etc. + Until this is possbible, auxillary beam devices have to be created, + for each "older" beam component instead, to allow a beam path description. + To link the auxillary beam device to the real device properties, the + attribute \@device should be used. + + + + Reference to beam device, which is described by a NeXus concept + (e.g. for NXsource, entry/instrument/source_TYPE). + + + + + Reference to the previous beam device, from which the photon beam came + to reach this beam device. A photon source is related as origin by ".". + This enables a logical order description of the optical setup. + + + + + + This is the optical element used to focus or collect light. This may + be a genereic lens or microcope objectives which are used for the + Raman scattering process. + + + + + + + + + + + + + + + + + polarization filter to prepare light to be measured or to be incident + on the sample. + Genereric polarization filter porperties may be implemented via NXfilter_pol + at a later stage. + + + + Physical principle of the polarization filter used to create a + defined incident or scattered light state. + + + + + + + + + + + + Specific name or type of the polarizer used. + + Free text, for example: Glan-Thompson, Glan-Taylor, Rochon Prism, Wollaston + Polarizer... + + + + + + + Spectral filter used to modify properties of the scattered or incident light. + Genereric spectral filter porperties may be implemented via NXfilter_spec + at a later stage. + + + + Type of laserline filter used to supress the laser, if measurements + close to the laserline are performed. + + + + + + + + + + + + + Type of laserline filter used to supress the laser, if measurements + close to the laserline are performed. + + + + + + + + + + + + Properties of the spectral filter such as wavelength dependent Transmission + or reflectivity. + + + + Which property is used to form the spectral properties of light, + i.e. transmission or reflection properties. + + + + + + + + + + + + + Allows description of beam properties via matrices, which relate ingoing with + outgoing beam properties. + + + + + Sample stage (or manipulator) for positioning of the sample. This should + only contain the spatial orientation of movement. + + + + Specify the type of the sample stage. + + + + + + + + + + + + + + If "other" was chosen in stage_type, enter here a free text description + of the stage type. + + + + + This allows a description of the stages relation or orientation and + position with respect to the sample or beam, if an laboratory or + an stage coordinate system is defined. + + + + + Description of relation of the beam with the sample. How dit the + sample hit the beam, e.g. 'center of sample, long edge parallel + to the plane of incidence'. + Is redundent, if a full orientation description is done via the + stages "transformations" entry. + + + + + + + + + + + + + + + + + + Type of control for the sample temperature. Replace TYPE by "cryostat" or + "heater" to specify it. + + + + + + + + + + + + + + + + Hardware used for actuation, i.e. laser, gas lamp, filament, resistive + + + + + + + + + + General device information of the optical spectroscopy setup, if + suitable (e.g. for a tabletop spectrometer or other non-custom build setups). + For custom build setups, this may be limited to the construction year. + + + + + + + + + + Commercial or otherwise defined given name of the program that was + used to control any parts of the optical spectroscopy setup. + The uppercase TYPE should be replaced by a specification name, i.e. + "software_detector" or "software_stage" to specify the respective + program or software components. + + + + Either version with build number, commit hash, or description of a + (online) repository where the source code of the program and build + instructions can be found so that the program can be configured in + such a way that result files can be created ideally in a + deterministic manner. + + + + + Description of the software by persistent resource, where the program, + code, script etc. can be found. + + + + + + + Pre-calibration of an arbitrary device of the instrumental setup, which + has the name DEVICE. You can specify here how, at which time by which method + the calibration was done. As well the accuracy and a link to the calibration + dataset. + + + + Path to the device, which was calibrated. + Example: entry/instrument/DEVICE + + + + + Provide data about the determined accuracy of the device, this may + may be a single value or a dataset like wavelength error vs. wavelength etc. + + + + + Was a calibration performed? If yes, when was it done? If the + calibration time is provided, it should be specified in + ENTRY/INSTRUMENT/calibration/calibration_time. + + + + + + + + + + + + If calibtration status is 'calibration time provided', specify the + ISO8601 date when calibration was last performed before this + measurement. UTC offset should be specified. + + + + + Generic data which does not fit to the 'NX_FLOAT' fields in NXproces. + This can be for example the instrument response function. + + + + + + The overall resolution of the optical instrument. + + + + + + + + + + Minimum distinguishable wavelength separation of peaks in spectra. + + + + + + Array of pairs of complex refractive indices n + ik of the medium + for every measured spectral point/wavelength/energy. + Only necessary if the measurement was performed not in air, or + something very well known, e.g. high purity water. + + + + + + + + + + Properties of the sample, such as sample type, layer structure, + chemical formula, atom types, its history etc. + Information about the sample stage and sample environment should be + described in ENTRY/INSTRUMENT/sample_stage. + + + + + Locally unique ID of the sample, used in the reasearch institute or group. + + + + + State the form of the sample, examples are: + thin film, single crystal, poly crystal, amorphous, single layer, + multi layer, liquid, gas, pellet, powder. + Generic properties of liquids or gases see NXsample properties. + + + + + Free text description of the sample. + + + + + Chemical formula of the sample. Use the Hill system (explained here: + https://en.wikipedia.org/wiki/Chemical_formula#Hill_system) to write + the chemical formula. In case the sample consists of several layers, + this should be a list of the chemical formulas of the individual + layers, where the first entry is the chemical formula of the top + layer (the one on the front surface, on which the light incident). + The order must be consistent with layer_structure + + + + + List of comma-separated elements from the periodic table that are + contained in the sample. If the sample substance has multiple + components, all elements from each component must be included in + 'atom_types'. + + + + + ISO 8601 time code with local time zone offset to UTC information + when the specimen was prepared. + + Ideally, report the end of the preparation, i.e. the last known timestamp when + the measured specimen surface was actively prepared. + + + + + A set of activities that occurred to the sample prior to/during the experiment. + + + + + Sample temperature (either controlled or just measured). + + + + If no sensor was available for the determination of temperature, selected + a nominal value which represents approximately the situation of sample temperature. + + + + + + + + + + + If temperature_nominal is "other", enter here a nominal/assumed/estimated + sample temperature. + + + + + Temperature sensor measuring the sample temperature. + This should be a link to /entry/instrument/manipulator/temperature_sensor. + + + + + Device to heat the sample. + This should be a link to /entry/instrument/manipulator/sample_heater. + + + + + Device for cooling the sample (Cryostat, Airflow cooler, etc.). + This should be a link to /entry/instrument/manipulator/cryostat. + + + + + + Arbirary sample property which may be varied during the experiment + and controlled by a device. Examples are pressure, voltage, magnetic field etc. + Similar to the temperautre description of the sample. + + + + Medium, in which the sample is placed. + + + + + + + + + + + + + + + + + (Measured) sample thickness. + + The information is recorded to qualify if the light used was likely + able to shine through the sample. + + In this case the value should be set to the actual thickness of + the specimen viewed for an illumination situation where the nominal + surface normal of the specimen is parallel to the optical axis. + + + + + If a thickness if given, please specify how this thickness was estimated or + determined. + + + + + + Qualitative description of the layer structure for the sample, + starting with the top layer (i.e. the one on the front surface, on + which the light incident), e.g. native oxide/bulk substrate, or + Si/native oxide/thermal oxide/polymer/peptide. + + + + + Specify the sample orientation, how is its sample normal oriented + relative in the laboratory reference frame, incident beam reference + frame. + + + + + If the sample is grown or fixed on a substrate, specify this here by + a free text description. + + + + + + Here generic types of data may be saved.. This may refer to data derived + from single or multiple raw measurements (i.e. several intensities are + evaluated for different parameters: ellipsometry -> psi and delta) - + i.e. non-raw data. + As well plotable data may be stored/linked here, which provides the most suitable + representation of the data (for the respective community). + + You may provide multiple instances of NXdata + + + + Spectrum, i.e. x-axis of the data (e.g. wavelength, energy etc.) + + + + + Spectrum, i.e. y-axis of the data (e.g. counts, intensity) + + + + + + + + Location to save the calibrated wavelength data. + + + + + + + + Parameters that are derived from the measured data. + + + + Light loss due to depolarization as a value in [0-1]. + + + + + + + + + + Jones quality factor. + + + + + + + + + + Reflectivity. + + + + + + + + + + Transmittance. + + + + + + + + + + + Commercial or otherwise defined given name of the program that was + used to generate or calculate the derived parameters. + If home written, one can provide the actual steps in the NOTE + subfield here. + + + + + Either version with build number, commit hash, or description of a + (online) repository where the source code of the program and build + instructions can be found so that the program can be configured in + such a way that result files can be created ideally in a + deterministic manner. + + + + + + diff --git a/contributed_definitions/NXpiezo_config_spm.nxdl.xml b/contributed_definitions/NXpiezo_config_spm.nxdl.xml new file mode 100644 index 000000000..84e730002 --- /dev/null +++ b/contributed_definitions/NXpiezo_config_spm.nxdl.xml @@ -0,0 +1,117 @@ + + + + + + + A base class describing piezo settings for scanning probe microscopy. + + The piezoelectric material of SPM actuators gets deformed due to the applied electric field. + Description below shows calibration coefficients and other configuration parameters of the piezo actuators. + + + + The material description and properties of the piezoelectric scanner materials. + + + + The N (substring) denotes X or Y. There are 2 parameters in X and Y directions. It can be set + approximately to the length of the piezo tube along X and Y axis. + + + + + + + The name of the calibration type, sometimes it is called + `active calibration`. + + + + + + + + + A specific name of the calibration (e.g. active type with name 'LHe'). + + + + + The date of the calibration. + + + + + The AXIS (substring) denotes X, Y or Z. There are three directions X, Y, and Z for calibration, + along with three available parameters each: Calibration (m/V), Range (m), and HV gain. Only + two of these parameters are required to define the calibration. Consequently, when any + value is changed, one of the other values will be automatically updated. + + + + + The N (substring) denotes X or Y or Z. In some systems, there is an HV gain readout feature. For + these systems, the HV gain should be automatically adjusted whenever the gain is + changed at the high voltage amplifier. + + + + + The N (substring) denotes X or Y or Z. There are 3 parameters in X, Y and Z directions. The range + is the maximum distance the piezo can move. + + + + + The calibration coefficient is the ratio of the actual distance moved by the piezo due to + the voltage applied to the piezo. It is also called first-order correction. + + + + + The N (substring) denotes X and Y directions, and for both directions tilt needs to be adjusted according + to the actual surface. + + + + + The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo + characteristics to compensate the error for that axis. + The following equation shows the + interpretation of the 2nd order correction parameters, For the X-piezo: "Ux = 1/cx · X + cxx · X2" + with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" + where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for + such the second-order correction is (V/m^2). + + + + + The N (substring) denotes X, Y and Z directions. Define the + drift speed [m/s] for all three axes. When the compensation is on, the piezo will start to + move at that speed. + + + + diff --git a/contributed_definitions/NXpiezoelectric_material.nxdl.xml b/contributed_definitions/NXpiezoelectric_material.nxdl.xml new file mode 100644 index 000000000..4bf1be011 --- /dev/null +++ b/contributed_definitions/NXpiezoelectric_material.nxdl.xml @@ -0,0 +1,113 @@ + + + + + + Description and properties of the piezoelectric actuator materials. + The piezoelectric actuator is usually composed of polycrystalline solids and + attached at the head of the tip or cantilever. The material deforms when the external electric field is applied. + + + + + The name of the material of the piezo scanner such as Lead Zirconate Titanates + (PZTs). + + + + + The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. + + + + + The type of the material of the piezo scanner (e.g. piezoelectric ceramics, + polymer-film piezoelectrics). + + + + + + The density of the piezo material. + + + + + The relative permittivity (dielectric constant) of the piezo material. + + + + + The piezoelectric charge coefficients of the material. The coefficients describe the electric + polarization generated by the applied stress in material. Different coefficients correspond to different + relative directions of the polarization and the stress. + + + + + The constants define the electric field produced by the external mechanical strain. Different coefficients + correspond to different relative directions of the electric field and the strain. + + + + + The electromechanical constant measures the efficiency of the conversion of mechanical energy + into electrical energy. + + + + + The pyroelectric constant defines the change of the polarization vector of the piezoelectric material + per unit change in temperature. + + + + + The acoustic impedance of the piezo material. + + + + + The Young's modulus of the piezo material. + + + + + The surface resistivity of the piezo material. + + + + + The temperature range of the piezo material. + + + + + The range of temperature where a piezoelectric hard material transforms into the + viscous state. + + + diff --git a/contributed_definitions/NXpositioner_spm.nxdl.xml b/contributed_definitions/NXpositioner_spm.nxdl.xml new file mode 100644 index 000000000..e0ed367c6 --- /dev/null +++ b/contributed_definitions/NXpositioner_spm.nxdl.xml @@ -0,0 +1,60 @@ + + + + + + Extending positioner from NXpositioner to maintain a measurement signal through + a feedback loop. + + + + This controller's task is to continuously adjust the Z position of the STM/STS tip in order + to keep the selected control signal as close as possible to the Set Point. Different control + signals lead to different controller's behavior. + + The second PID feedback loop intends to position the tip in the Z direction. + + p_gain (proportional gain) from z_controller is the same as K_p_value from PID controller. + i_gain (integral gain) from z_controller is the same as K_i_value from PID controller. + setpoint from z_controller is the same as setpoint from PID controller. + + + + + Offset added to the initial averaged position tip on Z-axis before starting to + scan. + + + + + Indicate the tip position Z between tip and sample. The tip position can also be varied when + the controller is not running. This is the final position after the tip reaches an equilibrium state. + + + + + Controller name. This name which will be displayed at places where you can select a + controller. + + + diff --git a/contributed_definitions/NXrcs.nxdl.xml b/contributed_definitions/NXrcs.nxdl.xml new file mode 100644 index 000000000..bbc577519 --- /dev/null +++ b/contributed_definitions/NXrcs.nxdl.xml @@ -0,0 +1,67 @@ + + + + + + A base class for the Real Time Control System (RCS). + + A real time control system (RCS) is a reference architecture model + used to design highly task intensive software systems and computing + control systems. + + + + The name of the real-time control system. + + + + + The fabrication information. + + + + + The description of the real-time control system. + + + + + The type of the real-time control system. + + + + + The manufacturer of the real-time control system. + + + + + The serial number of the real-time control system. + + + + + The frequency of the real-time control system. + + + diff --git a/contributed_definitions/NXscan_control.nxdl.xml b/contributed_definitions/NXscan_control.nxdl.xml new file mode 100644 index 000000000..e08c09fe2 --- /dev/null +++ b/contributed_definitions/NXscan_control.nxdl.xml @@ -0,0 +1,611 @@ + + + + + + + A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). + + scan_types: + Trajectory: A list of N-dimensional sequential vectors describes the trajectory line for a full scan. + Mesh: For each dimension a range and a direction are chosen. When a scan along a dimension is done, a single step in the next dimension is taken, and then the scan in the previous dimension is repeated. As such we can speak about the fastest and the slowest scan axes. + Snake: Similar to a mesh scan but with the scanning direction reversed after each line. + Spiral: A scan taken along a spiral trajectory. + Tilt: At each step, a proportional movement is done in all dimensions. + Linear: A scan where the scanning will be performed along a single independent axis. + + Scan_control_types: + Stepping: At each step, a movement to the next point is performed; correction (for example backlash) or active regulation (feedback loop) may or may not be applied. After the movement is done, the measurement is performed without the movement. + Continuous: The scanning of each line in an N-dimensional phase space is done without stopping; measurements are done simultaneously with the movement. + Oscillating: Scanning over a scan point continuously and then moving to start scanning at the next position. + + + + The start time of the scan. + + + + + The end time of the scan. + + + + + A list of scan axes which are controlled independently of each other. + (e.g. X, Y, Z, or other physical dimensions) + + The list is in the order of axes of the scan from the fastest to the slowest. + + + + + Define the scan resolution along each dimension as the number of steps per unit of the dimension parameters. + + Rename the field according to the name of the independent dimension (e.g. scan_resolution_x, scan_resolution_voltage). + + + + + Define the accuracy of the scan probe. + + + + + This group specifies how the trajectory of the scan is defined. + + + + + + + + + + + This group specifies whether there is any movement when a data point is + measured. + + + + + + + + + + The scan region is the area of phase space or sub-phase space where the scan is + performed. The region could be N-dimensional and is defined by the minimum and + maximum values of the scan axes. + + + + The offset of the scan region from the origin along the specific scan axis. + + 'N' denotes the name of the specific scan axis. + + + + + The range of the scan is the length of the scan region along the dimension 'N'. + + + + + The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough + to define the scan region. This field defines how the spatial space is oriented with respect to + the frame of reference. + + Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). + + + + + The start of the scan is the starting point of the scan region (phase space or sub-phase space) + for each independent scan axis. + + For N-dimensional, it is a list of N numbers. + + + + + The end of the scan is the ending point of the scan region (phase space or sub-phase space) + for each independent scan axis. + + Note: The scan_offset and scan_range are equivalent to the scan_start and scan_end. + + For N-dimensional, it is a list of N numbers. + + + + + + For each dimension a range and a direction are chosen. When a scan along a dimension is done, + a single step in the next dimension is taken, and then the scan in the previous dimension is + repeated. As such we can speak about the fastest and the slowest scan axes. + + + + Define the scan speed in the forward direction along the axis. + + If the scan goes in the negative direction, the speed should be negative. + + Rename the field, according to the name of the dimension (e.g. scan_speed_x, scan_speed_voltage). + + + + + Define the scan speed in the forward directions. + Rename the field, according to the name of the dimension. + + + + + Define the scan speed in the backward directions. + Rename the field, according to the name of the dimension. + + + + + Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is + to represent the name of the dimensions. + + Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). + + + + + Define the total number of points in the given axis scan to be performed. + + Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). + + + + + The number of steps the probe jumps over the scan steps or points. + + Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). + + + + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + + + + + + The length of each step in the scan on each dimension. + + Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). + + + + + If the scan probe moves continuously over the scan points or steps, use True. The default value is True. + Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves + in steps. + + Rename the field, according to the name of the dimension (e.g. continuous_voltage). + + + + + If the scan probe oscillates over the scan point, use True. + The default value is False. + + + + + The number of oscillations on each scanning point per second. + + + + + + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + + + + + + + + To define the spiral or circular scan, use this group. + + + + Define the scan speed in forward (clockwise) directions. + + If the scan goes in the negative (anti-clockwise) direction, the speed should be negative. + + Rename the field, according to the circle index. The circle near the center starts with 0. + In case, the speed is the same for all the circles, replace 'N' by 'all'. + + + + Define the direction of the spiral scan. (e.g. clockwise, anticlockwise) + + + + + + + + + + Define the scan speed in the forward (clockwise) directions. + Rename the field, according to the circle index. The circle near the center starts with 0. + + In case, the speed is the same for all the circles, replace 'N' by 'all'. + + + + + Define the scan speed in the backward (anti-clockwise) directions. + Rename the field, according to the circle index. The circle near the center starts with 0. + + In case, the speed is the same for all the circles, replace 'N' by 'all'. + + + + + Define the radius of the spiral circle of scanning. + + Rename the field, according to the circle order, the nearest circle to the center is 0. + + + + + Define the total number of points in a given circle scan to be performed. + + Rename the field, according to the circle order, the nearest circle to the center + is 0 (e.g. scan_points_2). + + + + + If the scan probe steps over a number of scan points. + + Rename the field, according to the circle index. The circle near the center starts with 0. + In case, the stepping is the same for all the circles, replace 'N' by 'all'. + + + + If the scan probe jumps over a number of scan steps or points (more than one), use True. + The default value is False. + + + + + + Define the number of points that the scan probe steps over. + + Rename the field, according to the circle index. The circle near the center or lowest value of a + parameter starts with 0. + In case, the step size is the same for all the circles, replace 'N' by 'all'. + + + + + If the scan probe moves continuously over the scan points, use True. The default value is True. + A scan process can run continuously in the spatial dimension but can be discretized in time or + other physical dimensions (e.g. voltage). + + Rename this field according to the dimensions, considering continuous scan in a two-dimensional space + rename the field as continuous_x_y. + + + + + If the scan probe oscillates over the scan point, use True. The default value is + False. + + + + + Number of oscillation on each scanning point per second. + + + + + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + + + + + + + To define the snake scan, use this group. + + + + Define the scan speed for the type of snake scan. For the same speed along the + positive and negative directions, use a single number + + Rename the field, according to the name of the fast and slow axis e.g. scan_speed_x. + + + + + The field defines the scan speed in the positive direction on the fast axis. + + Rename the field, according to the name of the fast axis. + + + + + The field defines the scan speed in the negative direction on the fast axis. + + Rename the field, according to the name of the fast axis. + + + + + Define the total number of points in the given axis scan to be performed. + + Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). + + + + + The number of steps the probe jumps over the scan steps or points. + + Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). + + + + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + + Rename the field, according to the name of the dimension. + + + + + + The length of each step in the scan on each dimension. + + Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). + + + + + Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is + to represent the name of the dimensions. + + Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). + + + + + If the scan probe moves continuously over the scan points or steps, use True. The default value is True. + Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves + in a stepping manner. + + Rename the field, according to the name of the dimension (e.g. continuous_voltage). + + + + + If the scan probe oscillates over the scan point, use True. + The default value is False. + + + + + The number of oscillations on each scanning point per second. + + + + + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + + + + + + To define the trajectory scan, use this group. + + + + Define the scan speed through the trajectory points. + + + + + The field defines the scan speed in the forward directions through the + trajectory points. + + + + + The field defines the scan speed in the backward directions (backtracking) + through the trajectory points. + + + + + Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is + to represent the name of the dimensions. + + Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). + + + + + The number of trajectory points in the entire scan. + + + + + The trajectory points are the N-dimensional vectors describing all the scan points sequentially. + + The second rank dataset should contain total number of trajectory points (nTraj) and + a full coordinate (nD) of each trajectory point. + + + + + + + + + Define the total number of scan points between two trajectory points. + + Rename the field, according to the index of the second trajectory points. + For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. + + + + + The number of steps the probe jumps over the scan steps or points along the trajectory line from between two trajectory points. + + Rename the field, according to the index of the second trajectory points. + For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. + + + + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + + + + + + The length of each step along the entire trajectory line. + + + + + If the scan probe moves continuously over the scan points or steps between two + trajectory points, use True. The default value is True. + + + + + If the scan probe oscillates over the scan point, use True. + The default value is False. + + + + + The number of oscillations on each scanning point per second. + + + + + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + + + + + + Define the scan mode that is performed for a single independent data axis. + + + + Define the scan speed of the scan disregarding the forward or backward + direction. + + + + + Define the scan speed in the forward directions. + + + + + Define the scan speed in the backward directions. + + + + + Name of the channel that records the scan data for the given dimension. + + + + + Define the total number of points in the given axis scan to be performed. + + Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). + + + + + The number of steps the probe jumps over the scan steps or points. + + Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). + + + + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + + + + + + The length of each step in the scan on each dimension. + + Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). + + + + + If the scan probe moves continuously over the scan points or steps, use True. The default value is True. + Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves + in a stepping manner. + + Rename the field, according to the name of the dimension (e.g. continuous_voltage). + + + + + If the scan probe oscillates over the scan point, use True. + The default value is False. + + + + + The number of oscillations on each scanning point per second. + + + + + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + + + + diff --git a/contributed_definitions/NXsensor_scan.nxdl.xml b/contributed_definitions/NXsensor_scan.nxdl.xml index bea9efa21..e884a399f 100644 --- a/contributed_definitions/NXsensor_scan.nxdl.xml +++ b/contributed_definitions/NXsensor_scan.nxdl.xml @@ -45,10 +45,22 @@ - - - - + + + The unique identifier for the entry. The identifier is mainly lab-defined and + can be a combination of the sample name, date and time, experiment condition + (such as temperature) or instrument-generated unique identifier. + + + + + The unique identifier for the collection. The identifier is used to group a + number of the experiments run upon the same setup and/or same sample. + + + + + Define the program that was used to generate the results file(s) @@ -114,6 +126,12 @@ + + + Any additional information or notes (e.g. purpose of the experiment) that might + be useful to understand the experiment. + + @@ -185,8 +203,9 @@ - + + diff --git a/contributed_definitions/NXspm.nxdl.xml b/contributed_definitions/NXspm.nxdl.xml new file mode 100644 index 000000000..e227c1011 --- /dev/null +++ b/contributed_definitions/NXspm.nxdl.xml @@ -0,0 +1,475 @@ + + + + + + Scanning Probe Microscopy (SPM) is a branch of microscopy that utilizes a physical probe to scan the surface of + sample and image it at the atomic level. + + The application class NXspm is designed as a skeleton and contains common technical concepts + for specific SPM sub-techniques such as STM, STS, AFM etc. + + + + + Name of the definition that is used for the application. + + + + + + + + The technique of the experiment like STM, STS, AFM, etc. + + + + + + + + + + The mode of the scan. The possible options depend on the type of experiment. + For example, in STM, the scan mode could be constant height or constant current, + in AFM, the scan mode could be contact mode, tapping mode or non-contact mode. + + + + + The type of the scan. It mainly describes how scan probe moves in the scan region, e.g. + forward, backward, or both (if scan is repeated). + + + + + The identifiers for the experiment which should be unique at least in lab. + + + + + The description of the experiment like comments, ontes from from the experiment. + + + + + The instrument information. + + + + The hardware description of the core instrument setup of the experiment. + Usually, the entire instrument is supplied by a single manufacturer. + To describe the hardware from any sub-components, use the hardware group of that + sub-component (child group of the NXinstrument group) group. + + + + Company name of the manufacturer. + + + + + Version or model of the hardware setup provided by the manufacturer. + + + + If different versions are possible, the value in this field should be made + specific enough to resolve the version. + + + + + + + The software description of the core instrument setup of the experiment. + Usually, the entire instrument is supplied by a single name/manufacturer/model/etc. + To describe the software from any sub-components, use the software group of that component. + + + + Company name of the manufacturer. + + + + + Version or model of the component named by the manufacturer. + + + + If different versions are possible, the value in this field should be made + specific enough to resolve the version. + + + + + + + The real-time controller information. + + + + The frequency of the real-time controller system which indicated the number of close-loop process + (gathering data, process data and update system) control cycles per second. + + + + + + The lock-in amplifier information. + + + + + Information of the scan environment. + + + + Temperature of STM head. Note: At least one field from tip_temp, + cryo_bottom_temp and cryo_shield_temp must be provided. + + + + + Temperature of the cold tail of the cryostat. Note: At least one field from + tip_temp, cryo_bottom_temp and cryo_shield_temp must be provided. + + + + + Temperature of liquid nitrogen shield. Note: At + least one field from tip_temp, cryo_bottom_temp and cryo_shield_temp. + + + + + The name of the scan, mainly lab defined, that helps to differentiate among different + scans performed in the lab. + + + + + This is a link to the current_sensor under the instrument group: + entry/experiment_instrument/current_sensor. + + + + + This is a link to the voltage_sensor under the instrument group: + entry/experiment_instrument/voltage_sensor. + + + + + This is a link to the piezo_sensor under the instrument group: + entry/experiment_instrument/piezo_sensor. + + + + + The scan control information like scan region or phase space, type of scan (e.g. + mesh, spiral, etc.), and scan speed, etc. This group mainly stores the raw scan + data. For processed data or final experimental data would go to NXdata group. + + + + The name of the scan, mainly lab defined, that helps to differentiate among different + scans performed in lab. This field is intended for several types of scan control + run under the same environment. + + + + + + + Information for current sensor. + + + + An amplifier information for the input signal (e.g. from tip). + + + + + + The sensor information for the voltage device. + + + + + + The piezo sensor refers to the height (or Z) piezo sensor if nothing is + mentioned along the X and Y directions. + + + + The x position of the piezo. In STS experiment, the piezo stays fixed at + x,y and z and the the tunneling current is measured with respect to the + bias voltage (sweep voltage). + + + + + The y position of the piezo. + + + + + The z position of the piezo. + + + + + The piezo configuration information like piezoelectric calibration and material + properties. + + + + Calibration of the piezo device. + + + + + + The positioner information like the position of the tip, the position of the + sample, PID loop feedback etc. + + + + The PID controller information for the z-axis. + + + + To indicate the relative tip position z between tip and sample. The tip position + can also be varied when the z_controller is not running. + + + + + Status if controller is active. + + + + + + + The material description and properties of the piezoelectric scanner materials. + + + + + + A group handling the temperature such as cryo, shield and tip. For different + type of temperature sensors repeat this group. + + + + The temperature of the sample. + + + + + The name of the channel to measure the temperature. + + + + + Calibration of the temperature measurement. + + + + The coefficients of the calibration. + + + + + + Data (e.g, record from SPM head temperature) from temperature sensor. + + + + + + To explain bias (sweep measurement) voltage applied to the sample. + + + + Setup and scan data for continuous measurement of bias-voltage on the subject of experiment + vs tunneling current from probe. + + + + The positioner information like the position of the tip, PID loop feedback etc. + + + + The PID controller information for the z-axis. + + + + The average time taken by the z-controller to stabilize the tip. + + + + + The time taken by the z-controller to measure physical properties. + + + + + The status of the controller to be held on the previous position, before going to the + next scan point or line to measure the physical properties. + + + + + The status of the controller to record the final z position after the scan. + + + + + + + The bais voltage sweep is a common technique used on the substance or sample or environment + to study the change in the behavior of the sample or substance or environment due to change + in applied bias voltage. + + + + The time is taken to settle the bias voltage at the desired value. On each sweep usually, the system + takes time to settle the bias voltage at the next value. + + + + + The scan region (phase space or sub-phase space) is the region where the scan is + performed. + + + + The offset of the bias voltage for bias sweep. + + + + + The range of the scan is the length of the bias voltage over which the sweep + scan will be performed. + + + + + The start of the bias scan voltage. + + + + + The end of the bias scan voltage. + + + + + + The linear sweep is a type of scan where the bias voltage is swept + linearly from the starting voltage to the ending voltage. + + + + The number of voltage points the sweep scan to be performed. + + + + + The step size of the sweep. + The step size is the difference between the two consecutive bias voltage during the sweep. + + + + + The reset_bias is used to reset the bias voltage to the starting value after a + sweep is completed. + + + + + + + + + The DC bias voltage that is applied to the sample. + + + + The bias voltage (DC) applied to the sample. + + + + + Offset value of the bias voltage. + + + + + Calibration of the bias voltage measurement (V/V). + + + + The time or period is taken by the calibration to setup to acquire the data for + the calibration. + + + + + The coefficients of the calibration. + + + + + + + + The sample information. + + + + Information of environment around the sample. + + + + Link to the sample_bias_voltage sensor under the instrument. + + + + + + + The group of indicators (links to the existing fields in different groups) that measure + the reproducibility of the experiment. + + + + + The group of indicators (links to the existing fields in different groups) that + are used to measure the resolution of the experiment results. + + + + diff --git a/contributed_definitions/NXstm.nxdl.xml b/contributed_definitions/NXstm.nxdl.xml new file mode 100644 index 000000000..76d361980 --- /dev/null +++ b/contributed_definitions/NXstm.nxdl.xml @@ -0,0 +1,445 @@ + + + + + + + An application definition to describe Scanning Tunneling Microscopy (STM). + + + + + Name of the definition that is used for the application. + + + + + + + + The mode of the scan that is performed. Two commonly used ones are constant + height mode and constant current mode. + + + + + + + + + The group explains the instrumentation of the STM experiment such + as current sensor, lock-in amplifier etc. + + + + The lock-in amplifier information. The device is being used to extract + the very weak signal buried in noisy signals. + + + + The type of the signal (voltage or current) subject fo modulation. + + + + + The frequency of the sine modulation that is used to modulate the signal in + lock-in. + + + + + + The environment information for stm or sts experiment. + + + + The scan control information like scan region or phase space, type of scan + (e.g. mesh, spiral, etc.), and scan speed, etc. + + + + The type of scan like mesh, spiral, etc. For STS experiment, the scan type is + usually a single-point scan (trajectory scan). + + + + + + + + + + + The region of the scan area. + + + + The range of the scan area. + + + + + The offset of the scan area in 2D (X and Y) space. + + + + + The N (substring) denotes the angle of the scan area with different physical + axes. + + + + + + The scan information for mesh scan type for STM experiment. + + + + The speed of the scanner or the tip during the scan. + + + + + The time taken by the scanner to scan the entire area. + + + + + The N (substring) denotes the forward speed of the scanner. + + + + + The N (substring) denotes the backward speed of the scanner. + + + + + The data that comes from scanning the area. + + + + + + + This group stands for the same concept as + /ENTRY[entry]/experiment_instrument/tip_temperature + + + + + This group stands for the same concept as + /ENTRY[entry]/experiment_instrument/cryo_temperature + + + + + This group stands for the same concept as + /ENTRY[entry]/experiment_instrument/cryo_shield_temperature + + + + + + The temperature of the tip one of the tip. + + + + + The temperature of the cryostat. + + + + + The temperature of the cryo shield. + + + + + The sensor information. + + + + The tunneling current between tip and sample after + applying bias voltage. + + + + + Offset value of the current measurement. + + + + + Calibration of the current measurement. + + + + The time or period is taken by the calibration to setup to acquire the data for + the calibration. + + + + + The coefficients of the calibration. + + + + + + An amplifier information for the input signal (e.g. from tip). + + + + Proportional relationship between the probe output voltage and the actual + tunneling current when measuring the tunneling current. + + + + + + + To explain bias (sweep measurement) voltage applied to the sample. + + + + Setup and scan data for continuous measurement of bias-voltage on the subject of experiment + vs tunneling current from probe. + Data from from this experiment can also be used to calculate the dI/dV spectra. + + + + + + The sensor information for the piezo device. + + + + The x position of the piezo. In STS experiment or at the starting, + the piezo stays fixed at x,y and z and the the tunneling current + is measured with respect to the bias voltage (sweep voltage). + + + + + The y position of the piezo. + + + + + The z position of the piezo. + + + + + The piezo configuration information like piezoelectric device calibration and + material properties. + + + + Calibration of the piezo device. + + + + The N (substring) denotes X and Y directions. The 2nd order piezo + compensate the error for that axis. The following equation shows the + interpretation of the 2nd order correction parameters, + For the X-piezo: "Ux = 1/cx · X + cxx · X2" + with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" + where cx is the calibration of the piezo X and cxx is the 2nd order + correction. The unit for such the second-order correction is (V/m^2). + + + + + The name of the calibration type, sometimes it is called + e.g active calibration, passive calibration. + + + + + The calibration coefficient is the ratio of the actual distance moved by the piezo to + the voltage applied to the piezo. It is also called first-order correction. + + + + + Set up the settings to enable or disable the drift compensation. + + + + + Whether the drift has been corrected in case there is a deviation in the + drift. + + + + + The N (substring) denotes X and Y directions, and for both directions + tilt needs to be adjusted according to the actual surface. + + + + + The N (substring) denotes X or Y or Z. In some systems, + there is an HV gain readout feature. For these systems, + the HV gain should be automatically adjusted whenever + the gain is changed at the high voltage amplifier. + + + + + + + The positioner information like the position of the tip, + PID loop feedback etc. + + + + The PID controller information for the z-axis. + + + + To indicate the relative tip position z between tip and sample. The tip position + can also be varied when the z_controller is not running. + + + + + The set point for the z-controller to be fixed and the target value could be + height or current. + + + + + The name of the controller or channels. + + + + + The status of the controller to say was PID has been used or not. + + + + + If the tip is lifted from the stable point. + + + + + The switch-off delay of the controller from its stable point. + + + + + + + + + The group's concepts hold the link to the related concepts that define the + reproducibility of the STM experiment. + + + + The tunneling current between tip and sample after application of bias voltage. + link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current + + + + + The tunneling current between tip and sample after application of bias voltage. + link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current + + + + + Proportional relationship between the probe output voltage and the actual + tunneling current when measuring the tunneling current. + link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/amplifier/current_gain + + + + + Link to target: + /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] + + + + + This is the signal on which the modulation voltage or current will be added. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type + + + + + The frequency of the sine modulation that is used to modulate the signal in lock-in. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency + + + + + + The group's concepts hold the link to the related concepts that define the + resolution of the STM experiment. + + + + Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp + + + + + Link to target: + /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp + + + + + Link to target: + /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature + + + + + Link to target: + /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] + + + + + This is the signal on which the modulation voltage or current will be added. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type + modulation_signal_type + + + + + The frequency of the sine modulation that is used to modulate the signal in lock-in. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency + + + + + diff --git a/contributed_definitions/NXsts.nxdl.xml b/contributed_definitions/NXsts.nxdl.xml index f13d5a90c..9e7d97f97 100644 --- a/contributed_definitions/NXsts.nxdl.xml +++ b/contributed_definitions/NXsts.nxdl.xml @@ -22,974 +22,23 @@ # For further information, see http://www.nexusformat.org --> - - - - +https://thesis.library.caltech.edu/1943/4/03chapter3.pdf +TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and NXafm--> + - Application definition for temperature-dependent IV curve measurements - #2023.19.7 This Nexus file is currently only for STS data, it will be updated to handle the - STM image mode in the future with a focus on bias spectroscopy in Scanning Tunneling Microscopy. + An application definition to describe Scanning Tunneling Spectroscopy (STS). - In this application definition, times should be specified always together with a UTC offset. - - This is the application definition describing temperature (T) dependent current voltage (IV) curve - measurements. For this, a temperature is set. After reaching the temperature, a voltage sweep - is performed. For each voltage, a current is measured. - Then, the next desired temperature is set and an IV measurement is performed. - The data can be visualized in a tensor with: - I (NXsensor_C, NXsoftware_Read_offset, NXcircuit) - parameters: - V has (NXsource+offset, NXsoftware_Scan_offset, NXsensor_V, NXcircuit) - T has (NXsource, NXsoftware_Scan_offset, NXsensor_T) - x has (NXsoftware_Scan_offset) - y has (NXsoftware_Scan_offset) - z has (NXsoftware_Scan_offset) + The NXsts is duplication of NXspm and is considered as a proxy application definition + for Scanning Tunneling Spectroscopy (STS) technique. - - - - - - Name of the experiment where the application is applicable. + Name of the definition that is used for the application. - - - - - - - The equipments and techniques as well as the parameter settings and reference signals - are used during the experiments used in Scanning Tunneling Microscopy (STM). - - - - - - + - - - The name of the output file, with the number of scans at the end. (e.g. - 221122_Au_5K00014) - - - - - The name of the series output file, which represents only the public part of the - output file. (e.g. 221122_Au_5K) - - - - - Path to storage of output files. - (e.g. Path C:\Users\SPM-PEEM\Desktop\DATA_Nanonis\20220711_CreaTec_Service_Benchmarks_LHe\Nanonis-Session-PMD100-HVHU_CreaTec_Service_PalmaLabBerlin220711) - - - - - Descriptive comments for this experiment, added by the experimenter, coming from the - output file. (e.g. Comment01 SYNC & Filter LP 8order WITHDRAW 600 steps, locked Au(111), - 50pA, 100 mV set point, 1mV DCA, 973Hz,138 1st H, -84 2nd H) - - - - - - Hardware type used in SPM experiment, includes hardware manufacturers and type. - (e.g. Nanonis BP5e) - - - - - - Type of software used in SPM experiments, such as software version serial number, UI and - RT probe release method. (e.g. SW Version Generic 5e -- RT Release 10771) - - - - - - The Amplifier description that improves or helps to determine tunnel current (current - between tip and bias). - - - - - - - Status of Lock-in device whether while performing the experiment - - - - - - This is the signal on which the modulation (sine) will be added. - - - - - - - The signal is modulated by adding the frequency of the sine modulation. The - modulation frequency spans can be from 10 mHz to 40 kHz, corresponding to the output filter - cut-off range. When dealing with harmonics, it's essential to ensure that the - harmonic frequencies remain below ~100 kHz, which aligns with the input filter cut-off. - Be mindful that hardware filters might impact the amplitude as the signal approaches - their cut-off frequencies." (e.g. 973E+0) - - - - - - The amplitude (in physical units of modulated signal) of the sine modulation. - - - - - - The input signal (STS signal) will be demodulated, in order to determine the amplitude - and phase at the frequency set in the Frequency field or harmonics, such as current, - bias, et.al. - - - - - - N denotes 1 or 2. The order of the harmonic oscillation to be detected in the demodulated - signal should be considered relative to the modulation frequency. When dealing with - higher harmonics, it's essential to ensure that their frequencies do not surpass - the analogue signal bandwidth (e.g. harmonic_order_1). - - - - - - Reference phase for the sine on the demodulated signal with respect to the - modulation signal. The determined phase is displayed with respect to the - reference phase. - - - - - - - - Bias voltage applied to the sample. - - - - Applied a voltage between tip and sample. - - - - - - - - - Temperature of STM head. Note: At least one field from stm_head_temperature, - cryo_bottom_temp and cryo_sheild_temp must be provided. - - - - - Temperature of liquid helium cryostat. Note: At least one field from - stm_head_temperature, cryo_bottom_temp and cryo_sheild_temp must be provided. - - - - - Temperature of liquid nitrogen shield. Temperature 3 (K) (e.g 78.00000E+0). Note: At - least one field from stm_head_temperature, cryo_bottom_temp and cryo_sheild_temp - must be provided. - - - - - - - Configuration for piezoelectric scanner used to move tip along X and Y direction. The - material of the Piezoelectric scanner composed of polycrystalline solids and sensitive to - applied voltage. - - - - The name of calibration type. (e.g. LHe) - - - - - N denotes X or Y or Z. There are three parameters in the X, Y, and Z directions, - along with three available controls: Calibration (m/V), Range (m), and HV gain. Only - two of these parameters are required to define the calibration. Consequently, when any - value is changed, one of the other values will be automatically updated. (e.g. calib_X = 3.8E-9) - - - - - N denotes X or Y or Z. In some systems, there is an HV gain readout feature. For - these systems, the HV gain should be automatically adjusted whenever the gain is - changed at the high voltage amplifier. (e.g. 14.5) - - - - - - N denotes X or Y. There are 2 parameters in X and Y directions, and tilt needs to be - adjusted according to the actual surface. (in degrees, first order correction). - - - - - - N denotes X or Y. There are 2 parameters in X and Y directions. (can be set - approximately to the length of the piezotube). - - - - - N denotes X or Y. There are 2 parameters in X and Y directions. If you know them, - you can enter the 2nd order piezo characteristics to compensate for it. The - following equation shows the interpretation of the 2nd order correction parameter: - For the X-piezo: "Ux = 1/cx · X + cxx · X2" with units: - [V] = [V/m] · [m] + [V/m2] · [m2] where cx is the calibration of the piezo X and cxx - is the 2nd order correction. (V/m^2). (e.g. 0E+0) - - - - - N denotes X, Y or Z. There are 3 parameters in X, Y and Z directions. Define the - drift speed for all three axes. When the compensation is on, the piezos will start to - move at that speed. (e.g. 0E+0) - - - - - Use the button to enable or disable the drift compensation. (e.g. FALSE) - - - - - - An environmental setup to measure the tunneling current due to different tip- - sample biases. - - - - - This is set-point of tip current (in the constant current mode should be equal to set-point, - in the constant height mode means the real tunnelling current between tip and sample). - - - - - Value of calibration that comes as A/V. The value for this concept can be read - as current per unit voltage. - - - - - - - - - - Clarify the frame laboratory frame. - - - - The scanning area in x position in the frame. (e.g. -890.53E-12) - - - - - The scanning area in y position in the frame. (e.g. 29.6968E-9) - - - - - The scanning area in z position in the frame. (e.g. 130.5E-9) - - - - - - Indicate the relative tip position z between tip and sample. The tip position can also - be varied when the z_controller is not running. (e.g. 130.5E-9) - - - - - - - - - - Time during which the spectroscopy data are acquired and averaged. (e.g. 150E-6) - - - - - Number of sweeps to measure and average. (e.g. 100) - - - - - The start bias values of the sweep. (e.g. -300E-3) - - - - - The end bias values of the sweep. (e.g. 300E-3) - - - - - The sweep number of points is defined as the maximum spectrum resolution, which - is equal to the bias sweep window divided by the number of pixels. (e.g. 4096) - - - - - The Z position is recorded and averaged for a certain duration both before and - after the sweep. After the initial Z averaging time, if "Z-Controller to Hold" - is selected, the Z-Controller is set to hold mode, and the tip is positioned at - the previously averaged Z position (adjusted by the Z offset). (e.g. 100E-3) - - - - - - - The bandwidth of the Hardware and/or Software is instrument specific. - For example, Nanonis Generic 5 has 'RT Frequency' (e.g. 20E+3). - - - - - The Signals Period represents the rate at which signals are transferred to - the host computer, which operates the control software. This rate may - be 10 times lower than the sampling rate, as the real-time engine internally - oversamples the signal. If desired, you may have the option to reduce the oversampling - to 1, enabling higher frequency resolution in the Spectrum Analyzer. (e.g. 10) - - - - - The update rate is utilized in various processes, including the History Graph, - Auto-Approach, and multiple Programming Interface functions. It may be - configured to a 20 ms interval. Any additional timings must strictly be integer - multiples of this base value. While it is possible to set these additional - timings to different values, the actual timing value will automatically be - adjusted to become a multiple of the Acquisition Period. (e.g. 20E-3) - - - - - The update rate of animated graphical indicators, such as graphs and sliders, - can be adjusted. A normal value may be 40 ms, which corresponds to 25 updates - per second. Increasing this period can help reduce the processor load on the - graphical user interface, particularly on slower computers. It is important to - note that this update rate solely impacts the user interface and does not affect - measurements in any manner. (e.g. 20E-3) - - - - - The update rate of digital indicators, such as the numbers displayed, can be set - to 3 updates per second, equivalent to 300 ms. This interval is sufficient for - the user interface and does not impact measurements in any manner. (e.g. 300E-3) - - - - - The Measurements period determines the integration time required for precise - measurements, primarily utilized in sweep modules. It is particularly useful for - tasks such as recording force-distance curves or cantilever resonances. For - swift measurements with small steps, a value of 40 ms is often adequate. For - regular use, a range of 300-500 ms may be recommended, but when capturing the - resonance of a high-Q cantilever, longer values in the range of several seconds - might be necessary. Usually, this parameter does not require manual adjustment - within this module, as the sweep modules automatically set this value according - to the sweep timings. (e.g. 500E-3) - - - - - - - - - In STM experiment, the scan range is the coordinate (x,y) along the X and Y axis from the origin (scan_offset) of - the scan area (e.g. 5.000000E-9 5.000000E-9). - - - - - In STM experiment, the scan offset is the position of the tip at the starting point of scan area. - (e.g. -2.354637E-7 1.267476E-) - - - - - In STM experiment, the scan direction is the direction from which side of the - sample the tip starts scanning. - - - - - - - - - - - The angle of scan with the bottom or top side (depends on the scan_direction - field) of the sample. (e.g. 0.000E+0). - - - - - - Also clarify the frame for the ROI of the scan in lab frame, the middle of the lab - frame is (0, 0), and positive in x means right and in y means up. - - - - - - - The scan channels are selected by users. (e.g. (A);Bias (V);Z (m);LI Demod 2 X - (A);LI Demod 2 Y (A);LI Demod 1 X (A);LI Demod 1 Y (A)) - - - - - - - Configure the scan frame like x position; y position; width; height. (e.g. - 3.11737E-9;29.1583E-9;15E-9;15E-9;0E+0). If the 'scanfield' is not considered, use - the 'scan_range' and 'scan_offset' from 'scan_control' group - - - - - Scan resolution by setting the Lines equal to Pixels. (e.g. 512) - - - - - Define the image resolution. (e.g. 512) - - - - - Define the scan forward speed in the forward direction. (m/s) (e.g. 11.7187E-9) - - - - - Define the scan backward speed in the forward direction. (m/s) (e.g. 11.7187E-9) - - - - - - - - - - - - Link to target: /NXentry/NXinstrument/stm_head_temp - - - - - - Link to target: /NXentry/NXinstrument/cryo_bottom_temp - - - - - - Link to target: /NXentry/NXinstrument/temp_cryo_shield - - - - - - Link to target: /NXentry/NXinstrument/NXlock_in/modulation_signal - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/NXintegration_time - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/number_of_sweeps - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/sweep_start - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/sweep_end - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/num_pixel - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/z_avg_time - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXcircuit/rt_frequency - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXcircuit/signals_oversampling - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXcircuit/acquisition_period - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXcircuit/animations_period - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXcircuit/indicators_period - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXcircuit/measurements_period - - - - - - - - - Link to target: /NXentry/NXinstrument/NXsample_bias/bias - - - - - - Link to target: /NXentry/NXinstrument/NXenvironment/NXcurrent_sensor/current - - - - - - Link to target: /NXentry/NXnstrument/NXsample_bias/bias_calibration - - - - - Link to target: /NXentry/NXinstrument/NXsample_bias/bias_offset - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXcurrent_sensor/current_calibration - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXcurrent_sensor/current_offset - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXcurrent_sensor/current_gain - - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/z_offset - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/settling_time - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/z_ccontroller_hold - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/record_final_z - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/first_settling_time - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/end_settling_time - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/z_control_time - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/max_slew_rate - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXsweep_control/NXbias_spectroscopy/backward_sweep - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXposition/NXz_controller/controller_name - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXposition/NXz_controller/controller_status - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXposition/NXz_controller/set_point - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXposition/NXz_controller/p_gain - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXposition/NXz_controller/i_gain - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXposition/NXz_controller/time_const - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXposition/NXz_controller/tip_lift - - - - - - Link to target: - /NXentry/NXinstrument/NXenvironment/NXposition/NXz_controller/switchoff_delay - - - - - - This describes the sample and its properties, as well as constraints that are - applied to the sample before scanning. - - - - At this moment no base class available that can track entire sample preparation. - - - - - - - This NXdata should contain separate fields for the current values at different temperature setpoints, for example current_at_100C. - There should also be two more fields called temperature and voltage containing the setpoint values. - There should also be a field with an array of rank equal to the number of different temperature setpoints and each child's dimension - equal to the number of voltage setpoints. - axes: bias_calc - signals: - li_demod_[1;2]_[X/Y]_[-;bwd;filt;bwd_filt] - current_[-;bwd;filt;bwd_filt] - temperature - - - - - - Plot for a single point (x,y) with I vs. V curve. - - - - - - Line scan with multiple I vs. V curves for different single (x,y) co-ordinates. - - - - - - Plot for current(I) curve in the 2D space of (position(x), bias(V)) which can be - derived from the `line_scan` plot. - - - - - - Mesh scan with 2D slices of the above alternative plot for other y co-ordinates. - - diff --git a/contributed_definitions/nyaml/NXafm.yaml b/contributed_definitions/nyaml/NXafm.yaml new file mode 100644 index 000000000..d1314dcf9 --- /dev/null +++ b/contributed_definitions/nyaml/NXafm.yaml @@ -0,0 +1,254 @@ +category: application +doc: | + An application definition to describe Atomic Force Microscopy (AFM) scanning + technique. +type: group +NXafm(NXspm): + (NXentry): + definition: + doc: | + Name of the definition that is used for the application. + enumeration: [NXafm] + scan_mode: + doc: | + The mode of the scan. + enumeration: [contact mode, tapping mode, non-contact mode] + experiment_instrument(NXinstrument): + doc: | + The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding + instruments. + photo_detector(NXdetector): + exists: optional + doc: | + The photo detector instrument information. + (NXcantilever_spm): + exists: optional + doc: | + The cantilever information. + cantilever_oscillator(NXobject): + exists: optional + doc: | + Generally speaking, the cantilever resembles a simple harmonic oscillator. + When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. + In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. + oscillator_excitation(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The threshold voltage for oscillator excitation. + phase_lock_loop(NXlockin): + exists: optional + doc: | + Phase locked loop for cantilever lock-in device. + amplitude_excitation(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The reference amplitude (also called drive amplitude) of the cantilever. + scan_environment(NXenvironment): + doc: | + The environment information. + height_piezo_sensor(NXsensor): + doc: | + Link to the group ENTRY[entry]/experiment_instrument/height_piezo_sensor. + XY_piezo_sensor(NXsensor): + doc: | + Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. + tip_temperature(NXsensor): + doc: | + Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. + height_piezo_sensor(NXsensor): + exists: optional + doc: | + The sensor information for the height piezo device. + piezo_configuration(NXpiezo_config_spm): + doc: | + The piezo configuration information like piezoelectric calibration and material + properties. + piezo_material(NXpiezoelectric_material): + exists: optional + doc: | + The material description and properties of the piezoelectric scanner materials. + (NXpositioner_spm): + doc: | + The positioner information like the position of the tip, the position of the + sample, PID loop feedback etc. + XY_piezo_sensor(NXsensor): + exists: optional + doc: | + The sensor information for the xy piezo device. + piezo_configuration(NXpiezo_config_spm): + doc: | + The piezo configuration information like piezoelectric calibration and material + properties. + piezo_material(NXpiezoelectric_material): + exists: optional + doc: | + The material description and properties of the piezoelectric scanner materials. + (NXpositioner_spm): + doc: | + The positioner information like the position of the tip, the position of the + sample, PID loop feedback etc. + tip_temperature(NXsensor): + exists: optional + doc: | + The temperature of the scan environment or tip of the cantilever. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 9a15a1db7f7822d982716a9c177ce05e6afeb165692bf2ac13dbc98aad4809dd +# +# +# +# +# +# An application definition to describe Atomic Force Microscopy (AFM) scanning +# technique. +# +# +# +# +# Name of the definition that is used for the application. +# +# +# +# +# +# +# +# The mode of the scan. +# +# +# +# +# +# +# +# +# +# The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding +# instruments. +# +# +# +# The photo detector instrument information. +# +# +# +# +# The cantilever information. +# +# +# +# Generally speaking, the cantilever resembles a simple harmonic oscillator. +# When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. +# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. +# +# +# +# The threshold voltage for oscillator excitation. +# +# +# +# +# Phase locked loop for cantilever lock-in device. +# +# +# +# The reference amplitude (also called drive amplitude) of the cantilever. +# +# +# +# +# +# +# +# The environment information. +# +# +# +# Link to the group ENTRY[entry]/experiment_instrument/height_piezo_sensor. +# +# +# +# +# Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. +# +# +# +# +# Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. +# +# +# +# +# +# The sensor information for the height piezo device. +# +# +# +# The piezo configuration information like piezoelectric calibration and material +# properties. +# +# +# +# The material description and properties of the piezoelectric scanner materials. +# +# +# +# +# +# The positioner information like the position of the tip, the position of the +# sample, PID loop feedback etc. +# +# +# +# +# +# The sensor information for the xy piezo device. +# +# +# +# The piezo configuration information like piezoelectric calibration and material +# properties. +# +# +# +# The material description and properties of the piezoelectric scanner materials. +# +# +# +# +# +# The positioner information like the position of the tip, the position of the +# sample, PID loop feedback etc. +# +# +# +# +# +# The temperature of the scan environment or tip of the cantilever. +# +# +# +# +# diff --git a/contributed_definitions/nyaml/NXbias_spectroscopy.yaml b/contributed_definitions/nyaml/NXbias_spectroscopy.yaml new file mode 100644 index 000000000..ab297117a --- /dev/null +++ b/contributed_definitions/nyaml/NXbias_spectroscopy.yaml @@ -0,0 +1,306 @@ +category: base +doc: | + A base class for bias spectroscopy to describe the change in the physical properties + of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. +type: group +NXbias_spectroscopy(NXobject): + measurement_type: + doc: | + The measurement of the I(V) curve can come in two ways: + 1. Constant Spacing: The bias voltage is swept from the start to the end with a constant + spacing between the tip and surface. + 2. Variadic Spacing: The bias voltage is swept from the start to the end in a discretized + spacing between the tip and surface. + enumeration: [constant_spacing, variadic_spacing] + (NXpositioner_spm): + doc: | + The pid positioner information while running bias voltage-tunneling current + measurement. + z_offset(NX_NUMBER): + unit: NX_LENGTH + doc: | + The z-offset is a starting tip position before the sweep starts. + (NXcircuit): + exists: optional + acquisition_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by a bias sweep to acquire the data for + a single bias sweep point. + animation_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by a bias sweep to be displayed. + measurement_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by the circuit to measure a full bias sweep voltage or + bias current. + indicators_period(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by the circuit to indicate the bias sweep voltage + after measuring the voltage. + (NXbias_sweep): + doc: | + The bias sweep information. + scan_type: + doc: | + The type of scan like mesh, spiral, etc. For STS experiment, the scan type is + usually a single-point scan (trajectory scan). + enumeration: [linear] + sweep_number(NX_NUMBER): + doc: | + The number of sweeps taken during the bias spectroscopy. + first_settling_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The initial time is taken to settle the bias voltage at the desired value. + On each sweep usually, the system takes time to settle to the bias voltage + at the next value. + end_settling_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time is taken to settle the bias voltage at the desired value. + The time (at the last sweep) to settle for the last value of the sweep. + max_slew_rate(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The rate at which the amplifier responds to the voltage change + (to reach at the desired value). It defines if the tip movement and + voltage sweep are synchronized. + final_z(NX_NUMBER): + exists: recommended + doc: | + The z position after the sweeps are done. + total_spectroscopy_time(NX_DATE_TIME): + exists: recommended + unit: NX_TIME + doc: | + The total time needed for the entire voltage sweep. + scan_region(NXobject): + doc: | + The region of the scan area. + scan_range(NX_NUMBER): + unit: NX_ANY + doc: | + The range of the scan area. + scan_offset(NX_NUMBER): + unit: NX_ANY + doc: | + The offset of the scan area in 2D (X and Y) space. + scan_angle_N(NX_NUMBER): + unit: NX_ANGLE + doc: | + The N (substring) denotes the angle of the scan area with different physical + axes. + linear_sweep(NXobject): + doc: | + The linear scan information for scanning of a smaple. + scan_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The speed of the scanner or the probe during the scan. + scan_time(NX_DATE_TIME): + unit: NX_TIME + doc: | + The time taken by the scanner to scan the entire area. + forward_speed_bias(NX_NUMBER): + unit: NX_ANY + doc: | + Speed of the scanner or the probe moves forward direction. + backward_speed_bias(NX_NUMBER): + unit: NX_ANY + doc: | + Speed of the scanner or the probe that moves backward direction. + SCAN_DATA(NXdata): + doc: | + The data that comes from scanning the area. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 3ab25dbd62b7ae483b8ff37724fd4398a7c60454114c12914ccb9144fe3fe5a9 +# +# +# +# +# +# A base class for bias spectroscopy to describe the change in the physical properties +# of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. +# +# +# +# The measurement of the I(V) curve can come in two ways: +# 1. Constant Spacing: The bias voltage is swept from the start to the end with a constant +# spacing between the tip and surface. +# 2. Variadic Spacing: The bias voltage is swept from the start to the end in a discretized +# spacing between the tip and surface. +# +# +# +# +# +# +# +# +# The pid positioner information while running bias voltage-tunneling current +# measurement. +# +# +# +# The z-offset is a starting tip position before the sweep starts. +# +# +# +# +# +# +# The time or period is taken by a bias sweep to acquire the data for +# a single bias sweep point. +# +# +# +# +# The time or period is taken by a bias sweep to be displayed. +# +# +# +# +# The time or period is taken by the circuit to measure a full bias sweep voltage or +# bias current. +# +# +# +# +# The time or period is taken by the circuit to indicate the bias sweep voltage +# after measuring the voltage. +# +# +# +# +# +# The bias sweep information. +# +# +# +# The type of scan like mesh, spiral, etc. For STS experiment, the scan type is +# usually a single-point scan (trajectory scan). +# +# +# +# +# +# +# +# The number of sweeps taken during the bias spectroscopy. +# +# +# +# +# The initial time is taken to settle the bias voltage at the desired value. +# On each sweep usually, the system takes time to settle to the bias voltage +# at the next value. +# +# +# +# +# The time is taken to settle the bias voltage at the desired value. +# The time (at the last sweep) to settle for the last value of the sweep. +# +# +# +# +# The rate at which the amplifier responds to the voltage change +# (to reach at the desired value). It defines if the tip movement and +# voltage sweep are synchronized. +# +# +# +# +# The z position after the sweeps are done. +# +# +# +# +# The total time needed for the entire voltage sweep. +# +# +# +# +# The region of the scan area. +# +# +# +# The range of the scan area. +# +# +# +# +# The offset of the scan area in 2D (X and Y) space. +# +# +# +# +# The N (substring) denotes the angle of the scan area with different physical +# axes. +# +# +# +# +# +# The linear scan information for scanning of a smaple. +# +# +# +# The speed of the scanner or the probe during the scan. +# +# +# +# +# The time taken by the scanner to scan the entire area. +# +# +# +# +# Speed of the scanner or the probe moves forward direction. +# +# +# +# +# Speed of the scanner or the probe that moves backward direction. +# +# +# +# +# The data that comes from scanning the area. +# +# +# +# +# diff --git a/contributed_definitions/nyaml/NXbias_sweep.yaml b/contributed_definitions/nyaml/NXbias_sweep.yaml new file mode 100644 index 000000000..c17041531 --- /dev/null +++ b/contributed_definitions/nyaml/NXbias_sweep.yaml @@ -0,0 +1,149 @@ +category: base +doc: | + A base class that defines how the bias voltage sweep is performed in the + scanning probe microscopy experiments. +type: group +NXbias_sweep(NXscan_control): + scan_region(NXobject): + doc: | + The scan region is the area of phase space or sub-phase space where the scan is + performed. + scan_offset_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The starting voltage of the bias sweep. The range of voltages for the sweep can + be defined with scan voltage offset and scan voltage range (difference between + minimum and maximum voltage values in a sweep) + scan_range_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The range of voltages for the sweep can be defined with scan voltage offset and + scan voltage range (difference between minimum and maximum voltage values in a + sweep) + scan_start_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The start of the bias scan voltage. + scan_end_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The end value of the bias scan voltage. + linear_sweep(NXobject): + doc: | + In the linear sweep, the bias voltage is changed linearly from the start value + to the end value. + backward_sweep(NX_BOOLEAN): + doc: | + If the bias voltage sweep is also performed in the opposite direction. + scan_points_bias(NX_NUMBER): + doc: | + The number of voltage points per sweep. + step_size_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The step size between the two consecutive bias voltage values during the sweep. + reset_bias(NX_BOOLEAN): + doc: | + The reset_bias defines whether the bias voltage should be reset to the starting + value after the sweep is completed. + SCAN_DATA(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, + please duplicate this NXdata group for each. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 059205cba92a66bef7be1ad50223a92b699fa82b76101ecced2901cd4c541117 +# +# +# +# +# +# A base class that defines how the bias voltage sweep is performed in the +# scanning probe microscopy experiments. +# +# +# +# The scan region is the area of phase space or sub-phase space where the scan is +# performed. +# +# +# +# The starting voltage of the bias sweep. The range of voltages for the sweep can +# be defined with scan voltage offset and scan voltage range (difference between +# minimum and maximum voltage values in a sweep) +# +# +# +# +# The range of voltages for the sweep can be defined with scan voltage offset and +# scan voltage range (difference between minimum and maximum voltage values in a +# sweep) +# +# +# +# +# The start of the bias scan voltage. +# +# +# +# +# The end value of the bias scan voltage. +# +# +# +# +# +# In the linear sweep, the bias voltage is changed linearly from the start value +# to the end value. +# +# +# +# If the bias voltage sweep is also performed in the opposite direction. +# +# +# +# +# The number of voltage points per sweep. +# +# +# +# +# The step size between the two consecutive bias voltage values during the sweep. +# +# +# +# +# The reset_bias defines whether the bias voltage should be reset to the starting +# value after the sweep is completed. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, +# please duplicate this NXdata group for each. +# +# +# +# diff --git a/contributed_definitions/nyaml/NXcalibration.yaml b/contributed_definitions/nyaml/NXcalibration.yaml new file mode 100644 index 000000000..1a43e8944 --- /dev/null +++ b/contributed_definitions/nyaml/NXcalibration.yaml @@ -0,0 +1,427 @@ +category: base +doc: | + Subclass of NXprocess to describe post-processing calibrations. +symbols: + doc: | + The symbols used in the schema to specify e.g. dimensions of arrays + ncoeff: | + Number of coefficients of the calibration function + ncal: | + Number of points of the calibrated and uncalibrated axes +type: group +NXcalibration(NXobject): + description(NX_CHAR): + doc: | + A description of the procedures employed. + start_time(NX_DATE_TIME): + doc: | + The start time of the calibration. + end_time(NX_DATE_TIME): + doc: | + The end time of the calibration. + calibration_interval(NX_FLOAT): + unit: NX_TIME + doc: | + The time difference between the start and end time of the calibration. + Or the value directly comes from the instrument. + validity_period(NX_DATE_TIME): + doc: | + The period for which the calibration is valid. Usually, every instrument or part of the + needs to be calibrated at regular intervals. + calibration_type(NX_CHAR): + doc: | + The type of calibration, e.g., active calibration, passive calibration, + or according to the laboratory defined type. + physical_quantity: + doc: | + The physical quantity of the calibration, e.g., + energy, momentum, time, etc. + calibration_method(NXidentifier): + doc: | + A digital persistent identifier (e.g., DOI, ISO standard) referring to a detailed description of a + calibration method but no actual calibration data. + calibration_type(NX_CHAR): + doc: | + The type of calibration. + calibration_reference(NXidentifier): + doc: | + A digital persistent identifier (e.g., a DOI) referring to a publicly available calibration measurement + used for this instrument, e.g., a measurement of a known standard containing calibration information. + The axis values may be copied or linked in the appropriate NXcalibration fields for reference. + calibration_object(NXserialized): + doc: | + A file serialisation of a calibration which may not be publicly available (externally from the nexus file). + + This metadata can be a documentation of the source (file) or database (entry) from which pieces + of information have been extracted for consumption (e.g. in a research data management system (RDMS)). + It is also possible to include the actual file by using the `file` field. + + The axis values may be copied or linked in the appropriate NXcalibration fields for reference. + last_process(NX_CHAR): + doc: | + Indicates the name of the last operation applied in the NXprocess sequence. + applied(NX_BOOLEAN): + doc: | + Has the calibration been applied? + calibration_software: + doc: | + Name of the software used for this calibration. + \@version: + doc: | + Software version. + original_axis(NX_FLOAT): + unit: NX_ANY + doc: | + Vector containing the data coordinates in the original uncalibrated axis + dimensions: + rank: 1 + dim: (ncal,) + \@symbol: + doc: | + The symbol of the axis to be used in the fit_function, e.g., `energy`, `E`. + This should comply to the following naming rules (similar to python's naming rules): + + * A variable name must start with a letter or the underscore character + * A variable name cannot start with a number + * A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ ) + * Variable names are case-sensitive (age, Age and AGE are three different variables) + \@input_path: + doc: | + The path from which this data is derived, e.g., raw detector axis. + Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. + input_SYMBOL(NX_FLOAT): + unit: NX_ANY + doc: | + Additional input axis to be used in the formula. + The part after `input_` is used as the symbol to be used in the `fit_function`, i.e., + if the field name is `input_my_field` you should refer to this axis by `my_field` in the `fit_function`. + dimensions: + rank: 1 + dim: (ncal,) + \@input_path: + doc: | + The path from which this data is derived, e.g., raw detector axis. + Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. + coefficients(NX_FLOAT): + unit: NX_ANY + doc: | + For non-linear energy calibrations, e.g. in a TOF, a polynomial function is fit + to a set of features (peaks) at well defined energy positions to determine + E(TOF). Here we can store the array of fit coefficients. + dimensions: + rank: 1 + dim: (ncoeff,) + fit_function(NX_CHAR): + doc: | + For non-linear energy calibrations. Here we can store the formula of the + fit function. + + Use a0, a1, ..., an for the coefficients, corresponding to the values in the coefficients field. + + Use x0, x1, ..., xn for the nth position in the `original_axis` field. + If there is the symbol attribute specified for the `original_axis` this may be used instead of x. + If you want to use the whole axis use `x`. + Alternate axis can also be available as specified by the `input_SYMBOL` field. + The data should then be referred here by the `SYMBOL` name, e.g., for a field + name `input_my_field` it should be referred here by `my_field` or `my_field0` if + you want to read the zeroth element of the array. + + The formula should be numpy compliant. + scaling(NX_FLOAT): + unit: NX_ANY + doc: | + For linear calibration. Scaling parameter. + This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. + offset(NX_FLOAT): + unit: NX_ANY + doc: | + For linear calibration. Offset parameter. + This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. + mapping_MAPPING(NX_FLOAT): + doc: | + Mapping data for calibration. + + This can be used to map data points from uncalibrated to calibrated values, + i.e., by multiplying each point in the input axis by the corresponding point in the mapping data. + calibrated_AXIS(NX_FLOAT): + unit: NX_ANY + doc: | + A vector representing the axis after calibration, matching the data length + dimensions: + rank: 1 + dim: (ncal,) + \@output_path: + doc: | + The path to which this data is written, e.g., the calibrated energy. + Should be a valid NeXus path name, e.g., /entry/data/energy. + (NXdata): + doc: | + Any data acquired/used during the calibration that does not fit the `NX_FLOAT` fields above. + NXdata groups can be used for multidimensional data which are relevant to the calibration + \@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 ++++++++++++++++++++++++++++++++++ +# f650744495bd9cf2e61591f2120f8ceac1d8f43a906b4bb22796d737b525c8e3 +# +# +# +# +# +# +# The symbols used in the schema to specify e.g. dimensions of arrays +# +# +# +# Number of coefficients of the calibration function +# +# +# +# +# Number of points of the calibrated and uncalibrated axes +# +# +# +# +# Subclass of NXprocess to describe post-processing calibrations. +# +# +# +# A description of the procedures employed. +# +# +# +# +# The start time of the calibration. +# +# +# +# +# The end time of the calibration. +# +# +# +# +# The time difference between the start and end time of the calibration. +# Or the value directly comes from the instrument. +# +# +# +# +# The period for which the calibration is valid. Usually, every instrument or part of the +# needs to be calibrated at regular intervals. +# +# +# +# +# The type of calibration, e.g., active calibration, passive calibration, +# or according to the laboratory defined type. +# +# +# +# +# The physical quantity of the calibration, e.g., +# energy, momentum, time, etc. +# +# +# +# +# A digital persistent identifier (e.g., DOI, ISO standard) referring to a detailed description of a +# calibration method but no actual calibration data. +# +# +# +# The type of calibration. +# +# +# +# +# +# A digital persistent identifier (e.g., a DOI) referring to a publicly available calibration measurement +# used for this instrument, e.g., a measurement of a known standard containing calibration information. +# The axis values may be copied or linked in the appropriate NXcalibration fields for reference. +# +# +# +# +# A file serialisation of a calibration which may not be publicly available (externally from the nexus file). +# +# This metadata can be a documentation of the source (file) or database (entry) from which pieces +# of information have been extracted for consumption (e.g. in a research data management system (RDMS)). +# It is also possible to include the actual file by using the `file` field. +# +# The axis values may be copied or linked in the appropriate NXcalibration fields for reference. +# +# +# +# +# Indicates the name of the last operation applied in the NXprocess sequence. +# +# +# +# +# Has the calibration been applied? +# +# +# +# +# Name of the software used for this calibration. +# +# +# +# Software version. +# +# +# +# +# +# Vector containing the data coordinates in the original uncalibrated axis +# +# +# +# +# +# +# The symbol of the axis to be used in the fit_function, e.g., `energy`, `E`. +# This should comply to the following naming rules (similar to python's naming rules): +# +# * A variable name must start with a letter or the underscore character +# * A variable name cannot start with a number +# * A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ ) +# * Variable names are case-sensitive (age, Age and AGE are three different variables) +# +# +# +# +# The path from which this data is derived, e.g., raw detector axis. +# Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. +# +# +# +# +# +# Additional input axis to be used in the formula. +# The part after `input_` is used as the symbol to be used in the `fit_function`, i.e., +# if the field name is `input_my_field` you should refer to this axis by `my_field` in the `fit_function`. +# +# +# +# +# +# +# The path from which this data is derived, e.g., raw detector axis. +# Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. +# +# +# +# +# +# For non-linear energy calibrations, e.g. in a TOF, a polynomial function is fit +# to a set of features (peaks) at well defined energy positions to determine +# E(TOF). Here we can store the array of fit coefficients. +# +# +# +# +# +# +# +# For non-linear energy calibrations. Here we can store the formula of the +# fit function. +# +# Use a0, a1, ..., an for the coefficients, corresponding to the values in the coefficients field. +# +# Use x0, x1, ..., xn for the nth position in the `original_axis` field. +# If there is the symbol attribute specified for the `original_axis` this may be used instead of x. +# If you want to use the whole axis use `x`. +# Alternate axis can also be available as specified by the `input_SYMBOL` field. +# The data should then be referred here by the `SYMBOL` name, e.g., for a field +# name `input_my_field` it should be referred here by `my_field` or `my_field0` if +# you want to read the zeroth element of the array. +# +# The formula should be numpy compliant. +# +# +# +# +# For linear calibration. Scaling parameter. +# This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. +# +# +# +# +# For linear calibration. Offset parameter. +# This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. +# +# +# +# +# Mapping data for calibration. +# +# This can be used to map data points from uncalibrated to calibrated values, +# i.e., by multiplying each point in the input axis by the corresponding point in the mapping data. +# +# +# +# +# A vector representing the axis after calibration, matching the data length +# +# +# +# +# +# +# The path to which this data is written, e.g., the calibrated energy. +# Should be a valid NeXus path name, e.g., /entry/data/energy. +# +# +# +# +# +# Any data acquired/used during the calibration that does not fit the `NX_FLOAT` fields above. +# NXdata groups can be used for multidimensional data which are relevant to the calibration +# +# +# +# +# .. 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/NXcantilever_spm.yaml b/contributed_definitions/nyaml/NXcantilever_spm.yaml new file mode 100644 index 000000000..3eeb1cbb9 --- /dev/null +++ b/contributed_definitions/nyaml/NXcantilever_spm.yaml @@ -0,0 +1,235 @@ +category: base +doc: | + A base class to describe the cantilever used in Atomic Force Microscopy (AFM) + techniques. +type: group +NXcantilever_spm(NXobject): + cantilever_oscillator(NXobject): + doc: | + Generally speaking, the cantilever resembles a simple harmonic oscillator. + When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. + In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. + reference_amplitude(NX_NUMBER): + unit: NX_ANY + doc: | + The reference amplitude (also called drive amplitude) of the cantilever. + reference_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The reference frequency (also called drive frequency or resonance frequency) of + the cantilever. + frequency_harmonic(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The harmonic (e.g., second harmonic of the fundamental frequency) frequency of + the cantilever. + phase_lock_loop(NXlockin): + doc: | + Phase locked loop for cantilever lock-in device. + cantilever_amplitude_positioner(NXpositioner): + doc: | + Describes the cantilever frequency positioner, if it exists. + cantilever_phase_positioner(NXpositioner): + doc: | + Describes the cantilever phase positioner, if it exists. + cantilever_frequency_positioner(NXpositioner): + doc: | + Describes the cantilever frequency positioner, if it exists. + phase_shift(NX_NUMBER): + unit: NX_ANGLE + doc: | + The phase difference between the reference signal of cantilever and response + signal. + frequency_shift(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Shift in the resonance frequency of the cantilever. + frequency_cutoff(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The cutoff frequency of the cantilever. + frequency_bandwidth(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The bandwidth of the resonance frequency. + target_amplitude(NX_NUMBER): + unit: NX_ANY + doc: | + The target amplitude of the cantilever to start the AFM/SPM experiment. + active_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The active frequency of the cantilever to start the experiment. + reference_phase(NX_NUMBER): + unit: NX_ANGLE + doc: | + The reference phase of the cantilever oscillator. + cantilever_config(NXobject): + doc: | + The configuration information of the cantilever such as calibration information, + material properties, etc. + cantilever_coating: + doc: | + The coating material of the cantilever. + curvature_radius_N(NX_NUMBER): + unit: NX_ANY + doc: | + The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. + (NXcalibration): + doc: | + The calibration information of the cantilever. + sensitivity(NX_NUMBER): + unit: NX_ANY + doc: | + A force applied to the cantilever tip will cause a change in + cantilever's oscillation amplitude (in dynamic mode) or deflection of the cantilever. + The sensitivity of the cantilever is calculated as the ratio of this change to the force causing it. + spring_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The spring constant coefficient of the cantilever. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 7f9bbb72dc5a27994c70ffe9d0f711cb147c223a6ced080161fea0e2d63cb82c +# +# +# +# +# +# A base class to describe the cantilever used in Atomic Force Microscopy (AFM) +# techniques. +# +# +# +# Generally speaking, the cantilever resembles a simple harmonic oscillator. +# When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. +# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. +# +# +# +# The reference amplitude (also called drive amplitude) of the cantilever. +# +# +# +# +# The reference frequency (also called drive frequency or resonance frequency) of +# the cantilever. +# +# +# +# +# The harmonic (e.g., second harmonic of the fundamental frequency) frequency of +# the cantilever. +# +# +# +# +# Phase locked loop for cantilever lock-in device. +# +# +# +# Describes the cantilever frequency positioner, if it exists. +# +# +# +# +# Describes the cantilever phase positioner, if it exists. +# +# +# +# +# Describes the cantilever frequency positioner, if it exists. +# +# +# +# +# +# The phase difference between the reference signal of cantilever and response +# signal. +# +# +# +# +# Shift in the resonance frequency of the cantilever. +# +# +# +# +# The cutoff frequency of the cantilever. +# +# +# +# +# The bandwidth of the resonance frequency. +# +# +# +# +# The target amplitude of the cantilever to start the AFM/SPM experiment. +# +# +# +# +# The active frequency of the cantilever to start the experiment. +# +# +# +# +# The reference phase of the cantilever oscillator. +# +# +# +# +# +# The configuration information of the cantilever such as calibration information, +# material properties, etc. +# +# +# +# The coating material of the cantilever. +# +# +# +# +# The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. +# +# +# +# +# The calibration information of the cantilever. +# +# +# +# A force applied to the cantilever tip will cause a change in +# cantilever's oscillation amplitude (in dynamic mode) or deflection of the cantilever. +# The sensitivity of the cantilever is calculated as the ratio of this change to the force causing it. +# +# +# +# +# The spring constant coefficient of the cantilever. +# +# +# +# +# diff --git a/contributed_definitions/nyaml/NXcircuit.yaml b/contributed_definitions/nyaml/NXcircuit.yaml new file mode 100644 index 000000000..7d9afd7e0 --- /dev/null +++ b/contributed_definitions/nyaml/NXcircuit.yaml @@ -0,0 +1,235 @@ +category: base +doc: | + Application definition for circuit devices. +type: group +NXcircuit(NXobject): + components: + doc: | + List of components used in the circuit, e.g., resistors, capacitors, transistors or any + other complex components. + connections: + doc: | + Description of how components are interconnected, including connection points + and wiring. + power_source: + doc: | + Details of the power source for the circuit, including voltage and current + ratings. + signal_type: + doc: | + Type of signal (input signal) the circuit is designed to handle, e.g., analog, + digital, mixed-signal. + operating_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The operating frequency range of the circuit. + input_impedance(NX_NUMBER): + unit: NX_ANY + doc: | + Input impedance of the circuit. + output_impedance(NX_NUMBER): + unit: NX_ANY + doc: | + Output impedance of the circuit. + gain(NX_NUMBER): + unit: NX_UNITLESS + doc: | + Gain of the circuit, if applicable, usually all instruments have a gain which might be + important or not. + noise_level(NX_NUMBER): + unit: NX_ANY + doc: | + Noise level (in current or voltage) in the circuit. + bandwidth(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + If circuit handles AC current or signal it may have a band Bandwidth of the circuit to be + responded. + temperature_range(NX_NUMBER): + unit: NX_ANY + doc: | + Operating temperature range of the circuit. + calibration(NXcalibration): + doc: | + Calibration data for the circuit. + offset(NX_NUMBER): + unit: NX_ANY + doc: | + Offset value for current or voltage. + output_channels(NX_NUMBER): + doc: | + Number of output channels collected to this circuit. + output_signal(NX_NUMBER): + unit: NX_ANY + doc: | + Type of output signal, e.g., voltage, current, digital. + power_consumption(NX_NUMBER): + unit: NX_ANY + doc: | + Power consumption of the circuit per unit time. + status_indicators: + doc: | + Status indicators for the circuit, e.g., LEDs, display readouts. + protection_features(NX_CHAR): + doc: | + Protection features built into the circuit, e.g., overvoltage protection, + thermal shutdown. + hardware(NXfabrication): + doc: | + Hardware where the circuit is implanted; includes hardware manufacturers and + type + acquisition_time(NX_NUMBER): + unit: NX_TIME + doc: | + Updated rate for several processes using the input signal, e.g., History Graph, the circuit + uses for any such process. + output_slew_rate(NX_CHAR): + doc: | + The rate at which the signal changes when ramping from the starting + value. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 9f414cc4fc823d9f258eb7de644ce529b0531168e528a7a59848acdd24aa3d48 +# +# +# +# +# +# Application definition for circuit devices. +# +# +# +# List of components used in the circuit, e.g., resistors, capacitors, transistors or any +# other complex components. +# +# +# +# +# Description of how components are interconnected, including connection points +# and wiring. +# +# +# +# +# Details of the power source for the circuit, including voltage and current +# ratings. +# +# +# +# +# Type of signal (input signal) the circuit is designed to handle, e.g., analog, +# digital, mixed-signal. +# +# +# +# +# The operating frequency range of the circuit. +# +# +# +# +# Input impedance of the circuit. +# +# +# +# +# Output impedance of the circuit. +# +# +# +# +# Gain of the circuit, if applicable, usually all instruments have a gain which might be +# important or not. +# +# +# +# +# Noise level (in current or voltage) in the circuit. +# +# +# +# +# If circuit handles AC current or signal it may have a band Bandwidth of the circuit to be +# responded. +# +# +# +# +# Operating temperature range of the circuit. +# +# +# +# +# Calibration data for the circuit. +# +# +# +# +# Offset value for current or voltage. +# +# +# +# +# Number of output channels collected to this circuit. +# +# +# +# +# Type of output signal, e.g., voltage, current, digital. +# +# +# +# +# Power consumption of the circuit per unit time. +# +# +# +# +# Status indicators for the circuit, e.g., LEDs, display readouts. +# +# +# +# +# Protection features built into the circuit, e.g., overvoltage protection, +# thermal shutdown. +# +# +# +# +# Hardware where the circuit is implanted; includes hardware manufacturers and +# type +# +# +# +# +# Updated rate for several processes using the input signal, e.g., History Graph, the circuit +# uses for any such process. +# +# +# +# +# The rate at which the signal changes when ramping from the starting +# value. +# +# +# diff --git a/contributed_definitions/nyaml/NXfabrication.yaml b/contributed_definitions/nyaml/NXfabrication.yaml new file mode 100644 index 000000000..a4cf76ee9 --- /dev/null +++ b/contributed_definitions/nyaml/NXfabrication.yaml @@ -0,0 +1,103 @@ +category: base +doc: | + Details about a component as it is defined by its manufacturer. +type: group +NXfabrication(NXobject): + vendor(NX_CHAR): + doc: | + Company name of the manufacturer. + model(NX_CHAR): + doc: | + Version or model of the component named by the manufacturer. + \@version: + type: NX_CHAR + doc: | + If different versions exist are possible, the value in this field should be made + specific enough to resolve the version. + identifier(NXidentifier): + doc: | + Ideally, (globally) unique persistent identifier, i.e. + a serial number or hash identifier of the component. + construction_date(NX_DATE_TIME): + doc: | + Datetime of components initial construction. This refers to the date of + first measurement after new construction or to the relocation date, + if it describes a multicomponent/custom-build setup. + Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, + otherwise the local time zone is assumed per ISO8601. + + This could be year of construction or year and month of construction if full data is not available + capability(NX_CHAR): + doc: | + Free-text list with eventually multiple terms of + functionalities which the component offers. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 3a06b064fa22aaa0b569124e399153e7df939a53bfdc4ea2fdf240048cb1f84f +# +# +# +# +# +# Details about a component as it is defined by its manufacturer. +# +# +# +# Company name of the manufacturer. +# +# +# +# +# Version or model of the component named by the manufacturer. +# +# +# +# If different versions exist are possible, the value in this field should be made +# specific enough to resolve the version. +# +# +# +# +# +# Ideally, (globally) unique persistent identifier, i.e. +# a serial number or hash identifier of the component. +# +# +# +# +# Datetime of components initial construction. This refers to the date of +# first measurement after new construction or to the relocation date, +# if it describes a multicomponent/custom-build setup. +# Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, +# otherwise the local time zone is assumed per ISO8601. +# +# This could be year of construction or year and month of construction if full data is not available +# +# +# +# +# Free-text list with eventually multiple terms of +# functionalities which the component offers. +# +# +# diff --git a/contributed_definitions/nyaml/NXlockin.yaml b/contributed_definitions/nyaml/NXlockin.yaml new file mode 100644 index 000000000..ad5711d31 --- /dev/null +++ b/contributed_definitions/nyaml/NXlockin.yaml @@ -0,0 +1,305 @@ +category: base +doc: | + A base class definition for a lock-in amplifier. + The lock-in amplifier information: the device is being used to extract a (potentially) + very weak input signal buried in the noisy background, where the input signal has + the same frequency (or its harmonic) as a known reference signal. Additionally, + the phase shift between the input signal and the reference signal is measured. + The reference signal might be created by a generator built-in into the lock-in amplifier. +type: group +NXlockin(NXobject): + hardware(NXfabrication): + doc: | + Hardware manufacturers and type of lock-in amplifier. + (NXamplifier): + doc: | + Description of the amplifier (after detection of the signal from the noise) + bias_divider: + doc: | + Bias divider for lock-in channel if if has. + Bias divider = V(ref)/[V(ref)+V(input)] + modulation_status(NX_BOOLEAN): + doc: | + Switch the lock-in modulation on or off. + modulation_signal(NX_CHAR): + doc: | + A periodic voltage signal generated by the lock-in, + usually applied to a sample and used to create a reference signal for the detection of the input signal + lockin_current_flip_value(NX_NUMBER): + exists: optional + doc: | + The number that defines the sign of the lock-in current. The calibration procedure + with retracted tip is normally performed to compensate for the signal phase delay + in SPM. The procedure yields two possible solutions, this number should be equal + to 1 or -1 depending on which solution is chosen. + + # (For bais modulate signal, it depands on the modulate type) + + # unit could be NX_VOLTAGE or NX_CURRENT + reference_amplitude(NX_NUMBER): + unit: NX_ANY + doc: | + Amplitude of the reference signal for the lock-in amplifier. + reference_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Frequency of the reference signal for the lock-in amplifier. + reference_phase(NX_NUMBER): + unit: NX_ANGLE + doc: | + Phase of the reference signal for the lock-in amplifier. + demodulated_signal(NX_CHAR): + doc: | + The modulated output signal will be demodulated, in order to determine the amplitude + and phase at the frequency set in the Frequency field or harmonics, such as current, + bias, et.al. + demodulated_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The frequency of the demodulated signal. + frequency_demodulation_bandwidth(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The bandwidth of the modulated signal that can be applied in frequency + demodulation mechanism. + + # unit could be NX_VOLTAGE or NX_CURRENT + demodulated_amplitude(NX_NUMBER): + unit: NX_ANY + doc: | + The amplitude of the demodulated signal. + amplitude_demodulation_bandwidth(NX_NUMBER): + unit: NX_ANY + doc: | + The bandwidth of the modulated signal that can be applied in amplitude + demodulation mechanism. + demodulated_phase(NX_NUMBER): + unit: NX_ANGLE + doc: | + The phase of the demodulated signal. + phase_demodulation_bandwidth(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The bandwidth of the modulated signal that can be applied in phase demodulation + mechanism. + demodulator_channels(NX_CHAR): + doc: | + List of the demodulator channels. + low_pass_N(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Frequency of the low-pass filter applied on the demodulated + signals (X,Y), cut-off frq (low pass filter) (for each DemodulatorChannels). + hi_pass_N(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Frequency of the high-pass filter applied on the demodulation + signal cut-off frq (hi pass filter) (for each DemodulatorChannels). + lp_filter_order_N(NX_NUMBER): + doc: | + Order of the low-pass filter applied on the demodulated signals (X, Y). + Reducing the bandwidth or increasing the order reduces noise on the demodulated signals, + but increases settling and measurement times. + hp_filter_order_N(NX_NUMBER): + doc: | + Order of the high-pass filter applied on the demodulation + signal. This is used mainly to suppress a DC component of the input + signal noise. + ref_phase_N(NX_NUMBER): + unit: NX_ANGLE + doc: | + Reference phase of reference signal with respect to the demodulated signal + (foreach Channels). + integration_time(NX_NUMBER): + unit: NX_TIME + doc: | + Integration time for the product of the input and the reference signals + harmonic_order_N(NX_NUMBER): + doc: | + The reference signal can be a higher harmonic of the modulation signal. + Here the order of the harmonic is stored. + sensitivity_factor(NX_NUMBER): + doc: | + Ratio of output signal amplitude to input signal amplitue (V/V). + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 06c3ab36c9bb89e3392cd52a7a8cfe243c87a50827f070e5659934f816c341ea +# +# +# +# +# +# A base class definition for a lock-in amplifier. +# The lock-in amplifier information: the device is being used to extract a (potentially) +# very weak input signal buried in the noisy background, where the input signal has +# the same frequency (or its harmonic) as a known reference signal. Additionally, +# the phase shift between the input signal and the reference signal is measured. +# The reference signal might be created by a generator built-in into the lock-in amplifier. +# +# +# +# Hardware manufacturers and type of lock-in amplifier. +# +# +# +# +# Description of the amplifier (after detection of the signal from the noise) +# +# +# +# +# Bias divider for lock-in channel if if has. +# Bias divider = V(ref)/[V(ref)+V(input)] +# +# +# +# +# Switch the lock-in modulation on or off. +# +# +# +# +# A periodic voltage signal generated by the lock-in, +# usually applied to a sample and used to create a reference signal for the detection of the input signal +# +# +# +# +# The number that defines the sign of the lock-in current. The calibration procedure +# with retracted tip is normally performed to compensate for the signal phase delay +# in SPM. The procedure yields two possible solutions, this number should be equal +# to 1 or -1 depending on which solution is chosen. +# +# +# +# +# +# +# Amplitude of the reference signal for the lock-in amplifier. +# +# +# +# +# Frequency of the reference signal for the lock-in amplifier. +# +# +# +# +# Phase of the reference signal for the lock-in amplifier. +# +# +# +# +# The modulated output signal will be demodulated, in order to determine the amplitude +# and phase at the frequency set in the Frequency field or harmonics, such as current, +# bias, et.al. +# +# +# +# +# The frequency of the demodulated signal. +# +# +# +# +# The bandwidth of the modulated signal that can be applied in frequency +# demodulation mechanism. +# +# +# +# +# +# The amplitude of the demodulated signal. +# +# +# +# +# The bandwidth of the modulated signal that can be applied in amplitude +# demodulation mechanism. +# +# +# +# +# The phase of the demodulated signal. +# +# +# +# +# The bandwidth of the modulated signal that can be applied in phase demodulation +# mechanism. +# +# +# +# +# List of the demodulator channels. +# +# +# +# +# Frequency of the low-pass filter applied on the demodulated +# signals (X,Y), cut-off frq (low pass filter) (for each DemodulatorChannels). +# +# +# +# +# Frequency of the high-pass filter applied on the demodulation +# signal cut-off frq (hi pass filter) (for each DemodulatorChannels). +# +# +# +# +# Order of the low-pass filter applied on the demodulated signals (X, Y). +# Reducing the bandwidth or increasing the order reduces noise on the demodulated signals, +# but increases settling and measurement times. +# +# +# +# +# Order of the high-pass filter applied on the demodulation +# signal. This is used mainly to suppress a DC component of the input +# signal noise. +# +# +# +# +# Reference phase of reference signal with respect to the demodulated signal +# (foreach Channels). +# +# +# +# +# Integration time for the product of the input and the reference signals +# +# +# +# +# The reference signal can be a higher harmonic of the modulation signal. +# Here the order of the harmonic is stored. +# +# +# +# +# Ratio of output signal amplitude to input signal amplitue (V/V). +# +# +# diff --git a/contributed_definitions/nyaml/NXoptical_spectroscopy.yaml b/contributed_definitions/nyaml/NXoptical_spectroscopy.yaml new file mode 100644 index 000000000..19dc970a8 --- /dev/null +++ b/contributed_definitions/nyaml/NXoptical_spectroscopy.yaml @@ -0,0 +1,2157 @@ +category: application +doc: | + A general application definition of optical spectroscopy elements, which may + be used as a template to derive specialized optical spectroscopy experiments. + + Possible specializations are ellipsometry, Raman spectroscopy, photoluminescence, + reflectivity/transmission spectroscopy. + + A general optical experiment consists of (i) a light/photon source, (ii) a sample, + (iii) a detector. + + For any free text descriptions, it is recommended to enter data in english + language, as this is the most FAIR representation. +symbols: + doc: | + Variables used throughout the document, e.g. dimensions or parameters. + N_spectrum: | + Length of the spectrum array (e.g. wavelength or energy) of the measured + data. + N_measurements: | + Number of measurements (1st dimension of measured_data array). This is + equal to the number of parameters scanned. For example, if the experiment + was performed at three different temperatures and two different pressures + N_measurements = 2*3 = 6. + +# 04/2024 +# Extension of the Draft Version (05/2023) of a NeXus application definition which +# serves as a template for various optical spectroscopy experiments +# TODO: +# - Add NXlens_opt and NXwaveplate to NXinstrument? +# - Make polfilter_TYPE(NXbeam_device) own base class -\-> rework NXpolarizer_opt. and add them to NXinstrument. +# - Make spectralfilter_TYPE(NXbeam_device) own base class -\-> extend NXfilter? and add them to NXinstrument. +# - Make offset angles for polar and azimutal? +# - Can angle_reference_frame be replaced later by only using reference_frames and generic angle description? +# - Add optical elements and rework them: NXfiber, NXbeam_splitter, +# - Consider to make power flux recommended? Difficult parameter to measure. Relevant for some samples/techniques, but not for all. Powder density? Nominal vs. measured? +# - Is there something to describe the spot size? +# - Restructure the concept "type" in "source_TYPE" to medium and model(NXfabication) -\-> suggestion from Markus: "splitting up the concept into type(NXfabrication) and emitting medium(NXion/NXatom) is a better alternative?" +# - How to describe beam size properties? NXbeam/extend? Is this enough? or do we need more abitrary shapes as elliptically? Maybe as well focus spot size? +# - Think of removing/reworking of (optional) NXfabrications? Con: bloats up the NeXus def (move it to base classes?) Pro: as the fixed name device_information is used, the structure is more FAIR / clean designed? +type: group +NXoptical_spectroscopy(NXobject): + (NXentry): + definition: + doc: | + An application definition describing a general optical experiment. + \@version: + doc: | + Version number to identify which definition of this application + definition was used for this entry/data. + \@URL: + doc: | + URL where to find further material (documentation, examples) relevant + to the application definition. + enumeration: [NXoptical_spectroscopy] + title: + exists: recommended + start_time(NX_DATE_TIME): + exists: recommended + doc: | + Datetime of the start of the measurement. + Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, + otherwise, the local time zone is assumed per ISO8601. + + It is required to enter at least one of both measurement times, either "start_time" or "end_time". + end_time(NX_DATE_TIME): + exists: recommended + doc: | + Datetime of the end of the measurement. + Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, + otherwise the local time zone is assumed per ISO8601. + + It is required to enter at least one of both measurement times, either "start_time" or "end_time". + experiment_identifier(NXidentifier): + exists: recommended + doc: | + A (globally persistent) unique identifier of the experiment. + (i) The identifier is usually defined by the facility, laboratory or + principal investigator. + (ii) The identifier enables to link experiments to e.g. proposals. + service(NX_CHAR): + exists: optional + identifier(NX_CHAR): + exists: recommended + identifier_type: + exists: recommended + doc: | + Select the range of validity of this identier. + Local: Setup#1 at Institute building #2 in Room #3 + Global: Unique identification of with by unique location and unique + globally persistent time stamp. + enumeration: [local, global] + is_persistent(NX_BOOLEAN): + exists: optional + experiment_description: + exists: optional + doc: | + An optional free-text description of the experiment. + + Users are strongly advised to parameterize the description of their experiment + by using respective groups and fields and base classes instead of writing prose + into this field. + + The reason is that such a free-text field is difficult to machine-interpret. + The motivation behind keeping this field for now is to learn how far the + current base classes need extension based on user feedback. + experiment_type: + doc: | + Specify the type of the optical experiment. + + Chose other if none of these methods are suitable. You may specify + fundamental characteristics or properties in the experimental sub-type. + + For Raman spectroscopy or ellipsometry use the respective specializations + of NXoptical_spectroscopy. + enumeration: [photoluminescence, transmission spectroscopy, reflection spectroscopy, other] + experiment_sub_type: + exists: optional + doc: | + Specify a special property or characteristic of the experiment, which specifies + the generic experiment type. + enumeration: [time resolved, imaging, pump-probe, other] + experiment_type_other: + exists: optional + doc: | + If "other" was selected in "experiment_type" and/or in "experiment_sub_type", + specify the experiment here with a free text name, which is knwon in the + respective community of interest. + reference_frames(NXcoordinate_system_set): + exists: optional + doc: | + Description of one or more coordinate systems that are specific to the + experiment. Examples are beam centered, sample-normal centered, + laboratory-system centered, sample-stage centered, crystal-symmetry centered. + beam_ref_frame(NXcoordinate_system): + exists: optional + depends_on(NX_CHAR): + doc: | + This refers to the coordinate system along the beam path. The origin and + base is defined at z=0, where the incident beam hits the sample at the surface. + (NXtransformations): + doc: | + This is the default NeXus coordinate system (McStas), if the transformation + does not change the coordinate system at all - i.e. it is unity. + Otherwise, by this a respective transformation of the beam + reference frame to the default reference frame could be made. i.e. + exchange of x and z coordinate, rotation of respective coordinates + towards each other. + sample_normal_ref_frame(NXcoordinate_system): + exists: optional + depends_on(NX_CHAR): + doc: | + Link to transformations defining the sample-normal base coordinate system, + which is defined such that the positive z-axis is parallel to the sample normal, + and the x-y-plane lies inside the sample surface. + (NXtransformations): + doc: | + Set of transformations, describing the orientation of the sample-normal coordinate system + with respect to the beam coordinate system (.). + (NXuser): + exists: ['min', '0', 'max', 'unbounded'] + doc: | + Contact information and eventually details of at persons who + performed the measurements. This can be for example the principal + investigator or student. Examples are: name, affiliation, address, telephone + number, email, role as well as identifiers such as orcid or similar. + It is recommended to add multiple users if relevant. + + Due to data privacy concerns, there is no minimum requirement. + If no user with specific name is allowed to be given, it is required to + assign at least an affiliation + (NXinstrument): + doc: | + Devices or elements of the optical spectroscopy setup described with its + properties and general information. + + This includes for example: + - The beam device's or instrument's model, company, serial number, construction year, etc. + - Used software or code + - Experiment descriptive parameters as reference frames, resolution, calibration + - Photon beams with their respective properties such as angles and polarization + - Various optical beam path devices, which interact, manipulate or measure optical beams + - Characteristics of the medium surrounding the sample + - "Beam devices" for a beam path description + - Stages(NXmanipulator) + - Sensors and actuators to control or measure sample or beam properties + beam_TYPE(NXbeam): + exists: ['min', '1', 'max', 'unbounded'] + doc: | + This can be used to describe properties of a photon beam. + A beam is always defined between two beam_devices, via + "previous_device" and "next_device". + + It is required to define at least one incident beam which is incident + to the sample. You may specify if this beam parameters are acutally measured + or just nominal. + If this beam is the output of a source, chose the same + name appendix as for the NXsource instance (e.g. TYPE=532nm) + parameter_reliability: + doc: | + Select the reliability of the respective beam characteristics. Either, + the parameters are measured via another device or method or just given + nominally via the properties of a light source properties (532nm, 100mW). + enumeration: [measured, nominal] + incident_wavelength(NX_NUMBER): + exists: recommended + incident_wavelength_spread(NX_NUMBER): + exists: recommended + incident_polarization(NX_NUMBER): + exists: recommended + extent(NX_FLOAT): + exists: recommended + associated_source(NX_CHAR): + exists: optional + doc: | + The path to the device which emitted this beam (light source or frequency doubler). + + This parameter is recommended, if the previous optical element is a photon source. + In this way, the properties of the laser or light souce can be described + and associated. + The beam should be named with the same appendix as the source, e.g., + for TYPE=532nmlaser, there should be both a NXsource named + "source_532nmlaser" and a NXbeam named "beam_532nmlaser". + + Example: /entry/instrument/source_532nmlaser + + # The two polarization descriptions may be completely replaced by polarization + beam_polarization_type: + exists: optional + enumeration: [linear, circular, ellipically, unpolarized] + linear_beam_sample_polarization(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + Angle of the linear polarized light, with respect to a fixed arbitrary + defined 0° position. This can be used if no definition of respective + cooridnate systems for beam and sample normal is done. If coordinate systems + are defined, refer to beam "incident_polarization". + detector_TYPE(NXdetector): + exists: ['min', '1', 'max', 'unbounded'] + detector_channel_type: + enumeration: [single-channel, multichannel] + detector_type: + exists: recommended + doc: | + Description of the detector type. + enumeration: [CCD, photomultiplier, photodiode, avalanche-photodiode, streak camera, bolometer, golay detectors, pyroelectric detector, deuterated triglycine sulphate, other] + detector_type_other: + exists: optional + doc: | + Type of detector, if "other" was selected in "detector_type". + raw_data(NXdata): + exists: recommended + doc: | + Contains the raw data collected by the detector before calibration. + The data which is considered raw might change from experiment to experiment + due to hardware pre-processing of the data. + This field ideally collects the data with the lowest level of processing + possible. + + # Define a similar convention for NXoptical_spectroscopy? Or only for NXraman, NXellipsometry and NXphotoluminescence? + # Fields should be named according to new following convention: + # - **pixel_x**: Detector pixel in x direction. + # - **pixel_y**: Detector pixel in y direction. + # - **energy**: (Un)calibrated energy (kinetic or binding energy). Unit category: NX_ENERGY (e.g., eV). + # - **kx**: (Un)calibrated x axis in k-space. Unit category: NX_ANY (e.g., 1/Angström). + # - **ky**: (Un)calibrated y axis in k-space. Unit category: NX_ANY (1/Angström). + # - **kz**: (Un)calibrated z axis in k-space. Unit category: NX_ANY (1/Angström). + # - **angular0**: Fast-axis angular coordinate (or second slow axis if angularly integrated). + # Unit category: NX_ANGLE + # - **angular1**: Slow-axis angular coordinate (or second fast axis if simultaneously dispersed in 2 dimensions) + # Unit category: NX_ANGLE + # - **spatial0**: Fast-axis spatial coordinate (or second slow axis if spatially integrated) + # Unit category: NX_LENGTH + # - **spatial1**: Slow-axis spatial coordinate (or second fast axis if simultaneously dispersed in 2 dimensions) + # Unit category: NX_LENGTH + # - **delay**: Calibrated delay time. Unit category: NX_TIME (s). + # - **polarization_angle**: Linear polarization angle of the incoming or + # outgoing beam. + # Unit category: NX_ANGLE (° or rad) + # - **ellipticity**: Ellipticity of the incoming or outgoing beam. + # Unit category: NX_ANGLE (° or rad) + # - **time_of_flight**: Total time of flight. Unit category: NX_TIME_OF_FLIGHT + # - **time_of_flight_adc**: Time-of-flight values, analog-to-digital converted. + # - **external_AXIS**: Describes an axis which is coming from outside the detectors scope. + \@signal: + enumeration: [raw] + raw(NX_NUMBER): + doc: | + Raw data before calibration. + additional_detector_hardware: + exists: optional + doc: | + Specify respective hardware which was used for the detector. For + example special electronics required for time-correlated single photon + counting (TCSPC). + device_information(NXfabrication): + exists: recommended + source_TYPE(NXsource): + exists: recommended + type: + exists: recommended + enumeration: [Synchrotron X-ray Source, Rotating Anode X-ray, Fixed Tube X-ray, UV Laser, Optical Laser, Laser, Dye-Laser, Broadband Tunable Light Source, Halogen lamp, LED, Mercury Cadmium Telluride, Deuterium Lamp, Xenon Lamp, Globar, other] + type_other: + exists: optional + doc: | + Specification of type, may also go to name. + name: + exists: recommended + standard: + exists: optional + doc: | + If available, name/ID/norm of the light source standard. + device_information(NXfabrication): + exists: recommended + doc: | + Details about the device information. + associated_beam(NX_CHAR): + exists: recommended + doc: | + The path to a beam emitted by this source. + Should be named with the same appendix, e.g., + for TYPE=532nmlaser, there should as well be + a NXbeam named "beam_532nmlaser" together with this source + instance named "source_532nmlaser" + + Example: /entry/instrument/beam_532nmlaser + (NXmonochromator): + exists: recommended + device_information(NXfabrication): + exists: recommended + angle_reference_frame: + exists: recommended + doc: | + Defines the reference frame which is used to describe the sample orientation + with respect to the beam directions. + + A beam centered description is the default and uses 4 angles(similar to XRD): + - Omega (angle between sample surface and incident beam) + - 2Theta (angle between the transmitted beam and the detection beam) + - Chi (sample tilt angle, angle between plane#1 and the surface normal, + plane#1 = spanned by incidence beam and detection + and detection. If Chi=0°, then plane#1 is the plane of + incidence in reflection setups) + - Phi (inplane rotation of sample, rotation axis is the samples + surface normal) + + + A sample normal centered description is as well possible: + - angle of incidence (angle between incident beam and sample surface) + - angle of detection (angle between detection beam and sample surface) + - angle of incident and detection beam + - angle of in-plane sample rotation (direction along the sample's surface normal) + + An arbitrary reference frame can be defined by "reference_frames" + and used via "instrument/angle_sample_and_beam_TYPE" + enumeration: [beam centered, sample-normal centered] + omega(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + Angle between sample incident beam and sample surface. + twotheta(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + Angle between incident and detection beam + chi(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + Sample tilt between sample normal, and the plane spanned by detection and + incident beam. + phi(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + Inplane rotation of the sample, with rotation axis along sample normal. + angle_of_incidence(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + Angle(s) of the incident beam vs. the normal of the bottom reflective + (substrate) surface in the sample. These two directions span the plane + of incidence. + angle_of_detection(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + Detection angle(s) of the beam reflected or scattered off the sample + vs. the normal of the bottom reflective (substrate) surface in the + sample if not equal to the angle(s) of incidence. + These two directions span the plane of detection. + angle_of_incident_and_detection_beam(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + Angle between the incident and detection beam. + If angle_of_detection + angle_of_incidence = angle_of_incident_and_detection_beam, + then the setup is a reflection setup. + If angle_of_detection + angle_of_incidence != angle_of_incident_and_detection_beam + then the setup may be a light scattering setup. + (i.e. 90° + 90° != 90°, i.e. incident and detection beam in the sample surface, but + the angle source-sample-detector is 90°) + angle_of_in_plane_sample_rotation(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + Angle of the inplane orientation of the sample. This might be an arbitrary, + angle without specific relation to the sample symmetry, + of the angle to a specific sample property (i.e. crystallographic axis or sample + shape such as wafer flat) + generic_beam_sample_angle_TYPE(NXtransformations): + exists: recommended + doc: | + Set of transformations, describing the relative orientation of different + parts of the experiment (beams or sample). You may select one of the specified + angles for incident and detection beam or sample, and then use polar and azimuthal + angles to define the direction via sperical coordinates. + This allows consistent defintion between different coordinate system. + You may refer to self defined coordinate system as well. + + + If "angle_reference_frame = beam centered", then this coordinate system is used: + McStas system (NeXus default) + (https://manual.nexusformat.org/design.html#mcstas-and-nxgeometry-system) + + i.e. the z-coordinate math:`[0,0,1]` is along the incident beam direction and + the x-coordinate math:`[1,0,0]` is in the horizontal plane. Hence, usually math:`[0,1,0]` + is vertically oriented. + + If "angle_reference_frame = sample-normal centered", then this coordinate + system is used + z - math:`[0,0,1]` along sample surface normal + x - math:`[1,0,0]` defined by sample surface projected incident beam. + y - math:`[0,1,0]` in the sample surface, orthogonal to z and x. + For this case, x may be ill defined, if the incident beam is perpendicular + to the sample surface. In this case, use the beam centered description. + type: + enumeration: [incident beam, detection beam, sample] + polar(NX_NUMBER): + unit: NX_ANGLE + doc: | + Rotation about the y axis (polar rotation within the sample plane). + \@transformation_type: + enumeration: [rotation] + \@vector: + enumeration: [[0, 1, 0]] + \@depends_on: + doc: | + Path to a transformation that places the sample surface + into the origin of the arpes_geometry coordinate system. + azimuth(NX_NUMBER): + unit: NX_ANGLE + doc: | + Rotation about the z axis (azimuthal rotation within the sample plane). + \@transformation_type: + enumeration: [rotation] + \@vector: + enumeration: [[0, 0, 1]] + \@depends_on: + enumeration: [offset_tilt] + lateral_focal_point_offset(NX_NUMBER): + exists: optional + unit: NX_LENGTH + doc: | + Specify if there is a lateral offset on the sample surface, between the focal + points of the incident beam and the detection beam. + (NXbeam_device): + exists: ['min', '0', 'max', 'unbounded'] + doc: | + Describes the order of respective beam devices in the optical beam + path. + + Everything object which interacts or modifies optical beam properties, + may be an beam device, e.g. Filter, Window, Beamsplitter, Photon Source, + Detector, etc, + + It is intended, to include this functionality later to "older" beam + components, such as NXsource, NXdetector, NXlens, etc. + Until this is possbible, auxillary beam devices have to be created, + for each "older" beam component instead, to allow a beam path description. + To link the auxillary beam device to the real device properties, the + attribute \@device should be used. + \@device: + exists: recommended + doc: | + Reference to beam device, which is described by a NeXus concept + (e.g. for NXsource, entry/instrument/source_TYPE). + previous_device: + exists: recommended + doc: | + Reference to the previous beam device, from which the photon beam came + to reach this beam device. A photon source is related as origin by ".". + This enables a logical order description of the optical setup. + (NXlens_opt): + exists: optional + doc: | + This is the optical element used to focus or collect light. This may + be a genereic lens or microcope objectives which are used for the + Raman scattering process. + type: + enumeration: [objective, lens, glass fiber, none, other] + device_information(NXfabrication): + exists: optional + (NXwaveplate): + exists: optional + (NXopt_window): + exists: optional + polfilter_TYPE(NXbeam_device): + exists: optional + doc: | + polarization filter to prepare light to be measured or to be incident + on the sample. + Genereric polarization filter porperties may be implemented via NXfilter_pol + at a later stage. + filter_mechanism(NX_CHAR): + exists: optional + doc: | + Physical principle of the polarization filter used to create a + defined incident or scattered light state. + enumeration: [polarization by Fresnel reflection, birefringent polarizers, thin film polarizers, wire-grid polarizers, other] + specific_polarization_filter_type(NX_CHAR): + exists: optional + doc: | + Specific name or type of the polarizer used. + + Free text, for example: Glan-Thompson, Glan-Taylor, Rochon Prism, Wollaston + Polarizer... + device_information(NXfabrication): + exists: optional + spectralfilter_TYPE(NXbeam_device): + exists: optional + doc: | + Spectral filter used to modify properties of the scattered or incident light. + Genereric spectral filter porperties may be implemented via NXfilter_spec + at a later stage. + filter_type: + exists: optional + doc: | + Type of laserline filter used to supress the laser, if measurements + close to the laserline are performed. + enumeration: [long-pass filter, short-pass filter, notch filter, reflection filter, neutral density filter, other] + intended_use: + exists: optional + doc: | + Type of laserline filter used to supress the laser, if measurements + close to the laserline are performed. + enumeration: [laser line cleanup, raylight line removal, spectral filtering, intensity manipulation, other] + filter_characteristics(NXdata): + exists: optional + doc: | + Properties of the spectral filter such as wavelength dependent Transmission + or reflectivity. + \@characteristics_type: + exists: optional + doc: | + Which property is used to form the spectral properties of light, + i.e. transmission or reflection properties. + enumeration: [transmission, reflection] + device_information(NXfabrication): + exists: optional + + # Later for rework of specific optical elements + # (NXbeam_splitter): + # exists: optional + # doc: | + # Can be used to describe a beam splitter as optical element. + (NXbeam_transfer_matrix_table): + exists: optional + doc: | + Allows description of beam properties via matrices, which relate ingoing with + outgoing beam properties. + sample_stage(NXmanipulator): + exists: optional + doc: | + Sample stage (or manipulator) for positioning of the sample. This should + only contain the spatial orientation of movement. + stage_type: + exists: optional + doc: | + Specify the type of the sample stage. + enumeration: [manual stage, scanning stage, liquid stage, gas cell, cryostat, heater, other] + stage_type_other: + exists: optional + doc: | + If "other" was chosen in stage_type, enter here a free text description + of the stage type. + transformations(NXtransformations): + exists: optional + doc: | + This allows a description of the stages relation or orientation and + position with respect to the sample or beam, if an laboratory or + an stage coordinate system is defined. + beam_sample_relation: + exists: optional + doc: | + Description of relation of the beam with the sample. How dit the + sample hit the beam, e.g. 'center of sample, long edge parallel + to the plane of incidence'. + Is redundent, if a full orientation description is done via the + stages "transformations" entry. + device_information(NXfabrication): + exists: optional + temperature_sensor(NXsensor): + exists: recommended + name: + exists: recommended + measurement: + enumeration: [temperature] + type: + exists: optional + value(NX_FLOAT): + device_information(NXfabrication): + exists: optional + temp_control_TYPE(NXactuator): + exists: optional + doc: | + Type of control for the sample temperature. Replace TYPE by "cryostat" or + "heater" to specify it. + name: + exists: recommended + physical_quantity: + enumeration: [temperature] + cooler_or_heater: + exists: recommended + enumeration: [cooler, heater] + type: + exists: optional + doc: | + Hardware used for actuation, i.e. laser, gas lamp, filament, resistive + (NXpid): + exists: recommended + setpoint(NX_FLOAT): + exists: recommended + device_information(NXfabrication): + exists: optional + device_information(NXfabrication): + exists: recommended + doc: | + General device information of the optical spectroscopy setup, if + suitable (e.g. for a tabletop spectrometer or other non-custom build setups). + For custom build setups, this may be limited to the construction year. + vendor: + exists: recommended + model: + exists: recommended + identifier(NXidentifier): + exists: recommended + construction_year(NX_DATE_TIME): + exists: optional + software_TYPE(NXprogram): + exists: recommended + program: + doc: | + Commercial or otherwise defined given name of the program that was + used to control any parts of the optical spectroscopy setup. + The uppercase TYPE should be replaced by a specification name, i.e. + "software_detector" or "software_stage" to specify the respective + program or software components. + \@version: + exists: recommended + doc: | + Either version with build number, commit hash, or description of a + (online) repository where the source code of the program and build + instructions can be found so that the program can be configured in + such a way that result files can be created ideally in a + deterministic manner. + \@URL: + exists: optional + doc: | + Description of the software by persistent resource, where the program, + code, script etc. can be found. + instrument_calibration_DEVICE(NXcalibration): + exists: recommended + doc: | + Pre-calibration of an arbitrary device of the instrumental setup, which + has the name DEVICE. You can specify here how, at which time by which method + the calibration was done. As well the accuracy and a link to the calibration + dataset. + device_path: + exists: recommended + doc: | + Path to the device, which was calibrated. + Example: entry/instrument/DEVICE + calibration_accuracy(NXdata): + exists: optional + doc: | + Provide data about the determined accuracy of the device, this may + may be a single value or a dataset like wavelength error vs. wavelength etc. + calibration_status(NX_CHAR): + exists: recommended + doc: | + Was a calibration performed? If yes, when was it done? If the + calibration time is provided, it should be specified in + ENTRY/INSTRUMENT/calibration/calibration_time. + enumeration: [calibration time provided, no calibration, within 1 hour, within 1 day, within 1 week] + calibration_time(NX_DATE_TIME): + exists: optional + doc: | + If calibtration status is 'calibration time provided', specify the + ISO8601 date when calibration was last performed before this + measurement. UTC offset should be specified. + (NXdata): + exists: optional + doc: | + Generic data which does not fit to the 'NX_FLOAT' fields in NXproces. + This can be for example the instrument response function. + wavelength_resolution(NXresolution): + exists: optional + doc: | + The overall resolution of the optical instrument. + physical_quantity: + enumeration: [wavelength] + type: + exists: recommended + resolution(NX_FLOAT): + unit: NX_WAVELENGTH + doc: | + Minimum distinguishable wavelength separation of peaks in spectra. + sample_medium_refractive_indices(NX_FLOAT): + exists: optional + unit: NX_UNITLESS + doc: | + Array of pairs of complex refractive indices n + ik of the medium + for every measured spectral point/wavelength/energy. + Only necessary if the measurement was performed not in air, or + something very well known, e.g. high purity water. + dimensions: + rank: 2 + dim: (2, N_spectrum) + (NXsample): + doc: | + Properties of the sample, such as sample type, layer structure, + chemical formula, atom types, its history etc. + Information about the sample stage and sample environment should be + described in ENTRY/INSTRUMENT/sample_stage. + name: + sample_id: + exists: recommended + doc: | + Locally unique ID of the sample, used in the reasearch institute or group. + physical_form: + exists: recommended + doc: | + State the form of the sample, examples are: + thin film, single crystal, poly crystal, amorphous, single layer, + multi layer, liquid, gas, pellet, powder. + Generic properties of liquids or gases see NXsample properties. + description: + exists: optional + doc: | + Free text description of the sample. + chemical_formula: + exists: recommended + doc: | + Chemical formula of the sample. Use the Hill system (explained here: + https://en.wikipedia.org/wiki/Chemical_formula#Hill_system) to write + the chemical formula. In case the sample consists of several layers, + this should be a list of the chemical formulas of the individual + layers, where the first entry is the chemical formula of the top + layer (the one on the front surface, on which the light incident). + The order must be consistent with layer_structure + atom_types: + exists: optional + doc: | + List of comma-separated elements from the periodic table that are + contained in the sample. If the sample substance has multiple + components, all elements from each component must be included in + 'atom_types'. + preparation_date(NX_DATE_TIME): + exists: recommended + doc: | + ISO 8601 time code with local time zone offset to UTC information + when the specimen was prepared. + + Ideally, report the end of the preparation, i.e. the last known timestamp when + the measured specimen surface was actively prepared. + history(NXhistory): + exists: recommended + doc: | + A set of activities that occurred to the sample prior to/during the experiment. + temperature(NXenvironment): + exists: recommended + doc: | + Sample temperature (either controlled or just measured). + temperature_nominal: + exists: optional + doc: | + If no sensor was available for the determination of temperature, selected + a nominal value which represents approximately the situation of sample temperature. + enumeration: [room temperature, liquid helium temperature, liquid nitrogen temperature, other] + temperature_nominal_other(NX_NUMBER): + exists: optional + unit: NX_TEMPERATURE + doc: | + If temperature_nominal is "other", enter here a nominal/assumed/estimated + sample temperature. + temperature_sensor(NXsensor): + exists: recommended + doc: | + Temperature sensor measuring the sample temperature. + This should be a link to /entry/instrument/manipulator/temperature_sensor. + sample_heater(NXactuator): + exists: optional + doc: | + Device to heat the sample. + This should be a link to /entry/instrument/manipulator/sample_heater. + sample_cooler(NXactuator): + exists: optional + doc: | + Device for cooling the sample (Cryostat, Airflow cooler, etc.). + This should be a link to /entry/instrument/manipulator/cryostat. + (NXenvironment): + exists: optional + doc: | + Arbirary sample property which may be varied during the experiment + and controlled by a device. Examples are pressure, voltage, magnetic field etc. + Similar to the temperautre description of the sample. + sample_medium: + exists: recommended + doc: | + Medium, in which the sample is placed. + enumeration: [air, vacuum, inert atmosphere, oxidising atmosphere, reducing atmosphere, sealed can, water, other] + + # Make something like NXlayer_structure_sample? + thickness(NX_NUMBER): + exists: optional + unit: NX_LENGTH + doc: | + (Measured) sample thickness. + + The information is recorded to qualify if the light used was likely + able to shine through the sample. + + In this case the value should be set to the actual thickness of + the specimen viewed for an illumination situation where the nominal + surface normal of the specimen is parallel to the optical axis. + thickness_determination: + exists: optional + doc: | + If a thickness if given, please specify how this thickness was estimated or + determined. + + # Maybe consider here to include NXsample_component_set. + layer_structure: + exists: optional + doc: | + Qualitative description of the layer structure for the sample, + starting with the top layer (i.e. the one on the front surface, on + which the light incident), e.g. native oxide/bulk substrate, or + Si/native oxide/thermal oxide/polymer/peptide. + sample_orientation: + exists: optional + doc: | + Specify the sample orientation, how is its sample normal oriented + relative in the laboratory reference frame, incident beam reference + frame. + substrate: + exists: recommended + doc: | + If the sample is grown or fixed on a substrate, specify this here by + a free text description. + (NXdata): + doc: | + Here generic types of data may be saved.. This may refer to data derived + from single or multiple raw measurements (i.e. several intensities are + evaluated for different parameters: ellipsometry -> psi and delta) - + i.e. non-raw data. + As well plotable data may be stored/linked here, which provides the most suitable + representation of the data (for the respective community). + + You may provide multiple instances of NXdata + \@axes: + doc: | + Spectrum, i.e. x-axis of the data (e.g. wavelength, energy etc.) + \@signal: + doc: | + Spectrum, i.e. y-axis of the data (e.g. counts, intensity) + measurement_data_calibration_TYPE(NXprocess): + exists: recommended + wavelength_calibration(NXcalibration): + exists: optional + calibrated_axis(NX_FLOAT): + exists: recommended + doc: | + Location to save the calibrated wavelength data. + + # The old "data_collection(NXprocess)" is now replaced by more flexbile + # NXdata. The detailed inclusion of a data collection description (i.e. + # raw data from ellipsometry as polarization values to the usually used + # psi and delta values), will be done later after the NXopt workshop. + derived_parameters(NXprocess): + exists: optional + doc: | + Parameters that are derived from the measured data. + depolarization(NX_NUMBER): + exists: optional + unit: NX_UNITLESS + doc: | + Light loss due to depolarization as a value in [0-1]. + dimensions: + rank: 3 + dim: (N_measurements, 1, N_spectrum) + jones_quality_factor(NX_NUMBER): + exists: optional + unit: NX_UNITLESS + doc: | + Jones quality factor. + dimensions: + rank: 3 + dim: (N_measurements, 1, N_spectrum) + reflectivity(NX_NUMBER): + exists: optional + unit: NX_UNITLESS + doc: | + Reflectivity. + dimensions: + rank: 3 + dim: (N_measurements, 1, N_spectrum) + transmittance(NX_NUMBER): + exists: optional + unit: NX_UNITLESS + doc: | + Transmittance. + dimensions: + rank: 3 + dim: (N_measurements, 1, N_spectrum) + ANALYSIS_program(NXprocess): + exists: optional + program: + doc: | + Commercial or otherwise defined given name of the program that was + used to generate or calculate the derived parameters. + If home written, one can provide the actual steps in the NOTE + subfield here. + version: + doc: | + Either version with build number, commit hash, or description of a + (online) repository where the source code of the program and build + instructions can be found so that the program can be configured in + such a way that result files can be created ideally in a + deterministic manner. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 12c67a466e389862f20db7d4af090899e2ef8d60fc58ace7c28a837421a208a1 +# +# +# +# +# +# +# +# Variables used throughout the document, e.g. dimensions or parameters. +# +# +# +# Length of the spectrum array (e.g. wavelength or energy) of the measured +# data. +# +# +# +# +# Number of measurements (1st dimension of measured_data array). This is +# equal to the number of parameters scanned. For example, if the experiment +# was performed at three different temperatures and two different pressures +# N_measurements = 2*3 = 6. +# +# +# +# +# A general application definition of optical spectroscopy elements, which may +# be used as a template to derive specialized optical spectroscopy experiments. +# +# Possible specializations are ellipsometry, Raman spectroscopy, photoluminescence, +# reflectivity/transmission spectroscopy. +# +# A general optical experiment consists of (i) a light/photon source, (ii) a sample, +# (iii) a detector. +# +# For any free text descriptions, it is recommended to enter data in english +# language, as this is the most FAIR representation. +# +# +# +# +# An application definition describing a general optical experiment. +# +# +# +# Version number to identify which definition of this application +# definition was used for this entry/data. +# +# +# +# +# URL where to find further material (documentation, examples) relevant +# to the application definition. +# +# +# +# +# +# +# +# +# +# Datetime of the start of the measurement. +# Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, +# otherwise, the local time zone is assumed per ISO8601. +# +# It is required to enter at least one of both measurement times, either "start_time" or "end_time". +# +# +# +# +# Datetime of the end of the measurement. +# Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, +# otherwise the local time zone is assumed per ISO8601. +# +# It is required to enter at least one of both measurement times, either "start_time" or "end_time". +# +# +# +# +# A (globally persistent) unique identifier of the experiment. +# (i) The identifier is usually defined by the facility, laboratory or +# principal investigator. +# (ii) The identifier enables to link experiments to e.g. proposals. +# +# +# +# +# +# Select the range of validity of this identier. +# Local: Setup#1 at Institute building #2 in Room #3 +# Global: Unique identification of with by unique location and unique +# globally persistent time stamp. +# +# +# +# +# +# +# +# +# +# +# An optional free-text description of the experiment. +# +# Users are strongly advised to parameterize the description of their experiment +# by using respective groups and fields and base classes instead of writing prose +# into this field. +# +# The reason is that such a free-text field is difficult to machine-interpret. +# The motivation behind keeping this field for now is to learn how far the +# current base classes need extension based on user feedback. +# +# +# +# +# Specify the type of the optical experiment. +# +# Chose other if none of these methods are suitable. You may specify +# fundamental characteristics or properties in the experimental sub-type. +# +# For Raman spectroscopy or ellipsometry use the respective specializations +# of NXoptical_spectroscopy. +# +# +# +# +# +# +# +# +# +# +# Specify a special property or characteristic of the experiment, which specifies +# the generic experiment type. +# +# +# +# +# +# +# +# +# +# +# If "other" was selected in "experiment_type" and/or in "experiment_sub_type", +# specify the experiment here with a free text name, which is knwon in the +# respective community of interest. +# +# +# +# +# Description of one or more coordinate systems that are specific to the +# experiment. Examples are beam centered, sample-normal centered, +# laboratory-system centered, sample-stage centered, crystal-symmetry centered. +# +# +# +# +# This refers to the coordinate system along the beam path. The origin and +# base is defined at z=0, where the incident beam hits the sample at the surface. +# +# +# +# +# This is the default NeXus coordinate system (McStas), if the transformation +# does not change the coordinate system at all - i.e. it is unity. +# Otherwise, by this a respective transformation of the beam +# reference frame to the default reference frame could be made. i.e. +# exchange of x and z coordinate, rotation of respective coordinates +# towards each other. +# +# +# +# +# +# +# Link to transformations defining the sample-normal base coordinate system, +# which is defined such that the positive z-axis is parallel to the sample normal, +# and the x-y-plane lies inside the sample surface. +# +# +# +# +# Set of transformations, describing the orientation of the sample-normal coordinate system +# with respect to the beam coordinate system (.). +# +# +# +# +# +# +# Contact information and eventually details of at persons who +# performed the measurements. This can be for example the principal +# investigator or student. Examples are: name, affiliation, address, telephone +# number, email, role as well as identifiers such as orcid or similar. +# It is recommended to add multiple users if relevant. +# +# Due to data privacy concerns, there is no minimum requirement. +# If no user with specific name is allowed to be given, it is required to +# assign at least an affiliation +# +# +# +# +# Devices or elements of the optical spectroscopy setup described with its +# properties and general information. +# +# This includes for example: +# - The beam device's or instrument's model, company, serial number, construction year, etc. +# - Used software or code +# - Experiment descriptive parameters as reference frames, resolution, calibration +# - Photon beams with their respective properties such as angles and polarization +# - Various optical beam path devices, which interact, manipulate or measure optical beams +# - Characteristics of the medium surrounding the sample +# - "Beam devices" for a beam path description +# - Stages(NXmanipulator) +# - Sensors and actuators to control or measure sample or beam properties +# +# +# +# This can be used to describe properties of a photon beam. +# A beam is always defined between two beam_devices, via +# "previous_device" and "next_device". +# +# It is required to define at least one incident beam which is incident +# to the sample. You may specify if this beam parameters are acutally measured +# or just nominal. +# If this beam is the output of a source, chose the same +# name appendix as for the NXsource instance (e.g. TYPE=532nm) +# +# +# +# Select the reliability of the respective beam characteristics. Either, +# the parameters are measured via another device or method or just given +# nominally via the properties of a light source properties (532nm, 100mW). +# +# +# +# +# +# +# +# +# +# +# +# +# The path to the device which emitted this beam (light source or frequency doubler). +# +# This parameter is recommended, if the previous optical element is a photon source. +# In this way, the properties of the laser or light souce can be described +# and associated. +# The beam should be named with the same appendix as the source, e.g., +# for TYPE=532nmlaser, there should be both a NXsource named +# "source_532nmlaser" and a NXbeam named "beam_532nmlaser". +# +# Example: /entry/instrument/source_532nmlaser +# +# +# +# +# +# +# +# +# +# +# +# +# +# Angle of the linear polarized light, with respect to a fixed arbitrary +# defined 0° position. This can be used if no definition of respective +# cooridnate systems for beam and sample normal is done. If coordinate systems +# are defined, refer to beam "incident_polarization". +# +# +# +# +# +# +# +# +# +# +# +# +# Description of the detector type. +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# Type of detector, if "other" was selected in "detector_type". +# +# +# +# +# Contains the raw data collected by the detector before calibration. +# The data which is considered raw might change from experiment to experiment +# due to hardware pre-processing of the data. +# This field ideally collects the data with the lowest level of processing +# possible. +# +# +# +# +# +# +# +# +# +# Raw data before calibration. +# +# +# +# +# +# Specify respective hardware which was used for the detector. For +# example special electronics required for time-correlated single photon +# counting (TCSPC). +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# Specification of type, may also go to name. +# +# +# +# +# +# If available, name/ID/norm of the light source standard. +# +# +# +# +# Details about the device information. +# +# +# +# +# The path to a beam emitted by this source. +# Should be named with the same appendix, e.g., +# for TYPE=532nmlaser, there should as well be +# a NXbeam named "beam_532nmlaser" together with this source +# instance named "source_532nmlaser" +# +# Example: /entry/instrument/beam_532nmlaser +# +# +# +# +# +# +# +# +# Defines the reference frame which is used to describe the sample orientation +# with respect to the beam directions. +# +# A beam centered description is the default and uses 4 angles(similar to XRD): +# - Omega (angle between sample surface and incident beam) +# - 2Theta (angle between the transmitted beam and the detection beam) +# - Chi (sample tilt angle, angle between plane#1 and the surface normal, +# plane#1 = spanned by incidence beam and detection +# and detection. If Chi=0°, then plane#1 is the plane of +# incidence in reflection setups) +# - Phi (inplane rotation of sample, rotation axis is the samples +# surface normal) +# +# +# A sample normal centered description is as well possible: +# - angle of incidence (angle between incident beam and sample surface) +# - angle of detection (angle between detection beam and sample surface) +# - angle of incident and detection beam +# - angle of in-plane sample rotation (direction along the sample's surface normal) +# +# An arbitrary reference frame can be defined by "reference_frames" +# and used via "instrument/angle_sample_and_beam_TYPE" +# +# +# +# +# +# +# +# +# Angle between sample incident beam and sample surface. +# +# +# +# +# Angle between incident and detection beam +# +# +# +# +# Sample tilt between sample normal, and the plane spanned by detection and +# incident beam. +# +# +# +# +# Inplane rotation of the sample, with rotation axis along sample normal. +# +# +# +# +# Angle(s) of the incident beam vs. the normal of the bottom reflective +# (substrate) surface in the sample. These two directions span the plane +# of incidence. +# +# +# +# +# Detection angle(s) of the beam reflected or scattered off the sample +# vs. the normal of the bottom reflective (substrate) surface in the +# sample if not equal to the angle(s) of incidence. +# These two directions span the plane of detection. +# +# +# +# +# Angle between the incident and detection beam. +# If angle_of_detection + angle_of_incidence = angle_of_incident_and_detection_beam, +# then the setup is a reflection setup. +# If angle_of_detection + angle_of_incidence != angle_of_incident_and_detection_beam +# then the setup may be a light scattering setup. +# (i.e. 90° + 90° != 90°, i.e. incident and detection beam in the sample surface, but +# the angle source-sample-detector is 90°) +# +# +# +# +# Angle of the inplane orientation of the sample. This might be an arbitrary, +# angle without specific relation to the sample symmetry, +# of the angle to a specific sample property (i.e. crystallographic axis or sample +# shape such as wafer flat) +# +# +# +# +# Set of transformations, describing the relative orientation of different +# parts of the experiment (beams or sample). You may select one of the specified +# angles for incident and detection beam or sample, and then use polar and azimuthal +# angles to define the direction via sperical coordinates. +# This allows consistent defintion between different coordinate system. +# You may refer to self defined coordinate system as well. +# +# +# If "angle_reference_frame = beam centered", then this coordinate system is used: +# McStas system (NeXus default) +# (https://manual.nexusformat.org/design.html#mcstas-and-nxgeometry-system) +# +# i.e. the z-coordinate math:`[0,0,1]` is along the incident beam direction and +# the x-coordinate math:`[1,0,0]` is in the horizontal plane. Hence, usually math:`[0,1,0]` +# is vertically oriented. +# +# If "angle_reference_frame = sample-normal centered", then this coordinate +# system is used +# z - math:`[0,0,1]` along sample surface normal +# x - math:`[1,0,0]` defined by sample surface projected incident beam. +# y - math:`[0,1,0]` in the sample surface, orthogonal to z and x. +# For this case, x may be ill defined, if the incident beam is perpendicular +# to the sample surface. In this case, use the beam centered description. +# +# +# +# +# +# +# +# +# +# +# Rotation about the y axis (polar rotation within the sample plane). +# +# +# +# +# +# +# +# +# +# +# +# +# +# Path to a transformation that places the sample surface +# into the origin of the arpes_geometry coordinate system. +# +# +# +# +# +# Rotation about the z axis (azimuthal rotation within the sample plane). +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# Specify if there is a lateral offset on the sample surface, between the focal +# points of the incident beam and the detection beam. +# +# +# +# +# Describes the order of respective beam devices in the optical beam +# path. +# +# Everything object which interacts or modifies optical beam properties, +# may be an beam device, e.g. Filter, Window, Beamsplitter, Photon Source, +# Detector, etc, +# +# It is intended, to include this functionality later to "older" beam +# components, such as NXsource, NXdetector, NXlens, etc. +# Until this is possbible, auxillary beam devices have to be created, +# for each "older" beam component instead, to allow a beam path description. +# To link the auxillary beam device to the real device properties, the +# attribute \@device should be used. +# +# +# +# Reference to beam device, which is described by a NeXus concept +# (e.g. for NXsource, entry/instrument/source_TYPE). +# +# +# +# +# Reference to the previous beam device, from which the photon beam came +# to reach this beam device. A photon source is related as origin by ".". +# This enables a logical order description of the optical setup. +# +# +# +# +# +# This is the optical element used to focus or collect light. This may +# be a genereic lens or microcope objectives which are used for the +# Raman scattering process. +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# polarization filter to prepare light to be measured or to be incident +# on the sample. +# Genereric polarization filter porperties may be implemented via NXfilter_pol +# at a later stage. +# +# +# +# Physical principle of the polarization filter used to create a +# defined incident or scattered light state. +# +# +# +# +# +# +# +# +# +# +# +# Specific name or type of the polarizer used. +# +# Free text, for example: Glan-Thompson, Glan-Taylor, Rochon Prism, Wollaston +# Polarizer... +# +# +# +# +# +# +# Spectral filter used to modify properties of the scattered or incident light. +# Genereric spectral filter porperties may be implemented via NXfilter_spec +# at a later stage. +# +# +# +# Type of laserline filter used to supress the laser, if measurements +# close to the laserline are performed. +# +# +# +# +# +# +# +# +# +# +# +# +# Type of laserline filter used to supress the laser, if measurements +# close to the laserline are performed. +# +# +# +# +# +# +# +# +# +# +# +# Properties of the spectral filter such as wavelength dependent Transmission +# or reflectivity. +# +# +# +# Which property is used to form the spectral properties of light, +# i.e. transmission or reflection properties. +# +# +# +# +# +# +# +# +# +# +# +# +# Allows description of beam properties via matrices, which relate ingoing with +# outgoing beam properties. +# +# +# +# +# Sample stage (or manipulator) for positioning of the sample. This should +# only contain the spatial orientation of movement. +# +# +# +# Specify the type of the sample stage. +# +# +# +# +# +# +# +# +# +# +# +# +# +# If "other" was chosen in stage_type, enter here a free text description +# of the stage type. +# +# +# +# +# This allows a description of the stages relation or orientation and +# position with respect to the sample or beam, if an laboratory or +# an stage coordinate system is defined. +# +# +# +# +# Description of relation of the beam with the sample. How dit the +# sample hit the beam, e.g. 'center of sample, long edge parallel +# to the plane of incidence'. +# Is redundent, if a full orientation description is done via the +# stages "transformations" entry. +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# Type of control for the sample temperature. Replace TYPE by "cryostat" or +# "heater" to specify it. +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# Hardware used for actuation, i.e. laser, gas lamp, filament, resistive +# +# +# +# +# +# +# +# +# +# General device information of the optical spectroscopy setup, if +# suitable (e.g. for a tabletop spectrometer or other non-custom build setups). +# For custom build setups, this may be limited to the construction year. +# +# +# +# +# +# +# +# +# +# Commercial or otherwise defined given name of the program that was +# used to control any parts of the optical spectroscopy setup. +# The uppercase TYPE should be replaced by a specification name, i.e. +# "software_detector" or "software_stage" to specify the respective +# program or software components. +# +# +# +# Either version with build number, commit hash, or description of a +# (online) repository where the source code of the program and build +# instructions can be found so that the program can be configured in +# such a way that result files can be created ideally in a +# deterministic manner. +# +# +# +# +# Description of the software by persistent resource, where the program, +# code, script etc. can be found. +# +# +# +# +# +# +# Pre-calibration of an arbitrary device of the instrumental setup, which +# has the name DEVICE. You can specify here how, at which time by which method +# the calibration was done. As well the accuracy and a link to the calibration +# dataset. +# +# +# +# Path to the device, which was calibrated. +# Example: entry/instrument/DEVICE +# +# +# +# +# Provide data about the determined accuracy of the device, this may +# may be a single value or a dataset like wavelength error vs. wavelength etc. +# +# +# +# +# Was a calibration performed? If yes, when was it done? If the +# calibration time is provided, it should be specified in +# ENTRY/INSTRUMENT/calibration/calibration_time. +# +# +# +# +# +# +# +# +# +# +# +# If calibtration status is 'calibration time provided', specify the +# ISO8601 date when calibration was last performed before this +# measurement. UTC offset should be specified. +# +# +# +# +# Generic data which does not fit to the 'NX_FLOAT' fields in NXproces. +# This can be for example the instrument response function. +# +# +# +# +# +# The overall resolution of the optical instrument. +# +# +# +# +# +# +# +# +# +# Minimum distinguishable wavelength separation of peaks in spectra. +# +# +# +# +# +# Array of pairs of complex refractive indices n + ik of the medium +# for every measured spectral point/wavelength/energy. +# Only necessary if the measurement was performed not in air, or +# something very well known, e.g. high purity water. +# +# +# +# +# +# +# +# +# +# Properties of the sample, such as sample type, layer structure, +# chemical formula, atom types, its history etc. +# Information about the sample stage and sample environment should be +# described in ENTRY/INSTRUMENT/sample_stage. +# +# +# +# +# Locally unique ID of the sample, used in the reasearch institute or group. +# +# +# +# +# State the form of the sample, examples are: +# thin film, single crystal, poly crystal, amorphous, single layer, +# multi layer, liquid, gas, pellet, powder. +# Generic properties of liquids or gases see NXsample properties. +# +# +# +# +# Free text description of the sample. +# +# +# +# +# Chemical formula of the sample. Use the Hill system (explained here: +# https://en.wikipedia.org/wiki/Chemical_formula#Hill_system) to write +# the chemical formula. In case the sample consists of several layers, +# this should be a list of the chemical formulas of the individual +# layers, where the first entry is the chemical formula of the top +# layer (the one on the front surface, on which the light incident). +# The order must be consistent with layer_structure +# +# +# +# +# List of comma-separated elements from the periodic table that are +# contained in the sample. If the sample substance has multiple +# components, all elements from each component must be included in +# 'atom_types'. +# +# +# +# +# ISO 8601 time code with local time zone offset to UTC information +# when the specimen was prepared. +# +# Ideally, report the end of the preparation, i.e. the last known timestamp when +# the measured specimen surface was actively prepared. +# +# +# +# +# A set of activities that occurred to the sample prior to/during the experiment. +# +# +# +# +# Sample temperature (either controlled or just measured). +# +# +# +# If no sensor was available for the determination of temperature, selected +# a nominal value which represents approximately the situation of sample temperature. +# +# +# +# +# +# +# +# +# +# +# If temperature_nominal is "other", enter here a nominal/assumed/estimated +# sample temperature. +# +# +# +# +# Temperature sensor measuring the sample temperature. +# This should be a link to /entry/instrument/manipulator/temperature_sensor. +# +# +# +# +# Device to heat the sample. +# This should be a link to /entry/instrument/manipulator/sample_heater. +# +# +# +# +# Device for cooling the sample (Cryostat, Airflow cooler, etc.). +# This should be a link to /entry/instrument/manipulator/cryostat. +# +# +# +# +# +# Arbirary sample property which may be varied during the experiment +# and controlled by a device. Examples are pressure, voltage, magnetic field etc. +# Similar to the temperautre description of the sample. +# +# +# +# Medium, in which the sample is placed. +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# +# (Measured) sample thickness. +# +# The information is recorded to qualify if the light used was likely +# able to shine through the sample. +# +# In this case the value should be set to the actual thickness of +# the specimen viewed for an illumination situation where the nominal +# surface normal of the specimen is parallel to the optical axis. +# +# +# +# +# If a thickness if given, please specify how this thickness was estimated or +# determined. +# +# +# +# +# +# Qualitative description of the layer structure for the sample, +# starting with the top layer (i.e. the one on the front surface, on +# which the light incident), e.g. native oxide/bulk substrate, or +# Si/native oxide/thermal oxide/polymer/peptide. +# +# +# +# +# Specify the sample orientation, how is its sample normal oriented +# relative in the laboratory reference frame, incident beam reference +# frame. +# +# +# +# +# If the sample is grown or fixed on a substrate, specify this here by +# a free text description. +# +# +# +# +# +# Here generic types of data may be saved.. This may refer to data derived +# from single or multiple raw measurements (i.e. several intensities are +# evaluated for different parameters: ellipsometry -> psi and delta) - +# i.e. non-raw data. +# As well plotable data may be stored/linked here, which provides the most suitable +# representation of the data (for the respective community). +# +# You may provide multiple instances of NXdata +# +# +# +# Spectrum, i.e. x-axis of the data (e.g. wavelength, energy etc.) +# +# +# +# +# Spectrum, i.e. y-axis of the data (e.g. counts, intensity) +# +# +# +# +# +# +# +# Location to save the calibrated wavelength data. +# +# +# +# +# +# +# +# Parameters that are derived from the measured data. +# +# +# +# Light loss due to depolarization as a value in [0-1]. +# +# +# +# +# +# +# +# +# +# Jones quality factor. +# +# +# +# +# +# +# +# +# +# Reflectivity. +# +# +# +# +# +# +# +# +# +# Transmittance. +# +# +# +# +# +# +# +# +# +# +# Commercial or otherwise defined given name of the program that was +# used to generate or calculate the derived parameters. +# If home written, one can provide the actual steps in the NOTE +# subfield here. +# +# +# +# +# Either version with build number, commit hash, or description of a +# (online) repository where the source code of the program and build +# instructions can be found so that the program can be configured in +# such a way that result files can be created ideally in a +# deterministic manner. +# +# +# +# +# +# diff --git a/contributed_definitions/nyaml/NXpiezo_config_spm.yaml b/contributed_definitions/nyaml/NXpiezo_config_spm.yaml new file mode 100644 index 000000000..c5ddd1370 --- /dev/null +++ b/contributed_definitions/nyaml/NXpiezo_config_spm.yaml @@ -0,0 +1,192 @@ +category: base +doc: | + A base class describing piezo settings for scanning probe microscopy. + + The piezoelectric material of SPM actuators gets deformed due to the applied electric field. + Description below shows calibration coefficients and other configuration parameters of the piezo actuators. + +# Discussion: No need to create this base class rather we can define in spm application definition. +type: group +NXpiezo_config_spm(NXobject): + piezo_material(NXpiezoelectric_material): + doc: | + The material description and properties of the piezoelectric scanner materials. + curvature_radius_N(NX_NUMBER): + unit: NX_LENGTH + doc: | + The N (substring) denotes X or Y. There are 2 parameters in X and Y directions. It can be set + approximately to the length of the piezo tube along X and Y axis. + calibration(NXcalibration): + calibration_type(NX_CHAR): + doc: | + The name of the calibration type, sometimes it is called + `active calibration`. + enumeration: [active, passive] + calibration_name: + doc: | + A specific name of the calibration (e.g. active type with name 'LHe'). + caliberation_date(NX_DATE_TIME): + doc: | + The date of the calibration. + calibrated_AXIS(NX_NUMBER): + doc: | + The AXIS (substring) denotes X, Y or Z. There are three directions X, Y, and Z for calibration, + along with three available parameters each: Calibration (m/V), Range (m), and HV gain. Only + two of these parameters are required to define the calibration. Consequently, when any + value is changed, one of the other values will be automatically updated. + hv_gain_N(NX_NUMBER): + doc: | + The N (substring) denotes X or Y or Z. In some systems, there is an HV gain readout feature. For + these systems, the HV gain should be automatically adjusted whenever the gain is + changed at the high voltage amplifier. + range_N(NX_NUMBER): + unit: NX_LENGTH + doc: | + The N (substring) denotes X or Y or Z. There are 3 parameters in X, Y and Z directions. The range + is the maximum distance the piezo can move. + calibration_coeffecient_N(NX_NUMBER): + unit: NX_ANY + doc: | + The calibration coefficient is the ratio of the actual distance moved by the piezo due to + the voltage applied to the piezo. It is also called first-order correction. + tilt_N(NX_NUMBER): + unit: NX_ANGLE + doc: | + The N (substring) denotes X and Y directions, and for both directions tilt needs to be adjusted according + to the actual surface. + 2nd_order_corr_N(NX_NUMBER): + unit: NX_ANY + doc: | + The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo + characteristics to compensate the error for that axis. + The following equation shows the + interpretation of the 2nd order correction parameters, For the X-piezo: "Ux = 1/cx · X + cxx · X2" + with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" + where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for + such the second-order correction is (V/m^2). + drift_N(NX_NUMBER): + unit: NX_ANY + doc: | + The N (substring) denotes X, Y and Z directions. Define the + drift speed [m/s] for all three axes. When the compensation is on, the piezo will start to + move at that speed. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 953b4253698e2e4e24a47d81d81f7629f1846c7ac3f25be794df86f86367323b +# +# +# +# +# +# +# A base class describing piezo settings for scanning probe microscopy. +# +# The piezoelectric material of SPM actuators gets deformed due to the applied electric field. +# Description below shows calibration coefficients and other configuration parameters of the piezo actuators. +# +# +# +# The material description and properties of the piezoelectric scanner materials. +# +# +# +# The N (substring) denotes X or Y. There are 2 parameters in X and Y directions. It can be set +# approximately to the length of the piezo tube along X and Y axis. +# +# +# +# +# +# +# The name of the calibration type, sometimes it is called +# `active calibration`. +# +# +# +# +# +# +# +# +# A specific name of the calibration (e.g. active type with name 'LHe'). +# +# +# +# +# The date of the calibration. +# +# +# +# +# The AXIS (substring) denotes X, Y or Z. There are three directions X, Y, and Z for calibration, +# along with three available parameters each: Calibration (m/V), Range (m), and HV gain. Only +# two of these parameters are required to define the calibration. Consequently, when any +# value is changed, one of the other values will be automatically updated. +# +# +# +# +# The N (substring) denotes X or Y or Z. In some systems, there is an HV gain readout feature. For +# these systems, the HV gain should be automatically adjusted whenever the gain is +# changed at the high voltage amplifier. +# +# +# +# +# The N (substring) denotes X or Y or Z. There are 3 parameters in X, Y and Z directions. The range +# is the maximum distance the piezo can move. +# +# +# +# +# The calibration coefficient is the ratio of the actual distance moved by the piezo due to +# the voltage applied to the piezo. It is also called first-order correction. +# +# +# +# +# The N (substring) denotes X and Y directions, and for both directions tilt needs to be adjusted according +# to the actual surface. +# +# +# +# +# The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo +# characteristics to compensate the error for that axis. +# The following equation shows the +# interpretation of the 2nd order correction parameters, For the X-piezo: "Ux = 1/cx · X + cxx · X2" +# with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" +# where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for +# such the second-order correction is (V/m^2). +# +# +# +# +# The N (substring) denotes X, Y and Z directions. Define the +# drift speed [m/s] for all three axes. When the compensation is on, the piezo will start to +# move at that speed. +# +# +# +# diff --git a/contributed_definitions/nyaml/NXpiezoelectric_material.yaml b/contributed_definitions/nyaml/NXpiezoelectric_material.yaml new file mode 100644 index 000000000..7dc433a5b --- /dev/null +++ b/contributed_definitions/nyaml/NXpiezoelectric_material.yaml @@ -0,0 +1,191 @@ +category: base +doc: | + Description and properties of the piezoelectric actuator materials. + The piezoelectric actuator is usually composed of polycrystalline solids and + attached at the head of the tip or cantilever. The material deforms when the external electric field is applied. +type: group +NXpiezoelectric_material(NXobject): + + # Online links: + # 1. ttps://www.ulprospector.com/knowledge/2689/pe-piezoelectric-materials/#:~:text=piezoelectric ceramics, such as lithium,as polyvinylidene fluoride (PVDF). + # 2. https://info.piezo.com/hubfs/Data-Sheets/piezo-material-properties-data-sheet-20201112.pdf + # 3. https://application.wiley-vch.de/books/sample/3527345124_c01.pdf + name(NX_CHAR): + doc: | + The name of the material of the piezo scanner such as Lead Zirconate Titanates + (PZTs). + chemical_description(NXsubstance): + doc: | + The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. + type(NX_CHAR): + doc: | + The type of the material of the piezo scanner (e.g. piezoelectric ceramics, + polymer-film piezoelectrics). + + # Properties of the piezo material + density(NX_NUMBER): + unit: NX_ANY + doc: | + The density of the piezo material. + relative_permittivity(NX_NUMBER): + unit: NX_ANY + doc: | + The relative permittivity (dielectric constant) of the piezo material. + D_piezoelectric_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The piezoelectric charge coefficients of the material. The coefficients describe the electric + polarization generated by the applied stress in material. Different coefficients correspond to different + relative directions of the polarization and the stress. + G_voltage_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The constants define the electric field produced by the external mechanical strain. Different coefficients + correspond to different relative directions of the electric field and the strain. + K_electromechanical_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The electromechanical constant measures the efficiency of the conversion of mechanical energy + into electrical energy. + P_pyroelectric_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The pyroelectric constant defines the change of the polarization vector of the piezoelectric material + per unit change in temperature. + acoustic_impedance(NX_NUMBER): + unit: NX_ANY + doc: | + The acoustic impedance of the piezo material. + young_modulus(NX_NUMBER): + unit: NX_ANY + doc: | + The Young's modulus of the piezo material. + surface_resistivity(NX_NUMBER): + unit: NX_ANY + doc: | + The surface resistivity of the piezo material. + temperature_range(NX_NUMBER): + unit: NX_TEMPERATURE + doc: | + The temperature range of the piezo material. + glass_transition_temperature(NX_NUMBER): + unit: NX_TEMPERATURE + doc: | + The range of temperature where a piezoelectric hard material transforms into the + viscous state. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 39d5862b3a9e4f526a71d3a1ad2234a4f4de5b953ce08c21e47f8bd7a9670ed7 +# +# +# +# +# +# Description and properties of the piezoelectric actuator materials. +# The piezoelectric actuator is usually composed of polycrystalline solids and +# attached at the head of the tip or cantilever. The material deforms when the external electric field is applied. +# +# +# +# +# The name of the material of the piezo scanner such as Lead Zirconate Titanates +# (PZTs). +# +# +# +# +# The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. +# +# +# +# +# The type of the material of the piezo scanner (e.g. piezoelectric ceramics, +# polymer-film piezoelectrics). +# +# +# +# +# +# The density of the piezo material. +# +# +# +# +# The relative permittivity (dielectric constant) of the piezo material. +# +# +# +# +# The piezoelectric charge coefficients of the material. The coefficients describe the electric +# polarization generated by the applied stress in material. Different coefficients correspond to different +# relative directions of the polarization and the stress. +# +# +# +# +# The constants define the electric field produced by the external mechanical strain. Different coefficients +# correspond to different relative directions of the electric field and the strain. +# +# +# +# +# The electromechanical constant measures the efficiency of the conversion of mechanical energy +# into electrical energy. +# +# +# +# +# The pyroelectric constant defines the change of the polarization vector of the piezoelectric material +# per unit change in temperature. +# +# +# +# +# The acoustic impedance of the piezo material. +# +# +# +# +# The Young's modulus of the piezo material. +# +# +# +# +# The surface resistivity of the piezo material. +# +# +# +# +# The temperature range of the piezo material. +# +# +# +# +# The range of temperature where a piezoelectric hard material transforms into the +# viscous state. +# +# +# diff --git a/contributed_definitions/nyaml/NXpositioner_spm.yaml b/contributed_definitions/nyaml/NXpositioner_spm.yaml new file mode 100644 index 000000000..66ff50e75 --- /dev/null +++ b/contributed_definitions/nyaml/NXpositioner_spm.yaml @@ -0,0 +1,94 @@ +category: base +doc: | + Extending positioner from NXpositioner to maintain a measurement signal through + a feedback loop. +type: group +NXpositioner_spm(NXpositioner): + z_controller(NXpid): + doc: | + This controller's task is to continuously adjust the Z position of the STM/STS tip in order + to keep the selected control signal as close as possible to the Set Point. Different control + signals lead to different controller's behavior. + + The second PID feedback loop intends to position the tip in the Z direction. + + p_gain (proportional gain) from z_controller is the same as K_p_value from PID controller. + i_gain (integral gain) from z_controller is the same as K_i_value from PID controller. + setpoint from z_controller is the same as setpoint from PID controller. + z_offset(NX_NUMBER): + unit: NX_LENGTH + doc: | + Offset added to the initial averaged position tip on Z-axis before starting to + scan. + tip_position_z(NX_NUMBER): + unit: NX_LENGTH + doc: | + Indicate the tip position Z between tip and sample. The tip position can also be varied when + the controller is not running. This is the final position after the tip reaches an equilibrium state. + controller_name(NX_CHAR): + doc: | + Controller name. This name which will be displayed at places where you can select a + controller. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 4eb587390d9a541bd31e756cb5262a7bf2f824c70bd289041f5ab8dad89bd15a +# +# +# +# +# +# Extending positioner from NXpositioner to maintain a measurement signal through +# a feedback loop. +# +# +# +# This controller's task is to continuously adjust the Z position of the STM/STS tip in order +# to keep the selected control signal as close as possible to the Set Point. Different control +# signals lead to different controller's behavior. +# +# The second PID feedback loop intends to position the tip in the Z direction. +# +# p_gain (proportional gain) from z_controller is the same as K_p_value from PID controller. +# i_gain (integral gain) from z_controller is the same as K_i_value from PID controller. +# setpoint from z_controller is the same as setpoint from PID controller. +# +# +# +# +# Offset added to the initial averaged position tip on Z-axis before starting to +# scan. +# +# +# +# +# Indicate the tip position Z between tip and sample. The tip position can also be varied when +# the controller is not running. This is the final position after the tip reaches an equilibrium state. +# +# +# +# +# Controller name. This name which will be displayed at places where you can select a +# controller. +# +# +# diff --git a/contributed_definitions/nyaml/NXrcs.yaml b/contributed_definitions/nyaml/NXrcs.yaml new file mode 100644 index 000000000..72dbc9374 --- /dev/null +++ b/contributed_definitions/nyaml/NXrcs.yaml @@ -0,0 +1,101 @@ +category: base +doc: | + A base class for the Real Time Control System (RCS). + + A real time control system (RCS) is a reference architecture model + used to design highly task intensive software systems and computing + control systems. +type: group +NXrcs(NXobject): + rcs_name(NX_CHAR): + doc: | + The name of the real-time control system. + rcs_fabrication(NXfabrication): + doc: | + The fabrication information. + rcs_description(NX_CHAR): + doc: | + The description of the real-time control system. + rcs_type(NX_CHAR): + doc: | + The type of the real-time control system. + rcs_manufacturer(NX_CHAR): + doc: | + The manufacturer of the real-time control system. + rcs_serial_number(NX_CHAR): + doc: | + The serial number of the real-time control system. + rcs_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The frequency of the real-time control system. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 0e3f7bfa269c90b6102b23f0c39c4fc5e6fe67bd44a38c647502e94ebf0de5f7 +# +# +# +# +# +# A base class for the Real Time Control System (RCS). +# +# A real time control system (RCS) is a reference architecture model +# used to design highly task intensive software systems and computing +# control systems. +# +# +# +# The name of the real-time control system. +# +# +# +# +# The fabrication information. +# +# +# +# +# The description of the real-time control system. +# +# +# +# +# The type of the real-time control system. +# +# +# +# +# The manufacturer of the real-time control system. +# +# +# +# +# The serial number of the real-time control system. +# +# +# +# +# The frequency of the real-time control system. +# +# +# diff --git a/contributed_definitions/nyaml/NXscan_control.yaml b/contributed_definitions/nyaml/NXscan_control.yaml new file mode 100644 index 000000000..2e183a83f --- /dev/null +++ b/contributed_definitions/nyaml/NXscan_control.yaml @@ -0,0 +1,1066 @@ +category: base + +# Correction: region (use: phase space) +doc: | + A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). + + scan_types: + Trajectory: A list of N-dimensional sequential vectors describes the trajectory line for a full scan. + Mesh: For each dimension a range and a direction are chosen. When a scan along a dimension is done, a single step in the next dimension is taken, and then the scan in the previous dimension is repeated. As such we can speak about the fastest and the slowest scan axes. + Snake: Similar to a mesh scan but with the scanning direction reversed after each line. + Spiral: A scan taken along a spiral trajectory. + Tilt: At each step, a proportional movement is done in all dimensions. + Linear: A scan where the scanning will be performed along a single independent axis. + + Scan_control_types: + Stepping: At each step, a movement to the next point is performed; correction (for example backlash) or active regulation (feedback loop) may or may not be applied. After the movement is done, the measurement is performed without the movement. + Continuous: The scanning of each line in an N-dimensional phase space is done without stopping; measurements are done simultaneously with the movement. + Oscillating: Scanning over a scan point continuously and then moving to start scanning at the next position. +type: group +NXscan_control(NXobject): + scan_time_start(NX_DATE_TIME): + unit: NX_TIME + doc: | + The start time of the scan. + scan_time_end(NX_DATE_TIME): + unit: NX_TIME + doc: | + The end time of the scan. + independent_scan_axes: + doc: | + A list of scan axes which are controlled independently of each other. + (e.g. X, Y, Z, or other physical dimensions) + + The list is in the order of axes of the scan from the fastest to the slowest. + scan_resolution_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan resolution along each dimension as the number of steps per unit of the dimension parameters. + + Rename the field according to the name of the independent dimension (e.g. scan_resolution_x, scan_resolution_voltage). + accuracy_N(NX_NUMBER): + unit: NX_LENGTH + doc: | + Define the accuracy of the scan probe. + scan_type: + doc: | + This group specifies how the trajectory of the scan is defined. + enumeration: [trajectory, mesh, snake, spiral] + scan_control_type: + doc: | + This group specifies whether there is any movement when a data point is + measured. + enumeration: [stepping, continuous, oscillating] + scan_region(NXobject): + doc: | + The scan region is the area of phase space or sub-phase space where the scan is + performed. The region could be N-dimensional and is defined by the minimum and + maximum values of the scan axes. + scan_offset_N(NX_NUMBER): + unit: NX_ANY + doc: | + The offset of the scan region from the origin along the specific scan axis. + + 'N' denotes the name of the specific scan axis. + scan_range_N(NX_NUMBER): + unit: NX_ANY + doc: | + The range of the scan is the length of the scan region along the dimension 'N'. + scan_angle_N(NX_NUMBER): + unit: NX_ANGLE + doc: | + The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough + to define the scan region. This field defines how the spatial space is oriented with respect to + the frame of reference. + + Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). + scan_start_N(NX_NUMBER): + unit: NX_ANY + doc: | + The start of the scan is the starting point of the scan region (phase space or sub-phase space) + for each independent scan axis. + + For N-dimensional, it is a list of N numbers. + scan_end_N(NX_NUMBER): + unit: NX_ANY + doc: | + The end of the scan is the ending point of the scan region (phase space or sub-phase space) + for each independent scan axis. + + Note: The scan_offset and scan_range are equivalent to the scan_start and scan_end. + + For N-dimensional, it is a list of N numbers. + mesh_SCAN(NXobject): + doc: | + For each dimension a range and a direction are chosen. When a scan along a dimension is done, + a single step in the next dimension is taken, and then the scan in the previous dimension is + repeated. As such we can speak about the fastest and the slowest scan axes. + scan_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the forward direction along the axis. + + If the scan goes in the negative direction, the speed should be negative. + + Rename the field, according to the name of the dimension (e.g. scan_speed_x, scan_speed_voltage). + forward_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the forward directions. + Rename the field, according to the name of the dimension. + backward_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the backward directions. + Rename the field, according to the name of the dimension. + channel_NAME_N: + doc: | + Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is + to represent the name of the dimensions. + + Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). + scan_points_N(NX_NUMBER): + doc: | + Define the total number of points in the given axis scan to be performed. + + Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). + stepping_N(NX_NUMBER): + doc: | + The number of steps the probe jumps over the scan steps or points. + + Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + step_size_N(NX_NUMBER): + unit: NX_ANY + doc: | + The length of each step in the scan on each dimension. + + Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). + continuous_N(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points or steps, use True. The default value is True. + Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves + in steps. + + Rename the field, according to the name of the dimension (e.g. continuous_voltage). + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. + The default value is False. + oscillation_frequency(NX_NUMBER): + doc: | + The number of oscillations on each scanning point per second. + SCAN_DATA(NXdata): + data: + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + + # For spiral scan + spiral_SCAN(NXobject): + doc: | + To define the spiral or circular scan, use this group. + scan_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in forward (clockwise) directions. + + If the scan goes in the negative (anti-clockwise) direction, the speed should be negative. + + Rename the field, according to the circle index. The circle near the center starts with 0. + In case, the speed is the same for all the circles, replace 'N' by 'all'. + \@spiral_direction: + doc: | + Define the direction of the spiral scan. (e.g. clockwise, anticlockwise) + enumeration: [clockwise, anticlockwise] + forward_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the forward (clockwise) directions. + Rename the field, according to the circle index. The circle near the center starts with 0. + + In case, the speed is the same for all the circles, replace 'N' by 'all'. + backward_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the backward (anti-clockwise) directions. + Rename the field, according to the circle index. The circle near the center starts with 0. + + In case, the speed is the same for all the circles, replace 'N' by 'all'. + spiral_radius_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the radius of the spiral circle of scanning. + + Rename the field, according to the circle order, the nearest circle to the center is 0. + scan_points_N(NX_NUMBER): + doc: | + Define the total number of points in a given circle scan to be performed. + + Rename the field, according to the circle order, the nearest circle to the center + is 0 (e.g. scan_points_2). + stepping_N(NX_NUMBER): + doc: | + If the scan probe steps over a number of scan points. + + Rename the field, according to the circle index. The circle near the center starts with 0. + In case, the stepping is the same for all the circles, replace 'N' by 'all'. + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one), use True. + The default value is False. + step_size_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the number of points that the scan probe steps over. + + Rename the field, according to the circle index. The circle near the center or lowest value of a + parameter starts with 0. + In case, the step size is the same for all the circles, replace 'N' by 'all'. + continuous_N(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points, use True. The default value is True. + A scan process can run continuously in the spatial dimension but can be discretized in time or + other physical dimensions (e.g. voltage). + + Rename this field according to the dimensions, considering continuous scan in a two-dimensional space + rename the field as continuous_x_y. + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. The default value is + False. + oscillation_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Number of oscillation on each scanning point per second. + SCAN_DATA(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + + # This active_trajectory could be explained under the same group + snake_SCAN(NXobject): + doc: | + To define the snake scan, use this group. + scan_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed for the type of snake scan. For the same speed along the + positive and negative directions, use a single number + + Rename the field, according to the name of the fast and slow axis e.g. scan_speed_x. + forward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The field defines the scan speed in the positive direction on the fast axis. + + Rename the field, according to the name of the fast axis. + backward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The field defines the scan speed in the negative direction on the fast axis. + + Rename the field, according to the name of the fast axis. + scan_points_N(NX_NUMBER): + doc: | + Define the total number of points in the given axis scan to be performed. + + Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). + stepping_N(NX_NUMBER): + doc: | + The number of steps the probe jumps over the scan steps or points. + + Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + + Rename the field, according to the name of the dimension. + step_size_N(NX_NUMBER): + unit: NX_ANY + doc: | + The length of each step in the scan on each dimension. + + Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). + channel_NAME_N: + doc: | + Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is + to represent the name of the dimensions. + + Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). + continuous_N(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points or steps, use True. The default value is True. + Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves + in a stepping manner. + + Rename the field, according to the name of the dimension (e.g. continuous_voltage). + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. + The default value is False. + oscillation_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The number of oscillations on each scanning point per second. + SCAN_DATA(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + traj_SCAN(NXobject): + doc: | + To define the trajectory scan, use this group. + scan_speed(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed through the trajectory points. + forward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The field defines the scan speed in the forward directions through the + trajectory points. + backward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The field defines the scan speed in the backward directions (backtracking) + through the trajectory points. + channel_NAME_N: + doc: | + Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is + to represent the name of the dimensions. + + Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). + number_of_trajectory_points(NX_NUMBER): + doc: | + The number of trajectory points in the entire scan. + trajectory_points(NX_NUMBER): + doc: | + The trajectory points are the N-dimensional vectors describing all the scan points sequentially. + + The second rank dataset should contain total number of trajectory points (nTraj) and + a full coordinate (nD) of each trajectory point. + dimensions: + rank: 2 + dim: [[1, nTraj], [2, nD]] + scan_points_N(NX_NUMBER): + doc: | + Define the total number of scan points between two trajectory points. + + Rename the field, according to the index of the second trajectory points. + For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. + stepping_N(NX_NUMBER): + doc: | + The number of steps the probe jumps over the scan steps or points along the trajectory line from between two trajectory points. + + Rename the field, according to the index of the second trajectory points. + For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + step_size(NX_NUMBER): + unit: NX_ANY + doc: | + The length of each step along the entire trajectory line. + continuous(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points or steps between two + trajectory points, use True. The default value is True. + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. + The default value is False. + oscillation_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The number of oscillations on each scanning point per second. + SCAN_DATA(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + linear_SCAN(NXobject): + doc: | + Define the scan mode that is performed for a single independent data axis. + scan_speed(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed of the scan disregarding the forward or backward + direction. + forward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the forward directions. + backward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the backward directions. + channel_NAME(NX_CHAR): + doc: | + Name of the channel that records the scan data for the given dimension. + scan_points_N(NX_NUMBER): + doc: | + Define the total number of points in the given axis scan to be performed. + + Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). + stepping_N(NX_NUMBER): + doc: | + The number of steps the probe jumps over the scan steps or points. + + Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + step_size_N(NX_NUMBER): + unit: NX_ANY + doc: | + The length of each step in the scan on each dimension. + + Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). + continuous_N(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points or steps, use True. The default value is True. + Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves + in a stepping manner. + + Rename the field, according to the name of the dimension (e.g. continuous_voltage). + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. + The default value is False. + oscillation_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The number of oscillations on each scanning point per second. + SCAN_DATA(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# a99c94ee5ab6ba0f08f75bdee50080cc8a5359eb1c3dd481557b3a6ca8a95148 +# +# +# +# +# +# +# A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). +# +# scan_types: +# Trajectory: A list of N-dimensional sequential vectors describes the trajectory line for a full scan. +# Mesh: For each dimension a range and a direction are chosen. When a scan along a dimension is done, a single step in the next dimension is taken, and then the scan in the previous dimension is repeated. As such we can speak about the fastest and the slowest scan axes. +# Snake: Similar to a mesh scan but with the scanning direction reversed after each line. +# Spiral: A scan taken along a spiral trajectory. +# Tilt: At each step, a proportional movement is done in all dimensions. +# Linear: A scan where the scanning will be performed along a single independent axis. +# +# Scan_control_types: +# Stepping: At each step, a movement to the next point is performed; correction (for example backlash) or active regulation (feedback loop) may or may not be applied. After the movement is done, the measurement is performed without the movement. +# Continuous: The scanning of each line in an N-dimensional phase space is done without stopping; measurements are done simultaneously with the movement. +# Oscillating: Scanning over a scan point continuously and then moving to start scanning at the next position. +# +# +# +# The start time of the scan. +# +# +# +# +# The end time of the scan. +# +# +# +# +# A list of scan axes which are controlled independently of each other. +# (e.g. X, Y, Z, or other physical dimensions) +# +# The list is in the order of axes of the scan from the fastest to the slowest. +# +# +# +# +# Define the scan resolution along each dimension as the number of steps per unit of the dimension parameters. +# +# Rename the field according to the name of the independent dimension (e.g. scan_resolution_x, scan_resolution_voltage). +# +# +# +# +# Define the accuracy of the scan probe. +# +# +# +# +# This group specifies how the trajectory of the scan is defined. +# +# +# +# +# +# +# +# +# +# +# This group specifies whether there is any movement when a data point is +# measured. +# +# +# +# +# +# +# +# +# +# The scan region is the area of phase space or sub-phase space where the scan is +# performed. The region could be N-dimensional and is defined by the minimum and +# maximum values of the scan axes. +# +# +# +# The offset of the scan region from the origin along the specific scan axis. +# +# 'N' denotes the name of the specific scan axis. +# +# +# +# +# The range of the scan is the length of the scan region along the dimension 'N'. +# +# +# +# +# The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough +# to define the scan region. This field defines how the spatial space is oriented with respect to +# the frame of reference. +# +# Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). +# +# +# +# +# The start of the scan is the starting point of the scan region (phase space or sub-phase space) +# for each independent scan axis. +# +# For N-dimensional, it is a list of N numbers. +# +# +# +# +# The end of the scan is the ending point of the scan region (phase space or sub-phase space) +# for each independent scan axis. +# +# Note: The scan_offset and scan_range are equivalent to the scan_start and scan_end. +# +# For N-dimensional, it is a list of N numbers. +# +# +# +# +# +# For each dimension a range and a direction are chosen. When a scan along a dimension is done, +# a single step in the next dimension is taken, and then the scan in the previous dimension is +# repeated. As such we can speak about the fastest and the slowest scan axes. +# +# +# +# Define the scan speed in the forward direction along the axis. +# +# If the scan goes in the negative direction, the speed should be negative. +# +# Rename the field, according to the name of the dimension (e.g. scan_speed_x, scan_speed_voltage). +# +# +# +# +# Define the scan speed in the forward directions. +# Rename the field, according to the name of the dimension. +# +# +# +# +# Define the scan speed in the backward directions. +# Rename the field, according to the name of the dimension. +# +# +# +# +# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is +# to represent the name of the dimensions. +# +# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). +# +# +# +# +# Define the total number of points in the given axis scan to be performed. +# +# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). +# +# +# +# +# The number of steps the probe jumps over the scan steps or points. +# +# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one) +# to perform each scan. By default, it is False. +# +# +# +# +# +# The length of each step in the scan on each dimension. +# +# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). +# +# +# +# +# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. +# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves +# in steps. +# +# Rename the field, according to the name of the dimension (e.g. continuous_voltage). +# +# +# +# +# If the scan probe oscillates over the scan point, use True. +# The default value is False. +# +# +# +# +# The number of oscillations on each scanning point per second. +# +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# +# +# +# +# To define the spiral or circular scan, use this group. +# +# +# +# Define the scan speed in forward (clockwise) directions. +# +# If the scan goes in the negative (anti-clockwise) direction, the speed should be negative. +# +# Rename the field, according to the circle index. The circle near the center starts with 0. +# In case, the speed is the same for all the circles, replace 'N' by 'all'. +# +# +# +# Define the direction of the spiral scan. (e.g. clockwise, anticlockwise) +# +# +# +# +# +# +# +# +# +# Define the scan speed in the forward (clockwise) directions. +# Rename the field, according to the circle index. The circle near the center starts with 0. +# +# In case, the speed is the same for all the circles, replace 'N' by 'all'. +# +# +# +# +# Define the scan speed in the backward (anti-clockwise) directions. +# Rename the field, according to the circle index. The circle near the center starts with 0. +# +# In case, the speed is the same for all the circles, replace 'N' by 'all'. +# +# +# +# +# Define the radius of the spiral circle of scanning. +# +# Rename the field, according to the circle order, the nearest circle to the center is 0. +# +# +# +# +# Define the total number of points in a given circle scan to be performed. +# +# Rename the field, according to the circle order, the nearest circle to the center +# is 0 (e.g. scan_points_2). +# +# +# +# +# If the scan probe steps over a number of scan points. +# +# Rename the field, according to the circle index. The circle near the center starts with 0. +# In case, the stepping is the same for all the circles, replace 'N' by 'all'. +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one), use True. +# The default value is False. +# +# +# +# +# +# Define the number of points that the scan probe steps over. +# +# Rename the field, according to the circle index. The circle near the center or lowest value of a +# parameter starts with 0. +# In case, the step size is the same for all the circles, replace 'N' by 'all'. +# +# +# +# +# If the scan probe moves continuously over the scan points, use True. The default value is True. +# A scan process can run continuously in the spatial dimension but can be discretized in time or +# other physical dimensions (e.g. voltage). +# +# Rename this field according to the dimensions, considering continuous scan in a two-dimensional space +# rename the field as continuous_x_y. +# +# +# +# +# If the scan probe oscillates over the scan point, use True. The default value is +# False. +# +# +# +# +# Number of oscillation on each scanning point per second. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# +# +# +# To define the snake scan, use this group. +# +# +# +# Define the scan speed for the type of snake scan. For the same speed along the +# positive and negative directions, use a single number +# +# Rename the field, according to the name of the fast and slow axis e.g. scan_speed_x. +# +# +# +# +# The field defines the scan speed in the positive direction on the fast axis. +# +# Rename the field, according to the name of the fast axis. +# +# +# +# +# The field defines the scan speed in the negative direction on the fast axis. +# +# Rename the field, according to the name of the fast axis. +# +# +# +# +# Define the total number of points in the given axis scan to be performed. +# +# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). +# +# +# +# +# The number of steps the probe jumps over the scan steps or points. +# +# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one) +# to perform each scan. By default, it is False. +# +# Rename the field, according to the name of the dimension. +# +# +# +# +# +# The length of each step in the scan on each dimension. +# +# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). +# +# +# +# +# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is +# to represent the name of the dimensions. +# +# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). +# +# +# +# +# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. +# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves +# in a stepping manner. +# +# Rename the field, according to the name of the dimension (e.g. continuous_voltage). +# +# +# +# +# If the scan probe oscillates over the scan point, use True. +# The default value is False. +# +# +# +# +# The number of oscillations on each scanning point per second. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# +# +# To define the trajectory scan, use this group. +# +# +# +# Define the scan speed through the trajectory points. +# +# +# +# +# The field defines the scan speed in the forward directions through the +# trajectory points. +# +# +# +# +# The field defines the scan speed in the backward directions (backtracking) +# through the trajectory points. +# +# +# +# +# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is +# to represent the name of the dimensions. +# +# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). +# +# +# +# +# The number of trajectory points in the entire scan. +# +# +# +# +# The trajectory points are the N-dimensional vectors describing all the scan points sequentially. +# +# The second rank dataset should contain total number of trajectory points (nTraj) and +# a full coordinate (nD) of each trajectory point. +# +# +# +# +# +# +# +# +# Define the total number of scan points between two trajectory points. +# +# Rename the field, according to the index of the second trajectory points. +# For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. +# +# +# +# +# The number of steps the probe jumps over the scan steps or points along the trajectory line from between two trajectory points. +# +# Rename the field, according to the index of the second trajectory points. +# For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one) +# to perform each scan. By default, it is False. +# +# +# +# +# +# The length of each step along the entire trajectory line. +# +# +# +# +# If the scan probe moves continuously over the scan points or steps between two +# trajectory points, use True. The default value is True. +# +# +# +# +# If the scan probe oscillates over the scan point, use True. +# The default value is False. +# +# +# +# +# The number of oscillations on each scanning point per second. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# +# +# Define the scan mode that is performed for a single independent data axis. +# +# +# +# Define the scan speed of the scan disregarding the forward or backward +# direction. +# +# +# +# +# Define the scan speed in the forward directions. +# +# +# +# +# Define the scan speed in the backward directions. +# +# +# +# +# Name of the channel that records the scan data for the given dimension. +# +# +# +# +# Define the total number of points in the given axis scan to be performed. +# +# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). +# +# +# +# +# The number of steps the probe jumps over the scan steps or points. +# +# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one) +# to perform each scan. By default, it is False. +# +# +# +# +# +# The length of each step in the scan on each dimension. +# +# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). +# +# +# +# +# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. +# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves +# in a stepping manner. +# +# Rename the field, according to the name of the dimension (e.g. continuous_voltage). +# +# +# +# +# If the scan probe oscillates over the scan point, use True. +# The default value is False. +# +# +# +# +# The number of oscillations on each scanning point per second. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# diff --git a/contributed_definitions/nyaml/NXsensor_scan.yaml b/contributed_definitions/nyaml/NXsensor_scan.yaml new file mode 100644 index 000000000..bb6efecb4 --- /dev/null +++ b/contributed_definitions/nyaml/NXsensor_scan.yaml @@ -0,0 +1,374 @@ +category: application +doc: | + Application definition for a generic scan using sensors. + + In this application definition, times should be specified always together + with an UTC offset. +symbols: + doc: | + Variables used to set a common size for collected sensor data. + N_scanpoints: | + The number of scan points measured in this scan. +type: group +NXsensor_scan(NXobject): + (NXentry): + definition(NX_CHAR): + \@version: + enumeration: [NXsensor_scan] + experiment_identifier(NXidentifier): + exists: recommended + doc: | + The unique identifier for the entry. The identifier is mainly lab-defined and + can be a combination of the sample name, date and time, experiment condition + (such as temperature) or instrument-generated unique identifier. + collection_identifier: + exists: optional + doc: | + The unique identifier for the collection. The identifier is used to group a + number of the experiments run upon the same setup and/or same sample. + experiment_description: + exists: recommended + start_time(NX_DATE_TIME): + unit: NX_TIME + exists: recommended + end_time(NX_DATE_TIME): + unit: NX_TIME + exists: recommended + (NXprocess): + doc: | + Define the program that was used to generate the results file(s) + with measured data and metadata. + program(NX_CHAR): + doc: | + Commercial or otherwise defined given name of the program + (or a link to the instrument software). + \@version: + doc: | + Either version with build number, commit hash, or description of an + (online) repository where the source code of the program and build + instructions can be found so that the program can be configured in + such a way that result files can be created ideally in a + deterministic manner. + \@program_url: + doc: | + Website of the software. + (NXuser): + doc: | + Contact information of at least the user of the instrument or the + investigator who performed this experiment. Adding multiple users if + relevant is recommended. + name(NX_CHAR): + doc: | + Name of the user. + affiliation(NX_CHAR): + exists: recommended + doc: | + Name of the affiliation of the user at the point in time when + the experiment was performed. + address(NX_CHAR): + exists: recommended + doc: | + Full address (street, street number, ZIP, city, country) + of the user's affiliation. + email(NX_CHAR): + exists: recommended + doc: | + Email address of the user. + orcid(NX_CHAR): + exists: recommended + doc: | + Author ID defined by https://orcid.org/. + telephone_number(NX_CHAR): + exists: recommended + doc: | + Official telephone number of the user. + (NXnote): + exists: optional + doc: | + Any additional information or notes (e.g. purpose of the experiment) that might + be useful to understand the experiment. + (NXinstrument): + (NXenvironment): + doc: | + Describes an environment setup for the experiment. + + All the setting values of the independently scanned controllers are listed under corresponding + NXsensor groups. Similarly, seperate NXsensor groups are used to store the readings from each + measurement sensor. + + For example, in a temperature-dependent IV measurement, the temperature and voltage must be + present as independently scanned controllers and the current sensor must also be present with + its readings. + (NXsensor): + (NXdata): + exists: recommended + doc: | + Plot of measured signal as a function of the timestamp of when they have been + acquired is also possible. + value(NX_FLOAT): + unit: NX_ANY + doc: | + For each point in the scan space, either the nominal setpoint of an independently scanned controller + or a representative average value of a measurement sensor is registered. + + The length of each sensor's data value array stored in this group should be equal to the number of scan points + probed in this scan. For every scan point [N], the corresponding sensor value can be picked from index [N]. + This allows the scan to be made in any order as the user describes above in the experiment. We get matching + values simply using the index of the scan point. + dimensions: + rank: 1 + dim: [[1, N_scanpoints]] + value_timestamp(NX_DATE_TIME): + exists: recommended + doc: | + Timestamp for when the values provided in the value field were registered. + + Individual readings can be stored with their timestamps under value_log. This is to timestamp + the nominal setpoint or average reading values listed above in the value field. + run_control(NX_CHAR): + exists: recommended + \@description: + doc: | + Free-text describing the data acquisition control: an internal + sweep using the built-in functionality of the controller device, + or a set/wait/read/repeat mechanism. + calibration_time(NX_DATE_TIME): + doc: | + ISO8601 datum when calibration was last performed + before this measurement. UTC offset should be specified. + (NXpid): + independent_controllers: + doc: | + A list of names of NXsensor groups used as independently scanned controllers. + measurement_sensors: + doc: | + A list of names of NXsensor groups used as measurement sensors. + (NXsample): + exists: recommended + name(NX_CHAR): + (NXhistory): + exists: optional + (NXdata): + doc: | + A scan specific representation of the measured signals as a function of the independently controlled environment settings. + Plot of every measured signal as a function of the timestamp of when they have been acquired is also possible. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 7edd229236b260394837fc2f5fe7b849cc0738f4d0c2267bf07291a6cbb040f2 +# +# +# +# +# +# +# Variables used to set a common size for collected sensor data. +# +# +# +# The number of scan points measured in this scan. +# +# +# +# +# Application definition for a generic scan using sensors. +# +# In this application definition, times should be specified always together +# with an UTC offset. +# +# +# +# +# +# +# +# +# +# +# The unique identifier for the entry. The identifier is mainly lab-defined and +# can be a combination of the sample name, date and time, experiment condition +# (such as temperature) or instrument-generated unique identifier. +# +# +# +# +# The unique identifier for the collection. The identifier is used to group a +# number of the experiments run upon the same setup and/or same sample. +# +# +# +# +# +# +# +# Define the program that was used to generate the results file(s) +# with measured data and metadata. +# +# +# +# Commercial or otherwise defined given name of the program +# (or a link to the instrument software). +# +# +# +# Either version with build number, commit hash, or description of an +# (online) repository where the source code of the program and build +# instructions can be found so that the program can be configured in +# such a way that result files can be created ideally in a +# deterministic manner. +# +# +# +# +# Website of the software. +# +# +# +# +# +# +# Contact information of at least the user of the instrument or the +# investigator who performed this experiment. Adding multiple users if +# relevant is recommended. +# +# +# +# Name of the user. +# +# +# +# +# Name of the affiliation of the user at the point in time when +# the experiment was performed. +# +# +# +# +# Full address (street, street number, ZIP, city, country) +# of the user's affiliation. +# +# +# +# +# Email address of the user. +# +# +# +# +# Author ID defined by https://orcid.org/. +# +# +# +# +# Official telephone number of the user. +# +# +# +# +# +# Any additional information or notes (e.g. purpose of the experiment) that might +# be useful to understand the experiment. +# +# +# +# +# +# Describes an environment setup for the experiment. +# +# All the setting values of the independently scanned controllers are listed under corresponding +# NXsensor groups. Similarly, seperate NXsensor groups are used to store the readings from each +# measurement sensor. +# +# For example, in a temperature-dependent IV measurement, the temperature and voltage must be +# present as independently scanned controllers and the current sensor must also be present with +# its readings. +# +# +# +# +# Plot of measured signal as a function of the timestamp of when they have been +# acquired is also possible. +# +# +# +# +# For each point in the scan space, either the nominal setpoint of an independently scanned controller +# or a representative average value of a measurement sensor is registered. +# +# The length of each sensor's data value array stored in this group should be equal to the number of scan points +# probed in this scan. For every scan point [N], the corresponding sensor value can be picked from index [N]. +# This allows the scan to be made in any order as the user describes above in the experiment. We get matching +# values simply using the index of the scan point. +# +# +# +# +# +# +# +# Timestamp for when the values provided in the value field were registered. +# +# Individual readings can be stored with their timestamps under value_log. This is to timestamp +# the nominal setpoint or average reading values listed above in the value field. +# +# +# +# +# +# Free-text describing the data acquisition control: an internal +# sweep using the built-in functionality of the controller device, +# or a set/wait/read/repeat mechanism. +# +# +# +# +# +# ISO8601 datum when calibration was last performed +# before this measurement. UTC offset should be specified. +# +# +# +# +# +# +# A list of names of NXsensor groups used as independently scanned controllers. +# +# +# +# +# A list of names of NXsensor groups used as measurement sensors. +# +# +# +# +# +# +# +# +# +# +# A scan specific representation of the measured signals as a function of the independently controlled environment settings. +# Plot of every measured signal as a function of the timestamp of when they have been acquired is also possible. +# +# +# +# diff --git a/contributed_definitions/nyaml/NXspm.yaml b/contributed_definitions/nyaml/NXspm.yaml new file mode 100644 index 000000000..ba681187b --- /dev/null +++ b/contributed_definitions/nyaml/NXspm.yaml @@ -0,0 +1,832 @@ +category: application +doc: | + Scanning Probe Microscopy (SPM) is a branch of microscopy that utilizes a physical probe to scan the surface of + sample and image it at the atomic level. + + The application class NXspm is designed as a skeleton and contains common technical concepts + for specific SPM sub-techniques such as STM, STS, AFM etc. +type: group +NXspm(NXsensor_scan): + (NXentry): + definition: + doc: | + Name of the definition that is used for the application. + enumeration: [NXspm] + experiment_technique: + doc: | + The technique of the experiment like STM, STS, AFM, etc. + enumeration: [STM, STS, AFM] + scan_mode: + exists: optional + doc: | + The mode of the scan. The possible options depend on the type of experiment. + For example, in STM, the scan mode could be constant height or constant current, + in AFM, the scan mode could be contact mode, tapping mode or non-contact mode. + scan_type: + exists: optional + doc: | + The type of the scan. It mainly describes how scan probe moves in the scan region, e.g. + forward, backward, or both (if scan is repeated). + experiment_identifier(NXidentifier): + exists: optional + doc: | + The identifiers for the experiment which should be unique at least in lab. + experiment_description: + exists: optional + doc: | + The description of the experiment like comments, ontes from from the experiment. + experiment_instrument(NXinstrument): + doc: | + The instrument information. + hardware(NXfabrication): + doc: | + The hardware description of the core instrument setup of the experiment. + Usually, the entire instrument is supplied by a single manufacturer. + To describe the hardware from any sub-components, use the hardware group of that + sub-component (child group of the NXinstrument group) group. + vendor: + doc: | + Company name of the manufacturer. + model: + doc: | + Version or model of the hardware setup provided by the manufacturer. + \@version: + exists: optional + doc: | + If different versions are possible, the value in this field should be made + specific enough to resolve the version. + software(NXfabrication): + doc: | + The software description of the core instrument setup of the experiment. + Usually, the entire instrument is supplied by a single name/manufacturer/model/etc. + To describe the software from any sub-components, use the software group of that component. + vendor: + doc: | + Company name of the manufacturer. + model: + doc: | + Version or model of the component named by the manufacturer. + \@version: + exists: optional + doc: | + If different versions are possible, the value in this field should be made + specific enough to resolve the version. + real_time_controller(NXrcs): + exists: optional + doc: | + The real-time controller information. + rcs_frequency(NX_NUMBER): + exists: optional + doc: | + The frequency of the real-time controller system which indicated the number of close-loop process + (gathering data, process data and update system) control cycles per second. + lockin_amplifier(NXlockin): + exists: optional + doc: | + The lock-in amplifier information. + scan_environment(NXenvironment): + doc: | + Information of the scan environment. + tip_temp(NX_NUMBER): + exists: optional + unit: NX_TEMPERATURE + doc: | + Temperature of STM head. Note: At least one field from tip_temp, + cryo_bottom_temp and cryo_shield_temp must be provided. + cryo_bottom_temp(NX_NUMBER): + exists: optional + unit: NX_TEMPERATURE + doc: | + Temperature of the cold tail of the cryostat. Note: At least one field from + tip_temp, cryo_bottom_temp and cryo_shield_temp must be provided. + cryo_shield_temp(NX_NUMBER): + exists: optional + unit: NX_TEMPERATURE + doc: | + Temperature of liquid nitrogen shield. Note: At + least one field from tip_temp, cryo_bottom_temp and cryo_shield_temp. + scan_name: + exists: optional + doc: | + The name of the scan, mainly lab defined, that helps to differentiate among different + scans performed in the lab. + current_sensor(NXsensor): + exists: optional + doc: | + This is a link to the current_sensor under the instrument group: + entry/experiment_instrument/current_sensor. + volatage_sensor(NXsensor): + exists: optional + doc: | + This is a link to the voltage_sensor under the instrument group: + entry/experiment_instrument/voltage_sensor. + piezo_sensor(NXsensor): + exists: optional + doc: | + This is a link to the piezo_sensor under the instrument group: + entry/experiment_instrument/piezo_sensor. + (NXscan_control): + doc: | + The scan control information like scan region or phase space, type of scan (e.g. + mesh, spiral, etc.), and scan speed, etc. This group mainly stores the raw scan + data. For processed data or final experimental data would go to NXdata group. + scan_name: + exists: optional + doc: | + The name of the scan, mainly lab defined, that helps to differentiate among different + scans performed in lab. This field is intended for several types of scan control + run under the same environment. + current_sensor(NXsensor): + exists: optional + doc: | + Information for current sensor. + (NXamplifier): + exists: optional + doc: | + An amplifier information for the input signal (e.g. from tip). + voltage_sensor(NXsensor): + exists: optional + doc: | + The sensor information for the voltage device. + (NXamplifier): + exists: optional + piezo_sensor(NXsensor): + doc: | + The piezo sensor refers to the height (or Z) piezo sensor if nothing is + mentioned along the X and Y directions. + x(NX_NUMBER): + unit: NX_LENGTH + doc: | + The x position of the piezo. In STS experiment, the piezo stays fixed at + x,y and z and the the tunneling current is measured with respect to the + bias voltage (sweep voltage). + y(NX_NUMBER): + unit: NX_LENGTH + doc: | + The y position of the piezo. + z(NX_NUMBER): + unit: NX_LENGTH + doc: | + The z position of the piezo. + piezo_configuration(NXpiezo_config_spm): + exists: optional + doc: | + The piezo configuration information like piezoelectric calibration and material + properties. + calibration(NXcalibration): + exists: optional + doc: | + Calibration of the piezo device. + (NXpositioner_spm): + doc: | + The positioner information like the position of the tip, the position of the + sample, PID loop feedback etc. + z_controller(NXpid): + doc: | + The PID controller information for the z-axis. + z(NX_NUMBER): + doc: | + To indicate the relative tip position z between tip and sample. The tip position + can also be varied when the z_controller is not running. + controller_status(NX_BOOLEAN): + doc: | + Status if controller is active. + piezo_material(NXpiezoelectric_material): + exists: optional + doc: | + The material description and properties of the piezoelectric scanner materials. + TEMPERATURE(NXsensor): + exists: optional + doc: | + A group handling the temperature such as cryo, shield and tip. For different + type of temperature sensors repeat this group. + temperature(NX_NUMBER): + exists: optional + unit: NX_TEMPERATURE + doc: | + The temperature of the sample. + CHANNEL_temp(NX_CHAR): + exists: optional + doc: | + The name of the channel to measure the temperature. + temperature_calibration(NXcalibration): + exists: optional + doc: | + Calibration of the temperature measurement. + coefficients(NX_NUMBER): + unit: NX_ANY + doc: | + The coefficients of the calibration. + TEMPERATURE_DATA(NXdata): + exists: optional + doc: | + Data (e.g, record from SPM head temperature) from temperature sensor. + bias_spectroscopy_environment(NXenvironment): + doc: | + To explain bias (sweep measurement) voltage applied to the sample. + (NXbias_spectroscopy): + doc: | + Setup and scan data for continuous measurement of bias-voltage on the subject of experiment + vs tunneling current from probe. + (NXpositioner_spm): + exists: optional + doc: | + The positioner information like the position of the tip, PID loop feedback etc. + z_controller(NXpid): + exists: optional + doc: | + The PID controller information for the z-axis. + z_average_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The average time taken by the z-controller to stabilize the tip. + z_controller_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time taken by the z-controller to measure physical properties. + z_controller_hold(NX_BOOLEAN): + exists: optional + doc: | + The status of the controller to be held on the previous position, before going to the + next scan point or line to measure the physical properties. + record_final_z(NX_BOOLEAN): + exists: optional + doc: | + The status of the controller to record the final z position after the scan. + bias_sweep(NXbias_sweep): + doc: | + The bais voltage sweep is a common technique used on the substance or sample or environment + to study the change in the behavior of the sample or substance or environment due to change + in applied bias voltage. + settling_time(NX_NUMBER): + unit: NX_TIME + doc: | + The time is taken to settle the bias voltage at the desired value. On each sweep usually, the system + takes time to settle the bias voltage at the next value. + scan_region(NXobject): + doc: | + The scan region (phase space or sub-phase space) is the region where the scan is + performed. + scan_offset_bias(NX_NUMBER): + exists: optional + unit: NX_VOLTAGE + doc: | + The offset of the bias voltage for bias sweep. + scan_range_bias(NX_NUMBER): + exists: optional + unit: NX_VOLTAGE + doc: | + The range of the scan is the length of the bias voltage over which the sweep + scan will be performed. + scan_start_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The start of the bias scan voltage. + scan_end_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The end of the bias scan voltage. + linear_sweep(NXobject): + doc: | + The linear sweep is a type of scan where the bias voltage is swept + linearly from the starting voltage to the ending voltage. + scan_points_bias(NX_NUMBER): + doc: | + The number of voltage points the sweep scan to be performed. + step_size_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The step size of the sweep. + The step size is the difference between the two consecutive bias voltage during the sweep. + reset_bias(NX_BOOLEAN): + exists: optional + doc: | + The reset_bias is used to reset the bias voltage to the starting value after a + sweep is completed. + sample_bias_votage(NXsensor): + exists: optional + doc: | + The DC bias voltage that is applied to the sample. + bias_voltage(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The bias voltage (DC) applied to the sample. + bias_offset(NX_NUMBER): + exists: optional + unit: NX_VOLTAGE + doc: | + Offset value of the bias voltage. + bias_calibration(NXcalibration): + exists: optional + doc: | + Calibration of the bias voltage measurement (V/V). + calibration_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by the calibration to setup to acquire the data for + the calibration. + coefficients(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The coefficients of the calibration. + (NXsample): + exists: optional + doc: | + The sample information. + sample_environment(NXenvironment): + exists: optional + doc: | + Information of environment around the sample. + sample_bias_voltage(NXsensor): + doc: | + Link to the sample_bias_voltage sensor under the instrument. + reproducibility_indicators(NXobject): + doc: | + The group of indicators (links to the existing fields in different groups) that measure + the reproducibility of the experiment. + resolution_indicators(NXobject): + doc: | + The group of indicators (links to the existing fields in different groups) that + are used to measure the resolution of the experiment results. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 5aed239803246cad4ded3ce2d01babdb3934dcdbcaed0537cd1c5bd018461040 +# +# +# +# +# +# Scanning Probe Microscopy (SPM) is a branch of microscopy that utilizes a physical probe to scan the surface of +# sample and image it at the atomic level. +# +# The application class NXspm is designed as a skeleton and contains common technical concepts +# for specific SPM sub-techniques such as STM, STS, AFM etc. +# +# +# +# +# Name of the definition that is used for the application. +# +# +# +# +# +# +# +# The technique of the experiment like STM, STS, AFM, etc. +# +# +# +# +# +# +# +# +# +# The mode of the scan. The possible options depend on the type of experiment. +# For example, in STM, the scan mode could be constant height or constant current, +# in AFM, the scan mode could be contact mode, tapping mode or non-contact mode. +# +# +# +# +# The type of the scan. It mainly describes how scan probe moves in the scan region, e.g. +# forward, backward, or both (if scan is repeated). +# +# +# +# +# The identifiers for the experiment which should be unique at least in lab. +# +# +# +# +# The description of the experiment like comments, ontes from from the experiment. +# +# +# +# +# The instrument information. +# +# +# +# The hardware description of the core instrument setup of the experiment. +# Usually, the entire instrument is supplied by a single manufacturer. +# To describe the hardware from any sub-components, use the hardware group of that +# sub-component (child group of the NXinstrument group) group. +# +# +# +# Company name of the manufacturer. +# +# +# +# +# Version or model of the hardware setup provided by the manufacturer. +# +# +# +# If different versions are possible, the value in this field should be made +# specific enough to resolve the version. +# +# +# +# +# +# +# The software description of the core instrument setup of the experiment. +# Usually, the entire instrument is supplied by a single name/manufacturer/model/etc. +# To describe the software from any sub-components, use the software group of that component. +# +# +# +# Company name of the manufacturer. +# +# +# +# +# Version or model of the component named by the manufacturer. +# +# +# +# If different versions are possible, the value in this field should be made +# specific enough to resolve the version. +# +# +# +# +# +# +# The real-time controller information. +# +# +# +# The frequency of the real-time controller system which indicated the number of close-loop process +# (gathering data, process data and update system) control cycles per second. +# +# +# +# +# +# The lock-in amplifier information. +# +# +# +# +# Information of the scan environment. +# +# +# +# Temperature of STM head. Note: At least one field from tip_temp, +# cryo_bottom_temp and cryo_shield_temp must be provided. +# +# +# +# +# Temperature of the cold tail of the cryostat. Note: At least one field from +# tip_temp, cryo_bottom_temp and cryo_shield_temp must be provided. +# +# +# +# +# Temperature of liquid nitrogen shield. Note: At +# least one field from tip_temp, cryo_bottom_temp and cryo_shield_temp. +# +# +# +# +# The name of the scan, mainly lab defined, that helps to differentiate among different +# scans performed in the lab. +# +# +# +# +# This is a link to the current_sensor under the instrument group: +# entry/experiment_instrument/current_sensor. +# +# +# +# +# This is a link to the voltage_sensor under the instrument group: +# entry/experiment_instrument/voltage_sensor. +# +# +# +# +# This is a link to the piezo_sensor under the instrument group: +# entry/experiment_instrument/piezo_sensor. +# +# +# +# +# The scan control information like scan region or phase space, type of scan (e.g. +# mesh, spiral, etc.), and scan speed, etc. This group mainly stores the raw scan +# data. For processed data or final experimental data would go to NXdata group. +# +# +# +# The name of the scan, mainly lab defined, that helps to differentiate among different +# scans performed in lab. This field is intended for several types of scan control +# run under the same environment. +# +# +# +# +# +# +# Information for current sensor. +# +# +# +# An amplifier information for the input signal (e.g. from tip). +# +# +# +# +# +# The sensor information for the voltage device. +# +# +# +# +# +# The piezo sensor refers to the height (or Z) piezo sensor if nothing is +# mentioned along the X and Y directions. +# +# +# +# The x position of the piezo. In STS experiment, the piezo stays fixed at +# x,y and z and the the tunneling current is measured with respect to the +# bias voltage (sweep voltage). +# +# +# +# +# The y position of the piezo. +# +# +# +# +# The z position of the piezo. +# +# +# +# +# The piezo configuration information like piezoelectric calibration and material +# properties. +# +# +# +# Calibration of the piezo device. +# +# +# +# +# +# The positioner information like the position of the tip, the position of the +# sample, PID loop feedback etc. +# +# +# +# The PID controller information for the z-axis. +# +# +# +# To indicate the relative tip position z between tip and sample. The tip position +# can also be varied when the z_controller is not running. +# +# +# +# +# Status if controller is active. +# +# +# +# +# +# +# The material description and properties of the piezoelectric scanner materials. +# +# +# +# +# +# A group handling the temperature such as cryo, shield and tip. For different +# type of temperature sensors repeat this group. +# +# +# +# The temperature of the sample. +# +# +# +# +# The name of the channel to measure the temperature. +# +# +# +# +# Calibration of the temperature measurement. +# +# +# +# The coefficients of the calibration. +# +# +# +# +# +# Data (e.g, record from SPM head temperature) from temperature sensor. +# +# +# +# +# +# To explain bias (sweep measurement) voltage applied to the sample. +# +# +# +# Setup and scan data for continuous measurement of bias-voltage on the subject of experiment +# vs tunneling current from probe. +# +# +# +# The positioner information like the position of the tip, PID loop feedback etc. +# +# +# +# The PID controller information for the z-axis. +# +# +# +# The average time taken by the z-controller to stabilize the tip. +# +# +# +# +# The time taken by the z-controller to measure physical properties. +# +# +# +# +# The status of the controller to be held on the previous position, before going to the +# next scan point or line to measure the physical properties. +# +# +# +# +# The status of the controller to record the final z position after the scan. +# +# +# +# +# +# +# The bais voltage sweep is a common technique used on the substance or sample or environment +# to study the change in the behavior of the sample or substance or environment due to change +# in applied bias voltage. +# +# +# +# The time is taken to settle the bias voltage at the desired value. On each sweep usually, the system +# takes time to settle the bias voltage at the next value. +# +# +# +# +# The scan region (phase space or sub-phase space) is the region where the scan is +# performed. +# +# +# +# The offset of the bias voltage for bias sweep. +# +# +# +# +# The range of the scan is the length of the bias voltage over which the sweep +# scan will be performed. +# +# +# +# +# The start of the bias scan voltage. +# +# +# +# +# The end of the bias scan voltage. +# +# +# +# +# +# The linear sweep is a type of scan where the bias voltage is swept +# linearly from the starting voltage to the ending voltage. +# +# +# +# The number of voltage points the sweep scan to be performed. +# +# +# +# +# The step size of the sweep. +# The step size is the difference between the two consecutive bias voltage during the sweep. +# +# +# +# +# The reset_bias is used to reset the bias voltage to the starting value after a +# sweep is completed. +# +# +# +# +# +# +# +# +# The DC bias voltage that is applied to the sample. +# +# +# +# The bias voltage (DC) applied to the sample. +# +# +# +# +# Offset value of the bias voltage. +# +# +# +# +# Calibration of the bias voltage measurement (V/V). +# +# +# +# The time or period is taken by the calibration to setup to acquire the data for +# the calibration. +# +# +# +# +# The coefficients of the calibration. +# +# +# +# +# +# +# +# The sample information. +# +# +# +# Information of environment around the sample. +# +# +# +# Link to the sample_bias_voltage sensor under the instrument. +# +# +# +# +# +# +# The group of indicators (links to the existing fields in different groups) that measure +# the reproducibility of the experiment. +# +# +# +# +# The group of indicators (links to the existing fields in different groups) that +# are used to measure the resolution of the experiment results. +# +# +# +# diff --git a/contributed_definitions/nyaml/NXstm.yaml b/contributed_definitions/nyaml/NXstm.yaml new file mode 100644 index 000000000..731fac12a --- /dev/null +++ b/contributed_definitions/nyaml/NXstm.yaml @@ -0,0 +1,781 @@ +category: application +doc: | + An application definition to describe Scanning Tunneling Microscopy (STM). + +# https://thesis.library.caltech.edu/1943/4/03chapter3.pdf +# TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and NXafm +type: group +NXstm(NXspm): + (NXentry): + definition: + doc: | + Name of the definition that is used for the application. + enumeration: [NXstm] + scan_mode: + doc: | + The mode of the scan that is performed. Two commonly used ones are constant + height mode and constant current mode. + enumeration: [constant height, constant current] + experiment_instrument(NXinstrument): + doc: | + The group explains the instrumentation of the STM experiment such + as current sensor, lock-in amplifier etc. + lockin_amplifier(NXlockin): + doc: | + The lock-in amplifier information. The device is being used to extract + the very weak signal buried in noisy signals. + modulation_signal_type: + exists: optional + unit: NX_UNITLESS + doc: | + The type of the signal (voltage or current) subject fo modulation. + modulation_frequency(NX_NUMBER): + exists: optional + doc: | + The frequency of the sine modulation that is used to modulate the signal in + lock-in. + scan_environment(NXenvironment): + doc: | + The environment information for stm or sts experiment. + (NXscan_control): + doc: | + The scan control information like scan region or phase space, type of scan + (e.g. mesh, spiral, etc.), and scan speed, etc. + scan_type: + doc: | + The type of scan like mesh, spiral, etc. For STS experiment, the scan type is + usually a single-point scan (trajectory scan). + enumeration: [mesh, trajectory, snake, spiral] + scan_region(NXobject): + doc: | + The region of the scan area. + scan_range(NX_NUMBER): + unit: NX_ANY + doc: | + The range of the scan area. + scan_offset(NX_NUMBER): + unit: NX_ANY + doc: | + The offset of the scan area in 2D (X and Y) space. + scan_angle_N(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + The N (substring) denotes the angle of the scan area with different physical + axes. + mesh_SCAN(NXobject): + doc: | + The scan information for mesh scan type for STM experiment. + scan_speed(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The speed of the scanner or the tip during the scan. + scan_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time taken by the scanner to scan the entire area. + forward_speed_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The N (substring) denotes the forward speed of the scanner. + backward_speed_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The N (substring) denotes the backward speed of the scanner. + SCAN_DATA(NXdata): + doc: | + The data that comes from scanning the area. + tip_temperature(NXsensor): + exists: optional + doc: | + This group stands for the same concept as + /ENTRY[entry]/experiment_instrument/tip_temperature + cryo_temperature(NXsensor): + exists: optional + doc: | + This group stands for the same concept as + /ENTRY[entry]/experiment_instrument/cryo_temperature + cryo_shield_temperature(NXsensor): + exists: optional + doc: | + This group stands for the same concept as + /ENTRY[entry]/experiment_instrument/cryo_shield_temperature + tip_temperature(NXsensor): + exists: optional + doc: | + The temperature of the tip one of the tip. + cryo_temperature(NXsensor): + exists: optional + doc: | + The temperature of the cryostat. + cryo_shield_temperature(NXsensor): + exists: optional + doc: | + The temperature of the cryo shield. + current_sensor(NXsensor): + doc: | + The sensor information. + current(NX_NUMBER): + unit: NX_CURRENT + doc: | + The tunneling current between tip and sample after + applying bias voltage. + current_offset(NX_NUMBER): + exists: optional + unit: NX_CURRENT + doc: | + Offset value of the current measurement. + current_calibration(NXcalibration): + exists: optional + doc: | + Calibration of the current measurement. + caliberation_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by the calibration to setup to acquire the data for + the calibration. + coefficients(NX_NUMBER): + unit: NX_ANY + doc: | + The coefficients of the calibration. + (NXamplifier): + exists: optional + doc: | + An amplifier information for the input signal (e.g. from tip). + current_gain(NX_NUMBER): + unit: NX_UNITLESS + doc: | + Proportional relationship between the probe output voltage and the actual + tunneling current when measuring the tunneling current. + bias_spectroscopy_environment(NXenvironment): + exists: optional + doc: | + To explain bias (sweep measurement) voltage applied to the sample. + (NXbias_spectroscopy): + exists: optional + doc: | + Setup and scan data for continuous measurement of bias-voltage on the subject of experiment + vs tunneling current from probe. + Data from from this experiment can also be used to calculate the dI/dV spectra. + piezo_sensor(NXsensor): + doc: | + The sensor information for the piezo device. + x(NX_NUMBER): + unit: NX_LENGTH + doc: | + The x position of the piezo. In STS experiment or at the starting, + the piezo stays fixed at x,y and z and the the tunneling current + is measured with respect to the bias voltage (sweep voltage). + y(NX_NUMBER): + unit: NX_LENGTH + doc: | + The y position of the piezo. + z(NX_NUMBER): + unit: NX_LENGTH + doc: | + The z position of the piezo. + piezo_configuration(NXpiezo_config_spm): + exists: optional + doc: | + The piezo configuration information like piezoelectric device calibration and + material properties. + calibration(NXcalibration): + exists: optional + doc: | + Calibration of the piezo device. + 2nd_order_corr_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The N (substring) denotes X and Y directions. The 2nd order piezo + compensate the error for that axis. The following equation shows the + interpretation of the 2nd order correction parameters, + For the X-piezo: "Ux = 1/cx · X + cxx · X2" + with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" + where cx is the calibration of the piezo X and cxx is the 2nd order + correction. The unit for such the second-order correction is (V/m^2). + calibration_type(NX_CHAR): + exists: optional + doc: | + The name of the calibration type, sometimes it is called + e.g active calibration, passive calibration. + calibration_coeffecient_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The calibration coefficient is the ratio of the actual distance moved by the piezo to + the voltage applied to the piezo. It is also called first-order correction. + drift_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + Set up the settings to enable or disable the drift compensation. + drift_correction_status(NX_BOOLEAN): + exists: optional + doc: | + Whether the drift has been corrected in case there is a deviation in the + drift. + tilt_N(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + The N (substring) denotes X and Y directions, and for both directions + tilt needs to be adjusted according to the actual surface. + hv_gain_N(NX_NUMBER): + doc: | + The N (substring) denotes X or Y or Z. In some systems, + there is an HV gain readout feature. For these systems, + the HV gain should be automatically adjusted whenever + the gain is changed at the high voltage amplifier. + (NXpositioner_spm): + doc: | + The positioner information like the position of the tip, + PID loop feedback etc. + z_controller(NXpid): + doc: | + The PID controller information for the z-axis. + z(NX_NUMBER): + doc: | + To indicate the relative tip position z between tip and sample. The tip position + can also be varied when the z_controller is not running. + set_point(NX_NUMBER): + unit: NX_ANY + doc: | + The set point for the z-controller to be fixed and the target value could be + height or current. + controller_name: + exists: recommended + doc: | + The name of the controller or channels. + controller_status(NX_BOOLEAN): + exists: recommended + doc: | + The status of the controller to say was PID has been used or not. + tip_lift(NX_NUMBER): + exists: optional + unit: NX_LENGTH + doc: | + If the tip is lifted from the stable point. + switch_off_delay: + exists: optional + unit: NX_TIME + doc: | + The switch-off delay of the controller from its stable point. + reproducibility_indicators(NXobject): + doc: | + The group's concepts hold the link to the related concepts that define the + reproducibility of the STM experiment. + current(NX_NUMBER): + exists: optional + doc: | + The tunneling current between tip and sample after application of bias voltage. + link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current + current_offset(NX_NUMBER): + exists: optional + doc: | + The tunneling current between tip and sample after application of bias voltage. + link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current + current_gain(NX_NUMBER): + exists: optional + doc: | + Proportional relationship between the probe output voltage and the actual + tunneling current when measuring the tunneling current. + link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/amplifier/current_gain + bias_sweep(NXobject): + exists: optional + doc: | + Link to target: + /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] + modulation_signal_type: + exists: optional + doc: | + This is the signal on which the modulation voltage or current will be added. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type + modulation_frequency(NX_NUMBER): + exists: optional + doc: | + The frequency of the sine modulation that is used to modulate the signal in lock-in. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency + resolution_indicators(NXobject): + doc: | + The group's concepts hold the link to the related concepts that define the + resolution of the STM experiment. + stm_head_temp(NXsensor): + doc: | + Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp + cryo_bottom_temp(NXsensor): + doc: | + Link to target: + /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp + cryo_shield_temp(NXsensor): + doc: | + Link to target: + /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature + bias_sweep(NXobject): + doc: | + Link to target: + /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] + modulation_signal_type: + exists: optional + doc: | + This is the signal on which the modulation voltage or current will be added. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type + modulation_signal_type + modulation_frequency(NX_NUMBER): + exists: optional + doc: | + The frequency of the sine modulation that is used to modulate the signal in lock-in. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 68d72cee8a84105446de60c7d529ee1b2a161da9219415301f540ae7dee69cfe +# +# +# +# +# +# +# An application definition to describe Scanning Tunneling Microscopy (STM). +# +# +# +# +# Name of the definition that is used for the application. +# +# +# +# +# +# +# +# The mode of the scan that is performed. Two commonly used ones are constant +# height mode and constant current mode. +# +# +# +# +# +# +# +# +# The group explains the instrumentation of the STM experiment such +# as current sensor, lock-in amplifier etc. +# +# +# +# The lock-in amplifier information. The device is being used to extract +# the very weak signal buried in noisy signals. +# +# +# +# The type of the signal (voltage or current) subject fo modulation. +# +# +# +# +# The frequency of the sine modulation that is used to modulate the signal in +# lock-in. +# +# +# +# +# +# The environment information for stm or sts experiment. +# +# +# +# The scan control information like scan region or phase space, type of scan +# (e.g. mesh, spiral, etc.), and scan speed, etc. +# +# +# +# The type of scan like mesh, spiral, etc. For STS experiment, the scan type is +# usually a single-point scan (trajectory scan). +# +# +# +# +# +# +# +# +# +# +# The region of the scan area. +# +# +# +# The range of the scan area. +# +# +# +# +# The offset of the scan area in 2D (X and Y) space. +# +# +# +# +# The N (substring) denotes the angle of the scan area with different physical +# axes. +# +# +# +# +# +# The scan information for mesh scan type for STM experiment. +# +# +# +# The speed of the scanner or the tip during the scan. +# +# +# +# +# The time taken by the scanner to scan the entire area. +# +# +# +# +# The N (substring) denotes the forward speed of the scanner. +# +# +# +# +# The N (substring) denotes the backward speed of the scanner. +# +# +# +# +# The data that comes from scanning the area. +# +# +# +# +# +# +# This group stands for the same concept as +# /ENTRY[entry]/experiment_instrument/tip_temperature +# +# +# +# +# This group stands for the same concept as +# /ENTRY[entry]/experiment_instrument/cryo_temperature +# +# +# +# +# This group stands for the same concept as +# /ENTRY[entry]/experiment_instrument/cryo_shield_temperature +# +# +# +# +# +# The temperature of the tip one of the tip. +# +# +# +# +# The temperature of the cryostat. +# +# +# +# +# The temperature of the cryo shield. +# +# +# +# +# The sensor information. +# +# +# +# The tunneling current between tip and sample after +# applying bias voltage. +# +# +# +# +# Offset value of the current measurement. +# +# +# +# +# Calibration of the current measurement. +# +# +# +# The time or period is taken by the calibration to setup to acquire the data for +# the calibration. +# +# +# +# +# The coefficients of the calibration. +# +# +# +# +# +# An amplifier information for the input signal (e.g. from tip). +# +# +# +# Proportional relationship between the probe output voltage and the actual +# tunneling current when measuring the tunneling current. +# +# +# +# +# +# +# To explain bias (sweep measurement) voltage applied to the sample. +# +# +# +# Setup and scan data for continuous measurement of bias-voltage on the subject of experiment +# vs tunneling current from probe. +# Data from from this experiment can also be used to calculate the dI/dV spectra. +# +# +# +# +# +# The sensor information for the piezo device. +# +# +# +# The x position of the piezo. In STS experiment or at the starting, +# the piezo stays fixed at x,y and z and the the tunneling current +# is measured with respect to the bias voltage (sweep voltage). +# +# +# +# +# The y position of the piezo. +# +# +# +# +# The z position of the piezo. +# +# +# +# +# The piezo configuration information like piezoelectric device calibration and +# material properties. +# +# +# +# Calibration of the piezo device. +# +# +# +# The N (substring) denotes X and Y directions. The 2nd order piezo +# compensate the error for that axis. The following equation shows the +# interpretation of the 2nd order correction parameters, +# For the X-piezo: "Ux = 1/cx · X + cxx · X2" +# with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" +# where cx is the calibration of the piezo X and cxx is the 2nd order +# correction. The unit for such the second-order correction is (V/m^2). +# +# +# +# +# The name of the calibration type, sometimes it is called +# e.g active calibration, passive calibration. +# +# +# +# +# The calibration coefficient is the ratio of the actual distance moved by the piezo to +# the voltage applied to the piezo. It is also called first-order correction. +# +# +# +# +# Set up the settings to enable or disable the drift compensation. +# +# +# +# +# Whether the drift has been corrected in case there is a deviation in the +# drift. +# +# +# +# +# The N (substring) denotes X and Y directions, and for both directions +# tilt needs to be adjusted according to the actual surface. +# +# +# +# +# The N (substring) denotes X or Y or Z. In some systems, +# there is an HV gain readout feature. For these systems, +# the HV gain should be automatically adjusted whenever +# the gain is changed at the high voltage amplifier. +# +# +# +# +# +# +# The positioner information like the position of the tip, +# PID loop feedback etc. +# +# +# +# The PID controller information for the z-axis. +# +# +# +# To indicate the relative tip position z between tip and sample. The tip position +# can also be varied when the z_controller is not running. +# +# +# +# +# The set point for the z-controller to be fixed and the target value could be +# height or current. +# +# +# +# +# The name of the controller or channels. +# +# +# +# +# The status of the controller to say was PID has been used or not. +# +# +# +# +# If the tip is lifted from the stable point. +# +# +# +# +# The switch-off delay of the controller from its stable point. +# +# +# +# +# +# +# +# +# The group's concepts hold the link to the related concepts that define the +# reproducibility of the STM experiment. +# +# +# +# The tunneling current between tip and sample after application of bias voltage. +# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current +# +# +# +# +# The tunneling current between tip and sample after application of bias voltage. +# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current +# +# +# +# +# Proportional relationship between the probe output voltage and the actual +# tunneling current when measuring the tunneling current. +# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/amplifier/current_gain +# +# +# +# +# Link to target: +# /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] +# +# +# +# +# This is the signal on which the modulation voltage or current will be added. +# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type +# +# +# +# +# The frequency of the sine modulation that is used to modulate the signal in lock-in. +# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency +# +# +# +# +# +# The group's concepts hold the link to the related concepts that define the +# resolution of the STM experiment. +# +# +# +# Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp +# +# +# +# +# Link to target: +# /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp +# +# +# +# +# Link to target: +# /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature +# +# +# +# +# Link to target: +# /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] +# +# +# +# +# This is the signal on which the modulation voltage or current will be added. +# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type +# modulation_signal_type +# +# +# +# +# The frequency of the sine modulation that is used to modulate the signal in lock-in. +# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency +# +# +# +# +# diff --git a/contributed_definitions/nyaml/NXsts.yaml b/contributed_definitions/nyaml/NXsts.yaml new file mode 100644 index 000000000..7c6cafadc --- /dev/null +++ b/contributed_definitions/nyaml/NXsts.yaml @@ -0,0 +1,63 @@ +category: application +doc: | + An application definition to describe Scanning Tunneling Spectroscopy (STS). + + The NXsts is duplication of NXspm and is considered as a proxy application definition + for Scanning Tunneling Spectroscopy (STS) technique. + +# https://thesis.library.caltech.edu/1943/4/03chapter3.pdf +# TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and NXafm +type: group +NXsts(NXspm): + (NXentry): + definition: + doc: | + Name of the definition that is used for the application. + enumeration: [NXsts] + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 3c249fd275af32b4b2747ed7356a3175a5edca21b88516b1662e38723d33d052 +# +# +# +# +# +# +# An application definition to describe Scanning Tunneling Spectroscopy (STS). +# +# The NXsts is duplication of NXspm and is considered as a proxy application definition +# for Scanning Tunneling Spectroscopy (STS) technique. +# +# +# +# +# Name of the definition that is used for the application. +# +# +# +# +# +# +# diff --git a/contributed_definitions/nyaml/README.md b/contributed_definitions/nyaml/README.md new file mode 100644 index 000000000..c21b86d30 --- /dev/null +++ b/contributed_definitions/nyaml/README.md @@ -0,0 +1,75 @@ +# Application Definition for SPM Domain + +# General SPM Base Class + + + id1 + id1 --> id2 + id1 --> id3 + id1 --> id4 + id1 --> id5 + id1 --> id6 + + id2 --> id13 + id2 --> id14 + id2 --> id16 + + id13 --> id21 + id13 --> id22 + id13 --> id23 + id13 --> id24 + +``` + +## STM App Def +```mermaid +graph TD; + subgraph STM + %%hh%% + id1["NXstm(NXspm)"] + id2["ENTRY"] + end + subgraph NXinstrument + id6["(NXinstrument)"] + end + + subgraph NXenvironment + %%hh%% + id12["sweep_control"] + end + + + id1 --> id2 + + id2 --> id6 + id6 --> id12 + +``` --> diff --git a/contributed_definitions/nyaml/SPM/NXafm.yaml b/contributed_definitions/nyaml/SPM/NXafm.yaml new file mode 100644 index 000000000..d1314dcf9 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXafm.yaml @@ -0,0 +1,254 @@ +category: application +doc: | + An application definition to describe Atomic Force Microscopy (AFM) scanning + technique. +type: group +NXafm(NXspm): + (NXentry): + definition: + doc: | + Name of the definition that is used for the application. + enumeration: [NXafm] + scan_mode: + doc: | + The mode of the scan. + enumeration: [contact mode, tapping mode, non-contact mode] + experiment_instrument(NXinstrument): + doc: | + The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding + instruments. + photo_detector(NXdetector): + exists: optional + doc: | + The photo detector instrument information. + (NXcantilever_spm): + exists: optional + doc: | + The cantilever information. + cantilever_oscillator(NXobject): + exists: optional + doc: | + Generally speaking, the cantilever resembles a simple harmonic oscillator. + When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. + In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. + oscillator_excitation(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The threshold voltage for oscillator excitation. + phase_lock_loop(NXlockin): + exists: optional + doc: | + Phase locked loop for cantilever lock-in device. + amplitude_excitation(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The reference amplitude (also called drive amplitude) of the cantilever. + scan_environment(NXenvironment): + doc: | + The environment information. + height_piezo_sensor(NXsensor): + doc: | + Link to the group ENTRY[entry]/experiment_instrument/height_piezo_sensor. + XY_piezo_sensor(NXsensor): + doc: | + Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. + tip_temperature(NXsensor): + doc: | + Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. + height_piezo_sensor(NXsensor): + exists: optional + doc: | + The sensor information for the height piezo device. + piezo_configuration(NXpiezo_config_spm): + doc: | + The piezo configuration information like piezoelectric calibration and material + properties. + piezo_material(NXpiezoelectric_material): + exists: optional + doc: | + The material description and properties of the piezoelectric scanner materials. + (NXpositioner_spm): + doc: | + The positioner information like the position of the tip, the position of the + sample, PID loop feedback etc. + XY_piezo_sensor(NXsensor): + exists: optional + doc: | + The sensor information for the xy piezo device. + piezo_configuration(NXpiezo_config_spm): + doc: | + The piezo configuration information like piezoelectric calibration and material + properties. + piezo_material(NXpiezoelectric_material): + exists: optional + doc: | + The material description and properties of the piezoelectric scanner materials. + (NXpositioner_spm): + doc: | + The positioner information like the position of the tip, the position of the + sample, PID loop feedback etc. + tip_temperature(NXsensor): + exists: optional + doc: | + The temperature of the scan environment or tip of the cantilever. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 9a15a1db7f7822d982716a9c177ce05e6afeb165692bf2ac13dbc98aad4809dd +# +# +# +# +# +# An application definition to describe Atomic Force Microscopy (AFM) scanning +# technique. +# +# +# +# +# Name of the definition that is used for the application. +# +# +# +# +# +# +# +# The mode of the scan. +# +# +# +# +# +# +# +# +# +# The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding +# instruments. +# +# +# +# The photo detector instrument information. +# +# +# +# +# The cantilever information. +# +# +# +# Generally speaking, the cantilever resembles a simple harmonic oscillator. +# When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. +# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. +# +# +# +# The threshold voltage for oscillator excitation. +# +# +# +# +# Phase locked loop for cantilever lock-in device. +# +# +# +# The reference amplitude (also called drive amplitude) of the cantilever. +# +# +# +# +# +# +# +# The environment information. +# +# +# +# Link to the group ENTRY[entry]/experiment_instrument/height_piezo_sensor. +# +# +# +# +# Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. +# +# +# +# +# Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. +# +# +# +# +# +# The sensor information for the height piezo device. +# +# +# +# The piezo configuration information like piezoelectric calibration and material +# properties. +# +# +# +# The material description and properties of the piezoelectric scanner materials. +# +# +# +# +# +# The positioner information like the position of the tip, the position of the +# sample, PID loop feedback etc. +# +# +# +# +# +# The sensor information for the xy piezo device. +# +# +# +# The piezo configuration information like piezoelectric calibration and material +# properties. +# +# +# +# The material description and properties of the piezoelectric scanner materials. +# +# +# +# +# +# The positioner information like the position of the tip, the position of the +# sample, PID loop feedback etc. +# +# +# +# +# +# The temperature of the scan environment or tip of the cantilever. +# +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml b/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml new file mode 100644 index 000000000..ab297117a --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml @@ -0,0 +1,306 @@ +category: base +doc: | + A base class for bias spectroscopy to describe the change in the physical properties + of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. +type: group +NXbias_spectroscopy(NXobject): + measurement_type: + doc: | + The measurement of the I(V) curve can come in two ways: + 1. Constant Spacing: The bias voltage is swept from the start to the end with a constant + spacing between the tip and surface. + 2. Variadic Spacing: The bias voltage is swept from the start to the end in a discretized + spacing between the tip and surface. + enumeration: [constant_spacing, variadic_spacing] + (NXpositioner_spm): + doc: | + The pid positioner information while running bias voltage-tunneling current + measurement. + z_offset(NX_NUMBER): + unit: NX_LENGTH + doc: | + The z-offset is a starting tip position before the sweep starts. + (NXcircuit): + exists: optional + acquisition_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by a bias sweep to acquire the data for + a single bias sweep point. + animation_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by a bias sweep to be displayed. + measurement_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by the circuit to measure a full bias sweep voltage or + bias current. + indicators_period(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by the circuit to indicate the bias sweep voltage + after measuring the voltage. + (NXbias_sweep): + doc: | + The bias sweep information. + scan_type: + doc: | + The type of scan like mesh, spiral, etc. For STS experiment, the scan type is + usually a single-point scan (trajectory scan). + enumeration: [linear] + sweep_number(NX_NUMBER): + doc: | + The number of sweeps taken during the bias spectroscopy. + first_settling_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The initial time is taken to settle the bias voltage at the desired value. + On each sweep usually, the system takes time to settle to the bias voltage + at the next value. + end_settling_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time is taken to settle the bias voltage at the desired value. + The time (at the last sweep) to settle for the last value of the sweep. + max_slew_rate(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The rate at which the amplifier responds to the voltage change + (to reach at the desired value). It defines if the tip movement and + voltage sweep are synchronized. + final_z(NX_NUMBER): + exists: recommended + doc: | + The z position after the sweeps are done. + total_spectroscopy_time(NX_DATE_TIME): + exists: recommended + unit: NX_TIME + doc: | + The total time needed for the entire voltage sweep. + scan_region(NXobject): + doc: | + The region of the scan area. + scan_range(NX_NUMBER): + unit: NX_ANY + doc: | + The range of the scan area. + scan_offset(NX_NUMBER): + unit: NX_ANY + doc: | + The offset of the scan area in 2D (X and Y) space. + scan_angle_N(NX_NUMBER): + unit: NX_ANGLE + doc: | + The N (substring) denotes the angle of the scan area with different physical + axes. + linear_sweep(NXobject): + doc: | + The linear scan information for scanning of a smaple. + scan_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The speed of the scanner or the probe during the scan. + scan_time(NX_DATE_TIME): + unit: NX_TIME + doc: | + The time taken by the scanner to scan the entire area. + forward_speed_bias(NX_NUMBER): + unit: NX_ANY + doc: | + Speed of the scanner or the probe moves forward direction. + backward_speed_bias(NX_NUMBER): + unit: NX_ANY + doc: | + Speed of the scanner or the probe that moves backward direction. + SCAN_DATA(NXdata): + doc: | + The data that comes from scanning the area. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 3ab25dbd62b7ae483b8ff37724fd4398a7c60454114c12914ccb9144fe3fe5a9 +# +# +# +# +# +# A base class for bias spectroscopy to describe the change in the physical properties +# of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. +# +# +# +# The measurement of the I(V) curve can come in two ways: +# 1. Constant Spacing: The bias voltage is swept from the start to the end with a constant +# spacing between the tip and surface. +# 2. Variadic Spacing: The bias voltage is swept from the start to the end in a discretized +# spacing between the tip and surface. +# +# +# +# +# +# +# +# +# The pid positioner information while running bias voltage-tunneling current +# measurement. +# +# +# +# The z-offset is a starting tip position before the sweep starts. +# +# +# +# +# +# +# The time or period is taken by a bias sweep to acquire the data for +# a single bias sweep point. +# +# +# +# +# The time or period is taken by a bias sweep to be displayed. +# +# +# +# +# The time or period is taken by the circuit to measure a full bias sweep voltage or +# bias current. +# +# +# +# +# The time or period is taken by the circuit to indicate the bias sweep voltage +# after measuring the voltage. +# +# +# +# +# +# The bias sweep information. +# +# +# +# The type of scan like mesh, spiral, etc. For STS experiment, the scan type is +# usually a single-point scan (trajectory scan). +# +# +# +# +# +# +# +# The number of sweeps taken during the bias spectroscopy. +# +# +# +# +# The initial time is taken to settle the bias voltage at the desired value. +# On each sweep usually, the system takes time to settle to the bias voltage +# at the next value. +# +# +# +# +# The time is taken to settle the bias voltage at the desired value. +# The time (at the last sweep) to settle for the last value of the sweep. +# +# +# +# +# The rate at which the amplifier responds to the voltage change +# (to reach at the desired value). It defines if the tip movement and +# voltage sweep are synchronized. +# +# +# +# +# The z position after the sweeps are done. +# +# +# +# +# The total time needed for the entire voltage sweep. +# +# +# +# +# The region of the scan area. +# +# +# +# The range of the scan area. +# +# +# +# +# The offset of the scan area in 2D (X and Y) space. +# +# +# +# +# The N (substring) denotes the angle of the scan area with different physical +# axes. +# +# +# +# +# +# The linear scan information for scanning of a smaple. +# +# +# +# The speed of the scanner or the probe during the scan. +# +# +# +# +# The time taken by the scanner to scan the entire area. +# +# +# +# +# Speed of the scanner or the probe moves forward direction. +# +# +# +# +# Speed of the scanner or the probe that moves backward direction. +# +# +# +# +# The data that comes from scanning the area. +# +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXbias_sweep.yaml b/contributed_definitions/nyaml/SPM/NXbias_sweep.yaml new file mode 100644 index 000000000..c17041531 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXbias_sweep.yaml @@ -0,0 +1,149 @@ +category: base +doc: | + A base class that defines how the bias voltage sweep is performed in the + scanning probe microscopy experiments. +type: group +NXbias_sweep(NXscan_control): + scan_region(NXobject): + doc: | + The scan region is the area of phase space or sub-phase space where the scan is + performed. + scan_offset_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The starting voltage of the bias sweep. The range of voltages for the sweep can + be defined with scan voltage offset and scan voltage range (difference between + minimum and maximum voltage values in a sweep) + scan_range_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The range of voltages for the sweep can be defined with scan voltage offset and + scan voltage range (difference between minimum and maximum voltage values in a + sweep) + scan_start_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The start of the bias scan voltage. + scan_end_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The end value of the bias scan voltage. + linear_sweep(NXobject): + doc: | + In the linear sweep, the bias voltage is changed linearly from the start value + to the end value. + backward_sweep(NX_BOOLEAN): + doc: | + If the bias voltage sweep is also performed in the opposite direction. + scan_points_bias(NX_NUMBER): + doc: | + The number of voltage points per sweep. + step_size_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The step size between the two consecutive bias voltage values during the sweep. + reset_bias(NX_BOOLEAN): + doc: | + The reset_bias defines whether the bias voltage should be reset to the starting + value after the sweep is completed. + SCAN_DATA(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, + please duplicate this NXdata group for each. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 059205cba92a66bef7be1ad50223a92b699fa82b76101ecced2901cd4c541117 +# +# +# +# +# +# A base class that defines how the bias voltage sweep is performed in the +# scanning probe microscopy experiments. +# +# +# +# The scan region is the area of phase space or sub-phase space where the scan is +# performed. +# +# +# +# The starting voltage of the bias sweep. The range of voltages for the sweep can +# be defined with scan voltage offset and scan voltage range (difference between +# minimum and maximum voltage values in a sweep) +# +# +# +# +# The range of voltages for the sweep can be defined with scan voltage offset and +# scan voltage range (difference between minimum and maximum voltage values in a +# sweep) +# +# +# +# +# The start of the bias scan voltage. +# +# +# +# +# The end value of the bias scan voltage. +# +# +# +# +# +# In the linear sweep, the bias voltage is changed linearly from the start value +# to the end value. +# +# +# +# If the bias voltage sweep is also performed in the opposite direction. +# +# +# +# +# The number of voltage points per sweep. +# +# +# +# +# The step size between the two consecutive bias voltage values during the sweep. +# +# +# +# +# The reset_bias defines whether the bias voltage should be reset to the starting +# value after the sweep is completed. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, +# please duplicate this NXdata group for each. +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXcantilever_spm.yaml b/contributed_definitions/nyaml/SPM/NXcantilever_spm.yaml new file mode 100644 index 000000000..3eeb1cbb9 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXcantilever_spm.yaml @@ -0,0 +1,235 @@ +category: base +doc: | + A base class to describe the cantilever used in Atomic Force Microscopy (AFM) + techniques. +type: group +NXcantilever_spm(NXobject): + cantilever_oscillator(NXobject): + doc: | + Generally speaking, the cantilever resembles a simple harmonic oscillator. + When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. + In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. + reference_amplitude(NX_NUMBER): + unit: NX_ANY + doc: | + The reference amplitude (also called drive amplitude) of the cantilever. + reference_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The reference frequency (also called drive frequency or resonance frequency) of + the cantilever. + frequency_harmonic(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The harmonic (e.g., second harmonic of the fundamental frequency) frequency of + the cantilever. + phase_lock_loop(NXlockin): + doc: | + Phase locked loop for cantilever lock-in device. + cantilever_amplitude_positioner(NXpositioner): + doc: | + Describes the cantilever frequency positioner, if it exists. + cantilever_phase_positioner(NXpositioner): + doc: | + Describes the cantilever phase positioner, if it exists. + cantilever_frequency_positioner(NXpositioner): + doc: | + Describes the cantilever frequency positioner, if it exists. + phase_shift(NX_NUMBER): + unit: NX_ANGLE + doc: | + The phase difference between the reference signal of cantilever and response + signal. + frequency_shift(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Shift in the resonance frequency of the cantilever. + frequency_cutoff(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The cutoff frequency of the cantilever. + frequency_bandwidth(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The bandwidth of the resonance frequency. + target_amplitude(NX_NUMBER): + unit: NX_ANY + doc: | + The target amplitude of the cantilever to start the AFM/SPM experiment. + active_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The active frequency of the cantilever to start the experiment. + reference_phase(NX_NUMBER): + unit: NX_ANGLE + doc: | + The reference phase of the cantilever oscillator. + cantilever_config(NXobject): + doc: | + The configuration information of the cantilever such as calibration information, + material properties, etc. + cantilever_coating: + doc: | + The coating material of the cantilever. + curvature_radius_N(NX_NUMBER): + unit: NX_ANY + doc: | + The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. + (NXcalibration): + doc: | + The calibration information of the cantilever. + sensitivity(NX_NUMBER): + unit: NX_ANY + doc: | + A force applied to the cantilever tip will cause a change in + cantilever's oscillation amplitude (in dynamic mode) or deflection of the cantilever. + The sensitivity of the cantilever is calculated as the ratio of this change to the force causing it. + spring_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The spring constant coefficient of the cantilever. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 7f9bbb72dc5a27994c70ffe9d0f711cb147c223a6ced080161fea0e2d63cb82c +# +# +# +# +# +# A base class to describe the cantilever used in Atomic Force Microscopy (AFM) +# techniques. +# +# +# +# Generally speaking, the cantilever resembles a simple harmonic oscillator. +# When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. +# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. +# +# +# +# The reference amplitude (also called drive amplitude) of the cantilever. +# +# +# +# +# The reference frequency (also called drive frequency or resonance frequency) of +# the cantilever. +# +# +# +# +# The harmonic (e.g., second harmonic of the fundamental frequency) frequency of +# the cantilever. +# +# +# +# +# Phase locked loop for cantilever lock-in device. +# +# +# +# Describes the cantilever frequency positioner, if it exists. +# +# +# +# +# Describes the cantilever phase positioner, if it exists. +# +# +# +# +# Describes the cantilever frequency positioner, if it exists. +# +# +# +# +# +# The phase difference between the reference signal of cantilever and response +# signal. +# +# +# +# +# Shift in the resonance frequency of the cantilever. +# +# +# +# +# The cutoff frequency of the cantilever. +# +# +# +# +# The bandwidth of the resonance frequency. +# +# +# +# +# The target amplitude of the cantilever to start the AFM/SPM experiment. +# +# +# +# +# The active frequency of the cantilever to start the experiment. +# +# +# +# +# The reference phase of the cantilever oscillator. +# +# +# +# +# +# The configuration information of the cantilever such as calibration information, +# material properties, etc. +# +# +# +# The coating material of the cantilever. +# +# +# +# +# The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. +# +# +# +# +# The calibration information of the cantilever. +# +# +# +# A force applied to the cantilever tip will cause a change in +# cantilever's oscillation amplitude (in dynamic mode) or deflection of the cantilever. +# The sensitivity of the cantilever is calculated as the ratio of this change to the force causing it. +# +# +# +# +# The spring constant coefficient of the cantilever. +# +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXlockin.yaml b/contributed_definitions/nyaml/SPM/NXlockin.yaml new file mode 100644 index 000000000..ad5711d31 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXlockin.yaml @@ -0,0 +1,305 @@ +category: base +doc: | + A base class definition for a lock-in amplifier. + The lock-in amplifier information: the device is being used to extract a (potentially) + very weak input signal buried in the noisy background, where the input signal has + the same frequency (or its harmonic) as a known reference signal. Additionally, + the phase shift between the input signal and the reference signal is measured. + The reference signal might be created by a generator built-in into the lock-in amplifier. +type: group +NXlockin(NXobject): + hardware(NXfabrication): + doc: | + Hardware manufacturers and type of lock-in amplifier. + (NXamplifier): + doc: | + Description of the amplifier (after detection of the signal from the noise) + bias_divider: + doc: | + Bias divider for lock-in channel if if has. + Bias divider = V(ref)/[V(ref)+V(input)] + modulation_status(NX_BOOLEAN): + doc: | + Switch the lock-in modulation on or off. + modulation_signal(NX_CHAR): + doc: | + A periodic voltage signal generated by the lock-in, + usually applied to a sample and used to create a reference signal for the detection of the input signal + lockin_current_flip_value(NX_NUMBER): + exists: optional + doc: | + The number that defines the sign of the lock-in current. The calibration procedure + with retracted tip is normally performed to compensate for the signal phase delay + in SPM. The procedure yields two possible solutions, this number should be equal + to 1 or -1 depending on which solution is chosen. + + # (For bais modulate signal, it depands on the modulate type) + + # unit could be NX_VOLTAGE or NX_CURRENT + reference_amplitude(NX_NUMBER): + unit: NX_ANY + doc: | + Amplitude of the reference signal for the lock-in amplifier. + reference_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Frequency of the reference signal for the lock-in amplifier. + reference_phase(NX_NUMBER): + unit: NX_ANGLE + doc: | + Phase of the reference signal for the lock-in amplifier. + demodulated_signal(NX_CHAR): + doc: | + The modulated output signal will be demodulated, in order to determine the amplitude + and phase at the frequency set in the Frequency field or harmonics, such as current, + bias, et.al. + demodulated_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The frequency of the demodulated signal. + frequency_demodulation_bandwidth(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The bandwidth of the modulated signal that can be applied in frequency + demodulation mechanism. + + # unit could be NX_VOLTAGE or NX_CURRENT + demodulated_amplitude(NX_NUMBER): + unit: NX_ANY + doc: | + The amplitude of the demodulated signal. + amplitude_demodulation_bandwidth(NX_NUMBER): + unit: NX_ANY + doc: | + The bandwidth of the modulated signal that can be applied in amplitude + demodulation mechanism. + demodulated_phase(NX_NUMBER): + unit: NX_ANGLE + doc: | + The phase of the demodulated signal. + phase_demodulation_bandwidth(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The bandwidth of the modulated signal that can be applied in phase demodulation + mechanism. + demodulator_channels(NX_CHAR): + doc: | + List of the demodulator channels. + low_pass_N(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Frequency of the low-pass filter applied on the demodulated + signals (X,Y), cut-off frq (low pass filter) (for each DemodulatorChannels). + hi_pass_N(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Frequency of the high-pass filter applied on the demodulation + signal cut-off frq (hi pass filter) (for each DemodulatorChannels). + lp_filter_order_N(NX_NUMBER): + doc: | + Order of the low-pass filter applied on the demodulated signals (X, Y). + Reducing the bandwidth or increasing the order reduces noise on the demodulated signals, + but increases settling and measurement times. + hp_filter_order_N(NX_NUMBER): + doc: | + Order of the high-pass filter applied on the demodulation + signal. This is used mainly to suppress a DC component of the input + signal noise. + ref_phase_N(NX_NUMBER): + unit: NX_ANGLE + doc: | + Reference phase of reference signal with respect to the demodulated signal + (foreach Channels). + integration_time(NX_NUMBER): + unit: NX_TIME + doc: | + Integration time for the product of the input and the reference signals + harmonic_order_N(NX_NUMBER): + doc: | + The reference signal can be a higher harmonic of the modulation signal. + Here the order of the harmonic is stored. + sensitivity_factor(NX_NUMBER): + doc: | + Ratio of output signal amplitude to input signal amplitue (V/V). + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 06c3ab36c9bb89e3392cd52a7a8cfe243c87a50827f070e5659934f816c341ea +# +# +# +# +# +# A base class definition for a lock-in amplifier. +# The lock-in amplifier information: the device is being used to extract a (potentially) +# very weak input signal buried in the noisy background, where the input signal has +# the same frequency (or its harmonic) as a known reference signal. Additionally, +# the phase shift between the input signal and the reference signal is measured. +# The reference signal might be created by a generator built-in into the lock-in amplifier. +# +# +# +# Hardware manufacturers and type of lock-in amplifier. +# +# +# +# +# Description of the amplifier (after detection of the signal from the noise) +# +# +# +# +# Bias divider for lock-in channel if if has. +# Bias divider = V(ref)/[V(ref)+V(input)] +# +# +# +# +# Switch the lock-in modulation on or off. +# +# +# +# +# A periodic voltage signal generated by the lock-in, +# usually applied to a sample and used to create a reference signal for the detection of the input signal +# +# +# +# +# The number that defines the sign of the lock-in current. The calibration procedure +# with retracted tip is normally performed to compensate for the signal phase delay +# in SPM. The procedure yields two possible solutions, this number should be equal +# to 1 or -1 depending on which solution is chosen. +# +# +# +# +# +# +# Amplitude of the reference signal for the lock-in amplifier. +# +# +# +# +# Frequency of the reference signal for the lock-in amplifier. +# +# +# +# +# Phase of the reference signal for the lock-in amplifier. +# +# +# +# +# The modulated output signal will be demodulated, in order to determine the amplitude +# and phase at the frequency set in the Frequency field or harmonics, such as current, +# bias, et.al. +# +# +# +# +# The frequency of the demodulated signal. +# +# +# +# +# The bandwidth of the modulated signal that can be applied in frequency +# demodulation mechanism. +# +# +# +# +# +# The amplitude of the demodulated signal. +# +# +# +# +# The bandwidth of the modulated signal that can be applied in amplitude +# demodulation mechanism. +# +# +# +# +# The phase of the demodulated signal. +# +# +# +# +# The bandwidth of the modulated signal that can be applied in phase demodulation +# mechanism. +# +# +# +# +# List of the demodulator channels. +# +# +# +# +# Frequency of the low-pass filter applied on the demodulated +# signals (X,Y), cut-off frq (low pass filter) (for each DemodulatorChannels). +# +# +# +# +# Frequency of the high-pass filter applied on the demodulation +# signal cut-off frq (hi pass filter) (for each DemodulatorChannels). +# +# +# +# +# Order of the low-pass filter applied on the demodulated signals (X, Y). +# Reducing the bandwidth or increasing the order reduces noise on the demodulated signals, +# but increases settling and measurement times. +# +# +# +# +# Order of the high-pass filter applied on the demodulation +# signal. This is used mainly to suppress a DC component of the input +# signal noise. +# +# +# +# +# Reference phase of reference signal with respect to the demodulated signal +# (foreach Channels). +# +# +# +# +# Integration time for the product of the input and the reference signals +# +# +# +# +# The reference signal can be a higher harmonic of the modulation signal. +# Here the order of the harmonic is stored. +# +# +# +# +# Ratio of output signal amplitude to input signal amplitue (V/V). +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml b/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml new file mode 100644 index 000000000..c5ddd1370 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml @@ -0,0 +1,192 @@ +category: base +doc: | + A base class describing piezo settings for scanning probe microscopy. + + The piezoelectric material of SPM actuators gets deformed due to the applied electric field. + Description below shows calibration coefficients and other configuration parameters of the piezo actuators. + +# Discussion: No need to create this base class rather we can define in spm application definition. +type: group +NXpiezo_config_spm(NXobject): + piezo_material(NXpiezoelectric_material): + doc: | + The material description and properties of the piezoelectric scanner materials. + curvature_radius_N(NX_NUMBER): + unit: NX_LENGTH + doc: | + The N (substring) denotes X or Y. There are 2 parameters in X and Y directions. It can be set + approximately to the length of the piezo tube along X and Y axis. + calibration(NXcalibration): + calibration_type(NX_CHAR): + doc: | + The name of the calibration type, sometimes it is called + `active calibration`. + enumeration: [active, passive] + calibration_name: + doc: | + A specific name of the calibration (e.g. active type with name 'LHe'). + caliberation_date(NX_DATE_TIME): + doc: | + The date of the calibration. + calibrated_AXIS(NX_NUMBER): + doc: | + The AXIS (substring) denotes X, Y or Z. There are three directions X, Y, and Z for calibration, + along with three available parameters each: Calibration (m/V), Range (m), and HV gain. Only + two of these parameters are required to define the calibration. Consequently, when any + value is changed, one of the other values will be automatically updated. + hv_gain_N(NX_NUMBER): + doc: | + The N (substring) denotes X or Y or Z. In some systems, there is an HV gain readout feature. For + these systems, the HV gain should be automatically adjusted whenever the gain is + changed at the high voltage amplifier. + range_N(NX_NUMBER): + unit: NX_LENGTH + doc: | + The N (substring) denotes X or Y or Z. There are 3 parameters in X, Y and Z directions. The range + is the maximum distance the piezo can move. + calibration_coeffecient_N(NX_NUMBER): + unit: NX_ANY + doc: | + The calibration coefficient is the ratio of the actual distance moved by the piezo due to + the voltage applied to the piezo. It is also called first-order correction. + tilt_N(NX_NUMBER): + unit: NX_ANGLE + doc: | + The N (substring) denotes X and Y directions, and for both directions tilt needs to be adjusted according + to the actual surface. + 2nd_order_corr_N(NX_NUMBER): + unit: NX_ANY + doc: | + The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo + characteristics to compensate the error for that axis. + The following equation shows the + interpretation of the 2nd order correction parameters, For the X-piezo: "Ux = 1/cx · X + cxx · X2" + with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" + where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for + such the second-order correction is (V/m^2). + drift_N(NX_NUMBER): + unit: NX_ANY + doc: | + The N (substring) denotes X, Y and Z directions. Define the + drift speed [m/s] for all three axes. When the compensation is on, the piezo will start to + move at that speed. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 953b4253698e2e4e24a47d81d81f7629f1846c7ac3f25be794df86f86367323b +# +# +# +# +# +# +# A base class describing piezo settings for scanning probe microscopy. +# +# The piezoelectric material of SPM actuators gets deformed due to the applied electric field. +# Description below shows calibration coefficients and other configuration parameters of the piezo actuators. +# +# +# +# The material description and properties of the piezoelectric scanner materials. +# +# +# +# The N (substring) denotes X or Y. There are 2 parameters in X and Y directions. It can be set +# approximately to the length of the piezo tube along X and Y axis. +# +# +# +# +# +# +# The name of the calibration type, sometimes it is called +# `active calibration`. +# +# +# +# +# +# +# +# +# A specific name of the calibration (e.g. active type with name 'LHe'). +# +# +# +# +# The date of the calibration. +# +# +# +# +# The AXIS (substring) denotes X, Y or Z. There are three directions X, Y, and Z for calibration, +# along with three available parameters each: Calibration (m/V), Range (m), and HV gain. Only +# two of these parameters are required to define the calibration. Consequently, when any +# value is changed, one of the other values will be automatically updated. +# +# +# +# +# The N (substring) denotes X or Y or Z. In some systems, there is an HV gain readout feature. For +# these systems, the HV gain should be automatically adjusted whenever the gain is +# changed at the high voltage amplifier. +# +# +# +# +# The N (substring) denotes X or Y or Z. There are 3 parameters in X, Y and Z directions. The range +# is the maximum distance the piezo can move. +# +# +# +# +# The calibration coefficient is the ratio of the actual distance moved by the piezo due to +# the voltage applied to the piezo. It is also called first-order correction. +# +# +# +# +# The N (substring) denotes X and Y directions, and for both directions tilt needs to be adjusted according +# to the actual surface. +# +# +# +# +# The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo +# characteristics to compensate the error for that axis. +# The following equation shows the +# interpretation of the 2nd order correction parameters, For the X-piezo: "Ux = 1/cx · X + cxx · X2" +# with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" +# where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for +# such the second-order correction is (V/m^2). +# +# +# +# +# The N (substring) denotes X, Y and Z directions. Define the +# drift speed [m/s] for all three axes. When the compensation is on, the piezo will start to +# move at that speed. +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml b/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml new file mode 100644 index 000000000..7dc433a5b --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml @@ -0,0 +1,191 @@ +category: base +doc: | + Description and properties of the piezoelectric actuator materials. + The piezoelectric actuator is usually composed of polycrystalline solids and + attached at the head of the tip or cantilever. The material deforms when the external electric field is applied. +type: group +NXpiezoelectric_material(NXobject): + + # Online links: + # 1. ttps://www.ulprospector.com/knowledge/2689/pe-piezoelectric-materials/#:~:text=piezoelectric ceramics, such as lithium,as polyvinylidene fluoride (PVDF). + # 2. https://info.piezo.com/hubfs/Data-Sheets/piezo-material-properties-data-sheet-20201112.pdf + # 3. https://application.wiley-vch.de/books/sample/3527345124_c01.pdf + name(NX_CHAR): + doc: | + The name of the material of the piezo scanner such as Lead Zirconate Titanates + (PZTs). + chemical_description(NXsubstance): + doc: | + The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. + type(NX_CHAR): + doc: | + The type of the material of the piezo scanner (e.g. piezoelectric ceramics, + polymer-film piezoelectrics). + + # Properties of the piezo material + density(NX_NUMBER): + unit: NX_ANY + doc: | + The density of the piezo material. + relative_permittivity(NX_NUMBER): + unit: NX_ANY + doc: | + The relative permittivity (dielectric constant) of the piezo material. + D_piezoelectric_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The piezoelectric charge coefficients of the material. The coefficients describe the electric + polarization generated by the applied stress in material. Different coefficients correspond to different + relative directions of the polarization and the stress. + G_voltage_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The constants define the electric field produced by the external mechanical strain. Different coefficients + correspond to different relative directions of the electric field and the strain. + K_electromechanical_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The electromechanical constant measures the efficiency of the conversion of mechanical energy + into electrical energy. + P_pyroelectric_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The pyroelectric constant defines the change of the polarization vector of the piezoelectric material + per unit change in temperature. + acoustic_impedance(NX_NUMBER): + unit: NX_ANY + doc: | + The acoustic impedance of the piezo material. + young_modulus(NX_NUMBER): + unit: NX_ANY + doc: | + The Young's modulus of the piezo material. + surface_resistivity(NX_NUMBER): + unit: NX_ANY + doc: | + The surface resistivity of the piezo material. + temperature_range(NX_NUMBER): + unit: NX_TEMPERATURE + doc: | + The temperature range of the piezo material. + glass_transition_temperature(NX_NUMBER): + unit: NX_TEMPERATURE + doc: | + The range of temperature where a piezoelectric hard material transforms into the + viscous state. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 39d5862b3a9e4f526a71d3a1ad2234a4f4de5b953ce08c21e47f8bd7a9670ed7 +# +# +# +# +# +# Description and properties of the piezoelectric actuator materials. +# The piezoelectric actuator is usually composed of polycrystalline solids and +# attached at the head of the tip or cantilever. The material deforms when the external electric field is applied. +# +# +# +# +# The name of the material of the piezo scanner such as Lead Zirconate Titanates +# (PZTs). +# +# +# +# +# The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. +# +# +# +# +# The type of the material of the piezo scanner (e.g. piezoelectric ceramics, +# polymer-film piezoelectrics). +# +# +# +# +# +# The density of the piezo material. +# +# +# +# +# The relative permittivity (dielectric constant) of the piezo material. +# +# +# +# +# The piezoelectric charge coefficients of the material. The coefficients describe the electric +# polarization generated by the applied stress in material. Different coefficients correspond to different +# relative directions of the polarization and the stress. +# +# +# +# +# The constants define the electric field produced by the external mechanical strain. Different coefficients +# correspond to different relative directions of the electric field and the strain. +# +# +# +# +# The electromechanical constant measures the efficiency of the conversion of mechanical energy +# into electrical energy. +# +# +# +# +# The pyroelectric constant defines the change of the polarization vector of the piezoelectric material +# per unit change in temperature. +# +# +# +# +# The acoustic impedance of the piezo material. +# +# +# +# +# The Young's modulus of the piezo material. +# +# +# +# +# The surface resistivity of the piezo material. +# +# +# +# +# The temperature range of the piezo material. +# +# +# +# +# The range of temperature where a piezoelectric hard material transforms into the +# viscous state. +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml b/contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml new file mode 100644 index 000000000..66ff50e75 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml @@ -0,0 +1,94 @@ +category: base +doc: | + Extending positioner from NXpositioner to maintain a measurement signal through + a feedback loop. +type: group +NXpositioner_spm(NXpositioner): + z_controller(NXpid): + doc: | + This controller's task is to continuously adjust the Z position of the STM/STS tip in order + to keep the selected control signal as close as possible to the Set Point. Different control + signals lead to different controller's behavior. + + The second PID feedback loop intends to position the tip in the Z direction. + + p_gain (proportional gain) from z_controller is the same as K_p_value from PID controller. + i_gain (integral gain) from z_controller is the same as K_i_value from PID controller. + setpoint from z_controller is the same as setpoint from PID controller. + z_offset(NX_NUMBER): + unit: NX_LENGTH + doc: | + Offset added to the initial averaged position tip on Z-axis before starting to + scan. + tip_position_z(NX_NUMBER): + unit: NX_LENGTH + doc: | + Indicate the tip position Z between tip and sample. The tip position can also be varied when + the controller is not running. This is the final position after the tip reaches an equilibrium state. + controller_name(NX_CHAR): + doc: | + Controller name. This name which will be displayed at places where you can select a + controller. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 4eb587390d9a541bd31e756cb5262a7bf2f824c70bd289041f5ab8dad89bd15a +# +# +# +# +# +# Extending positioner from NXpositioner to maintain a measurement signal through +# a feedback loop. +# +# +# +# This controller's task is to continuously adjust the Z position of the STM/STS tip in order +# to keep the selected control signal as close as possible to the Set Point. Different control +# signals lead to different controller's behavior. +# +# The second PID feedback loop intends to position the tip in the Z direction. +# +# p_gain (proportional gain) from z_controller is the same as K_p_value from PID controller. +# i_gain (integral gain) from z_controller is the same as K_i_value from PID controller. +# setpoint from z_controller is the same as setpoint from PID controller. +# +# +# +# +# Offset added to the initial averaged position tip on Z-axis before starting to +# scan. +# +# +# +# +# Indicate the tip position Z between tip and sample. The tip position can also be varied when +# the controller is not running. This is the final position after the tip reaches an equilibrium state. +# +# +# +# +# Controller name. This name which will be displayed at places where you can select a +# controller. +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXrcs.yaml b/contributed_definitions/nyaml/SPM/NXrcs.yaml new file mode 100644 index 000000000..72dbc9374 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXrcs.yaml @@ -0,0 +1,101 @@ +category: base +doc: | + A base class for the Real Time Control System (RCS). + + A real time control system (RCS) is a reference architecture model + used to design highly task intensive software systems and computing + control systems. +type: group +NXrcs(NXobject): + rcs_name(NX_CHAR): + doc: | + The name of the real-time control system. + rcs_fabrication(NXfabrication): + doc: | + The fabrication information. + rcs_description(NX_CHAR): + doc: | + The description of the real-time control system. + rcs_type(NX_CHAR): + doc: | + The type of the real-time control system. + rcs_manufacturer(NX_CHAR): + doc: | + The manufacturer of the real-time control system. + rcs_serial_number(NX_CHAR): + doc: | + The serial number of the real-time control system. + rcs_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The frequency of the real-time control system. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 0e3f7bfa269c90b6102b23f0c39c4fc5e6fe67bd44a38c647502e94ebf0de5f7 +# +# +# +# +# +# A base class for the Real Time Control System (RCS). +# +# A real time control system (RCS) is a reference architecture model +# used to design highly task intensive software systems and computing +# control systems. +# +# +# +# The name of the real-time control system. +# +# +# +# +# The fabrication information. +# +# +# +# +# The description of the real-time control system. +# +# +# +# +# The type of the real-time control system. +# +# +# +# +# The manufacturer of the real-time control system. +# +# +# +# +# The serial number of the real-time control system. +# +# +# +# +# The frequency of the real-time control system. +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXscan_control.yaml b/contributed_definitions/nyaml/SPM/NXscan_control.yaml new file mode 100644 index 000000000..2e183a83f --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXscan_control.yaml @@ -0,0 +1,1066 @@ +category: base + +# Correction: region (use: phase space) +doc: | + A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). + + scan_types: + Trajectory: A list of N-dimensional sequential vectors describes the trajectory line for a full scan. + Mesh: For each dimension a range and a direction are chosen. When a scan along a dimension is done, a single step in the next dimension is taken, and then the scan in the previous dimension is repeated. As such we can speak about the fastest and the slowest scan axes. + Snake: Similar to a mesh scan but with the scanning direction reversed after each line. + Spiral: A scan taken along a spiral trajectory. + Tilt: At each step, a proportional movement is done in all dimensions. + Linear: A scan where the scanning will be performed along a single independent axis. + + Scan_control_types: + Stepping: At each step, a movement to the next point is performed; correction (for example backlash) or active regulation (feedback loop) may or may not be applied. After the movement is done, the measurement is performed without the movement. + Continuous: The scanning of each line in an N-dimensional phase space is done without stopping; measurements are done simultaneously with the movement. + Oscillating: Scanning over a scan point continuously and then moving to start scanning at the next position. +type: group +NXscan_control(NXobject): + scan_time_start(NX_DATE_TIME): + unit: NX_TIME + doc: | + The start time of the scan. + scan_time_end(NX_DATE_TIME): + unit: NX_TIME + doc: | + The end time of the scan. + independent_scan_axes: + doc: | + A list of scan axes which are controlled independently of each other. + (e.g. X, Y, Z, or other physical dimensions) + + The list is in the order of axes of the scan from the fastest to the slowest. + scan_resolution_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan resolution along each dimension as the number of steps per unit of the dimension parameters. + + Rename the field according to the name of the independent dimension (e.g. scan_resolution_x, scan_resolution_voltage). + accuracy_N(NX_NUMBER): + unit: NX_LENGTH + doc: | + Define the accuracy of the scan probe. + scan_type: + doc: | + This group specifies how the trajectory of the scan is defined. + enumeration: [trajectory, mesh, snake, spiral] + scan_control_type: + doc: | + This group specifies whether there is any movement when a data point is + measured. + enumeration: [stepping, continuous, oscillating] + scan_region(NXobject): + doc: | + The scan region is the area of phase space or sub-phase space where the scan is + performed. The region could be N-dimensional and is defined by the minimum and + maximum values of the scan axes. + scan_offset_N(NX_NUMBER): + unit: NX_ANY + doc: | + The offset of the scan region from the origin along the specific scan axis. + + 'N' denotes the name of the specific scan axis. + scan_range_N(NX_NUMBER): + unit: NX_ANY + doc: | + The range of the scan is the length of the scan region along the dimension 'N'. + scan_angle_N(NX_NUMBER): + unit: NX_ANGLE + doc: | + The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough + to define the scan region. This field defines how the spatial space is oriented with respect to + the frame of reference. + + Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). + scan_start_N(NX_NUMBER): + unit: NX_ANY + doc: | + The start of the scan is the starting point of the scan region (phase space or sub-phase space) + for each independent scan axis. + + For N-dimensional, it is a list of N numbers. + scan_end_N(NX_NUMBER): + unit: NX_ANY + doc: | + The end of the scan is the ending point of the scan region (phase space or sub-phase space) + for each independent scan axis. + + Note: The scan_offset and scan_range are equivalent to the scan_start and scan_end. + + For N-dimensional, it is a list of N numbers. + mesh_SCAN(NXobject): + doc: | + For each dimension a range and a direction are chosen. When a scan along a dimension is done, + a single step in the next dimension is taken, and then the scan in the previous dimension is + repeated. As such we can speak about the fastest and the slowest scan axes. + scan_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the forward direction along the axis. + + If the scan goes in the negative direction, the speed should be negative. + + Rename the field, according to the name of the dimension (e.g. scan_speed_x, scan_speed_voltage). + forward_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the forward directions. + Rename the field, according to the name of the dimension. + backward_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the backward directions. + Rename the field, according to the name of the dimension. + channel_NAME_N: + doc: | + Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is + to represent the name of the dimensions. + + Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). + scan_points_N(NX_NUMBER): + doc: | + Define the total number of points in the given axis scan to be performed. + + Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). + stepping_N(NX_NUMBER): + doc: | + The number of steps the probe jumps over the scan steps or points. + + Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + step_size_N(NX_NUMBER): + unit: NX_ANY + doc: | + The length of each step in the scan on each dimension. + + Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). + continuous_N(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points or steps, use True. The default value is True. + Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves + in steps. + + Rename the field, according to the name of the dimension (e.g. continuous_voltage). + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. + The default value is False. + oscillation_frequency(NX_NUMBER): + doc: | + The number of oscillations on each scanning point per second. + SCAN_DATA(NXdata): + data: + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + + # For spiral scan + spiral_SCAN(NXobject): + doc: | + To define the spiral or circular scan, use this group. + scan_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in forward (clockwise) directions. + + If the scan goes in the negative (anti-clockwise) direction, the speed should be negative. + + Rename the field, according to the circle index. The circle near the center starts with 0. + In case, the speed is the same for all the circles, replace 'N' by 'all'. + \@spiral_direction: + doc: | + Define the direction of the spiral scan. (e.g. clockwise, anticlockwise) + enumeration: [clockwise, anticlockwise] + forward_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the forward (clockwise) directions. + Rename the field, according to the circle index. The circle near the center starts with 0. + + In case, the speed is the same for all the circles, replace 'N' by 'all'. + backward_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the backward (anti-clockwise) directions. + Rename the field, according to the circle index. The circle near the center starts with 0. + + In case, the speed is the same for all the circles, replace 'N' by 'all'. + spiral_radius_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the radius of the spiral circle of scanning. + + Rename the field, according to the circle order, the nearest circle to the center is 0. + scan_points_N(NX_NUMBER): + doc: | + Define the total number of points in a given circle scan to be performed. + + Rename the field, according to the circle order, the nearest circle to the center + is 0 (e.g. scan_points_2). + stepping_N(NX_NUMBER): + doc: | + If the scan probe steps over a number of scan points. + + Rename the field, according to the circle index. The circle near the center starts with 0. + In case, the stepping is the same for all the circles, replace 'N' by 'all'. + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one), use True. + The default value is False. + step_size_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the number of points that the scan probe steps over. + + Rename the field, according to the circle index. The circle near the center or lowest value of a + parameter starts with 0. + In case, the step size is the same for all the circles, replace 'N' by 'all'. + continuous_N(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points, use True. The default value is True. + A scan process can run continuously in the spatial dimension but can be discretized in time or + other physical dimensions (e.g. voltage). + + Rename this field according to the dimensions, considering continuous scan in a two-dimensional space + rename the field as continuous_x_y. + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. The default value is + False. + oscillation_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Number of oscillation on each scanning point per second. + SCAN_DATA(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + + # This active_trajectory could be explained under the same group + snake_SCAN(NXobject): + doc: | + To define the snake scan, use this group. + scan_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed for the type of snake scan. For the same speed along the + positive and negative directions, use a single number + + Rename the field, according to the name of the fast and slow axis e.g. scan_speed_x. + forward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The field defines the scan speed in the positive direction on the fast axis. + + Rename the field, according to the name of the fast axis. + backward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The field defines the scan speed in the negative direction on the fast axis. + + Rename the field, according to the name of the fast axis. + scan_points_N(NX_NUMBER): + doc: | + Define the total number of points in the given axis scan to be performed. + + Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). + stepping_N(NX_NUMBER): + doc: | + The number of steps the probe jumps over the scan steps or points. + + Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + + Rename the field, according to the name of the dimension. + step_size_N(NX_NUMBER): + unit: NX_ANY + doc: | + The length of each step in the scan on each dimension. + + Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). + channel_NAME_N: + doc: | + Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is + to represent the name of the dimensions. + + Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). + continuous_N(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points or steps, use True. The default value is True. + Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves + in a stepping manner. + + Rename the field, according to the name of the dimension (e.g. continuous_voltage). + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. + The default value is False. + oscillation_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The number of oscillations on each scanning point per second. + SCAN_DATA(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + traj_SCAN(NXobject): + doc: | + To define the trajectory scan, use this group. + scan_speed(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed through the trajectory points. + forward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The field defines the scan speed in the forward directions through the + trajectory points. + backward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The field defines the scan speed in the backward directions (backtracking) + through the trajectory points. + channel_NAME_N: + doc: | + Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is + to represent the name of the dimensions. + + Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). + number_of_trajectory_points(NX_NUMBER): + doc: | + The number of trajectory points in the entire scan. + trajectory_points(NX_NUMBER): + doc: | + The trajectory points are the N-dimensional vectors describing all the scan points sequentially. + + The second rank dataset should contain total number of trajectory points (nTraj) and + a full coordinate (nD) of each trajectory point. + dimensions: + rank: 2 + dim: [[1, nTraj], [2, nD]] + scan_points_N(NX_NUMBER): + doc: | + Define the total number of scan points between two trajectory points. + + Rename the field, according to the index of the second trajectory points. + For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. + stepping_N(NX_NUMBER): + doc: | + The number of steps the probe jumps over the scan steps or points along the trajectory line from between two trajectory points. + + Rename the field, according to the index of the second trajectory points. + For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + step_size(NX_NUMBER): + unit: NX_ANY + doc: | + The length of each step along the entire trajectory line. + continuous(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points or steps between two + trajectory points, use True. The default value is True. + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. + The default value is False. + oscillation_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The number of oscillations on each scanning point per second. + SCAN_DATA(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + linear_SCAN(NXobject): + doc: | + Define the scan mode that is performed for a single independent data axis. + scan_speed(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed of the scan disregarding the forward or backward + direction. + forward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the forward directions. + backward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the backward directions. + channel_NAME(NX_CHAR): + doc: | + Name of the channel that records the scan data for the given dimension. + scan_points_N(NX_NUMBER): + doc: | + Define the total number of points in the given axis scan to be performed. + + Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). + stepping_N(NX_NUMBER): + doc: | + The number of steps the probe jumps over the scan steps or points. + + Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + step_size_N(NX_NUMBER): + unit: NX_ANY + doc: | + The length of each step in the scan on each dimension. + + Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). + continuous_N(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points or steps, use True. The default value is True. + Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves + in a stepping manner. + + Rename the field, according to the name of the dimension (e.g. continuous_voltage). + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. + The default value is False. + oscillation_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The number of oscillations on each scanning point per second. + SCAN_DATA(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# a99c94ee5ab6ba0f08f75bdee50080cc8a5359eb1c3dd481557b3a6ca8a95148 +# +# +# +# +# +# +# A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). +# +# scan_types: +# Trajectory: A list of N-dimensional sequential vectors describes the trajectory line for a full scan. +# Mesh: For each dimension a range and a direction are chosen. When a scan along a dimension is done, a single step in the next dimension is taken, and then the scan in the previous dimension is repeated. As such we can speak about the fastest and the slowest scan axes. +# Snake: Similar to a mesh scan but with the scanning direction reversed after each line. +# Spiral: A scan taken along a spiral trajectory. +# Tilt: At each step, a proportional movement is done in all dimensions. +# Linear: A scan where the scanning will be performed along a single independent axis. +# +# Scan_control_types: +# Stepping: At each step, a movement to the next point is performed; correction (for example backlash) or active regulation (feedback loop) may or may not be applied. After the movement is done, the measurement is performed without the movement. +# Continuous: The scanning of each line in an N-dimensional phase space is done without stopping; measurements are done simultaneously with the movement. +# Oscillating: Scanning over a scan point continuously and then moving to start scanning at the next position. +# +# +# +# The start time of the scan. +# +# +# +# +# The end time of the scan. +# +# +# +# +# A list of scan axes which are controlled independently of each other. +# (e.g. X, Y, Z, or other physical dimensions) +# +# The list is in the order of axes of the scan from the fastest to the slowest. +# +# +# +# +# Define the scan resolution along each dimension as the number of steps per unit of the dimension parameters. +# +# Rename the field according to the name of the independent dimension (e.g. scan_resolution_x, scan_resolution_voltage). +# +# +# +# +# Define the accuracy of the scan probe. +# +# +# +# +# This group specifies how the trajectory of the scan is defined. +# +# +# +# +# +# +# +# +# +# +# This group specifies whether there is any movement when a data point is +# measured. +# +# +# +# +# +# +# +# +# +# The scan region is the area of phase space or sub-phase space where the scan is +# performed. The region could be N-dimensional and is defined by the minimum and +# maximum values of the scan axes. +# +# +# +# The offset of the scan region from the origin along the specific scan axis. +# +# 'N' denotes the name of the specific scan axis. +# +# +# +# +# The range of the scan is the length of the scan region along the dimension 'N'. +# +# +# +# +# The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough +# to define the scan region. This field defines how the spatial space is oriented with respect to +# the frame of reference. +# +# Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). +# +# +# +# +# The start of the scan is the starting point of the scan region (phase space or sub-phase space) +# for each independent scan axis. +# +# For N-dimensional, it is a list of N numbers. +# +# +# +# +# The end of the scan is the ending point of the scan region (phase space or sub-phase space) +# for each independent scan axis. +# +# Note: The scan_offset and scan_range are equivalent to the scan_start and scan_end. +# +# For N-dimensional, it is a list of N numbers. +# +# +# +# +# +# For each dimension a range and a direction are chosen. When a scan along a dimension is done, +# a single step in the next dimension is taken, and then the scan in the previous dimension is +# repeated. As such we can speak about the fastest and the slowest scan axes. +# +# +# +# Define the scan speed in the forward direction along the axis. +# +# If the scan goes in the negative direction, the speed should be negative. +# +# Rename the field, according to the name of the dimension (e.g. scan_speed_x, scan_speed_voltage). +# +# +# +# +# Define the scan speed in the forward directions. +# Rename the field, according to the name of the dimension. +# +# +# +# +# Define the scan speed in the backward directions. +# Rename the field, according to the name of the dimension. +# +# +# +# +# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is +# to represent the name of the dimensions. +# +# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). +# +# +# +# +# Define the total number of points in the given axis scan to be performed. +# +# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). +# +# +# +# +# The number of steps the probe jumps over the scan steps or points. +# +# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one) +# to perform each scan. By default, it is False. +# +# +# +# +# +# The length of each step in the scan on each dimension. +# +# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). +# +# +# +# +# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. +# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves +# in steps. +# +# Rename the field, according to the name of the dimension (e.g. continuous_voltage). +# +# +# +# +# If the scan probe oscillates over the scan point, use True. +# The default value is False. +# +# +# +# +# The number of oscillations on each scanning point per second. +# +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# +# +# +# +# To define the spiral or circular scan, use this group. +# +# +# +# Define the scan speed in forward (clockwise) directions. +# +# If the scan goes in the negative (anti-clockwise) direction, the speed should be negative. +# +# Rename the field, according to the circle index. The circle near the center starts with 0. +# In case, the speed is the same for all the circles, replace 'N' by 'all'. +# +# +# +# Define the direction of the spiral scan. (e.g. clockwise, anticlockwise) +# +# +# +# +# +# +# +# +# +# Define the scan speed in the forward (clockwise) directions. +# Rename the field, according to the circle index. The circle near the center starts with 0. +# +# In case, the speed is the same for all the circles, replace 'N' by 'all'. +# +# +# +# +# Define the scan speed in the backward (anti-clockwise) directions. +# Rename the field, according to the circle index. The circle near the center starts with 0. +# +# In case, the speed is the same for all the circles, replace 'N' by 'all'. +# +# +# +# +# Define the radius of the spiral circle of scanning. +# +# Rename the field, according to the circle order, the nearest circle to the center is 0. +# +# +# +# +# Define the total number of points in a given circle scan to be performed. +# +# Rename the field, according to the circle order, the nearest circle to the center +# is 0 (e.g. scan_points_2). +# +# +# +# +# If the scan probe steps over a number of scan points. +# +# Rename the field, according to the circle index. The circle near the center starts with 0. +# In case, the stepping is the same for all the circles, replace 'N' by 'all'. +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one), use True. +# The default value is False. +# +# +# +# +# +# Define the number of points that the scan probe steps over. +# +# Rename the field, according to the circle index. The circle near the center or lowest value of a +# parameter starts with 0. +# In case, the step size is the same for all the circles, replace 'N' by 'all'. +# +# +# +# +# If the scan probe moves continuously over the scan points, use True. The default value is True. +# A scan process can run continuously in the spatial dimension but can be discretized in time or +# other physical dimensions (e.g. voltage). +# +# Rename this field according to the dimensions, considering continuous scan in a two-dimensional space +# rename the field as continuous_x_y. +# +# +# +# +# If the scan probe oscillates over the scan point, use True. The default value is +# False. +# +# +# +# +# Number of oscillation on each scanning point per second. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# +# +# +# To define the snake scan, use this group. +# +# +# +# Define the scan speed for the type of snake scan. For the same speed along the +# positive and negative directions, use a single number +# +# Rename the field, according to the name of the fast and slow axis e.g. scan_speed_x. +# +# +# +# +# The field defines the scan speed in the positive direction on the fast axis. +# +# Rename the field, according to the name of the fast axis. +# +# +# +# +# The field defines the scan speed in the negative direction on the fast axis. +# +# Rename the field, according to the name of the fast axis. +# +# +# +# +# Define the total number of points in the given axis scan to be performed. +# +# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). +# +# +# +# +# The number of steps the probe jumps over the scan steps or points. +# +# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one) +# to perform each scan. By default, it is False. +# +# Rename the field, according to the name of the dimension. +# +# +# +# +# +# The length of each step in the scan on each dimension. +# +# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). +# +# +# +# +# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is +# to represent the name of the dimensions. +# +# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). +# +# +# +# +# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. +# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves +# in a stepping manner. +# +# Rename the field, according to the name of the dimension (e.g. continuous_voltage). +# +# +# +# +# If the scan probe oscillates over the scan point, use True. +# The default value is False. +# +# +# +# +# The number of oscillations on each scanning point per second. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# +# +# To define the trajectory scan, use this group. +# +# +# +# Define the scan speed through the trajectory points. +# +# +# +# +# The field defines the scan speed in the forward directions through the +# trajectory points. +# +# +# +# +# The field defines the scan speed in the backward directions (backtracking) +# through the trajectory points. +# +# +# +# +# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is +# to represent the name of the dimensions. +# +# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). +# +# +# +# +# The number of trajectory points in the entire scan. +# +# +# +# +# The trajectory points are the N-dimensional vectors describing all the scan points sequentially. +# +# The second rank dataset should contain total number of trajectory points (nTraj) and +# a full coordinate (nD) of each trajectory point. +# +# +# +# +# +# +# +# +# Define the total number of scan points between two trajectory points. +# +# Rename the field, according to the index of the second trajectory points. +# For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. +# +# +# +# +# The number of steps the probe jumps over the scan steps or points along the trajectory line from between two trajectory points. +# +# Rename the field, according to the index of the second trajectory points. +# For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one) +# to perform each scan. By default, it is False. +# +# +# +# +# +# The length of each step along the entire trajectory line. +# +# +# +# +# If the scan probe moves continuously over the scan points or steps between two +# trajectory points, use True. The default value is True. +# +# +# +# +# If the scan probe oscillates over the scan point, use True. +# The default value is False. +# +# +# +# +# The number of oscillations on each scanning point per second. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# +# +# Define the scan mode that is performed for a single independent data axis. +# +# +# +# Define the scan speed of the scan disregarding the forward or backward +# direction. +# +# +# +# +# Define the scan speed in the forward directions. +# +# +# +# +# Define the scan speed in the backward directions. +# +# +# +# +# Name of the channel that records the scan data for the given dimension. +# +# +# +# +# Define the total number of points in the given axis scan to be performed. +# +# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). +# +# +# +# +# The number of steps the probe jumps over the scan steps or points. +# +# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one) +# to perform each scan. By default, it is False. +# +# +# +# +# +# The length of each step in the scan on each dimension. +# +# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). +# +# +# +# +# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. +# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves +# in a stepping manner. +# +# Rename the field, according to the name of the dimension (e.g. continuous_voltage). +# +# +# +# +# If the scan probe oscillates over the scan point, use True. +# The default value is False. +# +# +# +# +# The number of oscillations on each scanning point per second. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXsensor_scan.yaml b/contributed_definitions/nyaml/SPM/NXsensor_scan.yaml new file mode 100644 index 000000000..bb6efecb4 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXsensor_scan.yaml @@ -0,0 +1,374 @@ +category: application +doc: | + Application definition for a generic scan using sensors. + + In this application definition, times should be specified always together + with an UTC offset. +symbols: + doc: | + Variables used to set a common size for collected sensor data. + N_scanpoints: | + The number of scan points measured in this scan. +type: group +NXsensor_scan(NXobject): + (NXentry): + definition(NX_CHAR): + \@version: + enumeration: [NXsensor_scan] + experiment_identifier(NXidentifier): + exists: recommended + doc: | + The unique identifier for the entry. The identifier is mainly lab-defined and + can be a combination of the sample name, date and time, experiment condition + (such as temperature) or instrument-generated unique identifier. + collection_identifier: + exists: optional + doc: | + The unique identifier for the collection. The identifier is used to group a + number of the experiments run upon the same setup and/or same sample. + experiment_description: + exists: recommended + start_time(NX_DATE_TIME): + unit: NX_TIME + exists: recommended + end_time(NX_DATE_TIME): + unit: NX_TIME + exists: recommended + (NXprocess): + doc: | + Define the program that was used to generate the results file(s) + with measured data and metadata. + program(NX_CHAR): + doc: | + Commercial or otherwise defined given name of the program + (or a link to the instrument software). + \@version: + doc: | + Either version with build number, commit hash, or description of an + (online) repository where the source code of the program and build + instructions can be found so that the program can be configured in + such a way that result files can be created ideally in a + deterministic manner. + \@program_url: + doc: | + Website of the software. + (NXuser): + doc: | + Contact information of at least the user of the instrument or the + investigator who performed this experiment. Adding multiple users if + relevant is recommended. + name(NX_CHAR): + doc: | + Name of the user. + affiliation(NX_CHAR): + exists: recommended + doc: | + Name of the affiliation of the user at the point in time when + the experiment was performed. + address(NX_CHAR): + exists: recommended + doc: | + Full address (street, street number, ZIP, city, country) + of the user's affiliation. + email(NX_CHAR): + exists: recommended + doc: | + Email address of the user. + orcid(NX_CHAR): + exists: recommended + doc: | + Author ID defined by https://orcid.org/. + telephone_number(NX_CHAR): + exists: recommended + doc: | + Official telephone number of the user. + (NXnote): + exists: optional + doc: | + Any additional information or notes (e.g. purpose of the experiment) that might + be useful to understand the experiment. + (NXinstrument): + (NXenvironment): + doc: | + Describes an environment setup for the experiment. + + All the setting values of the independently scanned controllers are listed under corresponding + NXsensor groups. Similarly, seperate NXsensor groups are used to store the readings from each + measurement sensor. + + For example, in a temperature-dependent IV measurement, the temperature and voltage must be + present as independently scanned controllers and the current sensor must also be present with + its readings. + (NXsensor): + (NXdata): + exists: recommended + doc: | + Plot of measured signal as a function of the timestamp of when they have been + acquired is also possible. + value(NX_FLOAT): + unit: NX_ANY + doc: | + For each point in the scan space, either the nominal setpoint of an independently scanned controller + or a representative average value of a measurement sensor is registered. + + The length of each sensor's data value array stored in this group should be equal to the number of scan points + probed in this scan. For every scan point [N], the corresponding sensor value can be picked from index [N]. + This allows the scan to be made in any order as the user describes above in the experiment. We get matching + values simply using the index of the scan point. + dimensions: + rank: 1 + dim: [[1, N_scanpoints]] + value_timestamp(NX_DATE_TIME): + exists: recommended + doc: | + Timestamp for when the values provided in the value field were registered. + + Individual readings can be stored with their timestamps under value_log. This is to timestamp + the nominal setpoint or average reading values listed above in the value field. + run_control(NX_CHAR): + exists: recommended + \@description: + doc: | + Free-text describing the data acquisition control: an internal + sweep using the built-in functionality of the controller device, + or a set/wait/read/repeat mechanism. + calibration_time(NX_DATE_TIME): + doc: | + ISO8601 datum when calibration was last performed + before this measurement. UTC offset should be specified. + (NXpid): + independent_controllers: + doc: | + A list of names of NXsensor groups used as independently scanned controllers. + measurement_sensors: + doc: | + A list of names of NXsensor groups used as measurement sensors. + (NXsample): + exists: recommended + name(NX_CHAR): + (NXhistory): + exists: optional + (NXdata): + doc: | + A scan specific representation of the measured signals as a function of the independently controlled environment settings. + Plot of every measured signal as a function of the timestamp of when they have been acquired is also possible. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 7edd229236b260394837fc2f5fe7b849cc0738f4d0c2267bf07291a6cbb040f2 +# +# +# +# +# +# +# Variables used to set a common size for collected sensor data. +# +# +# +# The number of scan points measured in this scan. +# +# +# +# +# Application definition for a generic scan using sensors. +# +# In this application definition, times should be specified always together +# with an UTC offset. +# +# +# +# +# +# +# +# +# +# +# The unique identifier for the entry. The identifier is mainly lab-defined and +# can be a combination of the sample name, date and time, experiment condition +# (such as temperature) or instrument-generated unique identifier. +# +# +# +# +# The unique identifier for the collection. The identifier is used to group a +# number of the experiments run upon the same setup and/or same sample. +# +# +# +# +# +# +# +# Define the program that was used to generate the results file(s) +# with measured data and metadata. +# +# +# +# Commercial or otherwise defined given name of the program +# (or a link to the instrument software). +# +# +# +# Either version with build number, commit hash, or description of an +# (online) repository where the source code of the program and build +# instructions can be found so that the program can be configured in +# such a way that result files can be created ideally in a +# deterministic manner. +# +# +# +# +# Website of the software. +# +# +# +# +# +# +# Contact information of at least the user of the instrument or the +# investigator who performed this experiment. Adding multiple users if +# relevant is recommended. +# +# +# +# Name of the user. +# +# +# +# +# Name of the affiliation of the user at the point in time when +# the experiment was performed. +# +# +# +# +# Full address (street, street number, ZIP, city, country) +# of the user's affiliation. +# +# +# +# +# Email address of the user. +# +# +# +# +# Author ID defined by https://orcid.org/. +# +# +# +# +# Official telephone number of the user. +# +# +# +# +# +# Any additional information or notes (e.g. purpose of the experiment) that might +# be useful to understand the experiment. +# +# +# +# +# +# Describes an environment setup for the experiment. +# +# All the setting values of the independently scanned controllers are listed under corresponding +# NXsensor groups. Similarly, seperate NXsensor groups are used to store the readings from each +# measurement sensor. +# +# For example, in a temperature-dependent IV measurement, the temperature and voltage must be +# present as independently scanned controllers and the current sensor must also be present with +# its readings. +# +# +# +# +# Plot of measured signal as a function of the timestamp of when they have been +# acquired is also possible. +# +# +# +# +# For each point in the scan space, either the nominal setpoint of an independently scanned controller +# or a representative average value of a measurement sensor is registered. +# +# The length of each sensor's data value array stored in this group should be equal to the number of scan points +# probed in this scan. For every scan point [N], the corresponding sensor value can be picked from index [N]. +# This allows the scan to be made in any order as the user describes above in the experiment. We get matching +# values simply using the index of the scan point. +# +# +# +# +# +# +# +# Timestamp for when the values provided in the value field were registered. +# +# Individual readings can be stored with their timestamps under value_log. This is to timestamp +# the nominal setpoint or average reading values listed above in the value field. +# +# +# +# +# +# Free-text describing the data acquisition control: an internal +# sweep using the built-in functionality of the controller device, +# or a set/wait/read/repeat mechanism. +# +# +# +# +# +# ISO8601 datum when calibration was last performed +# before this measurement. UTC offset should be specified. +# +# +# +# +# +# +# A list of names of NXsensor groups used as independently scanned controllers. +# +# +# +# +# A list of names of NXsensor groups used as measurement sensors. +# +# +# +# +# +# +# +# +# +# +# A scan specific representation of the measured signals as a function of the independently controlled environment settings. +# Plot of every measured signal as a function of the timestamp of when they have been acquired is also possible. +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXspm.yaml b/contributed_definitions/nyaml/SPM/NXspm.yaml new file mode 100644 index 000000000..ba681187b --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXspm.yaml @@ -0,0 +1,832 @@ +category: application +doc: | + Scanning Probe Microscopy (SPM) is a branch of microscopy that utilizes a physical probe to scan the surface of + sample and image it at the atomic level. + + The application class NXspm is designed as a skeleton and contains common technical concepts + for specific SPM sub-techniques such as STM, STS, AFM etc. +type: group +NXspm(NXsensor_scan): + (NXentry): + definition: + doc: | + Name of the definition that is used for the application. + enumeration: [NXspm] + experiment_technique: + doc: | + The technique of the experiment like STM, STS, AFM, etc. + enumeration: [STM, STS, AFM] + scan_mode: + exists: optional + doc: | + The mode of the scan. The possible options depend on the type of experiment. + For example, in STM, the scan mode could be constant height or constant current, + in AFM, the scan mode could be contact mode, tapping mode or non-contact mode. + scan_type: + exists: optional + doc: | + The type of the scan. It mainly describes how scan probe moves in the scan region, e.g. + forward, backward, or both (if scan is repeated). + experiment_identifier(NXidentifier): + exists: optional + doc: | + The identifiers for the experiment which should be unique at least in lab. + experiment_description: + exists: optional + doc: | + The description of the experiment like comments, ontes from from the experiment. + experiment_instrument(NXinstrument): + doc: | + The instrument information. + hardware(NXfabrication): + doc: | + The hardware description of the core instrument setup of the experiment. + Usually, the entire instrument is supplied by a single manufacturer. + To describe the hardware from any sub-components, use the hardware group of that + sub-component (child group of the NXinstrument group) group. + vendor: + doc: | + Company name of the manufacturer. + model: + doc: | + Version or model of the hardware setup provided by the manufacturer. + \@version: + exists: optional + doc: | + If different versions are possible, the value in this field should be made + specific enough to resolve the version. + software(NXfabrication): + doc: | + The software description of the core instrument setup of the experiment. + Usually, the entire instrument is supplied by a single name/manufacturer/model/etc. + To describe the software from any sub-components, use the software group of that component. + vendor: + doc: | + Company name of the manufacturer. + model: + doc: | + Version or model of the component named by the manufacturer. + \@version: + exists: optional + doc: | + If different versions are possible, the value in this field should be made + specific enough to resolve the version. + real_time_controller(NXrcs): + exists: optional + doc: | + The real-time controller information. + rcs_frequency(NX_NUMBER): + exists: optional + doc: | + The frequency of the real-time controller system which indicated the number of close-loop process + (gathering data, process data and update system) control cycles per second. + lockin_amplifier(NXlockin): + exists: optional + doc: | + The lock-in amplifier information. + scan_environment(NXenvironment): + doc: | + Information of the scan environment. + tip_temp(NX_NUMBER): + exists: optional + unit: NX_TEMPERATURE + doc: | + Temperature of STM head. Note: At least one field from tip_temp, + cryo_bottom_temp and cryo_shield_temp must be provided. + cryo_bottom_temp(NX_NUMBER): + exists: optional + unit: NX_TEMPERATURE + doc: | + Temperature of the cold tail of the cryostat. Note: At least one field from + tip_temp, cryo_bottom_temp and cryo_shield_temp must be provided. + cryo_shield_temp(NX_NUMBER): + exists: optional + unit: NX_TEMPERATURE + doc: | + Temperature of liquid nitrogen shield. Note: At + least one field from tip_temp, cryo_bottom_temp and cryo_shield_temp. + scan_name: + exists: optional + doc: | + The name of the scan, mainly lab defined, that helps to differentiate among different + scans performed in the lab. + current_sensor(NXsensor): + exists: optional + doc: | + This is a link to the current_sensor under the instrument group: + entry/experiment_instrument/current_sensor. + volatage_sensor(NXsensor): + exists: optional + doc: | + This is a link to the voltage_sensor under the instrument group: + entry/experiment_instrument/voltage_sensor. + piezo_sensor(NXsensor): + exists: optional + doc: | + This is a link to the piezo_sensor under the instrument group: + entry/experiment_instrument/piezo_sensor. + (NXscan_control): + doc: | + The scan control information like scan region or phase space, type of scan (e.g. + mesh, spiral, etc.), and scan speed, etc. This group mainly stores the raw scan + data. For processed data or final experimental data would go to NXdata group. + scan_name: + exists: optional + doc: | + The name of the scan, mainly lab defined, that helps to differentiate among different + scans performed in lab. This field is intended for several types of scan control + run under the same environment. + current_sensor(NXsensor): + exists: optional + doc: | + Information for current sensor. + (NXamplifier): + exists: optional + doc: | + An amplifier information for the input signal (e.g. from tip). + voltage_sensor(NXsensor): + exists: optional + doc: | + The sensor information for the voltage device. + (NXamplifier): + exists: optional + piezo_sensor(NXsensor): + doc: | + The piezo sensor refers to the height (or Z) piezo sensor if nothing is + mentioned along the X and Y directions. + x(NX_NUMBER): + unit: NX_LENGTH + doc: | + The x position of the piezo. In STS experiment, the piezo stays fixed at + x,y and z and the the tunneling current is measured with respect to the + bias voltage (sweep voltage). + y(NX_NUMBER): + unit: NX_LENGTH + doc: | + The y position of the piezo. + z(NX_NUMBER): + unit: NX_LENGTH + doc: | + The z position of the piezo. + piezo_configuration(NXpiezo_config_spm): + exists: optional + doc: | + The piezo configuration information like piezoelectric calibration and material + properties. + calibration(NXcalibration): + exists: optional + doc: | + Calibration of the piezo device. + (NXpositioner_spm): + doc: | + The positioner information like the position of the tip, the position of the + sample, PID loop feedback etc. + z_controller(NXpid): + doc: | + The PID controller information for the z-axis. + z(NX_NUMBER): + doc: | + To indicate the relative tip position z between tip and sample. The tip position + can also be varied when the z_controller is not running. + controller_status(NX_BOOLEAN): + doc: | + Status if controller is active. + piezo_material(NXpiezoelectric_material): + exists: optional + doc: | + The material description and properties of the piezoelectric scanner materials. + TEMPERATURE(NXsensor): + exists: optional + doc: | + A group handling the temperature such as cryo, shield and tip. For different + type of temperature sensors repeat this group. + temperature(NX_NUMBER): + exists: optional + unit: NX_TEMPERATURE + doc: | + The temperature of the sample. + CHANNEL_temp(NX_CHAR): + exists: optional + doc: | + The name of the channel to measure the temperature. + temperature_calibration(NXcalibration): + exists: optional + doc: | + Calibration of the temperature measurement. + coefficients(NX_NUMBER): + unit: NX_ANY + doc: | + The coefficients of the calibration. + TEMPERATURE_DATA(NXdata): + exists: optional + doc: | + Data (e.g, record from SPM head temperature) from temperature sensor. + bias_spectroscopy_environment(NXenvironment): + doc: | + To explain bias (sweep measurement) voltage applied to the sample. + (NXbias_spectroscopy): + doc: | + Setup and scan data for continuous measurement of bias-voltage on the subject of experiment + vs tunneling current from probe. + (NXpositioner_spm): + exists: optional + doc: | + The positioner information like the position of the tip, PID loop feedback etc. + z_controller(NXpid): + exists: optional + doc: | + The PID controller information for the z-axis. + z_average_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The average time taken by the z-controller to stabilize the tip. + z_controller_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time taken by the z-controller to measure physical properties. + z_controller_hold(NX_BOOLEAN): + exists: optional + doc: | + The status of the controller to be held on the previous position, before going to the + next scan point or line to measure the physical properties. + record_final_z(NX_BOOLEAN): + exists: optional + doc: | + The status of the controller to record the final z position after the scan. + bias_sweep(NXbias_sweep): + doc: | + The bais voltage sweep is a common technique used on the substance or sample or environment + to study the change in the behavior of the sample or substance or environment due to change + in applied bias voltage. + settling_time(NX_NUMBER): + unit: NX_TIME + doc: | + The time is taken to settle the bias voltage at the desired value. On each sweep usually, the system + takes time to settle the bias voltage at the next value. + scan_region(NXobject): + doc: | + The scan region (phase space or sub-phase space) is the region where the scan is + performed. + scan_offset_bias(NX_NUMBER): + exists: optional + unit: NX_VOLTAGE + doc: | + The offset of the bias voltage for bias sweep. + scan_range_bias(NX_NUMBER): + exists: optional + unit: NX_VOLTAGE + doc: | + The range of the scan is the length of the bias voltage over which the sweep + scan will be performed. + scan_start_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The start of the bias scan voltage. + scan_end_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The end of the bias scan voltage. + linear_sweep(NXobject): + doc: | + The linear sweep is a type of scan where the bias voltage is swept + linearly from the starting voltage to the ending voltage. + scan_points_bias(NX_NUMBER): + doc: | + The number of voltage points the sweep scan to be performed. + step_size_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The step size of the sweep. + The step size is the difference between the two consecutive bias voltage during the sweep. + reset_bias(NX_BOOLEAN): + exists: optional + doc: | + The reset_bias is used to reset the bias voltage to the starting value after a + sweep is completed. + sample_bias_votage(NXsensor): + exists: optional + doc: | + The DC bias voltage that is applied to the sample. + bias_voltage(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The bias voltage (DC) applied to the sample. + bias_offset(NX_NUMBER): + exists: optional + unit: NX_VOLTAGE + doc: | + Offset value of the bias voltage. + bias_calibration(NXcalibration): + exists: optional + doc: | + Calibration of the bias voltage measurement (V/V). + calibration_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by the calibration to setup to acquire the data for + the calibration. + coefficients(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The coefficients of the calibration. + (NXsample): + exists: optional + doc: | + The sample information. + sample_environment(NXenvironment): + exists: optional + doc: | + Information of environment around the sample. + sample_bias_voltage(NXsensor): + doc: | + Link to the sample_bias_voltage sensor under the instrument. + reproducibility_indicators(NXobject): + doc: | + The group of indicators (links to the existing fields in different groups) that measure + the reproducibility of the experiment. + resolution_indicators(NXobject): + doc: | + The group of indicators (links to the existing fields in different groups) that + are used to measure the resolution of the experiment results. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 5aed239803246cad4ded3ce2d01babdb3934dcdbcaed0537cd1c5bd018461040 +# +# +# +# +# +# Scanning Probe Microscopy (SPM) is a branch of microscopy that utilizes a physical probe to scan the surface of +# sample and image it at the atomic level. +# +# The application class NXspm is designed as a skeleton and contains common technical concepts +# for specific SPM sub-techniques such as STM, STS, AFM etc. +# +# +# +# +# Name of the definition that is used for the application. +# +# +# +# +# +# +# +# The technique of the experiment like STM, STS, AFM, etc. +# +# +# +# +# +# +# +# +# +# The mode of the scan. The possible options depend on the type of experiment. +# For example, in STM, the scan mode could be constant height or constant current, +# in AFM, the scan mode could be contact mode, tapping mode or non-contact mode. +# +# +# +# +# The type of the scan. It mainly describes how scan probe moves in the scan region, e.g. +# forward, backward, or both (if scan is repeated). +# +# +# +# +# The identifiers for the experiment which should be unique at least in lab. +# +# +# +# +# The description of the experiment like comments, ontes from from the experiment. +# +# +# +# +# The instrument information. +# +# +# +# The hardware description of the core instrument setup of the experiment. +# Usually, the entire instrument is supplied by a single manufacturer. +# To describe the hardware from any sub-components, use the hardware group of that +# sub-component (child group of the NXinstrument group) group. +# +# +# +# Company name of the manufacturer. +# +# +# +# +# Version or model of the hardware setup provided by the manufacturer. +# +# +# +# If different versions are possible, the value in this field should be made +# specific enough to resolve the version. +# +# +# +# +# +# +# The software description of the core instrument setup of the experiment. +# Usually, the entire instrument is supplied by a single name/manufacturer/model/etc. +# To describe the software from any sub-components, use the software group of that component. +# +# +# +# Company name of the manufacturer. +# +# +# +# +# Version or model of the component named by the manufacturer. +# +# +# +# If different versions are possible, the value in this field should be made +# specific enough to resolve the version. +# +# +# +# +# +# +# The real-time controller information. +# +# +# +# The frequency of the real-time controller system which indicated the number of close-loop process +# (gathering data, process data and update system) control cycles per second. +# +# +# +# +# +# The lock-in amplifier information. +# +# +# +# +# Information of the scan environment. +# +# +# +# Temperature of STM head. Note: At least one field from tip_temp, +# cryo_bottom_temp and cryo_shield_temp must be provided. +# +# +# +# +# Temperature of the cold tail of the cryostat. Note: At least one field from +# tip_temp, cryo_bottom_temp and cryo_shield_temp must be provided. +# +# +# +# +# Temperature of liquid nitrogen shield. Note: At +# least one field from tip_temp, cryo_bottom_temp and cryo_shield_temp. +# +# +# +# +# The name of the scan, mainly lab defined, that helps to differentiate among different +# scans performed in the lab. +# +# +# +# +# This is a link to the current_sensor under the instrument group: +# entry/experiment_instrument/current_sensor. +# +# +# +# +# This is a link to the voltage_sensor under the instrument group: +# entry/experiment_instrument/voltage_sensor. +# +# +# +# +# This is a link to the piezo_sensor under the instrument group: +# entry/experiment_instrument/piezo_sensor. +# +# +# +# +# The scan control information like scan region or phase space, type of scan (e.g. +# mesh, spiral, etc.), and scan speed, etc. This group mainly stores the raw scan +# data. For processed data or final experimental data would go to NXdata group. +# +# +# +# The name of the scan, mainly lab defined, that helps to differentiate among different +# scans performed in lab. This field is intended for several types of scan control +# run under the same environment. +# +# +# +# +# +# +# Information for current sensor. +# +# +# +# An amplifier information for the input signal (e.g. from tip). +# +# +# +# +# +# The sensor information for the voltage device. +# +# +# +# +# +# The piezo sensor refers to the height (or Z) piezo sensor if nothing is +# mentioned along the X and Y directions. +# +# +# +# The x position of the piezo. In STS experiment, the piezo stays fixed at +# x,y and z and the the tunneling current is measured with respect to the +# bias voltage (sweep voltage). +# +# +# +# +# The y position of the piezo. +# +# +# +# +# The z position of the piezo. +# +# +# +# +# The piezo configuration information like piezoelectric calibration and material +# properties. +# +# +# +# Calibration of the piezo device. +# +# +# +# +# +# The positioner information like the position of the tip, the position of the +# sample, PID loop feedback etc. +# +# +# +# The PID controller information for the z-axis. +# +# +# +# To indicate the relative tip position z between tip and sample. The tip position +# can also be varied when the z_controller is not running. +# +# +# +# +# Status if controller is active. +# +# +# +# +# +# +# The material description and properties of the piezoelectric scanner materials. +# +# +# +# +# +# A group handling the temperature such as cryo, shield and tip. For different +# type of temperature sensors repeat this group. +# +# +# +# The temperature of the sample. +# +# +# +# +# The name of the channel to measure the temperature. +# +# +# +# +# Calibration of the temperature measurement. +# +# +# +# The coefficients of the calibration. +# +# +# +# +# +# Data (e.g, record from SPM head temperature) from temperature sensor. +# +# +# +# +# +# To explain bias (sweep measurement) voltage applied to the sample. +# +# +# +# Setup and scan data for continuous measurement of bias-voltage on the subject of experiment +# vs tunneling current from probe. +# +# +# +# The positioner information like the position of the tip, PID loop feedback etc. +# +# +# +# The PID controller information for the z-axis. +# +# +# +# The average time taken by the z-controller to stabilize the tip. +# +# +# +# +# The time taken by the z-controller to measure physical properties. +# +# +# +# +# The status of the controller to be held on the previous position, before going to the +# next scan point or line to measure the physical properties. +# +# +# +# +# The status of the controller to record the final z position after the scan. +# +# +# +# +# +# +# The bais voltage sweep is a common technique used on the substance or sample or environment +# to study the change in the behavior of the sample or substance or environment due to change +# in applied bias voltage. +# +# +# +# The time is taken to settle the bias voltage at the desired value. On each sweep usually, the system +# takes time to settle the bias voltage at the next value. +# +# +# +# +# The scan region (phase space or sub-phase space) is the region where the scan is +# performed. +# +# +# +# The offset of the bias voltage for bias sweep. +# +# +# +# +# The range of the scan is the length of the bias voltage over which the sweep +# scan will be performed. +# +# +# +# +# The start of the bias scan voltage. +# +# +# +# +# The end of the bias scan voltage. +# +# +# +# +# +# The linear sweep is a type of scan where the bias voltage is swept +# linearly from the starting voltage to the ending voltage. +# +# +# +# The number of voltage points the sweep scan to be performed. +# +# +# +# +# The step size of the sweep. +# The step size is the difference between the two consecutive bias voltage during the sweep. +# +# +# +# +# The reset_bias is used to reset the bias voltage to the starting value after a +# sweep is completed. +# +# +# +# +# +# +# +# +# The DC bias voltage that is applied to the sample. +# +# +# +# The bias voltage (DC) applied to the sample. +# +# +# +# +# Offset value of the bias voltage. +# +# +# +# +# Calibration of the bias voltage measurement (V/V). +# +# +# +# The time or period is taken by the calibration to setup to acquire the data for +# the calibration. +# +# +# +# +# The coefficients of the calibration. +# +# +# +# +# +# +# +# The sample information. +# +# +# +# Information of environment around the sample. +# +# +# +# Link to the sample_bias_voltage sensor under the instrument. +# +# +# +# +# +# +# The group of indicators (links to the existing fields in different groups) that measure +# the reproducibility of the experiment. +# +# +# +# +# The group of indicators (links to the existing fields in different groups) that +# are used to measure the resolution of the experiment results. +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXstm.yaml b/contributed_definitions/nyaml/SPM/NXstm.yaml new file mode 100644 index 000000000..731fac12a --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXstm.yaml @@ -0,0 +1,781 @@ +category: application +doc: | + An application definition to describe Scanning Tunneling Microscopy (STM). + +# https://thesis.library.caltech.edu/1943/4/03chapter3.pdf +# TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and NXafm +type: group +NXstm(NXspm): + (NXentry): + definition: + doc: | + Name of the definition that is used for the application. + enumeration: [NXstm] + scan_mode: + doc: | + The mode of the scan that is performed. Two commonly used ones are constant + height mode and constant current mode. + enumeration: [constant height, constant current] + experiment_instrument(NXinstrument): + doc: | + The group explains the instrumentation of the STM experiment such + as current sensor, lock-in amplifier etc. + lockin_amplifier(NXlockin): + doc: | + The lock-in amplifier information. The device is being used to extract + the very weak signal buried in noisy signals. + modulation_signal_type: + exists: optional + unit: NX_UNITLESS + doc: | + The type of the signal (voltage or current) subject fo modulation. + modulation_frequency(NX_NUMBER): + exists: optional + doc: | + The frequency of the sine modulation that is used to modulate the signal in + lock-in. + scan_environment(NXenvironment): + doc: | + The environment information for stm or sts experiment. + (NXscan_control): + doc: | + The scan control information like scan region or phase space, type of scan + (e.g. mesh, spiral, etc.), and scan speed, etc. + scan_type: + doc: | + The type of scan like mesh, spiral, etc. For STS experiment, the scan type is + usually a single-point scan (trajectory scan). + enumeration: [mesh, trajectory, snake, spiral] + scan_region(NXobject): + doc: | + The region of the scan area. + scan_range(NX_NUMBER): + unit: NX_ANY + doc: | + The range of the scan area. + scan_offset(NX_NUMBER): + unit: NX_ANY + doc: | + The offset of the scan area in 2D (X and Y) space. + scan_angle_N(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + The N (substring) denotes the angle of the scan area with different physical + axes. + mesh_SCAN(NXobject): + doc: | + The scan information for mesh scan type for STM experiment. + scan_speed(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The speed of the scanner or the tip during the scan. + scan_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time taken by the scanner to scan the entire area. + forward_speed_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The N (substring) denotes the forward speed of the scanner. + backward_speed_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The N (substring) denotes the backward speed of the scanner. + SCAN_DATA(NXdata): + doc: | + The data that comes from scanning the area. + tip_temperature(NXsensor): + exists: optional + doc: | + This group stands for the same concept as + /ENTRY[entry]/experiment_instrument/tip_temperature + cryo_temperature(NXsensor): + exists: optional + doc: | + This group stands for the same concept as + /ENTRY[entry]/experiment_instrument/cryo_temperature + cryo_shield_temperature(NXsensor): + exists: optional + doc: | + This group stands for the same concept as + /ENTRY[entry]/experiment_instrument/cryo_shield_temperature + tip_temperature(NXsensor): + exists: optional + doc: | + The temperature of the tip one of the tip. + cryo_temperature(NXsensor): + exists: optional + doc: | + The temperature of the cryostat. + cryo_shield_temperature(NXsensor): + exists: optional + doc: | + The temperature of the cryo shield. + current_sensor(NXsensor): + doc: | + The sensor information. + current(NX_NUMBER): + unit: NX_CURRENT + doc: | + The tunneling current between tip and sample after + applying bias voltage. + current_offset(NX_NUMBER): + exists: optional + unit: NX_CURRENT + doc: | + Offset value of the current measurement. + current_calibration(NXcalibration): + exists: optional + doc: | + Calibration of the current measurement. + caliberation_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by the calibration to setup to acquire the data for + the calibration. + coefficients(NX_NUMBER): + unit: NX_ANY + doc: | + The coefficients of the calibration. + (NXamplifier): + exists: optional + doc: | + An amplifier information for the input signal (e.g. from tip). + current_gain(NX_NUMBER): + unit: NX_UNITLESS + doc: | + Proportional relationship between the probe output voltage and the actual + tunneling current when measuring the tunneling current. + bias_spectroscopy_environment(NXenvironment): + exists: optional + doc: | + To explain bias (sweep measurement) voltage applied to the sample. + (NXbias_spectroscopy): + exists: optional + doc: | + Setup and scan data for continuous measurement of bias-voltage on the subject of experiment + vs tunneling current from probe. + Data from from this experiment can also be used to calculate the dI/dV spectra. + piezo_sensor(NXsensor): + doc: | + The sensor information for the piezo device. + x(NX_NUMBER): + unit: NX_LENGTH + doc: | + The x position of the piezo. In STS experiment or at the starting, + the piezo stays fixed at x,y and z and the the tunneling current + is measured with respect to the bias voltage (sweep voltage). + y(NX_NUMBER): + unit: NX_LENGTH + doc: | + The y position of the piezo. + z(NX_NUMBER): + unit: NX_LENGTH + doc: | + The z position of the piezo. + piezo_configuration(NXpiezo_config_spm): + exists: optional + doc: | + The piezo configuration information like piezoelectric device calibration and + material properties. + calibration(NXcalibration): + exists: optional + doc: | + Calibration of the piezo device. + 2nd_order_corr_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The N (substring) denotes X and Y directions. The 2nd order piezo + compensate the error for that axis. The following equation shows the + interpretation of the 2nd order correction parameters, + For the X-piezo: "Ux = 1/cx · X + cxx · X2" + with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" + where cx is the calibration of the piezo X and cxx is the 2nd order + correction. The unit for such the second-order correction is (V/m^2). + calibration_type(NX_CHAR): + exists: optional + doc: | + The name of the calibration type, sometimes it is called + e.g active calibration, passive calibration. + calibration_coeffecient_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The calibration coefficient is the ratio of the actual distance moved by the piezo to + the voltage applied to the piezo. It is also called first-order correction. + drift_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + Set up the settings to enable or disable the drift compensation. + drift_correction_status(NX_BOOLEAN): + exists: optional + doc: | + Whether the drift has been corrected in case there is a deviation in the + drift. + tilt_N(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + The N (substring) denotes X and Y directions, and for both directions + tilt needs to be adjusted according to the actual surface. + hv_gain_N(NX_NUMBER): + doc: | + The N (substring) denotes X or Y or Z. In some systems, + there is an HV gain readout feature. For these systems, + the HV gain should be automatically adjusted whenever + the gain is changed at the high voltage amplifier. + (NXpositioner_spm): + doc: | + The positioner information like the position of the tip, + PID loop feedback etc. + z_controller(NXpid): + doc: | + The PID controller information for the z-axis. + z(NX_NUMBER): + doc: | + To indicate the relative tip position z between tip and sample. The tip position + can also be varied when the z_controller is not running. + set_point(NX_NUMBER): + unit: NX_ANY + doc: | + The set point for the z-controller to be fixed and the target value could be + height or current. + controller_name: + exists: recommended + doc: | + The name of the controller or channels. + controller_status(NX_BOOLEAN): + exists: recommended + doc: | + The status of the controller to say was PID has been used or not. + tip_lift(NX_NUMBER): + exists: optional + unit: NX_LENGTH + doc: | + If the tip is lifted from the stable point. + switch_off_delay: + exists: optional + unit: NX_TIME + doc: | + The switch-off delay of the controller from its stable point. + reproducibility_indicators(NXobject): + doc: | + The group's concepts hold the link to the related concepts that define the + reproducibility of the STM experiment. + current(NX_NUMBER): + exists: optional + doc: | + The tunneling current between tip and sample after application of bias voltage. + link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current + current_offset(NX_NUMBER): + exists: optional + doc: | + The tunneling current between tip and sample after application of bias voltage. + link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current + current_gain(NX_NUMBER): + exists: optional + doc: | + Proportional relationship between the probe output voltage and the actual + tunneling current when measuring the tunneling current. + link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/amplifier/current_gain + bias_sweep(NXobject): + exists: optional + doc: | + Link to target: + /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] + modulation_signal_type: + exists: optional + doc: | + This is the signal on which the modulation voltage or current will be added. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type + modulation_frequency(NX_NUMBER): + exists: optional + doc: | + The frequency of the sine modulation that is used to modulate the signal in lock-in. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency + resolution_indicators(NXobject): + doc: | + The group's concepts hold the link to the related concepts that define the + resolution of the STM experiment. + stm_head_temp(NXsensor): + doc: | + Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp + cryo_bottom_temp(NXsensor): + doc: | + Link to target: + /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp + cryo_shield_temp(NXsensor): + doc: | + Link to target: + /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature + bias_sweep(NXobject): + doc: | + Link to target: + /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] + modulation_signal_type: + exists: optional + doc: | + This is the signal on which the modulation voltage or current will be added. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type + modulation_signal_type + modulation_frequency(NX_NUMBER): + exists: optional + doc: | + The frequency of the sine modulation that is used to modulate the signal in lock-in. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 68d72cee8a84105446de60c7d529ee1b2a161da9219415301f540ae7dee69cfe +# +# +# +# +# +# +# An application definition to describe Scanning Tunneling Microscopy (STM). +# +# +# +# +# Name of the definition that is used for the application. +# +# +# +# +# +# +# +# The mode of the scan that is performed. Two commonly used ones are constant +# height mode and constant current mode. +# +# +# +# +# +# +# +# +# The group explains the instrumentation of the STM experiment such +# as current sensor, lock-in amplifier etc. +# +# +# +# The lock-in amplifier information. The device is being used to extract +# the very weak signal buried in noisy signals. +# +# +# +# The type of the signal (voltage or current) subject fo modulation. +# +# +# +# +# The frequency of the sine modulation that is used to modulate the signal in +# lock-in. +# +# +# +# +# +# The environment information for stm or sts experiment. +# +# +# +# The scan control information like scan region or phase space, type of scan +# (e.g. mesh, spiral, etc.), and scan speed, etc. +# +# +# +# The type of scan like mesh, spiral, etc. For STS experiment, the scan type is +# usually a single-point scan (trajectory scan). +# +# +# +# +# +# +# +# +# +# +# The region of the scan area. +# +# +# +# The range of the scan area. +# +# +# +# +# The offset of the scan area in 2D (X and Y) space. +# +# +# +# +# The N (substring) denotes the angle of the scan area with different physical +# axes. +# +# +# +# +# +# The scan information for mesh scan type for STM experiment. +# +# +# +# The speed of the scanner or the tip during the scan. +# +# +# +# +# The time taken by the scanner to scan the entire area. +# +# +# +# +# The N (substring) denotes the forward speed of the scanner. +# +# +# +# +# The N (substring) denotes the backward speed of the scanner. +# +# +# +# +# The data that comes from scanning the area. +# +# +# +# +# +# +# This group stands for the same concept as +# /ENTRY[entry]/experiment_instrument/tip_temperature +# +# +# +# +# This group stands for the same concept as +# /ENTRY[entry]/experiment_instrument/cryo_temperature +# +# +# +# +# This group stands for the same concept as +# /ENTRY[entry]/experiment_instrument/cryo_shield_temperature +# +# +# +# +# +# The temperature of the tip one of the tip. +# +# +# +# +# The temperature of the cryostat. +# +# +# +# +# The temperature of the cryo shield. +# +# +# +# +# The sensor information. +# +# +# +# The tunneling current between tip and sample after +# applying bias voltage. +# +# +# +# +# Offset value of the current measurement. +# +# +# +# +# Calibration of the current measurement. +# +# +# +# The time or period is taken by the calibration to setup to acquire the data for +# the calibration. +# +# +# +# +# The coefficients of the calibration. +# +# +# +# +# +# An amplifier information for the input signal (e.g. from tip). +# +# +# +# Proportional relationship between the probe output voltage and the actual +# tunneling current when measuring the tunneling current. +# +# +# +# +# +# +# To explain bias (sweep measurement) voltage applied to the sample. +# +# +# +# Setup and scan data for continuous measurement of bias-voltage on the subject of experiment +# vs tunneling current from probe. +# Data from from this experiment can also be used to calculate the dI/dV spectra. +# +# +# +# +# +# The sensor information for the piezo device. +# +# +# +# The x position of the piezo. In STS experiment or at the starting, +# the piezo stays fixed at x,y and z and the the tunneling current +# is measured with respect to the bias voltage (sweep voltage). +# +# +# +# +# The y position of the piezo. +# +# +# +# +# The z position of the piezo. +# +# +# +# +# The piezo configuration information like piezoelectric device calibration and +# material properties. +# +# +# +# Calibration of the piezo device. +# +# +# +# The N (substring) denotes X and Y directions. The 2nd order piezo +# compensate the error for that axis. The following equation shows the +# interpretation of the 2nd order correction parameters, +# For the X-piezo: "Ux = 1/cx · X + cxx · X2" +# with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" +# where cx is the calibration of the piezo X and cxx is the 2nd order +# correction. The unit for such the second-order correction is (V/m^2). +# +# +# +# +# The name of the calibration type, sometimes it is called +# e.g active calibration, passive calibration. +# +# +# +# +# The calibration coefficient is the ratio of the actual distance moved by the piezo to +# the voltage applied to the piezo. It is also called first-order correction. +# +# +# +# +# Set up the settings to enable or disable the drift compensation. +# +# +# +# +# Whether the drift has been corrected in case there is a deviation in the +# drift. +# +# +# +# +# The N (substring) denotes X and Y directions, and for both directions +# tilt needs to be adjusted according to the actual surface. +# +# +# +# +# The N (substring) denotes X or Y or Z. In some systems, +# there is an HV gain readout feature. For these systems, +# the HV gain should be automatically adjusted whenever +# the gain is changed at the high voltage amplifier. +# +# +# +# +# +# +# The positioner information like the position of the tip, +# PID loop feedback etc. +# +# +# +# The PID controller information for the z-axis. +# +# +# +# To indicate the relative tip position z between tip and sample. The tip position +# can also be varied when the z_controller is not running. +# +# +# +# +# The set point for the z-controller to be fixed and the target value could be +# height or current. +# +# +# +# +# The name of the controller or channels. +# +# +# +# +# The status of the controller to say was PID has been used or not. +# +# +# +# +# If the tip is lifted from the stable point. +# +# +# +# +# The switch-off delay of the controller from its stable point. +# +# +# +# +# +# +# +# +# The group's concepts hold the link to the related concepts that define the +# reproducibility of the STM experiment. +# +# +# +# The tunneling current between tip and sample after application of bias voltage. +# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current +# +# +# +# +# The tunneling current between tip and sample after application of bias voltage. +# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current +# +# +# +# +# Proportional relationship between the probe output voltage and the actual +# tunneling current when measuring the tunneling current. +# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/amplifier/current_gain +# +# +# +# +# Link to target: +# /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] +# +# +# +# +# This is the signal on which the modulation voltage or current will be added. +# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type +# +# +# +# +# The frequency of the sine modulation that is used to modulate the signal in lock-in. +# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency +# +# +# +# +# +# The group's concepts hold the link to the related concepts that define the +# resolution of the STM experiment. +# +# +# +# Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp +# +# +# +# +# Link to target: +# /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp +# +# +# +# +# Link to target: +# /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature +# +# +# +# +# Link to target: +# /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] +# +# +# +# +# This is the signal on which the modulation voltage or current will be added. +# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type +# modulation_signal_type +# +# +# +# +# The frequency of the sine modulation that is used to modulate the signal in lock-in. +# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency +# +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXsts.yaml b/contributed_definitions/nyaml/SPM/NXsts.yaml new file mode 100644 index 000000000..7c6cafadc --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXsts.yaml @@ -0,0 +1,63 @@ +category: application +doc: | + An application definition to describe Scanning Tunneling Spectroscopy (STS). + + The NXsts is duplication of NXspm and is considered as a proxy application definition + for Scanning Tunneling Spectroscopy (STS) technique. + +# https://thesis.library.caltech.edu/1943/4/03chapter3.pdf +# TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and NXafm +type: group +NXsts(NXspm): + (NXentry): + definition: + doc: | + Name of the definition that is used for the application. + enumeration: [NXsts] + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 3c249fd275af32b4b2747ed7356a3175a5edca21b88516b1662e38723d33d052 +# +# +# +# +# +# +# An application definition to describe Scanning Tunneling Spectroscopy (STS). +# +# The NXsts is duplication of NXspm and is considered as a proxy application definition +# for Scanning Tunneling Spectroscopy (STS) technique. +# +# +# +# +# Name of the definition that is used for the application. +# +# +# +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/README.md b/contributed_definitions/nyaml/SPM/README.md new file mode 100644 index 000000000..12bdb985c --- /dev/null +++ b/contributed_definitions/nyaml/SPM/README.md @@ -0,0 +1,82 @@ +# Application Definition for SPM Domain + +# General SPM Base Class + + + id1 + id1 --> id2 + id1 --> id3 + id1 --> id4 + id1 --> id5 + id1 --> id6 + + id2 --> id13 + id2 --> id14 + id2 --> id16 + + id13 --> id21 + id13 --> id22 + id13 --> id23 + id13 --> id24 + +``` + +## STM App Def +```mermaid +graph TD; + subgraph STM + %%hh%% + id1["NXstm(NXspm)"] + id2["ENTRY"] + end + subgraph NXinstrument + id6["(NXinstrument)"] + end + + subgraph NXenvironment + %%hh%% + id12["sweep_control"] + end + + + id1 --> id2 + + id2 --> id6 + id6 --> id12 + +``` +--> + +## Revised App Def and Base Class for SPM Domain +1. SPM, STM, AFM, STS +2. Lockin, Bias_spectorscopy, Bias_sweep, Scan_control, Positioner_spm, +3. piezoelectric_material, piezo_config_spm, rcs, cantilever_spm + diff --git a/contributed_definitions/nyaml/SPM/nyaml2nxdl.sh b/contributed_definitions/nyaml/SPM/nyaml2nxdl.sh new file mode 100644 index 000000000..6701c8510 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/nyaml2nxdl.sh @@ -0,0 +1,39 @@ +#!/bin/bash + + +#Starting line of a bash script + +set -e +for file in *; do + if [[ $file == *.yaml ]]; then + echo "Converting $file to NXDL" + nyaml2nxdl $file + fi +done + + +for file in *; do + if [[ $file == *.nxdl.xml ]]; then + echo "Converting $file to NYAML" + nyaml2nxdl $file + mv $file ../../ + fi +done + +for file in *; do + if [[ $file == *_parsed.yaml ]]; then + mv $file $(echo $file | sed 's/_parsed//') + fi +done + +for file in *; do + if [[ $file == *.yaml ]]; then + cp $file ../ + fi +done + +rm ../../NXbias_spectroscopy_old.nxdl.xml +rm ../../NXspm_v1_backup.nxdl.xml +rm ../NXbias_spectroscopy_old.yaml +rm ../NXspm_v1_backup.yaml + diff --git a/dev_tools/docs/nxdl_index.py b/dev_tools/docs/nxdl_index.py index bcb8ac666..8be2aba41 100644 --- a/dev_tools/docs/nxdl_index.py +++ b/dev_tools/docs/nxdl_index.py @@ -72,6 +72,7 @@ def nxdl_indices() -> Dict[str, dict]: rst_lines.append(f"{indentation}mpes-structure\n") rst_lines.append(f"{indentation}apm-structure\n") rst_lines.append(f"{indentation}transport-structure\n") + rst_lines.append(f"{indentation}spm-structure\n") rst_lines.append(f"{indentation}cgms-structure\n") for cname in sorted(classes): diff --git a/manual/source/classes/contributed_definitions/spm-structure.rst b/manual/source/classes/contributed_definitions/spm-structure.rst new file mode 100644 index 000000000..4ef396506 --- /dev/null +++ b/manual/source/classes/contributed_definitions/spm-structure.rst @@ -0,0 +1,58 @@ +.. _Spm-Structure: + +=============================== +Scanning Probe Microscopy +=============================== + +.. index:: + SpmAppDef + +.. _SpmAppDef: + +Application Definition +###################### + + :ref:`NXspm`: + An application definition for scanning Probe Microscopy domain experiments. + The :ref:`NXspm` in herited from the :ref:`NXsensor_scan` is considered as + a as general structure for all SPM experiments. + :ref:`NXsts`: + The application definition NXsts for Scanning Tunneling Spectroscopy is + proxy to be used for STS experiments and it is inherited from the :ref:`NXspm`. + The :ref:`NXsts` is an alias of the :ref:`NXspm` application definition. + :ref:`NXstm`: + An application definition for Scanning Tunneling Microscopy experiments + inherited from the :ref:`NXspm`. + :ref:`NXafm`: + An application definition for Atomic Force Microscopy experiments inherited + from the :ref:`NXspm`. + +.. _SpmNewBC: + +Base Classes +############ + + :ref:`NXlockin`: + A base class to describe lock-in amplifier instrument. + + :ref:`NXbias_spectroscopy`: + A base class to describe bias spectroscopy measurement to measure I/V curve in STS expriment. + + :ref:`NXbias_sweep`: + A base class to describe bias sweep (a linear voltage vs current scan) step in + bias spectroscopy measurement. + + :ref:`NXcantilever_spm`: + A base class to characterise cantilever used in AFM experiments. + + :ref:`NXpiezo_config_spm`: + A base class to describe piezo configuration in SPM experiments. + + :ref:`NXpiezoelectric_material`: + A base class to draw piezoelectric material properties used in cantilever tip. + + :ref:`NXpositioner_spm`: + A base class to describe PID positioner in SPM experiments. + + :ref:`NXscan_control`: + A base class to characterize the movement of scan probe in a multi-dimensional phase space. diff --git a/manual/source/spm-structure.rst b/manual/source/spm-structure.rst new file mode 100644 index 000000000..0a830da69 --- /dev/null +++ b/manual/source/spm-structure.rst @@ -0,0 +1,15 @@ +.. _Spm-Structure-Fairmat: + +=============================== +Scanning Probe Microscopy +=============================== + +Scientists of the scanning Probe Microscopy community and FAIRmat have worked +together to create a bunch of application definitions and related base classes +for documenting diverse experiment techniques (STS - Scanning Tunneling +Spectroscopy, STM - Scanning Tunneling Microscopy and AFM - Atomic Force +Microscopy) in SPM domain. + +This is one community under the large umbrella of scanning (probe) microscopy +methods. A status report of these efforts will be reported here: +:ref:`Spm-Structure`. From 3e974fc766dc51dd89bd3495e4db9bca92844a19 Mon Sep 17 00:00:00 2001 From: Rubel Date: Fri, 8 Nov 2024 07:34:34 +0100 Subject: [PATCH 2/8] Remove SPM folder. --- contributed_definitions/nyaml/SPM/NXafm.yaml | 254 ---- .../nyaml/SPM/NXbias_spectroscopy.yaml | 306 ----- .../nyaml/SPM/NXbias_sweep.yaml | 149 --- .../nyaml/SPM/NXcantilever_spm.yaml | 235 ---- .../nyaml/SPM/NXlockin.yaml | 305 ----- .../nyaml/SPM/NXpiezo_config_spm.yaml | 192 --- .../nyaml/SPM/NXpiezoelectric_material.yaml | 191 --- .../nyaml/SPM/NXpositioner_spm.yaml | 94 -- contributed_definitions/nyaml/SPM/NXrcs.yaml | 101 -- .../nyaml/SPM/NXscan_control.yaml | 1066 ----------------- .../nyaml/SPM/NXsensor_scan.yaml | 374 ------ contributed_definitions/nyaml/SPM/NXspm.yaml | 832 ------------- contributed_definitions/nyaml/SPM/NXstm.yaml | 781 ------------ contributed_definitions/nyaml/SPM/NXsts.yaml | 63 - contributed_definitions/nyaml/SPM/README.md | 82 -- .../nyaml/SPM/nyaml2nxdl.sh | 39 - 16 files changed, 5064 deletions(-) delete mode 100644 contributed_definitions/nyaml/SPM/NXafm.yaml delete mode 100644 contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml delete mode 100644 contributed_definitions/nyaml/SPM/NXbias_sweep.yaml delete mode 100644 contributed_definitions/nyaml/SPM/NXcantilever_spm.yaml delete mode 100644 contributed_definitions/nyaml/SPM/NXlockin.yaml delete mode 100644 contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml delete mode 100644 contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml delete mode 100644 contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml delete mode 100644 contributed_definitions/nyaml/SPM/NXrcs.yaml delete mode 100644 contributed_definitions/nyaml/SPM/NXscan_control.yaml delete mode 100644 contributed_definitions/nyaml/SPM/NXsensor_scan.yaml delete mode 100644 contributed_definitions/nyaml/SPM/NXspm.yaml delete mode 100644 contributed_definitions/nyaml/SPM/NXstm.yaml delete mode 100644 contributed_definitions/nyaml/SPM/NXsts.yaml delete mode 100644 contributed_definitions/nyaml/SPM/README.md delete mode 100644 contributed_definitions/nyaml/SPM/nyaml2nxdl.sh diff --git a/contributed_definitions/nyaml/SPM/NXafm.yaml b/contributed_definitions/nyaml/SPM/NXafm.yaml deleted file mode 100644 index d1314dcf9..000000000 --- a/contributed_definitions/nyaml/SPM/NXafm.yaml +++ /dev/null @@ -1,254 +0,0 @@ -category: application -doc: | - An application definition to describe Atomic Force Microscopy (AFM) scanning - technique. -type: group -NXafm(NXspm): - (NXentry): - definition: - doc: | - Name of the definition that is used for the application. - enumeration: [NXafm] - scan_mode: - doc: | - The mode of the scan. - enumeration: [contact mode, tapping mode, non-contact mode] - experiment_instrument(NXinstrument): - doc: | - The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding - instruments. - photo_detector(NXdetector): - exists: optional - doc: | - The photo detector instrument information. - (NXcantilever_spm): - exists: optional - doc: | - The cantilever information. - cantilever_oscillator(NXobject): - exists: optional - doc: | - Generally speaking, the cantilever resembles a simple harmonic oscillator. - When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. - In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. - oscillator_excitation(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The threshold voltage for oscillator excitation. - phase_lock_loop(NXlockin): - exists: optional - doc: | - Phase locked loop for cantilever lock-in device. - amplitude_excitation(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The reference amplitude (also called drive amplitude) of the cantilever. - scan_environment(NXenvironment): - doc: | - The environment information. - height_piezo_sensor(NXsensor): - doc: | - Link to the group ENTRY[entry]/experiment_instrument/height_piezo_sensor. - XY_piezo_sensor(NXsensor): - doc: | - Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. - tip_temperature(NXsensor): - doc: | - Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. - height_piezo_sensor(NXsensor): - exists: optional - doc: | - The sensor information for the height piezo device. - piezo_configuration(NXpiezo_config_spm): - doc: | - The piezo configuration information like piezoelectric calibration and material - properties. - piezo_material(NXpiezoelectric_material): - exists: optional - doc: | - The material description and properties of the piezoelectric scanner materials. - (NXpositioner_spm): - doc: | - The positioner information like the position of the tip, the position of the - sample, PID loop feedback etc. - XY_piezo_sensor(NXsensor): - exists: optional - doc: | - The sensor information for the xy piezo device. - piezo_configuration(NXpiezo_config_spm): - doc: | - The piezo configuration information like piezoelectric calibration and material - properties. - piezo_material(NXpiezoelectric_material): - exists: optional - doc: | - The material description and properties of the piezoelectric scanner materials. - (NXpositioner_spm): - doc: | - The positioner information like the position of the tip, the position of the - sample, PID loop feedback etc. - tip_temperature(NXsensor): - exists: optional - doc: | - The temperature of the scan environment or tip of the cantilever. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 9a15a1db7f7822d982716a9c177ce05e6afeb165692bf2ac13dbc98aad4809dd -# -# -# -# -# -# An application definition to describe Atomic Force Microscopy (AFM) scanning -# technique. -# -# -# -# -# Name of the definition that is used for the application. -# -# -# -# -# -# -# -# The mode of the scan. -# -# -# -# -# -# -# -# -# -# The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding -# instruments. -# -# -# -# The photo detector instrument information. -# -# -# -# -# The cantilever information. -# -# -# -# Generally speaking, the cantilever resembles a simple harmonic oscillator. -# When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. -# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. -# -# -# -# The threshold voltage for oscillator excitation. -# -# -# -# -# Phase locked loop for cantilever lock-in device. -# -# -# -# The reference amplitude (also called drive amplitude) of the cantilever. -# -# -# -# -# -# -# -# The environment information. -# -# -# -# Link to the group ENTRY[entry]/experiment_instrument/height_piezo_sensor. -# -# -# -# -# Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. -# -# -# -# -# Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. -# -# -# -# -# -# The sensor information for the height piezo device. -# -# -# -# The piezo configuration information like piezoelectric calibration and material -# properties. -# -# -# -# The material description and properties of the piezoelectric scanner materials. -# -# -# -# -# -# The positioner information like the position of the tip, the position of the -# sample, PID loop feedback etc. -# -# -# -# -# -# The sensor information for the xy piezo device. -# -# -# -# The piezo configuration information like piezoelectric calibration and material -# properties. -# -# -# -# The material description and properties of the piezoelectric scanner materials. -# -# -# -# -# -# The positioner information like the position of the tip, the position of the -# sample, PID loop feedback etc. -# -# -# -# -# -# The temperature of the scan environment or tip of the cantilever. -# -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml b/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml deleted file mode 100644 index ab297117a..000000000 --- a/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml +++ /dev/null @@ -1,306 +0,0 @@ -category: base -doc: | - A base class for bias spectroscopy to describe the change in the physical properties - of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. -type: group -NXbias_spectroscopy(NXobject): - measurement_type: - doc: | - The measurement of the I(V) curve can come in two ways: - 1. Constant Spacing: The bias voltage is swept from the start to the end with a constant - spacing between the tip and surface. - 2. Variadic Spacing: The bias voltage is swept from the start to the end in a discretized - spacing between the tip and surface. - enumeration: [constant_spacing, variadic_spacing] - (NXpositioner_spm): - doc: | - The pid positioner information while running bias voltage-tunneling current - measurement. - z_offset(NX_NUMBER): - unit: NX_LENGTH - doc: | - The z-offset is a starting tip position before the sweep starts. - (NXcircuit): - exists: optional - acquisition_time(NX_DATE_TIME): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by a bias sweep to acquire the data for - a single bias sweep point. - animation_time(NX_DATE_TIME): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by a bias sweep to be displayed. - measurement_time(NX_DATE_TIME): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by the circuit to measure a full bias sweep voltage or - bias current. - indicators_period(NX_DATE_TIME): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by the circuit to indicate the bias sweep voltage - after measuring the voltage. - (NXbias_sweep): - doc: | - The bias sweep information. - scan_type: - doc: | - The type of scan like mesh, spiral, etc. For STS experiment, the scan type is - usually a single-point scan (trajectory scan). - enumeration: [linear] - sweep_number(NX_NUMBER): - doc: | - The number of sweeps taken during the bias spectroscopy. - first_settling_time(NX_DATE_TIME): - exists: optional - unit: NX_TIME - doc: | - The initial time is taken to settle the bias voltage at the desired value. - On each sweep usually, the system takes time to settle to the bias voltage - at the next value. - end_settling_time(NX_DATE_TIME): - exists: optional - unit: NX_TIME - doc: | - The time is taken to settle the bias voltage at the desired value. - The time (at the last sweep) to settle for the last value of the sweep. - max_slew_rate(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The rate at which the amplifier responds to the voltage change - (to reach at the desired value). It defines if the tip movement and - voltage sweep are synchronized. - final_z(NX_NUMBER): - exists: recommended - doc: | - The z position after the sweeps are done. - total_spectroscopy_time(NX_DATE_TIME): - exists: recommended - unit: NX_TIME - doc: | - The total time needed for the entire voltage sweep. - scan_region(NXobject): - doc: | - The region of the scan area. - scan_range(NX_NUMBER): - unit: NX_ANY - doc: | - The range of the scan area. - scan_offset(NX_NUMBER): - unit: NX_ANY - doc: | - The offset of the scan area in 2D (X and Y) space. - scan_angle_N(NX_NUMBER): - unit: NX_ANGLE - doc: | - The N (substring) denotes the angle of the scan area with different physical - axes. - linear_sweep(NXobject): - doc: | - The linear scan information for scanning of a smaple. - scan_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The speed of the scanner or the probe during the scan. - scan_time(NX_DATE_TIME): - unit: NX_TIME - doc: | - The time taken by the scanner to scan the entire area. - forward_speed_bias(NX_NUMBER): - unit: NX_ANY - doc: | - Speed of the scanner or the probe moves forward direction. - backward_speed_bias(NX_NUMBER): - unit: NX_ANY - doc: | - Speed of the scanner or the probe that moves backward direction. - SCAN_DATA(NXdata): - doc: | - The data that comes from scanning the area. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 3ab25dbd62b7ae483b8ff37724fd4398a7c60454114c12914ccb9144fe3fe5a9 -# -# -# -# -# -# A base class for bias spectroscopy to describe the change in the physical properties -# of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. -# -# -# -# The measurement of the I(V) curve can come in two ways: -# 1. Constant Spacing: The bias voltage is swept from the start to the end with a constant -# spacing between the tip and surface. -# 2. Variadic Spacing: The bias voltage is swept from the start to the end in a discretized -# spacing between the tip and surface. -# -# -# -# -# -# -# -# -# The pid positioner information while running bias voltage-tunneling current -# measurement. -# -# -# -# The z-offset is a starting tip position before the sweep starts. -# -# -# -# -# -# -# The time or period is taken by a bias sweep to acquire the data for -# a single bias sweep point. -# -# -# -# -# The time or period is taken by a bias sweep to be displayed. -# -# -# -# -# The time or period is taken by the circuit to measure a full bias sweep voltage or -# bias current. -# -# -# -# -# The time or period is taken by the circuit to indicate the bias sweep voltage -# after measuring the voltage. -# -# -# -# -# -# The bias sweep information. -# -# -# -# The type of scan like mesh, spiral, etc. For STS experiment, the scan type is -# usually a single-point scan (trajectory scan). -# -# -# -# -# -# -# -# The number of sweeps taken during the bias spectroscopy. -# -# -# -# -# The initial time is taken to settle the bias voltage at the desired value. -# On each sweep usually, the system takes time to settle to the bias voltage -# at the next value. -# -# -# -# -# The time is taken to settle the bias voltage at the desired value. -# The time (at the last sweep) to settle for the last value of the sweep. -# -# -# -# -# The rate at which the amplifier responds to the voltage change -# (to reach at the desired value). It defines if the tip movement and -# voltage sweep are synchronized. -# -# -# -# -# The z position after the sweeps are done. -# -# -# -# -# The total time needed for the entire voltage sweep. -# -# -# -# -# The region of the scan area. -# -# -# -# The range of the scan area. -# -# -# -# -# The offset of the scan area in 2D (X and Y) space. -# -# -# -# -# The N (substring) denotes the angle of the scan area with different physical -# axes. -# -# -# -# -# -# The linear scan information for scanning of a smaple. -# -# -# -# The speed of the scanner or the probe during the scan. -# -# -# -# -# The time taken by the scanner to scan the entire area. -# -# -# -# -# Speed of the scanner or the probe moves forward direction. -# -# -# -# -# Speed of the scanner or the probe that moves backward direction. -# -# -# -# -# The data that comes from scanning the area. -# -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXbias_sweep.yaml b/contributed_definitions/nyaml/SPM/NXbias_sweep.yaml deleted file mode 100644 index c17041531..000000000 --- a/contributed_definitions/nyaml/SPM/NXbias_sweep.yaml +++ /dev/null @@ -1,149 +0,0 @@ -category: base -doc: | - A base class that defines how the bias voltage sweep is performed in the - scanning probe microscopy experiments. -type: group -NXbias_sweep(NXscan_control): - scan_region(NXobject): - doc: | - The scan region is the area of phase space or sub-phase space where the scan is - performed. - scan_offset_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The starting voltage of the bias sweep. The range of voltages for the sweep can - be defined with scan voltage offset and scan voltage range (difference between - minimum and maximum voltage values in a sweep) - scan_range_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The range of voltages for the sweep can be defined with scan voltage offset and - scan voltage range (difference between minimum and maximum voltage values in a - sweep) - scan_start_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The start of the bias scan voltage. - scan_end_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The end value of the bias scan voltage. - linear_sweep(NXobject): - doc: | - In the linear sweep, the bias voltage is changed linearly from the start value - to the end value. - backward_sweep(NX_BOOLEAN): - doc: | - If the bias voltage sweep is also performed in the opposite direction. - scan_points_bias(NX_NUMBER): - doc: | - The number of voltage points per sweep. - step_size_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The step size between the two consecutive bias voltage values during the sweep. - reset_bias(NX_BOOLEAN): - doc: | - The reset_bias defines whether the bias voltage should be reset to the starting - value after the sweep is completed. - SCAN_DATA(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, - please duplicate this NXdata group for each. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 059205cba92a66bef7be1ad50223a92b699fa82b76101ecced2901cd4c541117 -# -# -# -# -# -# A base class that defines how the bias voltage sweep is performed in the -# scanning probe microscopy experiments. -# -# -# -# The scan region is the area of phase space or sub-phase space where the scan is -# performed. -# -# -# -# The starting voltage of the bias sweep. The range of voltages for the sweep can -# be defined with scan voltage offset and scan voltage range (difference between -# minimum and maximum voltage values in a sweep) -# -# -# -# -# The range of voltages for the sweep can be defined with scan voltage offset and -# scan voltage range (difference between minimum and maximum voltage values in a -# sweep) -# -# -# -# -# The start of the bias scan voltage. -# -# -# -# -# The end value of the bias scan voltage. -# -# -# -# -# -# In the linear sweep, the bias voltage is changed linearly from the start value -# to the end value. -# -# -# -# If the bias voltage sweep is also performed in the opposite direction. -# -# -# -# -# The number of voltage points per sweep. -# -# -# -# -# The step size between the two consecutive bias voltage values during the sweep. -# -# -# -# -# The reset_bias defines whether the bias voltage should be reset to the starting -# value after the sweep is completed. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, -# please duplicate this NXdata group for each. -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXcantilever_spm.yaml b/contributed_definitions/nyaml/SPM/NXcantilever_spm.yaml deleted file mode 100644 index 3eeb1cbb9..000000000 --- a/contributed_definitions/nyaml/SPM/NXcantilever_spm.yaml +++ /dev/null @@ -1,235 +0,0 @@ -category: base -doc: | - A base class to describe the cantilever used in Atomic Force Microscopy (AFM) - techniques. -type: group -NXcantilever_spm(NXobject): - cantilever_oscillator(NXobject): - doc: | - Generally speaking, the cantilever resembles a simple harmonic oscillator. - When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. - In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. - reference_amplitude(NX_NUMBER): - unit: NX_ANY - doc: | - The reference amplitude (also called drive amplitude) of the cantilever. - reference_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The reference frequency (also called drive frequency or resonance frequency) of - the cantilever. - frequency_harmonic(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The harmonic (e.g., second harmonic of the fundamental frequency) frequency of - the cantilever. - phase_lock_loop(NXlockin): - doc: | - Phase locked loop for cantilever lock-in device. - cantilever_amplitude_positioner(NXpositioner): - doc: | - Describes the cantilever frequency positioner, if it exists. - cantilever_phase_positioner(NXpositioner): - doc: | - Describes the cantilever phase positioner, if it exists. - cantilever_frequency_positioner(NXpositioner): - doc: | - Describes the cantilever frequency positioner, if it exists. - phase_shift(NX_NUMBER): - unit: NX_ANGLE - doc: | - The phase difference between the reference signal of cantilever and response - signal. - frequency_shift(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Shift in the resonance frequency of the cantilever. - frequency_cutoff(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The cutoff frequency of the cantilever. - frequency_bandwidth(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The bandwidth of the resonance frequency. - target_amplitude(NX_NUMBER): - unit: NX_ANY - doc: | - The target amplitude of the cantilever to start the AFM/SPM experiment. - active_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The active frequency of the cantilever to start the experiment. - reference_phase(NX_NUMBER): - unit: NX_ANGLE - doc: | - The reference phase of the cantilever oscillator. - cantilever_config(NXobject): - doc: | - The configuration information of the cantilever such as calibration information, - material properties, etc. - cantilever_coating: - doc: | - The coating material of the cantilever. - curvature_radius_N(NX_NUMBER): - unit: NX_ANY - doc: | - The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. - (NXcalibration): - doc: | - The calibration information of the cantilever. - sensitivity(NX_NUMBER): - unit: NX_ANY - doc: | - A force applied to the cantilever tip will cause a change in - cantilever's oscillation amplitude (in dynamic mode) or deflection of the cantilever. - The sensitivity of the cantilever is calculated as the ratio of this change to the force causing it. - spring_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The spring constant coefficient of the cantilever. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 7f9bbb72dc5a27994c70ffe9d0f711cb147c223a6ced080161fea0e2d63cb82c -# -# -# -# -# -# A base class to describe the cantilever used in Atomic Force Microscopy (AFM) -# techniques. -# -# -# -# Generally speaking, the cantilever resembles a simple harmonic oscillator. -# When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. -# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. -# -# -# -# The reference amplitude (also called drive amplitude) of the cantilever. -# -# -# -# -# The reference frequency (also called drive frequency or resonance frequency) of -# the cantilever. -# -# -# -# -# The harmonic (e.g., second harmonic of the fundamental frequency) frequency of -# the cantilever. -# -# -# -# -# Phase locked loop for cantilever lock-in device. -# -# -# -# Describes the cantilever frequency positioner, if it exists. -# -# -# -# -# Describes the cantilever phase positioner, if it exists. -# -# -# -# -# Describes the cantilever frequency positioner, if it exists. -# -# -# -# -# -# The phase difference between the reference signal of cantilever and response -# signal. -# -# -# -# -# Shift in the resonance frequency of the cantilever. -# -# -# -# -# The cutoff frequency of the cantilever. -# -# -# -# -# The bandwidth of the resonance frequency. -# -# -# -# -# The target amplitude of the cantilever to start the AFM/SPM experiment. -# -# -# -# -# The active frequency of the cantilever to start the experiment. -# -# -# -# -# The reference phase of the cantilever oscillator. -# -# -# -# -# -# The configuration information of the cantilever such as calibration information, -# material properties, etc. -# -# -# -# The coating material of the cantilever. -# -# -# -# -# The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. -# -# -# -# -# The calibration information of the cantilever. -# -# -# -# A force applied to the cantilever tip will cause a change in -# cantilever's oscillation amplitude (in dynamic mode) or deflection of the cantilever. -# The sensitivity of the cantilever is calculated as the ratio of this change to the force causing it. -# -# -# -# -# The spring constant coefficient of the cantilever. -# -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXlockin.yaml b/contributed_definitions/nyaml/SPM/NXlockin.yaml deleted file mode 100644 index ad5711d31..000000000 --- a/contributed_definitions/nyaml/SPM/NXlockin.yaml +++ /dev/null @@ -1,305 +0,0 @@ -category: base -doc: | - A base class definition for a lock-in amplifier. - The lock-in amplifier information: the device is being used to extract a (potentially) - very weak input signal buried in the noisy background, where the input signal has - the same frequency (or its harmonic) as a known reference signal. Additionally, - the phase shift between the input signal and the reference signal is measured. - The reference signal might be created by a generator built-in into the lock-in amplifier. -type: group -NXlockin(NXobject): - hardware(NXfabrication): - doc: | - Hardware manufacturers and type of lock-in amplifier. - (NXamplifier): - doc: | - Description of the amplifier (after detection of the signal from the noise) - bias_divider: - doc: | - Bias divider for lock-in channel if if has. - Bias divider = V(ref)/[V(ref)+V(input)] - modulation_status(NX_BOOLEAN): - doc: | - Switch the lock-in modulation on or off. - modulation_signal(NX_CHAR): - doc: | - A periodic voltage signal generated by the lock-in, - usually applied to a sample and used to create a reference signal for the detection of the input signal - lockin_current_flip_value(NX_NUMBER): - exists: optional - doc: | - The number that defines the sign of the lock-in current. The calibration procedure - with retracted tip is normally performed to compensate for the signal phase delay - in SPM. The procedure yields two possible solutions, this number should be equal - to 1 or -1 depending on which solution is chosen. - - # (For bais modulate signal, it depands on the modulate type) - - # unit could be NX_VOLTAGE or NX_CURRENT - reference_amplitude(NX_NUMBER): - unit: NX_ANY - doc: | - Amplitude of the reference signal for the lock-in amplifier. - reference_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Frequency of the reference signal for the lock-in amplifier. - reference_phase(NX_NUMBER): - unit: NX_ANGLE - doc: | - Phase of the reference signal for the lock-in amplifier. - demodulated_signal(NX_CHAR): - doc: | - The modulated output signal will be demodulated, in order to determine the amplitude - and phase at the frequency set in the Frequency field or harmonics, such as current, - bias, et.al. - demodulated_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The frequency of the demodulated signal. - frequency_demodulation_bandwidth(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The bandwidth of the modulated signal that can be applied in frequency - demodulation mechanism. - - # unit could be NX_VOLTAGE or NX_CURRENT - demodulated_amplitude(NX_NUMBER): - unit: NX_ANY - doc: | - The amplitude of the demodulated signal. - amplitude_demodulation_bandwidth(NX_NUMBER): - unit: NX_ANY - doc: | - The bandwidth of the modulated signal that can be applied in amplitude - demodulation mechanism. - demodulated_phase(NX_NUMBER): - unit: NX_ANGLE - doc: | - The phase of the demodulated signal. - phase_demodulation_bandwidth(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The bandwidth of the modulated signal that can be applied in phase demodulation - mechanism. - demodulator_channels(NX_CHAR): - doc: | - List of the demodulator channels. - low_pass_N(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Frequency of the low-pass filter applied on the demodulated - signals (X,Y), cut-off frq (low pass filter) (for each DemodulatorChannels). - hi_pass_N(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Frequency of the high-pass filter applied on the demodulation - signal cut-off frq (hi pass filter) (for each DemodulatorChannels). - lp_filter_order_N(NX_NUMBER): - doc: | - Order of the low-pass filter applied on the demodulated signals (X, Y). - Reducing the bandwidth or increasing the order reduces noise on the demodulated signals, - but increases settling and measurement times. - hp_filter_order_N(NX_NUMBER): - doc: | - Order of the high-pass filter applied on the demodulation - signal. This is used mainly to suppress a DC component of the input - signal noise. - ref_phase_N(NX_NUMBER): - unit: NX_ANGLE - doc: | - Reference phase of reference signal with respect to the demodulated signal - (foreach Channels). - integration_time(NX_NUMBER): - unit: NX_TIME - doc: | - Integration time for the product of the input and the reference signals - harmonic_order_N(NX_NUMBER): - doc: | - The reference signal can be a higher harmonic of the modulation signal. - Here the order of the harmonic is stored. - sensitivity_factor(NX_NUMBER): - doc: | - Ratio of output signal amplitude to input signal amplitue (V/V). - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 06c3ab36c9bb89e3392cd52a7a8cfe243c87a50827f070e5659934f816c341ea -# -# -# -# -# -# A base class definition for a lock-in amplifier. -# The lock-in amplifier information: the device is being used to extract a (potentially) -# very weak input signal buried in the noisy background, where the input signal has -# the same frequency (or its harmonic) as a known reference signal. Additionally, -# the phase shift between the input signal and the reference signal is measured. -# The reference signal might be created by a generator built-in into the lock-in amplifier. -# -# -# -# Hardware manufacturers and type of lock-in amplifier. -# -# -# -# -# Description of the amplifier (after detection of the signal from the noise) -# -# -# -# -# Bias divider for lock-in channel if if has. -# Bias divider = V(ref)/[V(ref)+V(input)] -# -# -# -# -# Switch the lock-in modulation on or off. -# -# -# -# -# A periodic voltage signal generated by the lock-in, -# usually applied to a sample and used to create a reference signal for the detection of the input signal -# -# -# -# -# The number that defines the sign of the lock-in current. The calibration procedure -# with retracted tip is normally performed to compensate for the signal phase delay -# in SPM. The procedure yields two possible solutions, this number should be equal -# to 1 or -1 depending on which solution is chosen. -# -# -# -# -# -# -# Amplitude of the reference signal for the lock-in amplifier. -# -# -# -# -# Frequency of the reference signal for the lock-in amplifier. -# -# -# -# -# Phase of the reference signal for the lock-in amplifier. -# -# -# -# -# The modulated output signal will be demodulated, in order to determine the amplitude -# and phase at the frequency set in the Frequency field or harmonics, such as current, -# bias, et.al. -# -# -# -# -# The frequency of the demodulated signal. -# -# -# -# -# The bandwidth of the modulated signal that can be applied in frequency -# demodulation mechanism. -# -# -# -# -# -# The amplitude of the demodulated signal. -# -# -# -# -# The bandwidth of the modulated signal that can be applied in amplitude -# demodulation mechanism. -# -# -# -# -# The phase of the demodulated signal. -# -# -# -# -# The bandwidth of the modulated signal that can be applied in phase demodulation -# mechanism. -# -# -# -# -# List of the demodulator channels. -# -# -# -# -# Frequency of the low-pass filter applied on the demodulated -# signals (X,Y), cut-off frq (low pass filter) (for each DemodulatorChannels). -# -# -# -# -# Frequency of the high-pass filter applied on the demodulation -# signal cut-off frq (hi pass filter) (for each DemodulatorChannels). -# -# -# -# -# Order of the low-pass filter applied on the demodulated signals (X, Y). -# Reducing the bandwidth or increasing the order reduces noise on the demodulated signals, -# but increases settling and measurement times. -# -# -# -# -# Order of the high-pass filter applied on the demodulation -# signal. This is used mainly to suppress a DC component of the input -# signal noise. -# -# -# -# -# Reference phase of reference signal with respect to the demodulated signal -# (foreach Channels). -# -# -# -# -# Integration time for the product of the input and the reference signals -# -# -# -# -# The reference signal can be a higher harmonic of the modulation signal. -# Here the order of the harmonic is stored. -# -# -# -# -# Ratio of output signal amplitude to input signal amplitue (V/V). -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml b/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml deleted file mode 100644 index c5ddd1370..000000000 --- a/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml +++ /dev/null @@ -1,192 +0,0 @@ -category: base -doc: | - A base class describing piezo settings for scanning probe microscopy. - - The piezoelectric material of SPM actuators gets deformed due to the applied electric field. - Description below shows calibration coefficients and other configuration parameters of the piezo actuators. - -# Discussion: No need to create this base class rather we can define in spm application definition. -type: group -NXpiezo_config_spm(NXobject): - piezo_material(NXpiezoelectric_material): - doc: | - The material description and properties of the piezoelectric scanner materials. - curvature_radius_N(NX_NUMBER): - unit: NX_LENGTH - doc: | - The N (substring) denotes X or Y. There are 2 parameters in X and Y directions. It can be set - approximately to the length of the piezo tube along X and Y axis. - calibration(NXcalibration): - calibration_type(NX_CHAR): - doc: | - The name of the calibration type, sometimes it is called - `active calibration`. - enumeration: [active, passive] - calibration_name: - doc: | - A specific name of the calibration (e.g. active type with name 'LHe'). - caliberation_date(NX_DATE_TIME): - doc: | - The date of the calibration. - calibrated_AXIS(NX_NUMBER): - doc: | - The AXIS (substring) denotes X, Y or Z. There are three directions X, Y, and Z for calibration, - along with three available parameters each: Calibration (m/V), Range (m), and HV gain. Only - two of these parameters are required to define the calibration. Consequently, when any - value is changed, one of the other values will be automatically updated. - hv_gain_N(NX_NUMBER): - doc: | - The N (substring) denotes X or Y or Z. In some systems, there is an HV gain readout feature. For - these systems, the HV gain should be automatically adjusted whenever the gain is - changed at the high voltage amplifier. - range_N(NX_NUMBER): - unit: NX_LENGTH - doc: | - The N (substring) denotes X or Y or Z. There are 3 parameters in X, Y and Z directions. The range - is the maximum distance the piezo can move. - calibration_coeffecient_N(NX_NUMBER): - unit: NX_ANY - doc: | - The calibration coefficient is the ratio of the actual distance moved by the piezo due to - the voltage applied to the piezo. It is also called first-order correction. - tilt_N(NX_NUMBER): - unit: NX_ANGLE - doc: | - The N (substring) denotes X and Y directions, and for both directions tilt needs to be adjusted according - to the actual surface. - 2nd_order_corr_N(NX_NUMBER): - unit: NX_ANY - doc: | - The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo - characteristics to compensate the error for that axis. - The following equation shows the - interpretation of the 2nd order correction parameters, For the X-piezo: "Ux = 1/cx · X + cxx · X2" - with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" - where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for - such the second-order correction is (V/m^2). - drift_N(NX_NUMBER): - unit: NX_ANY - doc: | - The N (substring) denotes X, Y and Z directions. Define the - drift speed [m/s] for all three axes. When the compensation is on, the piezo will start to - move at that speed. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 953b4253698e2e4e24a47d81d81f7629f1846c7ac3f25be794df86f86367323b -# -# -# -# -# -# -# A base class describing piezo settings for scanning probe microscopy. -# -# The piezoelectric material of SPM actuators gets deformed due to the applied electric field. -# Description below shows calibration coefficients and other configuration parameters of the piezo actuators. -# -# -# -# The material description and properties of the piezoelectric scanner materials. -# -# -# -# The N (substring) denotes X or Y. There are 2 parameters in X and Y directions. It can be set -# approximately to the length of the piezo tube along X and Y axis. -# -# -# -# -# -# -# The name of the calibration type, sometimes it is called -# `active calibration`. -# -# -# -# -# -# -# -# -# A specific name of the calibration (e.g. active type with name 'LHe'). -# -# -# -# -# The date of the calibration. -# -# -# -# -# The AXIS (substring) denotes X, Y or Z. There are three directions X, Y, and Z for calibration, -# along with three available parameters each: Calibration (m/V), Range (m), and HV gain. Only -# two of these parameters are required to define the calibration. Consequently, when any -# value is changed, one of the other values will be automatically updated. -# -# -# -# -# The N (substring) denotes X or Y or Z. In some systems, there is an HV gain readout feature. For -# these systems, the HV gain should be automatically adjusted whenever the gain is -# changed at the high voltage amplifier. -# -# -# -# -# The N (substring) denotes X or Y or Z. There are 3 parameters in X, Y and Z directions. The range -# is the maximum distance the piezo can move. -# -# -# -# -# The calibration coefficient is the ratio of the actual distance moved by the piezo due to -# the voltage applied to the piezo. It is also called first-order correction. -# -# -# -# -# The N (substring) denotes X and Y directions, and for both directions tilt needs to be adjusted according -# to the actual surface. -# -# -# -# -# The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo -# characteristics to compensate the error for that axis. -# The following equation shows the -# interpretation of the 2nd order correction parameters, For the X-piezo: "Ux = 1/cx · X + cxx · X2" -# with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" -# where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for -# such the second-order correction is (V/m^2). -# -# -# -# -# The N (substring) denotes X, Y and Z directions. Define the -# drift speed [m/s] for all three axes. When the compensation is on, the piezo will start to -# move at that speed. -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml b/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml deleted file mode 100644 index 7dc433a5b..000000000 --- a/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml +++ /dev/null @@ -1,191 +0,0 @@ -category: base -doc: | - Description and properties of the piezoelectric actuator materials. - The piezoelectric actuator is usually composed of polycrystalline solids and - attached at the head of the tip or cantilever. The material deforms when the external electric field is applied. -type: group -NXpiezoelectric_material(NXobject): - - # Online links: - # 1. ttps://www.ulprospector.com/knowledge/2689/pe-piezoelectric-materials/#:~:text=piezoelectric ceramics, such as lithium,as polyvinylidene fluoride (PVDF). - # 2. https://info.piezo.com/hubfs/Data-Sheets/piezo-material-properties-data-sheet-20201112.pdf - # 3. https://application.wiley-vch.de/books/sample/3527345124_c01.pdf - name(NX_CHAR): - doc: | - The name of the material of the piezo scanner such as Lead Zirconate Titanates - (PZTs). - chemical_description(NXsubstance): - doc: | - The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. - type(NX_CHAR): - doc: | - The type of the material of the piezo scanner (e.g. piezoelectric ceramics, - polymer-film piezoelectrics). - - # Properties of the piezo material - density(NX_NUMBER): - unit: NX_ANY - doc: | - The density of the piezo material. - relative_permittivity(NX_NUMBER): - unit: NX_ANY - doc: | - The relative permittivity (dielectric constant) of the piezo material. - D_piezoelectric_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The piezoelectric charge coefficients of the material. The coefficients describe the electric - polarization generated by the applied stress in material. Different coefficients correspond to different - relative directions of the polarization and the stress. - G_voltage_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The constants define the electric field produced by the external mechanical strain. Different coefficients - correspond to different relative directions of the electric field and the strain. - K_electromechanical_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The electromechanical constant measures the efficiency of the conversion of mechanical energy - into electrical energy. - P_pyroelectric_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The pyroelectric constant defines the change of the polarization vector of the piezoelectric material - per unit change in temperature. - acoustic_impedance(NX_NUMBER): - unit: NX_ANY - doc: | - The acoustic impedance of the piezo material. - young_modulus(NX_NUMBER): - unit: NX_ANY - doc: | - The Young's modulus of the piezo material. - surface_resistivity(NX_NUMBER): - unit: NX_ANY - doc: | - The surface resistivity of the piezo material. - temperature_range(NX_NUMBER): - unit: NX_TEMPERATURE - doc: | - The temperature range of the piezo material. - glass_transition_temperature(NX_NUMBER): - unit: NX_TEMPERATURE - doc: | - The range of temperature where a piezoelectric hard material transforms into the - viscous state. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 39d5862b3a9e4f526a71d3a1ad2234a4f4de5b953ce08c21e47f8bd7a9670ed7 -# -# -# -# -# -# Description and properties of the piezoelectric actuator materials. -# The piezoelectric actuator is usually composed of polycrystalline solids and -# attached at the head of the tip or cantilever. The material deforms when the external electric field is applied. -# -# -# -# -# The name of the material of the piezo scanner such as Lead Zirconate Titanates -# (PZTs). -# -# -# -# -# The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. -# -# -# -# -# The type of the material of the piezo scanner (e.g. piezoelectric ceramics, -# polymer-film piezoelectrics). -# -# -# -# -# -# The density of the piezo material. -# -# -# -# -# The relative permittivity (dielectric constant) of the piezo material. -# -# -# -# -# The piezoelectric charge coefficients of the material. The coefficients describe the electric -# polarization generated by the applied stress in material. Different coefficients correspond to different -# relative directions of the polarization and the stress. -# -# -# -# -# The constants define the electric field produced by the external mechanical strain. Different coefficients -# correspond to different relative directions of the electric field and the strain. -# -# -# -# -# The electromechanical constant measures the efficiency of the conversion of mechanical energy -# into electrical energy. -# -# -# -# -# The pyroelectric constant defines the change of the polarization vector of the piezoelectric material -# per unit change in temperature. -# -# -# -# -# The acoustic impedance of the piezo material. -# -# -# -# -# The Young's modulus of the piezo material. -# -# -# -# -# The surface resistivity of the piezo material. -# -# -# -# -# The temperature range of the piezo material. -# -# -# -# -# The range of temperature where a piezoelectric hard material transforms into the -# viscous state. -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml b/contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml deleted file mode 100644 index 66ff50e75..000000000 --- a/contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml +++ /dev/null @@ -1,94 +0,0 @@ -category: base -doc: | - Extending positioner from NXpositioner to maintain a measurement signal through - a feedback loop. -type: group -NXpositioner_spm(NXpositioner): - z_controller(NXpid): - doc: | - This controller's task is to continuously adjust the Z position of the STM/STS tip in order - to keep the selected control signal as close as possible to the Set Point. Different control - signals lead to different controller's behavior. - - The second PID feedback loop intends to position the tip in the Z direction. - - p_gain (proportional gain) from z_controller is the same as K_p_value from PID controller. - i_gain (integral gain) from z_controller is the same as K_i_value from PID controller. - setpoint from z_controller is the same as setpoint from PID controller. - z_offset(NX_NUMBER): - unit: NX_LENGTH - doc: | - Offset added to the initial averaged position tip on Z-axis before starting to - scan. - tip_position_z(NX_NUMBER): - unit: NX_LENGTH - doc: | - Indicate the tip position Z between tip and sample. The tip position can also be varied when - the controller is not running. This is the final position after the tip reaches an equilibrium state. - controller_name(NX_CHAR): - doc: | - Controller name. This name which will be displayed at places where you can select a - controller. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 4eb587390d9a541bd31e756cb5262a7bf2f824c70bd289041f5ab8dad89bd15a -# -# -# -# -# -# Extending positioner from NXpositioner to maintain a measurement signal through -# a feedback loop. -# -# -# -# This controller's task is to continuously adjust the Z position of the STM/STS tip in order -# to keep the selected control signal as close as possible to the Set Point. Different control -# signals lead to different controller's behavior. -# -# The second PID feedback loop intends to position the tip in the Z direction. -# -# p_gain (proportional gain) from z_controller is the same as K_p_value from PID controller. -# i_gain (integral gain) from z_controller is the same as K_i_value from PID controller. -# setpoint from z_controller is the same as setpoint from PID controller. -# -# -# -# -# Offset added to the initial averaged position tip on Z-axis before starting to -# scan. -# -# -# -# -# Indicate the tip position Z between tip and sample. The tip position can also be varied when -# the controller is not running. This is the final position after the tip reaches an equilibrium state. -# -# -# -# -# Controller name. This name which will be displayed at places where you can select a -# controller. -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXrcs.yaml b/contributed_definitions/nyaml/SPM/NXrcs.yaml deleted file mode 100644 index 72dbc9374..000000000 --- a/contributed_definitions/nyaml/SPM/NXrcs.yaml +++ /dev/null @@ -1,101 +0,0 @@ -category: base -doc: | - A base class for the Real Time Control System (RCS). - - A real time control system (RCS) is a reference architecture model - used to design highly task intensive software systems and computing - control systems. -type: group -NXrcs(NXobject): - rcs_name(NX_CHAR): - doc: | - The name of the real-time control system. - rcs_fabrication(NXfabrication): - doc: | - The fabrication information. - rcs_description(NX_CHAR): - doc: | - The description of the real-time control system. - rcs_type(NX_CHAR): - doc: | - The type of the real-time control system. - rcs_manufacturer(NX_CHAR): - doc: | - The manufacturer of the real-time control system. - rcs_serial_number(NX_CHAR): - doc: | - The serial number of the real-time control system. - rcs_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The frequency of the real-time control system. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 0e3f7bfa269c90b6102b23f0c39c4fc5e6fe67bd44a38c647502e94ebf0de5f7 -# -# -# -# -# -# A base class for the Real Time Control System (RCS). -# -# A real time control system (RCS) is a reference architecture model -# used to design highly task intensive software systems and computing -# control systems. -# -# -# -# The name of the real-time control system. -# -# -# -# -# The fabrication information. -# -# -# -# -# The description of the real-time control system. -# -# -# -# -# The type of the real-time control system. -# -# -# -# -# The manufacturer of the real-time control system. -# -# -# -# -# The serial number of the real-time control system. -# -# -# -# -# The frequency of the real-time control system. -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXscan_control.yaml b/contributed_definitions/nyaml/SPM/NXscan_control.yaml deleted file mode 100644 index 2e183a83f..000000000 --- a/contributed_definitions/nyaml/SPM/NXscan_control.yaml +++ /dev/null @@ -1,1066 +0,0 @@ -category: base - -# Correction: region (use: phase space) -doc: | - A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). - - scan_types: - Trajectory: A list of N-dimensional sequential vectors describes the trajectory line for a full scan. - Mesh: For each dimension a range and a direction are chosen. When a scan along a dimension is done, a single step in the next dimension is taken, and then the scan in the previous dimension is repeated. As such we can speak about the fastest and the slowest scan axes. - Snake: Similar to a mesh scan but with the scanning direction reversed after each line. - Spiral: A scan taken along a spiral trajectory. - Tilt: At each step, a proportional movement is done in all dimensions. - Linear: A scan where the scanning will be performed along a single independent axis. - - Scan_control_types: - Stepping: At each step, a movement to the next point is performed; correction (for example backlash) or active regulation (feedback loop) may or may not be applied. After the movement is done, the measurement is performed without the movement. - Continuous: The scanning of each line in an N-dimensional phase space is done without stopping; measurements are done simultaneously with the movement. - Oscillating: Scanning over a scan point continuously and then moving to start scanning at the next position. -type: group -NXscan_control(NXobject): - scan_time_start(NX_DATE_TIME): - unit: NX_TIME - doc: | - The start time of the scan. - scan_time_end(NX_DATE_TIME): - unit: NX_TIME - doc: | - The end time of the scan. - independent_scan_axes: - doc: | - A list of scan axes which are controlled independently of each other. - (e.g. X, Y, Z, or other physical dimensions) - - The list is in the order of axes of the scan from the fastest to the slowest. - scan_resolution_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan resolution along each dimension as the number of steps per unit of the dimension parameters. - - Rename the field according to the name of the independent dimension (e.g. scan_resolution_x, scan_resolution_voltage). - accuracy_N(NX_NUMBER): - unit: NX_LENGTH - doc: | - Define the accuracy of the scan probe. - scan_type: - doc: | - This group specifies how the trajectory of the scan is defined. - enumeration: [trajectory, mesh, snake, spiral] - scan_control_type: - doc: | - This group specifies whether there is any movement when a data point is - measured. - enumeration: [stepping, continuous, oscillating] - scan_region(NXobject): - doc: | - The scan region is the area of phase space or sub-phase space where the scan is - performed. The region could be N-dimensional and is defined by the minimum and - maximum values of the scan axes. - scan_offset_N(NX_NUMBER): - unit: NX_ANY - doc: | - The offset of the scan region from the origin along the specific scan axis. - - 'N' denotes the name of the specific scan axis. - scan_range_N(NX_NUMBER): - unit: NX_ANY - doc: | - The range of the scan is the length of the scan region along the dimension 'N'. - scan_angle_N(NX_NUMBER): - unit: NX_ANGLE - doc: | - The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough - to define the scan region. This field defines how the spatial space is oriented with respect to - the frame of reference. - - Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). - scan_start_N(NX_NUMBER): - unit: NX_ANY - doc: | - The start of the scan is the starting point of the scan region (phase space or sub-phase space) - for each independent scan axis. - - For N-dimensional, it is a list of N numbers. - scan_end_N(NX_NUMBER): - unit: NX_ANY - doc: | - The end of the scan is the ending point of the scan region (phase space or sub-phase space) - for each independent scan axis. - - Note: The scan_offset and scan_range are equivalent to the scan_start and scan_end. - - For N-dimensional, it is a list of N numbers. - mesh_SCAN(NXobject): - doc: | - For each dimension a range and a direction are chosen. When a scan along a dimension is done, - a single step in the next dimension is taken, and then the scan in the previous dimension is - repeated. As such we can speak about the fastest and the slowest scan axes. - scan_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the forward direction along the axis. - - If the scan goes in the negative direction, the speed should be negative. - - Rename the field, according to the name of the dimension (e.g. scan_speed_x, scan_speed_voltage). - forward_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the forward directions. - Rename the field, according to the name of the dimension. - backward_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the backward directions. - Rename the field, according to the name of the dimension. - channel_NAME_N: - doc: | - Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is - to represent the name of the dimensions. - - Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). - scan_points_N(NX_NUMBER): - doc: | - Define the total number of points in the given axis scan to be performed. - - Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). - stepping_N(NX_NUMBER): - doc: | - The number of steps the probe jumps over the scan steps or points. - - Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one) - to perform each scan. By default, it is False. - step_size_N(NX_NUMBER): - unit: NX_ANY - doc: | - The length of each step in the scan on each dimension. - - Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). - continuous_N(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points or steps, use True. The default value is True. - Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves - in steps. - - Rename the field, according to the name of the dimension (e.g. continuous_voltage). - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. - The default value is False. - oscillation_frequency(NX_NUMBER): - doc: | - The number of oscillations on each scanning point per second. - SCAN_DATA(NXdata): - data: - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - - # For spiral scan - spiral_SCAN(NXobject): - doc: | - To define the spiral or circular scan, use this group. - scan_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in forward (clockwise) directions. - - If the scan goes in the negative (anti-clockwise) direction, the speed should be negative. - - Rename the field, according to the circle index. The circle near the center starts with 0. - In case, the speed is the same for all the circles, replace 'N' by 'all'. - \@spiral_direction: - doc: | - Define the direction of the spiral scan. (e.g. clockwise, anticlockwise) - enumeration: [clockwise, anticlockwise] - forward_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the forward (clockwise) directions. - Rename the field, according to the circle index. The circle near the center starts with 0. - - In case, the speed is the same for all the circles, replace 'N' by 'all'. - backward_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the backward (anti-clockwise) directions. - Rename the field, according to the circle index. The circle near the center starts with 0. - - In case, the speed is the same for all the circles, replace 'N' by 'all'. - spiral_radius_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the radius of the spiral circle of scanning. - - Rename the field, according to the circle order, the nearest circle to the center is 0. - scan_points_N(NX_NUMBER): - doc: | - Define the total number of points in a given circle scan to be performed. - - Rename the field, according to the circle order, the nearest circle to the center - is 0 (e.g. scan_points_2). - stepping_N(NX_NUMBER): - doc: | - If the scan probe steps over a number of scan points. - - Rename the field, according to the circle index. The circle near the center starts with 0. - In case, the stepping is the same for all the circles, replace 'N' by 'all'. - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one), use True. - The default value is False. - step_size_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the number of points that the scan probe steps over. - - Rename the field, according to the circle index. The circle near the center or lowest value of a - parameter starts with 0. - In case, the step size is the same for all the circles, replace 'N' by 'all'. - continuous_N(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points, use True. The default value is True. - A scan process can run continuously in the spatial dimension but can be discretized in time or - other physical dimensions (e.g. voltage). - - Rename this field according to the dimensions, considering continuous scan in a two-dimensional space - rename the field as continuous_x_y. - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. The default value is - False. - oscillation_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Number of oscillation on each scanning point per second. - SCAN_DATA(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - - # This active_trajectory could be explained under the same group - snake_SCAN(NXobject): - doc: | - To define the snake scan, use this group. - scan_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed for the type of snake scan. For the same speed along the - positive and negative directions, use a single number - - Rename the field, according to the name of the fast and slow axis e.g. scan_speed_x. - forward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The field defines the scan speed in the positive direction on the fast axis. - - Rename the field, according to the name of the fast axis. - backward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The field defines the scan speed in the negative direction on the fast axis. - - Rename the field, according to the name of the fast axis. - scan_points_N(NX_NUMBER): - doc: | - Define the total number of points in the given axis scan to be performed. - - Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). - stepping_N(NX_NUMBER): - doc: | - The number of steps the probe jumps over the scan steps or points. - - Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one) - to perform each scan. By default, it is False. - - Rename the field, according to the name of the dimension. - step_size_N(NX_NUMBER): - unit: NX_ANY - doc: | - The length of each step in the scan on each dimension. - - Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). - channel_NAME_N: - doc: | - Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is - to represent the name of the dimensions. - - Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). - continuous_N(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points or steps, use True. The default value is True. - Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves - in a stepping manner. - - Rename the field, according to the name of the dimension (e.g. continuous_voltage). - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. - The default value is False. - oscillation_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The number of oscillations on each scanning point per second. - SCAN_DATA(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - traj_SCAN(NXobject): - doc: | - To define the trajectory scan, use this group. - scan_speed(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed through the trajectory points. - forward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The field defines the scan speed in the forward directions through the - trajectory points. - backward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The field defines the scan speed in the backward directions (backtracking) - through the trajectory points. - channel_NAME_N: - doc: | - Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is - to represent the name of the dimensions. - - Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). - number_of_trajectory_points(NX_NUMBER): - doc: | - The number of trajectory points in the entire scan. - trajectory_points(NX_NUMBER): - doc: | - The trajectory points are the N-dimensional vectors describing all the scan points sequentially. - - The second rank dataset should contain total number of trajectory points (nTraj) and - a full coordinate (nD) of each trajectory point. - dimensions: - rank: 2 - dim: [[1, nTraj], [2, nD]] - scan_points_N(NX_NUMBER): - doc: | - Define the total number of scan points between two trajectory points. - - Rename the field, according to the index of the second trajectory points. - For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. - stepping_N(NX_NUMBER): - doc: | - The number of steps the probe jumps over the scan steps or points along the trajectory line from between two trajectory points. - - Rename the field, according to the index of the second trajectory points. - For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one) - to perform each scan. By default, it is False. - step_size(NX_NUMBER): - unit: NX_ANY - doc: | - The length of each step along the entire trajectory line. - continuous(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points or steps between two - trajectory points, use True. The default value is True. - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. - The default value is False. - oscillation_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The number of oscillations on each scanning point per second. - SCAN_DATA(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - linear_SCAN(NXobject): - doc: | - Define the scan mode that is performed for a single independent data axis. - scan_speed(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed of the scan disregarding the forward or backward - direction. - forward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the forward directions. - backward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the backward directions. - channel_NAME(NX_CHAR): - doc: | - Name of the channel that records the scan data for the given dimension. - scan_points_N(NX_NUMBER): - doc: | - Define the total number of points in the given axis scan to be performed. - - Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). - stepping_N(NX_NUMBER): - doc: | - The number of steps the probe jumps over the scan steps or points. - - Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one) - to perform each scan. By default, it is False. - step_size_N(NX_NUMBER): - unit: NX_ANY - doc: | - The length of each step in the scan on each dimension. - - Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). - continuous_N(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points or steps, use True. The default value is True. - Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves - in a stepping manner. - - Rename the field, according to the name of the dimension (e.g. continuous_voltage). - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. - The default value is False. - oscillation_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The number of oscillations on each scanning point per second. - SCAN_DATA(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# a99c94ee5ab6ba0f08f75bdee50080cc8a5359eb1c3dd481557b3a6ca8a95148 -# -# -# -# -# -# -# A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). -# -# scan_types: -# Trajectory: A list of N-dimensional sequential vectors describes the trajectory line for a full scan. -# Mesh: For each dimension a range and a direction are chosen. When a scan along a dimension is done, a single step in the next dimension is taken, and then the scan in the previous dimension is repeated. As such we can speak about the fastest and the slowest scan axes. -# Snake: Similar to a mesh scan but with the scanning direction reversed after each line. -# Spiral: A scan taken along a spiral trajectory. -# Tilt: At each step, a proportional movement is done in all dimensions. -# Linear: A scan where the scanning will be performed along a single independent axis. -# -# Scan_control_types: -# Stepping: At each step, a movement to the next point is performed; correction (for example backlash) or active regulation (feedback loop) may or may not be applied. After the movement is done, the measurement is performed without the movement. -# Continuous: The scanning of each line in an N-dimensional phase space is done without stopping; measurements are done simultaneously with the movement. -# Oscillating: Scanning over a scan point continuously and then moving to start scanning at the next position. -# -# -# -# The start time of the scan. -# -# -# -# -# The end time of the scan. -# -# -# -# -# A list of scan axes which are controlled independently of each other. -# (e.g. X, Y, Z, or other physical dimensions) -# -# The list is in the order of axes of the scan from the fastest to the slowest. -# -# -# -# -# Define the scan resolution along each dimension as the number of steps per unit of the dimension parameters. -# -# Rename the field according to the name of the independent dimension (e.g. scan_resolution_x, scan_resolution_voltage). -# -# -# -# -# Define the accuracy of the scan probe. -# -# -# -# -# This group specifies how the trajectory of the scan is defined. -# -# -# -# -# -# -# -# -# -# -# This group specifies whether there is any movement when a data point is -# measured. -# -# -# -# -# -# -# -# -# -# The scan region is the area of phase space or sub-phase space where the scan is -# performed. The region could be N-dimensional and is defined by the minimum and -# maximum values of the scan axes. -# -# -# -# The offset of the scan region from the origin along the specific scan axis. -# -# 'N' denotes the name of the specific scan axis. -# -# -# -# -# The range of the scan is the length of the scan region along the dimension 'N'. -# -# -# -# -# The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough -# to define the scan region. This field defines how the spatial space is oriented with respect to -# the frame of reference. -# -# Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). -# -# -# -# -# The start of the scan is the starting point of the scan region (phase space or sub-phase space) -# for each independent scan axis. -# -# For N-dimensional, it is a list of N numbers. -# -# -# -# -# The end of the scan is the ending point of the scan region (phase space or sub-phase space) -# for each independent scan axis. -# -# Note: The scan_offset and scan_range are equivalent to the scan_start and scan_end. -# -# For N-dimensional, it is a list of N numbers. -# -# -# -# -# -# For each dimension a range and a direction are chosen. When a scan along a dimension is done, -# a single step in the next dimension is taken, and then the scan in the previous dimension is -# repeated. As such we can speak about the fastest and the slowest scan axes. -# -# -# -# Define the scan speed in the forward direction along the axis. -# -# If the scan goes in the negative direction, the speed should be negative. -# -# Rename the field, according to the name of the dimension (e.g. scan_speed_x, scan_speed_voltage). -# -# -# -# -# Define the scan speed in the forward directions. -# Rename the field, according to the name of the dimension. -# -# -# -# -# Define the scan speed in the backward directions. -# Rename the field, according to the name of the dimension. -# -# -# -# -# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is -# to represent the name of the dimensions. -# -# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). -# -# -# -# -# Define the total number of points in the given axis scan to be performed. -# -# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). -# -# -# -# -# The number of steps the probe jumps over the scan steps or points. -# -# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one) -# to perform each scan. By default, it is False. -# -# -# -# -# -# The length of each step in the scan on each dimension. -# -# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). -# -# -# -# -# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. -# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves -# in steps. -# -# Rename the field, according to the name of the dimension (e.g. continuous_voltage). -# -# -# -# -# If the scan probe oscillates over the scan point, use True. -# The default value is False. -# -# -# -# -# The number of oscillations on each scanning point per second. -# -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# -# -# -# -# To define the spiral or circular scan, use this group. -# -# -# -# Define the scan speed in forward (clockwise) directions. -# -# If the scan goes in the negative (anti-clockwise) direction, the speed should be negative. -# -# Rename the field, according to the circle index. The circle near the center starts with 0. -# In case, the speed is the same for all the circles, replace 'N' by 'all'. -# -# -# -# Define the direction of the spiral scan. (e.g. clockwise, anticlockwise) -# -# -# -# -# -# -# -# -# -# Define the scan speed in the forward (clockwise) directions. -# Rename the field, according to the circle index. The circle near the center starts with 0. -# -# In case, the speed is the same for all the circles, replace 'N' by 'all'. -# -# -# -# -# Define the scan speed in the backward (anti-clockwise) directions. -# Rename the field, according to the circle index. The circle near the center starts with 0. -# -# In case, the speed is the same for all the circles, replace 'N' by 'all'. -# -# -# -# -# Define the radius of the spiral circle of scanning. -# -# Rename the field, according to the circle order, the nearest circle to the center is 0. -# -# -# -# -# Define the total number of points in a given circle scan to be performed. -# -# Rename the field, according to the circle order, the nearest circle to the center -# is 0 (e.g. scan_points_2). -# -# -# -# -# If the scan probe steps over a number of scan points. -# -# Rename the field, according to the circle index. The circle near the center starts with 0. -# In case, the stepping is the same for all the circles, replace 'N' by 'all'. -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one), use True. -# The default value is False. -# -# -# -# -# -# Define the number of points that the scan probe steps over. -# -# Rename the field, according to the circle index. The circle near the center or lowest value of a -# parameter starts with 0. -# In case, the step size is the same for all the circles, replace 'N' by 'all'. -# -# -# -# -# If the scan probe moves continuously over the scan points, use True. The default value is True. -# A scan process can run continuously in the spatial dimension but can be discretized in time or -# other physical dimensions (e.g. voltage). -# -# Rename this field according to the dimensions, considering continuous scan in a two-dimensional space -# rename the field as continuous_x_y. -# -# -# -# -# If the scan probe oscillates over the scan point, use True. The default value is -# False. -# -# -# -# -# Number of oscillation on each scanning point per second. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# -# -# -# To define the snake scan, use this group. -# -# -# -# Define the scan speed for the type of snake scan. For the same speed along the -# positive and negative directions, use a single number -# -# Rename the field, according to the name of the fast and slow axis e.g. scan_speed_x. -# -# -# -# -# The field defines the scan speed in the positive direction on the fast axis. -# -# Rename the field, according to the name of the fast axis. -# -# -# -# -# The field defines the scan speed in the negative direction on the fast axis. -# -# Rename the field, according to the name of the fast axis. -# -# -# -# -# Define the total number of points in the given axis scan to be performed. -# -# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). -# -# -# -# -# The number of steps the probe jumps over the scan steps or points. -# -# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one) -# to perform each scan. By default, it is False. -# -# Rename the field, according to the name of the dimension. -# -# -# -# -# -# The length of each step in the scan on each dimension. -# -# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). -# -# -# -# -# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is -# to represent the name of the dimensions. -# -# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). -# -# -# -# -# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. -# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves -# in a stepping manner. -# -# Rename the field, according to the name of the dimension (e.g. continuous_voltage). -# -# -# -# -# If the scan probe oscillates over the scan point, use True. -# The default value is False. -# -# -# -# -# The number of oscillations on each scanning point per second. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# -# -# To define the trajectory scan, use this group. -# -# -# -# Define the scan speed through the trajectory points. -# -# -# -# -# The field defines the scan speed in the forward directions through the -# trajectory points. -# -# -# -# -# The field defines the scan speed in the backward directions (backtracking) -# through the trajectory points. -# -# -# -# -# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is -# to represent the name of the dimensions. -# -# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). -# -# -# -# -# The number of trajectory points in the entire scan. -# -# -# -# -# The trajectory points are the N-dimensional vectors describing all the scan points sequentially. -# -# The second rank dataset should contain total number of trajectory points (nTraj) and -# a full coordinate (nD) of each trajectory point. -# -# -# -# -# -# -# -# -# Define the total number of scan points between two trajectory points. -# -# Rename the field, according to the index of the second trajectory points. -# For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. -# -# -# -# -# The number of steps the probe jumps over the scan steps or points along the trajectory line from between two trajectory points. -# -# Rename the field, according to the index of the second trajectory points. -# For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one) -# to perform each scan. By default, it is False. -# -# -# -# -# -# The length of each step along the entire trajectory line. -# -# -# -# -# If the scan probe moves continuously over the scan points or steps between two -# trajectory points, use True. The default value is True. -# -# -# -# -# If the scan probe oscillates over the scan point, use True. -# The default value is False. -# -# -# -# -# The number of oscillations on each scanning point per second. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# -# -# Define the scan mode that is performed for a single independent data axis. -# -# -# -# Define the scan speed of the scan disregarding the forward or backward -# direction. -# -# -# -# -# Define the scan speed in the forward directions. -# -# -# -# -# Define the scan speed in the backward directions. -# -# -# -# -# Name of the channel that records the scan data for the given dimension. -# -# -# -# -# Define the total number of points in the given axis scan to be performed. -# -# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). -# -# -# -# -# The number of steps the probe jumps over the scan steps or points. -# -# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one) -# to perform each scan. By default, it is False. -# -# -# -# -# -# The length of each step in the scan on each dimension. -# -# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). -# -# -# -# -# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. -# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves -# in a stepping manner. -# -# Rename the field, according to the name of the dimension (e.g. continuous_voltage). -# -# -# -# -# If the scan probe oscillates over the scan point, use True. -# The default value is False. -# -# -# -# -# The number of oscillations on each scanning point per second. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXsensor_scan.yaml b/contributed_definitions/nyaml/SPM/NXsensor_scan.yaml deleted file mode 100644 index bb6efecb4..000000000 --- a/contributed_definitions/nyaml/SPM/NXsensor_scan.yaml +++ /dev/null @@ -1,374 +0,0 @@ -category: application -doc: | - Application definition for a generic scan using sensors. - - In this application definition, times should be specified always together - with an UTC offset. -symbols: - doc: | - Variables used to set a common size for collected sensor data. - N_scanpoints: | - The number of scan points measured in this scan. -type: group -NXsensor_scan(NXobject): - (NXentry): - definition(NX_CHAR): - \@version: - enumeration: [NXsensor_scan] - experiment_identifier(NXidentifier): - exists: recommended - doc: | - The unique identifier for the entry. The identifier is mainly lab-defined and - can be a combination of the sample name, date and time, experiment condition - (such as temperature) or instrument-generated unique identifier. - collection_identifier: - exists: optional - doc: | - The unique identifier for the collection. The identifier is used to group a - number of the experiments run upon the same setup and/or same sample. - experiment_description: - exists: recommended - start_time(NX_DATE_TIME): - unit: NX_TIME - exists: recommended - end_time(NX_DATE_TIME): - unit: NX_TIME - exists: recommended - (NXprocess): - doc: | - Define the program that was used to generate the results file(s) - with measured data and metadata. - program(NX_CHAR): - doc: | - Commercial or otherwise defined given name of the program - (or a link to the instrument software). - \@version: - doc: | - Either version with build number, commit hash, or description of an - (online) repository where the source code of the program and build - instructions can be found so that the program can be configured in - such a way that result files can be created ideally in a - deterministic manner. - \@program_url: - doc: | - Website of the software. - (NXuser): - doc: | - Contact information of at least the user of the instrument or the - investigator who performed this experiment. Adding multiple users if - relevant is recommended. - name(NX_CHAR): - doc: | - Name of the user. - affiliation(NX_CHAR): - exists: recommended - doc: | - Name of the affiliation of the user at the point in time when - the experiment was performed. - address(NX_CHAR): - exists: recommended - doc: | - Full address (street, street number, ZIP, city, country) - of the user's affiliation. - email(NX_CHAR): - exists: recommended - doc: | - Email address of the user. - orcid(NX_CHAR): - exists: recommended - doc: | - Author ID defined by https://orcid.org/. - telephone_number(NX_CHAR): - exists: recommended - doc: | - Official telephone number of the user. - (NXnote): - exists: optional - doc: | - Any additional information or notes (e.g. purpose of the experiment) that might - be useful to understand the experiment. - (NXinstrument): - (NXenvironment): - doc: | - Describes an environment setup for the experiment. - - All the setting values of the independently scanned controllers are listed under corresponding - NXsensor groups. Similarly, seperate NXsensor groups are used to store the readings from each - measurement sensor. - - For example, in a temperature-dependent IV measurement, the temperature and voltage must be - present as independently scanned controllers and the current sensor must also be present with - its readings. - (NXsensor): - (NXdata): - exists: recommended - doc: | - Plot of measured signal as a function of the timestamp of when they have been - acquired is also possible. - value(NX_FLOAT): - unit: NX_ANY - doc: | - For each point in the scan space, either the nominal setpoint of an independently scanned controller - or a representative average value of a measurement sensor is registered. - - The length of each sensor's data value array stored in this group should be equal to the number of scan points - probed in this scan. For every scan point [N], the corresponding sensor value can be picked from index [N]. - This allows the scan to be made in any order as the user describes above in the experiment. We get matching - values simply using the index of the scan point. - dimensions: - rank: 1 - dim: [[1, N_scanpoints]] - value_timestamp(NX_DATE_TIME): - exists: recommended - doc: | - Timestamp for when the values provided in the value field were registered. - - Individual readings can be stored with their timestamps under value_log. This is to timestamp - the nominal setpoint or average reading values listed above in the value field. - run_control(NX_CHAR): - exists: recommended - \@description: - doc: | - Free-text describing the data acquisition control: an internal - sweep using the built-in functionality of the controller device, - or a set/wait/read/repeat mechanism. - calibration_time(NX_DATE_TIME): - doc: | - ISO8601 datum when calibration was last performed - before this measurement. UTC offset should be specified. - (NXpid): - independent_controllers: - doc: | - A list of names of NXsensor groups used as independently scanned controllers. - measurement_sensors: - doc: | - A list of names of NXsensor groups used as measurement sensors. - (NXsample): - exists: recommended - name(NX_CHAR): - (NXhistory): - exists: optional - (NXdata): - doc: | - A scan specific representation of the measured signals as a function of the independently controlled environment settings. - Plot of every measured signal as a function of the timestamp of when they have been acquired is also possible. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 7edd229236b260394837fc2f5fe7b849cc0738f4d0c2267bf07291a6cbb040f2 -# -# -# -# -# -# -# Variables used to set a common size for collected sensor data. -# -# -# -# The number of scan points measured in this scan. -# -# -# -# -# Application definition for a generic scan using sensors. -# -# In this application definition, times should be specified always together -# with an UTC offset. -# -# -# -# -# -# -# -# -# -# -# The unique identifier for the entry. The identifier is mainly lab-defined and -# can be a combination of the sample name, date and time, experiment condition -# (such as temperature) or instrument-generated unique identifier. -# -# -# -# -# The unique identifier for the collection. The identifier is used to group a -# number of the experiments run upon the same setup and/or same sample. -# -# -# -# -# -# -# -# Define the program that was used to generate the results file(s) -# with measured data and metadata. -# -# -# -# Commercial or otherwise defined given name of the program -# (or a link to the instrument software). -# -# -# -# Either version with build number, commit hash, or description of an -# (online) repository where the source code of the program and build -# instructions can be found so that the program can be configured in -# such a way that result files can be created ideally in a -# deterministic manner. -# -# -# -# -# Website of the software. -# -# -# -# -# -# -# Contact information of at least the user of the instrument or the -# investigator who performed this experiment. Adding multiple users if -# relevant is recommended. -# -# -# -# Name of the user. -# -# -# -# -# Name of the affiliation of the user at the point in time when -# the experiment was performed. -# -# -# -# -# Full address (street, street number, ZIP, city, country) -# of the user's affiliation. -# -# -# -# -# Email address of the user. -# -# -# -# -# Author ID defined by https://orcid.org/. -# -# -# -# -# Official telephone number of the user. -# -# -# -# -# -# Any additional information or notes (e.g. purpose of the experiment) that might -# be useful to understand the experiment. -# -# -# -# -# -# Describes an environment setup for the experiment. -# -# All the setting values of the independently scanned controllers are listed under corresponding -# NXsensor groups. Similarly, seperate NXsensor groups are used to store the readings from each -# measurement sensor. -# -# For example, in a temperature-dependent IV measurement, the temperature and voltage must be -# present as independently scanned controllers and the current sensor must also be present with -# its readings. -# -# -# -# -# Plot of measured signal as a function of the timestamp of when they have been -# acquired is also possible. -# -# -# -# -# For each point in the scan space, either the nominal setpoint of an independently scanned controller -# or a representative average value of a measurement sensor is registered. -# -# The length of each sensor's data value array stored in this group should be equal to the number of scan points -# probed in this scan. For every scan point [N], the corresponding sensor value can be picked from index [N]. -# This allows the scan to be made in any order as the user describes above in the experiment. We get matching -# values simply using the index of the scan point. -# -# -# -# -# -# -# -# Timestamp for when the values provided in the value field were registered. -# -# Individual readings can be stored with their timestamps under value_log. This is to timestamp -# the nominal setpoint or average reading values listed above in the value field. -# -# -# -# -# -# Free-text describing the data acquisition control: an internal -# sweep using the built-in functionality of the controller device, -# or a set/wait/read/repeat mechanism. -# -# -# -# -# -# ISO8601 datum when calibration was last performed -# before this measurement. UTC offset should be specified. -# -# -# -# -# -# -# A list of names of NXsensor groups used as independently scanned controllers. -# -# -# -# -# A list of names of NXsensor groups used as measurement sensors. -# -# -# -# -# -# -# -# -# -# -# A scan specific representation of the measured signals as a function of the independently controlled environment settings. -# Plot of every measured signal as a function of the timestamp of when they have been acquired is also possible. -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXspm.yaml b/contributed_definitions/nyaml/SPM/NXspm.yaml deleted file mode 100644 index ba681187b..000000000 --- a/contributed_definitions/nyaml/SPM/NXspm.yaml +++ /dev/null @@ -1,832 +0,0 @@ -category: application -doc: | - Scanning Probe Microscopy (SPM) is a branch of microscopy that utilizes a physical probe to scan the surface of - sample and image it at the atomic level. - - The application class NXspm is designed as a skeleton and contains common technical concepts - for specific SPM sub-techniques such as STM, STS, AFM etc. -type: group -NXspm(NXsensor_scan): - (NXentry): - definition: - doc: | - Name of the definition that is used for the application. - enumeration: [NXspm] - experiment_technique: - doc: | - The technique of the experiment like STM, STS, AFM, etc. - enumeration: [STM, STS, AFM] - scan_mode: - exists: optional - doc: | - The mode of the scan. The possible options depend on the type of experiment. - For example, in STM, the scan mode could be constant height or constant current, - in AFM, the scan mode could be contact mode, tapping mode or non-contact mode. - scan_type: - exists: optional - doc: | - The type of the scan. It mainly describes how scan probe moves in the scan region, e.g. - forward, backward, or both (if scan is repeated). - experiment_identifier(NXidentifier): - exists: optional - doc: | - The identifiers for the experiment which should be unique at least in lab. - experiment_description: - exists: optional - doc: | - The description of the experiment like comments, ontes from from the experiment. - experiment_instrument(NXinstrument): - doc: | - The instrument information. - hardware(NXfabrication): - doc: | - The hardware description of the core instrument setup of the experiment. - Usually, the entire instrument is supplied by a single manufacturer. - To describe the hardware from any sub-components, use the hardware group of that - sub-component (child group of the NXinstrument group) group. - vendor: - doc: | - Company name of the manufacturer. - model: - doc: | - Version or model of the hardware setup provided by the manufacturer. - \@version: - exists: optional - doc: | - If different versions are possible, the value in this field should be made - specific enough to resolve the version. - software(NXfabrication): - doc: | - The software description of the core instrument setup of the experiment. - Usually, the entire instrument is supplied by a single name/manufacturer/model/etc. - To describe the software from any sub-components, use the software group of that component. - vendor: - doc: | - Company name of the manufacturer. - model: - doc: | - Version or model of the component named by the manufacturer. - \@version: - exists: optional - doc: | - If different versions are possible, the value in this field should be made - specific enough to resolve the version. - real_time_controller(NXrcs): - exists: optional - doc: | - The real-time controller information. - rcs_frequency(NX_NUMBER): - exists: optional - doc: | - The frequency of the real-time controller system which indicated the number of close-loop process - (gathering data, process data and update system) control cycles per second. - lockin_amplifier(NXlockin): - exists: optional - doc: | - The lock-in amplifier information. - scan_environment(NXenvironment): - doc: | - Information of the scan environment. - tip_temp(NX_NUMBER): - exists: optional - unit: NX_TEMPERATURE - doc: | - Temperature of STM head. Note: At least one field from tip_temp, - cryo_bottom_temp and cryo_shield_temp must be provided. - cryo_bottom_temp(NX_NUMBER): - exists: optional - unit: NX_TEMPERATURE - doc: | - Temperature of the cold tail of the cryostat. Note: At least one field from - tip_temp, cryo_bottom_temp and cryo_shield_temp must be provided. - cryo_shield_temp(NX_NUMBER): - exists: optional - unit: NX_TEMPERATURE - doc: | - Temperature of liquid nitrogen shield. Note: At - least one field from tip_temp, cryo_bottom_temp and cryo_shield_temp. - scan_name: - exists: optional - doc: | - The name of the scan, mainly lab defined, that helps to differentiate among different - scans performed in the lab. - current_sensor(NXsensor): - exists: optional - doc: | - This is a link to the current_sensor under the instrument group: - entry/experiment_instrument/current_sensor. - volatage_sensor(NXsensor): - exists: optional - doc: | - This is a link to the voltage_sensor under the instrument group: - entry/experiment_instrument/voltage_sensor. - piezo_sensor(NXsensor): - exists: optional - doc: | - This is a link to the piezo_sensor under the instrument group: - entry/experiment_instrument/piezo_sensor. - (NXscan_control): - doc: | - The scan control information like scan region or phase space, type of scan (e.g. - mesh, spiral, etc.), and scan speed, etc. This group mainly stores the raw scan - data. For processed data or final experimental data would go to NXdata group. - scan_name: - exists: optional - doc: | - The name of the scan, mainly lab defined, that helps to differentiate among different - scans performed in lab. This field is intended for several types of scan control - run under the same environment. - current_sensor(NXsensor): - exists: optional - doc: | - Information for current sensor. - (NXamplifier): - exists: optional - doc: | - An amplifier information for the input signal (e.g. from tip). - voltage_sensor(NXsensor): - exists: optional - doc: | - The sensor information for the voltage device. - (NXamplifier): - exists: optional - piezo_sensor(NXsensor): - doc: | - The piezo sensor refers to the height (or Z) piezo sensor if nothing is - mentioned along the X and Y directions. - x(NX_NUMBER): - unit: NX_LENGTH - doc: | - The x position of the piezo. In STS experiment, the piezo stays fixed at - x,y and z and the the tunneling current is measured with respect to the - bias voltage (sweep voltage). - y(NX_NUMBER): - unit: NX_LENGTH - doc: | - The y position of the piezo. - z(NX_NUMBER): - unit: NX_LENGTH - doc: | - The z position of the piezo. - piezo_configuration(NXpiezo_config_spm): - exists: optional - doc: | - The piezo configuration information like piezoelectric calibration and material - properties. - calibration(NXcalibration): - exists: optional - doc: | - Calibration of the piezo device. - (NXpositioner_spm): - doc: | - The positioner information like the position of the tip, the position of the - sample, PID loop feedback etc. - z_controller(NXpid): - doc: | - The PID controller information for the z-axis. - z(NX_NUMBER): - doc: | - To indicate the relative tip position z between tip and sample. The tip position - can also be varied when the z_controller is not running. - controller_status(NX_BOOLEAN): - doc: | - Status if controller is active. - piezo_material(NXpiezoelectric_material): - exists: optional - doc: | - The material description and properties of the piezoelectric scanner materials. - TEMPERATURE(NXsensor): - exists: optional - doc: | - A group handling the temperature such as cryo, shield and tip. For different - type of temperature sensors repeat this group. - temperature(NX_NUMBER): - exists: optional - unit: NX_TEMPERATURE - doc: | - The temperature of the sample. - CHANNEL_temp(NX_CHAR): - exists: optional - doc: | - The name of the channel to measure the temperature. - temperature_calibration(NXcalibration): - exists: optional - doc: | - Calibration of the temperature measurement. - coefficients(NX_NUMBER): - unit: NX_ANY - doc: | - The coefficients of the calibration. - TEMPERATURE_DATA(NXdata): - exists: optional - doc: | - Data (e.g, record from SPM head temperature) from temperature sensor. - bias_spectroscopy_environment(NXenvironment): - doc: | - To explain bias (sweep measurement) voltage applied to the sample. - (NXbias_spectroscopy): - doc: | - Setup and scan data for continuous measurement of bias-voltage on the subject of experiment - vs tunneling current from probe. - (NXpositioner_spm): - exists: optional - doc: | - The positioner information like the position of the tip, PID loop feedback etc. - z_controller(NXpid): - exists: optional - doc: | - The PID controller information for the z-axis. - z_average_time(NX_DATE_TIME): - exists: optional - unit: NX_TIME - doc: | - The average time taken by the z-controller to stabilize the tip. - z_controller_time(NX_DATE_TIME): - exists: optional - unit: NX_TIME - doc: | - The time taken by the z-controller to measure physical properties. - z_controller_hold(NX_BOOLEAN): - exists: optional - doc: | - The status of the controller to be held on the previous position, before going to the - next scan point or line to measure the physical properties. - record_final_z(NX_BOOLEAN): - exists: optional - doc: | - The status of the controller to record the final z position after the scan. - bias_sweep(NXbias_sweep): - doc: | - The bais voltage sweep is a common technique used on the substance or sample or environment - to study the change in the behavior of the sample or substance or environment due to change - in applied bias voltage. - settling_time(NX_NUMBER): - unit: NX_TIME - doc: | - The time is taken to settle the bias voltage at the desired value. On each sweep usually, the system - takes time to settle the bias voltage at the next value. - scan_region(NXobject): - doc: | - The scan region (phase space or sub-phase space) is the region where the scan is - performed. - scan_offset_bias(NX_NUMBER): - exists: optional - unit: NX_VOLTAGE - doc: | - The offset of the bias voltage for bias sweep. - scan_range_bias(NX_NUMBER): - exists: optional - unit: NX_VOLTAGE - doc: | - The range of the scan is the length of the bias voltage over which the sweep - scan will be performed. - scan_start_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The start of the bias scan voltage. - scan_end_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The end of the bias scan voltage. - linear_sweep(NXobject): - doc: | - The linear sweep is a type of scan where the bias voltage is swept - linearly from the starting voltage to the ending voltage. - scan_points_bias(NX_NUMBER): - doc: | - The number of voltage points the sweep scan to be performed. - step_size_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The step size of the sweep. - The step size is the difference between the two consecutive bias voltage during the sweep. - reset_bias(NX_BOOLEAN): - exists: optional - doc: | - The reset_bias is used to reset the bias voltage to the starting value after a - sweep is completed. - sample_bias_votage(NXsensor): - exists: optional - doc: | - The DC bias voltage that is applied to the sample. - bias_voltage(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The bias voltage (DC) applied to the sample. - bias_offset(NX_NUMBER): - exists: optional - unit: NX_VOLTAGE - doc: | - Offset value of the bias voltage. - bias_calibration(NXcalibration): - exists: optional - doc: | - Calibration of the bias voltage measurement (V/V). - calibration_time(NX_DATE_TIME): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by the calibration to setup to acquire the data for - the calibration. - coefficients(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The coefficients of the calibration. - (NXsample): - exists: optional - doc: | - The sample information. - sample_environment(NXenvironment): - exists: optional - doc: | - Information of environment around the sample. - sample_bias_voltage(NXsensor): - doc: | - Link to the sample_bias_voltage sensor under the instrument. - reproducibility_indicators(NXobject): - doc: | - The group of indicators (links to the existing fields in different groups) that measure - the reproducibility of the experiment. - resolution_indicators(NXobject): - doc: | - The group of indicators (links to the existing fields in different groups) that - are used to measure the resolution of the experiment results. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 5aed239803246cad4ded3ce2d01babdb3934dcdbcaed0537cd1c5bd018461040 -# -# -# -# -# -# Scanning Probe Microscopy (SPM) is a branch of microscopy that utilizes a physical probe to scan the surface of -# sample and image it at the atomic level. -# -# The application class NXspm is designed as a skeleton and contains common technical concepts -# for specific SPM sub-techniques such as STM, STS, AFM etc. -# -# -# -# -# Name of the definition that is used for the application. -# -# -# -# -# -# -# -# The technique of the experiment like STM, STS, AFM, etc. -# -# -# -# -# -# -# -# -# -# The mode of the scan. The possible options depend on the type of experiment. -# For example, in STM, the scan mode could be constant height or constant current, -# in AFM, the scan mode could be contact mode, tapping mode or non-contact mode. -# -# -# -# -# The type of the scan. It mainly describes how scan probe moves in the scan region, e.g. -# forward, backward, or both (if scan is repeated). -# -# -# -# -# The identifiers for the experiment which should be unique at least in lab. -# -# -# -# -# The description of the experiment like comments, ontes from from the experiment. -# -# -# -# -# The instrument information. -# -# -# -# The hardware description of the core instrument setup of the experiment. -# Usually, the entire instrument is supplied by a single manufacturer. -# To describe the hardware from any sub-components, use the hardware group of that -# sub-component (child group of the NXinstrument group) group. -# -# -# -# Company name of the manufacturer. -# -# -# -# -# Version or model of the hardware setup provided by the manufacturer. -# -# -# -# If different versions are possible, the value in this field should be made -# specific enough to resolve the version. -# -# -# -# -# -# -# The software description of the core instrument setup of the experiment. -# Usually, the entire instrument is supplied by a single name/manufacturer/model/etc. -# To describe the software from any sub-components, use the software group of that component. -# -# -# -# Company name of the manufacturer. -# -# -# -# -# Version or model of the component named by the manufacturer. -# -# -# -# If different versions are possible, the value in this field should be made -# specific enough to resolve the version. -# -# -# -# -# -# -# The real-time controller information. -# -# -# -# The frequency of the real-time controller system which indicated the number of close-loop process -# (gathering data, process data and update system) control cycles per second. -# -# -# -# -# -# The lock-in amplifier information. -# -# -# -# -# Information of the scan environment. -# -# -# -# Temperature of STM head. Note: At least one field from tip_temp, -# cryo_bottom_temp and cryo_shield_temp must be provided. -# -# -# -# -# Temperature of the cold tail of the cryostat. Note: At least one field from -# tip_temp, cryo_bottom_temp and cryo_shield_temp must be provided. -# -# -# -# -# Temperature of liquid nitrogen shield. Note: At -# least one field from tip_temp, cryo_bottom_temp and cryo_shield_temp. -# -# -# -# -# The name of the scan, mainly lab defined, that helps to differentiate among different -# scans performed in the lab. -# -# -# -# -# This is a link to the current_sensor under the instrument group: -# entry/experiment_instrument/current_sensor. -# -# -# -# -# This is a link to the voltage_sensor under the instrument group: -# entry/experiment_instrument/voltage_sensor. -# -# -# -# -# This is a link to the piezo_sensor under the instrument group: -# entry/experiment_instrument/piezo_sensor. -# -# -# -# -# The scan control information like scan region or phase space, type of scan (e.g. -# mesh, spiral, etc.), and scan speed, etc. This group mainly stores the raw scan -# data. For processed data or final experimental data would go to NXdata group. -# -# -# -# The name of the scan, mainly lab defined, that helps to differentiate among different -# scans performed in lab. This field is intended for several types of scan control -# run under the same environment. -# -# -# -# -# -# -# Information for current sensor. -# -# -# -# An amplifier information for the input signal (e.g. from tip). -# -# -# -# -# -# The sensor information for the voltage device. -# -# -# -# -# -# The piezo sensor refers to the height (or Z) piezo sensor if nothing is -# mentioned along the X and Y directions. -# -# -# -# The x position of the piezo. In STS experiment, the piezo stays fixed at -# x,y and z and the the tunneling current is measured with respect to the -# bias voltage (sweep voltage). -# -# -# -# -# The y position of the piezo. -# -# -# -# -# The z position of the piezo. -# -# -# -# -# The piezo configuration information like piezoelectric calibration and material -# properties. -# -# -# -# Calibration of the piezo device. -# -# -# -# -# -# The positioner information like the position of the tip, the position of the -# sample, PID loop feedback etc. -# -# -# -# The PID controller information for the z-axis. -# -# -# -# To indicate the relative tip position z between tip and sample. The tip position -# can also be varied when the z_controller is not running. -# -# -# -# -# Status if controller is active. -# -# -# -# -# -# -# The material description and properties of the piezoelectric scanner materials. -# -# -# -# -# -# A group handling the temperature such as cryo, shield and tip. For different -# type of temperature sensors repeat this group. -# -# -# -# The temperature of the sample. -# -# -# -# -# The name of the channel to measure the temperature. -# -# -# -# -# Calibration of the temperature measurement. -# -# -# -# The coefficients of the calibration. -# -# -# -# -# -# Data (e.g, record from SPM head temperature) from temperature sensor. -# -# -# -# -# -# To explain bias (sweep measurement) voltage applied to the sample. -# -# -# -# Setup and scan data for continuous measurement of bias-voltage on the subject of experiment -# vs tunneling current from probe. -# -# -# -# The positioner information like the position of the tip, PID loop feedback etc. -# -# -# -# The PID controller information for the z-axis. -# -# -# -# The average time taken by the z-controller to stabilize the tip. -# -# -# -# -# The time taken by the z-controller to measure physical properties. -# -# -# -# -# The status of the controller to be held on the previous position, before going to the -# next scan point or line to measure the physical properties. -# -# -# -# -# The status of the controller to record the final z position after the scan. -# -# -# -# -# -# -# The bais voltage sweep is a common technique used on the substance or sample or environment -# to study the change in the behavior of the sample or substance or environment due to change -# in applied bias voltage. -# -# -# -# The time is taken to settle the bias voltage at the desired value. On each sweep usually, the system -# takes time to settle the bias voltage at the next value. -# -# -# -# -# The scan region (phase space or sub-phase space) is the region where the scan is -# performed. -# -# -# -# The offset of the bias voltage for bias sweep. -# -# -# -# -# The range of the scan is the length of the bias voltage over which the sweep -# scan will be performed. -# -# -# -# -# The start of the bias scan voltage. -# -# -# -# -# The end of the bias scan voltage. -# -# -# -# -# -# The linear sweep is a type of scan where the bias voltage is swept -# linearly from the starting voltage to the ending voltage. -# -# -# -# The number of voltage points the sweep scan to be performed. -# -# -# -# -# The step size of the sweep. -# The step size is the difference between the two consecutive bias voltage during the sweep. -# -# -# -# -# The reset_bias is used to reset the bias voltage to the starting value after a -# sweep is completed. -# -# -# -# -# -# -# -# -# The DC bias voltage that is applied to the sample. -# -# -# -# The bias voltage (DC) applied to the sample. -# -# -# -# -# Offset value of the bias voltage. -# -# -# -# -# Calibration of the bias voltage measurement (V/V). -# -# -# -# The time or period is taken by the calibration to setup to acquire the data for -# the calibration. -# -# -# -# -# The coefficients of the calibration. -# -# -# -# -# -# -# -# The sample information. -# -# -# -# Information of environment around the sample. -# -# -# -# Link to the sample_bias_voltage sensor under the instrument. -# -# -# -# -# -# -# The group of indicators (links to the existing fields in different groups) that measure -# the reproducibility of the experiment. -# -# -# -# -# The group of indicators (links to the existing fields in different groups) that -# are used to measure the resolution of the experiment results. -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXstm.yaml b/contributed_definitions/nyaml/SPM/NXstm.yaml deleted file mode 100644 index 731fac12a..000000000 --- a/contributed_definitions/nyaml/SPM/NXstm.yaml +++ /dev/null @@ -1,781 +0,0 @@ -category: application -doc: | - An application definition to describe Scanning Tunneling Microscopy (STM). - -# https://thesis.library.caltech.edu/1943/4/03chapter3.pdf -# TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and NXafm -type: group -NXstm(NXspm): - (NXentry): - definition: - doc: | - Name of the definition that is used for the application. - enumeration: [NXstm] - scan_mode: - doc: | - The mode of the scan that is performed. Two commonly used ones are constant - height mode and constant current mode. - enumeration: [constant height, constant current] - experiment_instrument(NXinstrument): - doc: | - The group explains the instrumentation of the STM experiment such - as current sensor, lock-in amplifier etc. - lockin_amplifier(NXlockin): - doc: | - The lock-in amplifier information. The device is being used to extract - the very weak signal buried in noisy signals. - modulation_signal_type: - exists: optional - unit: NX_UNITLESS - doc: | - The type of the signal (voltage or current) subject fo modulation. - modulation_frequency(NX_NUMBER): - exists: optional - doc: | - The frequency of the sine modulation that is used to modulate the signal in - lock-in. - scan_environment(NXenvironment): - doc: | - The environment information for stm or sts experiment. - (NXscan_control): - doc: | - The scan control information like scan region or phase space, type of scan - (e.g. mesh, spiral, etc.), and scan speed, etc. - scan_type: - doc: | - The type of scan like mesh, spiral, etc. For STS experiment, the scan type is - usually a single-point scan (trajectory scan). - enumeration: [mesh, trajectory, snake, spiral] - scan_region(NXobject): - doc: | - The region of the scan area. - scan_range(NX_NUMBER): - unit: NX_ANY - doc: | - The range of the scan area. - scan_offset(NX_NUMBER): - unit: NX_ANY - doc: | - The offset of the scan area in 2D (X and Y) space. - scan_angle_N(NX_NUMBER): - exists: optional - unit: NX_ANGLE - doc: | - The N (substring) denotes the angle of the scan area with different physical - axes. - mesh_SCAN(NXobject): - doc: | - The scan information for mesh scan type for STM experiment. - scan_speed(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The speed of the scanner or the tip during the scan. - scan_time(NX_DATE_TIME): - exists: optional - unit: NX_TIME - doc: | - The time taken by the scanner to scan the entire area. - forward_speed_N(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The N (substring) denotes the forward speed of the scanner. - backward_speed_N(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The N (substring) denotes the backward speed of the scanner. - SCAN_DATA(NXdata): - doc: | - The data that comes from scanning the area. - tip_temperature(NXsensor): - exists: optional - doc: | - This group stands for the same concept as - /ENTRY[entry]/experiment_instrument/tip_temperature - cryo_temperature(NXsensor): - exists: optional - doc: | - This group stands for the same concept as - /ENTRY[entry]/experiment_instrument/cryo_temperature - cryo_shield_temperature(NXsensor): - exists: optional - doc: | - This group stands for the same concept as - /ENTRY[entry]/experiment_instrument/cryo_shield_temperature - tip_temperature(NXsensor): - exists: optional - doc: | - The temperature of the tip one of the tip. - cryo_temperature(NXsensor): - exists: optional - doc: | - The temperature of the cryostat. - cryo_shield_temperature(NXsensor): - exists: optional - doc: | - The temperature of the cryo shield. - current_sensor(NXsensor): - doc: | - The sensor information. - current(NX_NUMBER): - unit: NX_CURRENT - doc: | - The tunneling current between tip and sample after - applying bias voltage. - current_offset(NX_NUMBER): - exists: optional - unit: NX_CURRENT - doc: | - Offset value of the current measurement. - current_calibration(NXcalibration): - exists: optional - doc: | - Calibration of the current measurement. - caliberation_time(NX_DATE_TIME): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by the calibration to setup to acquire the data for - the calibration. - coefficients(NX_NUMBER): - unit: NX_ANY - doc: | - The coefficients of the calibration. - (NXamplifier): - exists: optional - doc: | - An amplifier information for the input signal (e.g. from tip). - current_gain(NX_NUMBER): - unit: NX_UNITLESS - doc: | - Proportional relationship between the probe output voltage and the actual - tunneling current when measuring the tunneling current. - bias_spectroscopy_environment(NXenvironment): - exists: optional - doc: | - To explain bias (sweep measurement) voltage applied to the sample. - (NXbias_spectroscopy): - exists: optional - doc: | - Setup and scan data for continuous measurement of bias-voltage on the subject of experiment - vs tunneling current from probe. - Data from from this experiment can also be used to calculate the dI/dV spectra. - piezo_sensor(NXsensor): - doc: | - The sensor information for the piezo device. - x(NX_NUMBER): - unit: NX_LENGTH - doc: | - The x position of the piezo. In STS experiment or at the starting, - the piezo stays fixed at x,y and z and the the tunneling current - is measured with respect to the bias voltage (sweep voltage). - y(NX_NUMBER): - unit: NX_LENGTH - doc: | - The y position of the piezo. - z(NX_NUMBER): - unit: NX_LENGTH - doc: | - The z position of the piezo. - piezo_configuration(NXpiezo_config_spm): - exists: optional - doc: | - The piezo configuration information like piezoelectric device calibration and - material properties. - calibration(NXcalibration): - exists: optional - doc: | - Calibration of the piezo device. - 2nd_order_corr_N(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The N (substring) denotes X and Y directions. The 2nd order piezo - compensate the error for that axis. The following equation shows the - interpretation of the 2nd order correction parameters, - For the X-piezo: "Ux = 1/cx · X + cxx · X2" - with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" - where cx is the calibration of the piezo X and cxx is the 2nd order - correction. The unit for such the second-order correction is (V/m^2). - calibration_type(NX_CHAR): - exists: optional - doc: | - The name of the calibration type, sometimes it is called - e.g active calibration, passive calibration. - calibration_coeffecient_N(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The calibration coefficient is the ratio of the actual distance moved by the piezo to - the voltage applied to the piezo. It is also called first-order correction. - drift_N(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - Set up the settings to enable or disable the drift compensation. - drift_correction_status(NX_BOOLEAN): - exists: optional - doc: | - Whether the drift has been corrected in case there is a deviation in the - drift. - tilt_N(NX_NUMBER): - exists: optional - unit: NX_ANGLE - doc: | - The N (substring) denotes X and Y directions, and for both directions - tilt needs to be adjusted according to the actual surface. - hv_gain_N(NX_NUMBER): - doc: | - The N (substring) denotes X or Y or Z. In some systems, - there is an HV gain readout feature. For these systems, - the HV gain should be automatically adjusted whenever - the gain is changed at the high voltage amplifier. - (NXpositioner_spm): - doc: | - The positioner information like the position of the tip, - PID loop feedback etc. - z_controller(NXpid): - doc: | - The PID controller information for the z-axis. - z(NX_NUMBER): - doc: | - To indicate the relative tip position z between tip and sample. The tip position - can also be varied when the z_controller is not running. - set_point(NX_NUMBER): - unit: NX_ANY - doc: | - The set point for the z-controller to be fixed and the target value could be - height or current. - controller_name: - exists: recommended - doc: | - The name of the controller or channels. - controller_status(NX_BOOLEAN): - exists: recommended - doc: | - The status of the controller to say was PID has been used or not. - tip_lift(NX_NUMBER): - exists: optional - unit: NX_LENGTH - doc: | - If the tip is lifted from the stable point. - switch_off_delay: - exists: optional - unit: NX_TIME - doc: | - The switch-off delay of the controller from its stable point. - reproducibility_indicators(NXobject): - doc: | - The group's concepts hold the link to the related concepts that define the - reproducibility of the STM experiment. - current(NX_NUMBER): - exists: optional - doc: | - The tunneling current between tip and sample after application of bias voltage. - link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current - current_offset(NX_NUMBER): - exists: optional - doc: | - The tunneling current between tip and sample after application of bias voltage. - link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current - current_gain(NX_NUMBER): - exists: optional - doc: | - Proportional relationship between the probe output voltage and the actual - tunneling current when measuring the tunneling current. - link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/amplifier/current_gain - bias_sweep(NXobject): - exists: optional - doc: | - Link to target: - /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] - modulation_signal_type: - exists: optional - doc: | - This is the signal on which the modulation voltage or current will be added. - link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type - modulation_frequency(NX_NUMBER): - exists: optional - doc: | - The frequency of the sine modulation that is used to modulate the signal in lock-in. - link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency - resolution_indicators(NXobject): - doc: | - The group's concepts hold the link to the related concepts that define the - resolution of the STM experiment. - stm_head_temp(NXsensor): - doc: | - Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp - cryo_bottom_temp(NXsensor): - doc: | - Link to target: - /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp - cryo_shield_temp(NXsensor): - doc: | - Link to target: - /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature - bias_sweep(NXobject): - doc: | - Link to target: - /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] - modulation_signal_type: - exists: optional - doc: | - This is the signal on which the modulation voltage or current will be added. - link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type - modulation_signal_type - modulation_frequency(NX_NUMBER): - exists: optional - doc: | - The frequency of the sine modulation that is used to modulate the signal in lock-in. - link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 68d72cee8a84105446de60c7d529ee1b2a161da9219415301f540ae7dee69cfe -# -# -# -# -# -# -# An application definition to describe Scanning Tunneling Microscopy (STM). -# -# -# -# -# Name of the definition that is used for the application. -# -# -# -# -# -# -# -# The mode of the scan that is performed. Two commonly used ones are constant -# height mode and constant current mode. -# -# -# -# -# -# -# -# -# The group explains the instrumentation of the STM experiment such -# as current sensor, lock-in amplifier etc. -# -# -# -# The lock-in amplifier information. The device is being used to extract -# the very weak signal buried in noisy signals. -# -# -# -# The type of the signal (voltage or current) subject fo modulation. -# -# -# -# -# The frequency of the sine modulation that is used to modulate the signal in -# lock-in. -# -# -# -# -# -# The environment information for stm or sts experiment. -# -# -# -# The scan control information like scan region or phase space, type of scan -# (e.g. mesh, spiral, etc.), and scan speed, etc. -# -# -# -# The type of scan like mesh, spiral, etc. For STS experiment, the scan type is -# usually a single-point scan (trajectory scan). -# -# -# -# -# -# -# -# -# -# -# The region of the scan area. -# -# -# -# The range of the scan area. -# -# -# -# -# The offset of the scan area in 2D (X and Y) space. -# -# -# -# -# The N (substring) denotes the angle of the scan area with different physical -# axes. -# -# -# -# -# -# The scan information for mesh scan type for STM experiment. -# -# -# -# The speed of the scanner or the tip during the scan. -# -# -# -# -# The time taken by the scanner to scan the entire area. -# -# -# -# -# The N (substring) denotes the forward speed of the scanner. -# -# -# -# -# The N (substring) denotes the backward speed of the scanner. -# -# -# -# -# The data that comes from scanning the area. -# -# -# -# -# -# -# This group stands for the same concept as -# /ENTRY[entry]/experiment_instrument/tip_temperature -# -# -# -# -# This group stands for the same concept as -# /ENTRY[entry]/experiment_instrument/cryo_temperature -# -# -# -# -# This group stands for the same concept as -# /ENTRY[entry]/experiment_instrument/cryo_shield_temperature -# -# -# -# -# -# The temperature of the tip one of the tip. -# -# -# -# -# The temperature of the cryostat. -# -# -# -# -# The temperature of the cryo shield. -# -# -# -# -# The sensor information. -# -# -# -# The tunneling current between tip and sample after -# applying bias voltage. -# -# -# -# -# Offset value of the current measurement. -# -# -# -# -# Calibration of the current measurement. -# -# -# -# The time or period is taken by the calibration to setup to acquire the data for -# the calibration. -# -# -# -# -# The coefficients of the calibration. -# -# -# -# -# -# An amplifier information for the input signal (e.g. from tip). -# -# -# -# Proportional relationship between the probe output voltage and the actual -# tunneling current when measuring the tunneling current. -# -# -# -# -# -# -# To explain bias (sweep measurement) voltage applied to the sample. -# -# -# -# Setup and scan data for continuous measurement of bias-voltage on the subject of experiment -# vs tunneling current from probe. -# Data from from this experiment can also be used to calculate the dI/dV spectra. -# -# -# -# -# -# The sensor information for the piezo device. -# -# -# -# The x position of the piezo. In STS experiment or at the starting, -# the piezo stays fixed at x,y and z and the the tunneling current -# is measured with respect to the bias voltage (sweep voltage). -# -# -# -# -# The y position of the piezo. -# -# -# -# -# The z position of the piezo. -# -# -# -# -# The piezo configuration information like piezoelectric device calibration and -# material properties. -# -# -# -# Calibration of the piezo device. -# -# -# -# The N (substring) denotes X and Y directions. The 2nd order piezo -# compensate the error for that axis. The following equation shows the -# interpretation of the 2nd order correction parameters, -# For the X-piezo: "Ux = 1/cx · X + cxx · X2" -# with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" -# where cx is the calibration of the piezo X and cxx is the 2nd order -# correction. The unit for such the second-order correction is (V/m^2). -# -# -# -# -# The name of the calibration type, sometimes it is called -# e.g active calibration, passive calibration. -# -# -# -# -# The calibration coefficient is the ratio of the actual distance moved by the piezo to -# the voltage applied to the piezo. It is also called first-order correction. -# -# -# -# -# Set up the settings to enable or disable the drift compensation. -# -# -# -# -# Whether the drift has been corrected in case there is a deviation in the -# drift. -# -# -# -# -# The N (substring) denotes X and Y directions, and for both directions -# tilt needs to be adjusted according to the actual surface. -# -# -# -# -# The N (substring) denotes X or Y or Z. In some systems, -# there is an HV gain readout feature. For these systems, -# the HV gain should be automatically adjusted whenever -# the gain is changed at the high voltage amplifier. -# -# -# -# -# -# -# The positioner information like the position of the tip, -# PID loop feedback etc. -# -# -# -# The PID controller information for the z-axis. -# -# -# -# To indicate the relative tip position z between tip and sample. The tip position -# can also be varied when the z_controller is not running. -# -# -# -# -# The set point for the z-controller to be fixed and the target value could be -# height or current. -# -# -# -# -# The name of the controller or channels. -# -# -# -# -# The status of the controller to say was PID has been used or not. -# -# -# -# -# If the tip is lifted from the stable point. -# -# -# -# -# The switch-off delay of the controller from its stable point. -# -# -# -# -# -# -# -# -# The group's concepts hold the link to the related concepts that define the -# reproducibility of the STM experiment. -# -# -# -# The tunneling current between tip and sample after application of bias voltage. -# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current -# -# -# -# -# The tunneling current between tip and sample after application of bias voltage. -# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current -# -# -# -# -# Proportional relationship between the probe output voltage and the actual -# tunneling current when measuring the tunneling current. -# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/amplifier/current_gain -# -# -# -# -# Link to target: -# /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] -# -# -# -# -# This is the signal on which the modulation voltage or current will be added. -# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type -# -# -# -# -# The frequency of the sine modulation that is used to modulate the signal in lock-in. -# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency -# -# -# -# -# -# The group's concepts hold the link to the related concepts that define the -# resolution of the STM experiment. -# -# -# -# Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp -# -# -# -# -# Link to target: -# /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp -# -# -# -# -# Link to target: -# /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature -# -# -# -# -# Link to target: -# /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] -# -# -# -# -# This is the signal on which the modulation voltage or current will be added. -# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type -# modulation_signal_type -# -# -# -# -# The frequency of the sine modulation that is used to modulate the signal in lock-in. -# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency -# -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXsts.yaml b/contributed_definitions/nyaml/SPM/NXsts.yaml deleted file mode 100644 index 7c6cafadc..000000000 --- a/contributed_definitions/nyaml/SPM/NXsts.yaml +++ /dev/null @@ -1,63 +0,0 @@ -category: application -doc: | - An application definition to describe Scanning Tunneling Spectroscopy (STS). - - The NXsts is duplication of NXspm and is considered as a proxy application definition - for Scanning Tunneling Spectroscopy (STS) technique. - -# https://thesis.library.caltech.edu/1943/4/03chapter3.pdf -# TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and NXafm -type: group -NXsts(NXspm): - (NXentry): - definition: - doc: | - Name of the definition that is used for the application. - enumeration: [NXsts] - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 3c249fd275af32b4b2747ed7356a3175a5edca21b88516b1662e38723d33d052 -# -# -# -# -# -# -# An application definition to describe Scanning Tunneling Spectroscopy (STS). -# -# The NXsts is duplication of NXspm and is considered as a proxy application definition -# for Scanning Tunneling Spectroscopy (STS) technique. -# -# -# -# -# Name of the definition that is used for the application. -# -# -# -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/README.md b/contributed_definitions/nyaml/SPM/README.md deleted file mode 100644 index 12bdb985c..000000000 --- a/contributed_definitions/nyaml/SPM/README.md +++ /dev/null @@ -1,82 +0,0 @@ -# Application Definition for SPM Domain - -# General SPM Base Class - - - id1 - id1 --> id2 - id1 --> id3 - id1 --> id4 - id1 --> id5 - id1 --> id6 - - id2 --> id13 - id2 --> id14 - id2 --> id16 - - id13 --> id21 - id13 --> id22 - id13 --> id23 - id13 --> id24 - -``` - -## STM App Def -```mermaid -graph TD; - subgraph STM - %%hh%% - id1["NXstm(NXspm)"] - id2["ENTRY"] - end - subgraph NXinstrument - id6["(NXinstrument)"] - end - - subgraph NXenvironment - %%hh%% - id12["sweep_control"] - end - - - id1 --> id2 - - id2 --> id6 - id6 --> id12 - -``` ---> - -## Revised App Def and Base Class for SPM Domain -1. SPM, STM, AFM, STS -2. Lockin, Bias_spectorscopy, Bias_sweep, Scan_control, Positioner_spm, -3. piezoelectric_material, piezo_config_spm, rcs, cantilever_spm - diff --git a/contributed_definitions/nyaml/SPM/nyaml2nxdl.sh b/contributed_definitions/nyaml/SPM/nyaml2nxdl.sh deleted file mode 100644 index 6701c8510..000000000 --- a/contributed_definitions/nyaml/SPM/nyaml2nxdl.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - - -#Starting line of a bash script - -set -e -for file in *; do - if [[ $file == *.yaml ]]; then - echo "Converting $file to NXDL" - nyaml2nxdl $file - fi -done - - -for file in *; do - if [[ $file == *.nxdl.xml ]]; then - echo "Converting $file to NYAML" - nyaml2nxdl $file - mv $file ../../ - fi -done - -for file in *; do - if [[ $file == *_parsed.yaml ]]; then - mv $file $(echo $file | sed 's/_parsed//') - fi -done - -for file in *; do - if [[ $file == *.yaml ]]; then - cp $file ../ - fi -done - -rm ../../NXbias_spectroscopy_old.nxdl.xml -rm ../../NXspm_v1_backup.nxdl.xml -rm ../NXbias_spectroscopy_old.yaml -rm ../NXspm_v1_backup.yaml - From f57eee9c0727ac01062064cde15972d019483a7f Mon Sep 17 00:00:00 2001 From: Rubel Date: Thu, 5 Dec 2024 17:37:27 +0100 Subject: [PATCH 3/8] Remove SPM folder. Revert "Remove SPM folder." This reverts commit 3aeb39ea06ba940bd45067c32cb1c30a569a691c. PR review from Lukas! Delete unnecessary files. Revert "Delete unnecessary files." This reverts commit 317a36791a5b0e96507d468138a566cefc525de7. Include the default key attribute on entry and include NXhistory under the NXsample for verbose purpose. --- contributed_definitions/NXafm.nxdl.xml | 4 +- .../NXbias_spectroscopy.nxdl.xml | 2 +- contributed_definitions/NXbias_sweep.nxdl.xml | 2 +- .../NXcalibration.nxdl.xml | 5 - contributed_definitions/NXcircuit.nxdl.xml | 16 +- contributed_definitions/NXlockin.nxdl.xml | 5 +- .../NXpiezo_config_spm.nxdl.xml | 6 +- .../NXpositioner_sts.nxdl.xml | 2 +- .../NXscan_control.nxdl.xml | 16 +- contributed_definitions/NXspm.nxdl.xml | 18 + contributed_definitions/NXstm.nxdl.xml | 22 +- contributed_definitions/nyaml/NXafm.yaml | 10 +- .../nyaml/NXbias_spectroscopy.yaml | 6 +- .../nyaml/NXbias_sweep.yaml | 6 +- .../nyaml/NXcalibration.yaml | 10 +- contributed_definitions/nyaml/NXcircuit.yaml | 26 +- contributed_definitions/nyaml/NXlockin.yaml | 8 +- .../nyaml/NXpiezo_config_spm.yaml | 14 +- .../nyaml/NXscan_control.yaml | 30 +- .../nyaml/NXsensor_scan.yaml | 4 +- contributed_definitions/nyaml/NXspm.yaml | 34 +- contributed_definitions/nyaml/NXstm.yaml | 44 +- contributed_definitions/nyaml/SPM/NXafm.yaml | 254 ++++ .../nyaml/SPM/NXbias_spectroscopy.yaml | 306 +++++ .../nyaml/SPM/NXbias_sweep.yaml | 149 +++ .../nyaml/SPM/NXcalibration.yaml | 419 +++++++ .../nyaml/SPM/NXcantilever_spm.yaml | 235 ++++ .../nyaml/SPM/NXcircuit.yaml | 235 ++++ .../nyaml/SPM/NXlockin.yaml | 307 +++++ .../nyaml/SPM/NXpiezo_config_spm.yaml | 192 +++ .../nyaml/SPM/NXpiezoelectric_material.yaml | 191 +++ .../nyaml/SPM/NXpositioner_spm.yaml | 94 ++ contributed_definitions/nyaml/SPM/NXrcs.yaml | 101 ++ .../nyaml/SPM/NXscan_control.yaml | 1064 +++++++++++++++++ .../nyaml/SPM/NXsensor_scan.yaml | 374 ++++++ contributed_definitions/nyaml/SPM/NXspm.yaml | 864 +++++++++++++ contributed_definitions/nyaml/SPM/NXstm.yaml | 781 ++++++++++++ contributed_definitions/nyaml/SPM/NXsts.yaml | 63 + contributed_definitions/nyaml/SPM/README.md | 82 ++ .../nyaml/SPM/nyaml2nxdl.sh | 39 + 40 files changed, 5913 insertions(+), 127 deletions(-) create mode 100644 contributed_definitions/nyaml/SPM/NXafm.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXbias_sweep.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXcalibration.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXcantilever_spm.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXcircuit.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXlockin.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXrcs.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXscan_control.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXsensor_scan.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXspm.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXstm.yaml create mode 100644 contributed_definitions/nyaml/SPM/NXsts.yaml create mode 100644 contributed_definitions/nyaml/SPM/README.md create mode 100644 contributed_definitions/nyaml/SPM/nyaml2nxdl.sh diff --git a/contributed_definitions/NXafm.nxdl.xml b/contributed_definitions/NXafm.nxdl.xml index 8ed4c4fb3..2df73e8cc 100644 --- a/contributed_definitions/NXafm.nxdl.xml +++ b/contributed_definitions/NXafm.nxdl.xml @@ -96,7 +96,7 @@ Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. - + Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. @@ -146,7 +146,7 @@ - + The temperature of the scan environment or tip of the cantilever. diff --git a/contributed_definitions/NXbias_spectroscopy.nxdl.xml b/contributed_definitions/NXbias_spectroscopy.nxdl.xml index b1094607a..ab7c6ddd5 100644 --- a/contributed_definitions/NXbias_spectroscopy.nxdl.xml +++ b/contributed_definitions/NXbias_spectroscopy.nxdl.xml @@ -168,7 +168,7 @@ Speed of the scanner or the probe that moves backward direction. - + The data that comes from scanning the area. diff --git a/contributed_definitions/NXbias_sweep.nxdl.xml b/contributed_definitions/NXbias_sweep.nxdl.xml index b47a51183..625886c5f 100644 --- a/contributed_definitions/NXbias_sweep.nxdl.xml +++ b/contributed_definitions/NXbias_sweep.nxdl.xml @@ -82,7 +82,7 @@ value after the sweep is completed. - + The scan data is the data collected during the scan. If the scan has several channels or derivatives from the channel data, diff --git a/contributed_definitions/NXcalibration.nxdl.xml b/contributed_definitions/NXcalibration.nxdl.xml index 43aa73cb4..a0284e350 100644 --- a/contributed_definitions/NXcalibration.nxdl.xml +++ b/contributed_definitions/NXcalibration.nxdl.xml @@ -89,11 +89,6 @@ A digital persistent identifier (e.g., DOI, ISO standard) referring to a detailed description of a calibration method but no actual calibration data. - - - The type of calibration. - - diff --git a/contributed_definitions/NXcircuit.nxdl.xml b/contributed_definitions/NXcircuit.nxdl.xml index 0d91dc98c..5213107fb 100644 --- a/contributed_definitions/NXcircuit.nxdl.xml +++ b/contributed_definitions/NXcircuit.nxdl.xml @@ -25,9 +25,15 @@ Application definition for circuit devices. + + + Hardware where the circuit is implanted; includes hardware manufacturers and + type + + - List of components used in the circuit, e.g., resistors, capacitors, transistors or any + List of components used in the circuit, e.g., resistors, capacitors, transistors or any other complex components. @@ -66,7 +72,7 @@ - Gain of the circuit, if applicable, usually all instruments have a gain which might be + Gain of the circuit, if applicable, usually all instruments have a gain which might be important or not. @@ -122,12 +128,6 @@ thermal shutdown. - - - Hardware where the circuit is implanted; includes hardware manufacturers and - type - - Updated rate for several processes using the input signal, e.g., History Graph, the circuit diff --git a/contributed_definitions/NXlockin.nxdl.xml b/contributed_definitions/NXlockin.nxdl.xml index 72f23b11d..2941aee35 100644 --- a/contributed_definitions/NXlockin.nxdl.xml +++ b/contributed_definitions/NXlockin.nxdl.xml @@ -24,6 +24,7 @@ A base class definition for a lock-in amplifier. + The lock-in amplifier information: the device is being used to extract a (potentially) very weak input signal buried in the noisy background, where the input signal has the same frequency (or its harmonic) as a known reference signal. Additionally, @@ -60,8 +61,8 @@ The number that defines the sign of the lock-in current. The calibration procedure - with retracted tip is normally performed to compensate for the signal phase delay - in SPM. The procedure yields two possible solutions, this number should be equal + with retracted tip is normally performed to compensate for the signal phase delay + in SPM. The procedure yields two possible solutions, this number should be equal to 1 or -1 depending on which solution is chosen. diff --git a/contributed_definitions/NXpiezo_config_spm.nxdl.xml b/contributed_definitions/NXpiezo_config_spm.nxdl.xml index 84e730002..dee9b34cf 100644 --- a/contributed_definitions/NXpiezo_config_spm.nxdl.xml +++ b/contributed_definitions/NXpiezo_config_spm.nxdl.xml @@ -57,7 +57,7 @@ Discussion: No need to create this base class rather we can define in spm applic A specific name of the calibration (e.g. active type with name 'LHe'). - + The date of the calibration. @@ -83,7 +83,7 @@ Discussion: No need to create this base class rather we can define in spm applic is the maximum distance the piezo can move. - + The calibration coefficient is the ratio of the actual distance moved by the piezo due to the voltage applied to the piezo. It is also called first-order correction. @@ -95,7 +95,7 @@ Discussion: No need to create this base class rather we can define in spm applic to the actual surface. - + The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo characteristics to compensate the error for that axis. diff --git a/contributed_definitions/NXpositioner_sts.nxdl.xml b/contributed_definitions/NXpositioner_sts.nxdl.xml index 7d13592b9..5af7c17a8 100644 --- a/contributed_definitions/NXpositioner_sts.nxdl.xml +++ b/contributed_definitions/NXpositioner_sts.nxdl.xml @@ -225,7 +225,7 @@ - The name of caliberation type. + The name of calibration type. diff --git a/contributed_definitions/NXscan_control.nxdl.xml b/contributed_definitions/NXscan_control.nxdl.xml index e08c09fe2..8ecd4a67e 100644 --- a/contributed_definitions/NXscan_control.nxdl.xml +++ b/contributed_definitions/NXscan_control.nxdl.xml @@ -22,9 +22,7 @@ # For further information, see http://www.nexusformat.org --> - + A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). @@ -114,7 +112,7 @@ Correction: region (use: phase space) The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough - to define the scan region. This field defines how the spatial space is oriented with respect to + to define the scan region. This field defines how the spatial space is oriented with respect to the frame of reference. Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). @@ -221,7 +219,7 @@ Correction: region (use: phase space) The number of oscillations on each scanning point per second. - + The scan data is the data collected during the scan. @@ -330,7 +328,7 @@ Correction: region (use: phase space) Number of oscillation on each scanning point per second. - + The scan data is the data collected during the scan. If the scan has several channels or derivatives from the channel data, please @@ -422,7 +420,7 @@ Correction: region (use: phase space) The number of oscillations on each scanning point per second. - + The scan data is the data collected during the scan. If the scan has several channels or derivatives from the channel data, please @@ -520,7 +518,7 @@ Correction: region (use: phase space) The number of oscillations on each scanning point per second. - + The scan data is the data collected during the scan. If the scan has several channels or derivatives from the channel data, please @@ -600,7 +598,7 @@ Correction: region (use: phase space) The number of oscillations on each scanning point per second. - + The scan data is the data collected during the scan. If the scan has several channels or derivatives from the channel data, please diff --git a/contributed_definitions/NXspm.nxdl.xml b/contributed_definitions/NXspm.nxdl.xml index e227c1011..0afdf28ab 100644 --- a/contributed_definitions/NXspm.nxdl.xml +++ b/contributed_definitions/NXspm.nxdl.xml @@ -30,6 +30,19 @@ for specific SPM sub-techniques such as STM, STS, AFM etc. + + + .. 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 visualised upon entry. + See https://www.nexusformat.org/2014_How_to_find_default_data.html + for a summary of the discussion. + + Name of the definition that is used for the application. @@ -448,6 +461,11 @@ The sample information. + + + A set of physical processes that occurred to the sample prior/during experiment. + + Information of environment around the sample. diff --git a/contributed_definitions/NXstm.nxdl.xml b/contributed_definitions/NXstm.nxdl.xml index 76d361980..741cfb042 100644 --- a/contributed_definitions/NXstm.nxdl.xml +++ b/contributed_definitions/NXstm.nxdl.xml @@ -39,7 +39,7 @@ TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and - The mode of the scan that is performed. Two commonly used ones are constant + The mode of the scan that is performed. Two commonly used ones are constant height mode and constant current mode. @@ -135,43 +135,43 @@ TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and The N (substring) denotes the backward speed of the scanner. - + The data that comes from scanning the area. - + This group stands for the same concept as /ENTRY[entry]/experiment_instrument/tip_temperature - + This group stands for the same concept as /ENTRY[entry]/experiment_instrument/cryo_temperature - + This group stands for the same concept as /ENTRY[entry]/experiment_instrument/cryo_shield_temperature - + The temperature of the tip one of the tip. - + The temperature of the cryostat. - + The temperature of the cryo shield. @@ -195,7 +195,7 @@ TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and Calibration of the current measurement. - + The time or period is taken by the calibration to setup to acquire the data for the calibration. @@ -261,7 +261,7 @@ TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and Calibration of the piezo device. - + The N (substring) denotes X and Y directions. The 2nd order piezo compensate the error for that axis. The following equation shows the @@ -278,7 +278,7 @@ TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and e.g active calibration, passive calibration. - + The calibration coefficient is the ratio of the actual distance moved by the piezo to the voltage applied to the piezo. It is also called first-order correction. diff --git a/contributed_definitions/nyaml/NXafm.yaml b/contributed_definitions/nyaml/NXafm.yaml index d1314dcf9..53f4bfe30 100644 --- a/contributed_definitions/nyaml/NXafm.yaml +++ b/contributed_definitions/nyaml/NXafm.yaml @@ -54,7 +54,7 @@ NXafm(NXspm): XY_piezo_sensor(NXsensor): doc: | Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. - tip_temperature(NXsensor): + tip_temp_sensor(NXsensor): doc: | Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. height_piezo_sensor(NXsensor): @@ -89,13 +89,13 @@ NXafm(NXspm): doc: | The positioner information like the position of the tip, the position of the sample, PID loop feedback etc. - tip_temperature(NXsensor): + tip_temp_sensor(NXsensor): exists: optional doc: | The temperature of the scan environment or tip of the cantilever. # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 9a15a1db7f7822d982716a9c177ce05e6afeb165692bf2ac13dbc98aad4809dd +# fa4fba4dbdb47b6b13313bb2987b9130506b025dac0b45aacd9d586f9e5aa137 # # # # -# +# # # A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). # @@ -569,7 +567,7 @@ NXscan_control(NXobject): # # # The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough -# to define the scan region. This field defines how the spatial space is oriented with respect to +# to define the scan region. This field defines how the spatial space is oriented with respect to # the frame of reference. # # Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). @@ -676,7 +674,7 @@ NXscan_control(NXobject): # The number of oscillations on each scanning point per second. # # -# +# # # # The scan data is the data collected during the scan. @@ -785,7 +783,7 @@ NXscan_control(NXobject): # Number of oscillation on each scanning point per second. # # -# +# # # The scan data is the data collected during the scan. # If the scan has several channels or derivatives from the channel data, please @@ -877,7 +875,7 @@ NXscan_control(NXobject): # The number of oscillations on each scanning point per second. # # -# +# # # The scan data is the data collected during the scan. # If the scan has several channels or derivatives from the channel data, please @@ -975,7 +973,7 @@ NXscan_control(NXobject): # The number of oscillations on each scanning point per second. # # -# +# # # The scan data is the data collected during the scan. # If the scan has several channels or derivatives from the channel data, please @@ -1055,7 +1053,7 @@ NXscan_control(NXobject): # The number of oscillations on each scanning point per second. # # -# +# # # The scan data is the data collected during the scan. # If the scan has several channels or derivatives from the channel data, please diff --git a/contributed_definitions/nyaml/NXsensor_scan.yaml b/contributed_definitions/nyaml/NXsensor_scan.yaml index bb6efecb4..4b9483663 100644 --- a/contributed_definitions/nyaml/NXsensor_scan.yaml +++ b/contributed_definitions/nyaml/NXsensor_scan.yaml @@ -117,7 +117,7 @@ NXsensor_scan(NXobject): values simply using the index of the scan point. dimensions: rank: 1 - dim: [[1, N_scanpoints]] + dim: (N_scanpoints,) value_timestamp(NX_DATE_TIME): exists: recommended doc: | @@ -154,7 +154,7 @@ NXsensor_scan(NXobject): Plot of every measured signal as a function of the timestamp of when they have been acquired is also possible. # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 7edd229236b260394837fc2f5fe7b849cc0738f4d0c2267bf07291a6cbb040f2 +# 96e814305ea805ca70b9363e9a117e9bcdc8566928d9bc6c2de8c66b78b03f0b # # # +# +# +# An application definition to describe Atomic Force Microscopy (AFM) scanning +# technique. +# +# +# +# +# Name of the definition that is used for the application. +# +# +# +# +# +# +# +# The mode of the scan. +# +# +# +# +# +# +# +# +# +# The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding +# instruments. +# +# +# +# The photo detector instrument information. +# +# +# +# +# The cantilever information. +# +# +# +# Generally speaking, the cantilever resembles a simple harmonic oscillator. +# When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. +# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. +# +# +# +# The threshold voltage for oscillator excitation. +# +# +# +# +# Phase locked loop for cantilever lock-in device. +# +# +# +# The reference amplitude (also called drive amplitude) of the cantilever. +# +# +# +# +# +# +# +# The environment information. +# +# +# +# Link to the group ENTRY[entry]/experiment_instrument/height_piezo_sensor. +# +# +# +# +# Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. +# +# +# +# +# Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. +# +# +# +# +# +# The sensor information for the height piezo device. +# +# +# +# The piezo configuration information like piezoelectric calibration and material +# properties. +# +# +# +# The material description and properties of the piezoelectric scanner materials. +# +# +# +# +# +# The positioner information like the position of the tip, the position of the +# sample, PID loop feedback etc. +# +# +# +# +# +# The sensor information for the xy piezo device. +# +# +# +# The piezo configuration information like piezoelectric calibration and material +# properties. +# +# +# +# The material description and properties of the piezoelectric scanner materials. +# +# +# +# +# +# The positioner information like the position of the tip, the position of the +# sample, PID loop feedback etc. +# +# +# +# +# +# The temperature of the scan environment or tip of the cantilever. +# +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml b/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml new file mode 100644 index 000000000..d16ab3d3a --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml @@ -0,0 +1,306 @@ +category: base +doc: | + A base class for bias spectroscopy to describe the change in the physical properties + of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. +type: group +NXbias_spectroscopy(NXobject): + measurement_type: + doc: | + The measurement of the I(V) curve can come in two ways: + 1. Constant Spacing: The bias voltage is swept from the start to the end with a constant + spacing between the tip and surface. + 2. Variadic Spacing: The bias voltage is swept from the start to the end in a discretized + spacing between the tip and surface. + enumeration: [constant_spacing, variadic_spacing] + (NXpositioner_spm): + doc: | + The pid positioner information while running bias voltage-tunneling current + measurement. + z_offset(NX_NUMBER): + unit: NX_LENGTH + doc: | + The z-offset is a starting tip position before the sweep starts. + (NXcircuit): + exists: optional + acquisition_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by a bias sweep to acquire the data for + a single bias sweep point. + animation_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by a bias sweep to be displayed. + measurement_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by the circuit to measure a full bias sweep voltage or + bias current. + indicators_period(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by the circuit to indicate the bias sweep voltage + after measuring the voltage. + (NXbias_sweep): + doc: | + The bias sweep information. + scan_type: + doc: | + The type of scan like mesh, spiral, etc. For STS experiment, the scan type is + usually a single-point scan (trajectory scan). + enumeration: [linear] + sweep_number(NX_NUMBER): + doc: | + The number of sweeps taken during the bias spectroscopy. + first_settling_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The initial time is taken to settle the bias voltage at the desired value. + On each sweep usually, the system takes time to settle to the bias voltage + at the next value. + end_settling_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time is taken to settle the bias voltage at the desired value. + The time (at the last sweep) to settle for the last value of the sweep. + max_slew_rate(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The rate at which the amplifier responds to the voltage change + (to reach at the desired value). It defines if the tip movement and + voltage sweep are synchronized. + final_z(NX_NUMBER): + exists: recommended + doc: | + The z position after the sweeps are done. + total_spectroscopy_time(NX_DATE_TIME): + exists: recommended + unit: NX_TIME + doc: | + The total time needed for the entire voltage sweep. + scan_region(NXobject): + doc: | + The region of the scan area. + scan_range(NX_NUMBER): + unit: NX_ANY + doc: | + The range of the scan area. + scan_offset(NX_NUMBER): + unit: NX_ANY + doc: | + The offset of the scan area in 2D (X and Y) space. + scan_angle_N(NX_NUMBER): + unit: NX_ANGLE + doc: | + The N (substring) denotes the angle of the scan area with different physical + axes. + linear_sweep(NXobject): + doc: | + The linear scan information for scanning of a smaple. + scan_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The speed of the scanner or the probe during the scan. + scan_time(NX_DATE_TIME): + unit: NX_TIME + doc: | + The time taken by the scanner to scan the entire area. + forward_speed_bias(NX_NUMBER): + unit: NX_ANY + doc: | + Speed of the scanner or the probe moves forward direction. + backward_speed_bias(NX_NUMBER): + unit: NX_ANY + doc: | + Speed of the scanner or the probe that moves backward direction. + SCAN_data(NXdata): + doc: | + The data that comes from scanning the area. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 5b57b4e955019fabedb0a7fe4fc70a0626dce64f58aa542d7ab6d4161d0a0bdd +# +# +# +# +# +# A base class for bias spectroscopy to describe the change in the physical properties +# of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. +# +# +# +# The measurement of the I(V) curve can come in two ways: +# 1. Constant Spacing: The bias voltage is swept from the start to the end with a constant +# spacing between the tip and surface. +# 2. Variadic Spacing: The bias voltage is swept from the start to the end in a discretized +# spacing between the tip and surface. +# +# +# +# +# +# +# +# +# The pid positioner information while running bias voltage-tunneling current +# measurement. +# +# +# +# The z-offset is a starting tip position before the sweep starts. +# +# +# +# +# +# +# The time or period is taken by a bias sweep to acquire the data for +# a single bias sweep point. +# +# +# +# +# The time or period is taken by a bias sweep to be displayed. +# +# +# +# +# The time or period is taken by the circuit to measure a full bias sweep voltage or +# bias current. +# +# +# +# +# The time or period is taken by the circuit to indicate the bias sweep voltage +# after measuring the voltage. +# +# +# +# +# +# The bias sweep information. +# +# +# +# The type of scan like mesh, spiral, etc. For STS experiment, the scan type is +# usually a single-point scan (trajectory scan). +# +# +# +# +# +# +# +# The number of sweeps taken during the bias spectroscopy. +# +# +# +# +# The initial time is taken to settle the bias voltage at the desired value. +# On each sweep usually, the system takes time to settle to the bias voltage +# at the next value. +# +# +# +# +# The time is taken to settle the bias voltage at the desired value. +# The time (at the last sweep) to settle for the last value of the sweep. +# +# +# +# +# The rate at which the amplifier responds to the voltage change +# (to reach at the desired value). It defines if the tip movement and +# voltage sweep are synchronized. +# +# +# +# +# The z position after the sweeps are done. +# +# +# +# +# The total time needed for the entire voltage sweep. +# +# +# +# +# The region of the scan area. +# +# +# +# The range of the scan area. +# +# +# +# +# The offset of the scan area in 2D (X and Y) space. +# +# +# +# +# The N (substring) denotes the angle of the scan area with different physical +# axes. +# +# +# +# +# +# The linear scan information for scanning of a smaple. +# +# +# +# The speed of the scanner or the probe during the scan. +# +# +# +# +# The time taken by the scanner to scan the entire area. +# +# +# +# +# Speed of the scanner or the probe moves forward direction. +# +# +# +# +# Speed of the scanner or the probe that moves backward direction. +# +# +# +# +# The data that comes from scanning the area. +# +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXbias_sweep.yaml b/contributed_definitions/nyaml/SPM/NXbias_sweep.yaml new file mode 100644 index 000000000..683cfb91c --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXbias_sweep.yaml @@ -0,0 +1,149 @@ +category: base +doc: | + A base class that defines how the bias voltage sweep is performed in the + scanning probe microscopy experiments. +type: group +NXbias_sweep(NXscan_control): + scan_region(NXobject): + doc: | + The scan region is the area of phase space or sub-phase space where the scan is + performed. + scan_offset_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The starting voltage of the bias sweep. The range of voltages for the sweep can + be defined with scan voltage offset and scan voltage range (difference between + minimum and maximum voltage values in a sweep) + scan_range_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The range of voltages for the sweep can be defined with scan voltage offset and + scan voltage range (difference between minimum and maximum voltage values in a + sweep) + scan_start_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The start of the bias scan voltage. + scan_end_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The end value of the bias scan voltage. + linear_sweep(NXobject): + doc: | + In the linear sweep, the bias voltage is changed linearly from the start value + to the end value. + backward_sweep(NX_BOOLEAN): + doc: | + If the bias voltage sweep is also performed in the opposite direction. + scan_points_bias(NX_NUMBER): + doc: | + The number of voltage points per sweep. + step_size_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The step size between the two consecutive bias voltage values during the sweep. + reset_bias(NX_BOOLEAN): + doc: | + The reset_bias defines whether the bias voltage should be reset to the starting + value after the sweep is completed. + SCAN_data(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, + please duplicate this NXdata group for each. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 63c8e627522926180b6b1a3bb3699f0c7f94d6f86a2335d5f38add044dd2190c +# +# +# +# +# +# A base class that defines how the bias voltage sweep is performed in the +# scanning probe microscopy experiments. +# +# +# +# The scan region is the area of phase space or sub-phase space where the scan is +# performed. +# +# +# +# The starting voltage of the bias sweep. The range of voltages for the sweep can +# be defined with scan voltage offset and scan voltage range (difference between +# minimum and maximum voltage values in a sweep) +# +# +# +# +# The range of voltages for the sweep can be defined with scan voltage offset and +# scan voltage range (difference between minimum and maximum voltage values in a +# sweep) +# +# +# +# +# The start of the bias scan voltage. +# +# +# +# +# The end value of the bias scan voltage. +# +# +# +# +# +# In the linear sweep, the bias voltage is changed linearly from the start value +# to the end value. +# +# +# +# If the bias voltage sweep is also performed in the opposite direction. +# +# +# +# +# The number of voltage points per sweep. +# +# +# +# +# The step size between the two consecutive bias voltage values during the sweep. +# +# +# +# +# The reset_bias defines whether the bias voltage should be reset to the starting +# value after the sweep is completed. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, +# please duplicate this NXdata group for each. +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXcalibration.yaml b/contributed_definitions/nyaml/SPM/NXcalibration.yaml new file mode 100644 index 000000000..e7e362caf --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXcalibration.yaml @@ -0,0 +1,419 @@ +category: base +doc: | + Subclass of NXprocess to describe post-processing calibrations. +symbols: + doc: | + The symbols used in the schema to specify e.g. dimensions of arrays + ncoeff: | + Number of coefficients of the calibration function + ncal: | + Number of points of the calibrated and uncalibrated axes +type: group +NXcalibration(NXobject): + description(NX_CHAR): + doc: | + A description of the procedures employed. + start_time(NX_DATE_TIME): + doc: | + The start time of the calibration. + end_time(NX_DATE_TIME): + doc: | + The end time of the calibration. + calibration_interval(NX_FLOAT): + unit: NX_TIME + doc: | + The time difference between the start and end time of the calibration. + Or the value directly comes from the instrument. + validity_period(NX_DATE_TIME): + doc: | + The period for which the calibration is valid. Usually, every instrument or part of the + needs to be calibrated at regular intervals. + calibration_type(NX_CHAR): + doc: | + The type of calibration, e.g., active calibration, passive calibration, + or according to the laboratory defined type. + physical_quantity: + doc: | + The physical quantity of the calibration, e.g., + energy, momentum, time, etc. + calibration_method(NXidentifier): + doc: | + A digital persistent identifier (e.g., DOI, ISO standard) referring to a detailed description of a + calibration method but no actual calibration data. + calibration_reference(NXidentifier): + doc: | + A digital persistent identifier (e.g., a DOI) referring to a publicly available calibration measurement + used for this instrument, e.g., a measurement of a known standard containing calibration information. + The axis values may be copied or linked in the appropriate NXcalibration fields for reference. + calibration_object(NXserialized): + doc: | + A file serialisation of a calibration which may not be publicly available (externally from the nexus file). + + This metadata can be a documentation of the source (file) or database (entry) from which pieces + of information have been extracted for consumption (e.g. in a research data management system (RDMS)). + It is also possible to include the actual file by using the `file` field. + + The axis values may be copied or linked in the appropriate NXcalibration fields for reference. + last_process(NX_CHAR): + doc: | + Indicates the name of the last operation applied in the NXprocess sequence. + applied(NX_BOOLEAN): + doc: | + Has the calibration been applied? + calibration_software: + doc: | + Name of the software used for this calibration. + \@version: + doc: | + Software version. + original_axis(NX_FLOAT): + unit: NX_ANY + doc: | + Vector containing the data coordinates in the original uncalibrated axis + dimensions: + rank: 1 + dim: (ncal,) + \@symbol: + doc: | + The symbol of the axis to be used in the fit_function, e.g., `energy`, `E`. + This should comply to the following naming rules (similar to python's naming rules): + + * A variable name must start with a letter or the underscore character + * A variable name cannot start with a number + * A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ ) + * Variable names are case-sensitive (age, Age and AGE are three different variables) + \@input_path: + doc: | + The path from which this data is derived, e.g., raw detector axis. + Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. + input_SYMBOL(NX_FLOAT): + unit: NX_ANY + doc: | + Additional input axis to be used in the formula. + The part after `input_` is used as the symbol to be used in the `fit_function`, i.e., + if the field name is `input_my_field` you should refer to this axis by `my_field` in the `fit_function`. + dimensions: + rank: 1 + dim: (ncal,) + \@input_path: + doc: | + The path from which this data is derived, e.g., raw detector axis. + Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. + coefficients(NX_FLOAT): + unit: NX_ANY + doc: | + For non-linear energy calibrations, e.g. in a TOF, a polynomial function is fit + to a set of features (peaks) at well defined energy positions to determine + E(TOF). Here we can store the array of fit coefficients. + dimensions: + rank: 1 + dim: (ncoeff,) + fit_function(NX_CHAR): + doc: | + For non-linear energy calibrations. Here we can store the formula of the + fit function. + + Use a0, a1, ..., an for the coefficients, corresponding to the values in the coefficients field. + + Use x0, x1, ..., xn for the nth position in the `original_axis` field. + If there is the symbol attribute specified for the `original_axis` this may be used instead of x. + If you want to use the whole axis use `x`. + Alternate axis can also be available as specified by the `input_SYMBOL` field. + The data should then be referred here by the `SYMBOL` name, e.g., for a field + name `input_my_field` it should be referred here by `my_field` or `my_field0` if + you want to read the zeroth element of the array. + + The formula should be numpy compliant. + scaling(NX_FLOAT): + unit: NX_ANY + doc: | + For linear calibration. Scaling parameter. + This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. + offset(NX_FLOAT): + unit: NX_ANY + doc: | + For linear calibration. Offset parameter. + This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. + mapping_MAPPING(NX_FLOAT): + doc: | + Mapping data for calibration. + + This can be used to map data points from uncalibrated to calibrated values, + i.e., by multiplying each point in the input axis by the corresponding point in the mapping data. + calibrated_AXIS(NX_FLOAT): + unit: NX_ANY + doc: | + A vector representing the axis after calibration, matching the data length + dimensions: + rank: 1 + dim: (ncal,) + \@output_path: + doc: | + The path to which this data is written, e.g., the calibrated energy. + Should be a valid NeXus path name, e.g., /entry/data/energy. + (NXdata): + doc: | + Any data acquired/used during the calibration that does not fit the `NX_FLOAT` fields above. + NXdata groups can be used for multidimensional data which are relevant to the calibration + \@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 ++++++++++++++++++++++++++++++++++ +# 0637e042803449160e95d45786d186382342ce32958d181cfbd42830ffb145c2 +# +# +# +# +# +# +# The symbols used in the schema to specify e.g. dimensions of arrays +# +# +# +# Number of coefficients of the calibration function +# +# +# +# +# Number of points of the calibrated and uncalibrated axes +# +# +# +# +# Subclass of NXprocess to describe post-processing calibrations. +# +# +# +# A description of the procedures employed. +# +# +# +# +# The start time of the calibration. +# +# +# +# +# The end time of the calibration. +# +# +# +# +# The time difference between the start and end time of the calibration. +# Or the value directly comes from the instrument. +# +# +# +# +# The period for which the calibration is valid. Usually, every instrument or part of the +# needs to be calibrated at regular intervals. +# +# +# +# +# The type of calibration, e.g., active calibration, passive calibration, +# or according to the laboratory defined type. +# +# +# +# +# The physical quantity of the calibration, e.g., +# energy, momentum, time, etc. +# +# +# +# +# A digital persistent identifier (e.g., DOI, ISO standard) referring to a detailed description of a +# calibration method but no actual calibration data. +# +# +# +# +# A digital persistent identifier (e.g., a DOI) referring to a publicly available calibration measurement +# used for this instrument, e.g., a measurement of a known standard containing calibration information. +# The axis values may be copied or linked in the appropriate NXcalibration fields for reference. +# +# +# +# +# A file serialisation of a calibration which may not be publicly available (externally from the nexus file). +# +# This metadata can be a documentation of the source (file) or database (entry) from which pieces +# of information have been extracted for consumption (e.g. in a research data management system (RDMS)). +# It is also possible to include the actual file by using the `file` field. +# +# The axis values may be copied or linked in the appropriate NXcalibration fields for reference. +# +# +# +# +# Indicates the name of the last operation applied in the NXprocess sequence. +# +# +# +# +# Has the calibration been applied? +# +# +# +# +# Name of the software used for this calibration. +# +# +# +# Software version. +# +# +# +# +# +# Vector containing the data coordinates in the original uncalibrated axis +# +# +# +# +# +# +# The symbol of the axis to be used in the fit_function, e.g., `energy`, `E`. +# This should comply to the following naming rules (similar to python's naming rules): +# +# * A variable name must start with a letter or the underscore character +# * A variable name cannot start with a number +# * A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ ) +# * Variable names are case-sensitive (age, Age and AGE are three different variables) +# +# +# +# +# The path from which this data is derived, e.g., raw detector axis. +# Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. +# +# +# +# +# +# Additional input axis to be used in the formula. +# The part after `input_` is used as the symbol to be used in the `fit_function`, i.e., +# if the field name is `input_my_field` you should refer to this axis by `my_field` in the `fit_function`. +# +# +# +# +# +# +# The path from which this data is derived, e.g., raw detector axis. +# Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. +# +# +# +# +# +# For non-linear energy calibrations, e.g. in a TOF, a polynomial function is fit +# to a set of features (peaks) at well defined energy positions to determine +# E(TOF). Here we can store the array of fit coefficients. +# +# +# +# +# +# +# +# For non-linear energy calibrations. Here we can store the formula of the +# fit function. +# +# Use a0, a1, ..., an for the coefficients, corresponding to the values in the coefficients field. +# +# Use x0, x1, ..., xn for the nth position in the `original_axis` field. +# If there is the symbol attribute specified for the `original_axis` this may be used instead of x. +# If you want to use the whole axis use `x`. +# Alternate axis can also be available as specified by the `input_SYMBOL` field. +# The data should then be referred here by the `SYMBOL` name, e.g., for a field +# name `input_my_field` it should be referred here by `my_field` or `my_field0` if +# you want to read the zeroth element of the array. +# +# The formula should be numpy compliant. +# +# +# +# +# For linear calibration. Scaling parameter. +# This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. +# +# +# +# +# For linear calibration. Offset parameter. +# This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. +# +# +# +# +# Mapping data for calibration. +# +# This can be used to map data points from uncalibrated to calibrated values, +# i.e., by multiplying each point in the input axis by the corresponding point in the mapping data. +# +# +# +# +# A vector representing the axis after calibration, matching the data length +# +# +# +# +# +# +# The path to which this data is written, e.g., the calibrated energy. +# Should be a valid NeXus path name, e.g., /entry/data/energy. +# +# +# +# +# +# Any data acquired/used during the calibration that does not fit the `NX_FLOAT` fields above. +# NXdata groups can be used for multidimensional data which are relevant to the calibration +# +# +# +# +# .. 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/SPM/NXcantilever_spm.yaml b/contributed_definitions/nyaml/SPM/NXcantilever_spm.yaml new file mode 100644 index 000000000..3eeb1cbb9 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXcantilever_spm.yaml @@ -0,0 +1,235 @@ +category: base +doc: | + A base class to describe the cantilever used in Atomic Force Microscopy (AFM) + techniques. +type: group +NXcantilever_spm(NXobject): + cantilever_oscillator(NXobject): + doc: | + Generally speaking, the cantilever resembles a simple harmonic oscillator. + When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. + In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. + reference_amplitude(NX_NUMBER): + unit: NX_ANY + doc: | + The reference amplitude (also called drive amplitude) of the cantilever. + reference_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The reference frequency (also called drive frequency or resonance frequency) of + the cantilever. + frequency_harmonic(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The harmonic (e.g., second harmonic of the fundamental frequency) frequency of + the cantilever. + phase_lock_loop(NXlockin): + doc: | + Phase locked loop for cantilever lock-in device. + cantilever_amplitude_positioner(NXpositioner): + doc: | + Describes the cantilever frequency positioner, if it exists. + cantilever_phase_positioner(NXpositioner): + doc: | + Describes the cantilever phase positioner, if it exists. + cantilever_frequency_positioner(NXpositioner): + doc: | + Describes the cantilever frequency positioner, if it exists. + phase_shift(NX_NUMBER): + unit: NX_ANGLE + doc: | + The phase difference between the reference signal of cantilever and response + signal. + frequency_shift(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Shift in the resonance frequency of the cantilever. + frequency_cutoff(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The cutoff frequency of the cantilever. + frequency_bandwidth(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The bandwidth of the resonance frequency. + target_amplitude(NX_NUMBER): + unit: NX_ANY + doc: | + The target amplitude of the cantilever to start the AFM/SPM experiment. + active_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The active frequency of the cantilever to start the experiment. + reference_phase(NX_NUMBER): + unit: NX_ANGLE + doc: | + The reference phase of the cantilever oscillator. + cantilever_config(NXobject): + doc: | + The configuration information of the cantilever such as calibration information, + material properties, etc. + cantilever_coating: + doc: | + The coating material of the cantilever. + curvature_radius_N(NX_NUMBER): + unit: NX_ANY + doc: | + The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. + (NXcalibration): + doc: | + The calibration information of the cantilever. + sensitivity(NX_NUMBER): + unit: NX_ANY + doc: | + A force applied to the cantilever tip will cause a change in + cantilever's oscillation amplitude (in dynamic mode) or deflection of the cantilever. + The sensitivity of the cantilever is calculated as the ratio of this change to the force causing it. + spring_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The spring constant coefficient of the cantilever. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 7f9bbb72dc5a27994c70ffe9d0f711cb147c223a6ced080161fea0e2d63cb82c +# +# +# +# +# +# A base class to describe the cantilever used in Atomic Force Microscopy (AFM) +# techniques. +# +# +# +# Generally speaking, the cantilever resembles a simple harmonic oscillator. +# When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. +# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. +# +# +# +# The reference amplitude (also called drive amplitude) of the cantilever. +# +# +# +# +# The reference frequency (also called drive frequency or resonance frequency) of +# the cantilever. +# +# +# +# +# The harmonic (e.g., second harmonic of the fundamental frequency) frequency of +# the cantilever. +# +# +# +# +# Phase locked loop for cantilever lock-in device. +# +# +# +# Describes the cantilever frequency positioner, if it exists. +# +# +# +# +# Describes the cantilever phase positioner, if it exists. +# +# +# +# +# Describes the cantilever frequency positioner, if it exists. +# +# +# +# +# +# The phase difference between the reference signal of cantilever and response +# signal. +# +# +# +# +# Shift in the resonance frequency of the cantilever. +# +# +# +# +# The cutoff frequency of the cantilever. +# +# +# +# +# The bandwidth of the resonance frequency. +# +# +# +# +# The target amplitude of the cantilever to start the AFM/SPM experiment. +# +# +# +# +# The active frequency of the cantilever to start the experiment. +# +# +# +# +# The reference phase of the cantilever oscillator. +# +# +# +# +# +# The configuration information of the cantilever such as calibration information, +# material properties, etc. +# +# +# +# The coating material of the cantilever. +# +# +# +# +# The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. +# +# +# +# +# The calibration information of the cantilever. +# +# +# +# A force applied to the cantilever tip will cause a change in +# cantilever's oscillation amplitude (in dynamic mode) or deflection of the cantilever. +# The sensitivity of the cantilever is calculated as the ratio of this change to the force causing it. +# +# +# +# +# The spring constant coefficient of the cantilever. +# +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXcircuit.yaml b/contributed_definitions/nyaml/SPM/NXcircuit.yaml new file mode 100644 index 000000000..5e96ca7f4 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXcircuit.yaml @@ -0,0 +1,235 @@ +category: base +doc: | + Application definition for circuit devices. +type: group +NXcircuit(NXobject): + hardware(NXfabrication): + doc: | + Hardware where the circuit is implanted; includes hardware manufacturers and + type + components: + doc: | + List of components used in the circuit, e.g., resistors, capacitors, transistors or any + other complex components. + connections: + doc: | + Description of how components are interconnected, including connection points + and wiring. + power_source: + doc: | + Details of the power source for the circuit, including voltage and current + ratings. + signal_type: + doc: | + Type of signal (input signal) the circuit is designed to handle, e.g., analog, + digital, mixed-signal. + operating_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The operating frequency range of the circuit. + input_impedance(NX_NUMBER): + unit: NX_ANY + doc: | + Input impedance of the circuit. + output_impedance(NX_NUMBER): + unit: NX_ANY + doc: | + Output impedance of the circuit. + gain(NX_NUMBER): + unit: NX_UNITLESS + doc: | + Gain of the circuit, if applicable, usually all instruments have a gain which might be + important or not. + noise_level(NX_NUMBER): + unit: NX_ANY + doc: | + Noise level (in current or voltage) in the circuit. + bandwidth(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + If circuit handles AC current or signal it may have a band Bandwidth of the circuit to be + responded. + temperature_range(NX_NUMBER): + unit: NX_ANY + doc: | + Operating temperature range of the circuit. + calibration(NXcalibration): + doc: | + Calibration data for the circuit. + offset(NX_NUMBER): + unit: NX_ANY + doc: | + Offset value for current or voltage. + output_channels(NX_NUMBER): + doc: | + Number of output channels collected to this circuit. + output_signal(NX_NUMBER): + unit: NX_ANY + doc: | + Type of output signal, e.g., voltage, current, digital. + power_consumption(NX_NUMBER): + unit: NX_ANY + doc: | + Power consumption of the circuit per unit time. + status_indicators: + doc: | + Status indicators for the circuit, e.g., LEDs, display readouts. + protection_features(NX_CHAR): + doc: | + Protection features built into the circuit, e.g., overvoltage protection, + thermal shutdown. + acquisition_time(NX_NUMBER): + unit: NX_TIME + doc: | + Updated rate for several processes using the input signal, e.g., History Graph, the circuit + uses for any such process. + output_slew_rate(NX_CHAR): + doc: | + The rate at which the signal changes when ramping from the starting + value. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 7f1180d18c2b00f6df3990ac265dace4b2c96a24a8ab18e04a53c779c974e3b7 +# +# +# +# +# +# Application definition for circuit devices. +# +# +# +# Hardware where the circuit is implanted; includes hardware manufacturers and +# type +# +# +# +# +# List of components used in the circuit, e.g., resistors, capacitors, transistors or any +# other complex components. +# +# +# +# +# Description of how components are interconnected, including connection points +# and wiring. +# +# +# +# +# Details of the power source for the circuit, including voltage and current +# ratings. +# +# +# +# +# Type of signal (input signal) the circuit is designed to handle, e.g., analog, +# digital, mixed-signal. +# +# +# +# +# The operating frequency range of the circuit. +# +# +# +# +# Input impedance of the circuit. +# +# +# +# +# Output impedance of the circuit. +# +# +# +# +# Gain of the circuit, if applicable, usually all instruments have a gain which might be +# important or not. +# +# +# +# +# Noise level (in current or voltage) in the circuit. +# +# +# +# +# If circuit handles AC current or signal it may have a band Bandwidth of the circuit to be +# responded. +# +# +# +# +# Operating temperature range of the circuit. +# +# +# +# +# Calibration data for the circuit. +# +# +# +# +# Offset value for current or voltage. +# +# +# +# +# Number of output channels collected to this circuit. +# +# +# +# +# Type of output signal, e.g., voltage, current, digital. +# +# +# +# +# Power consumption of the circuit per unit time. +# +# +# +# +# Status indicators for the circuit, e.g., LEDs, display readouts. +# +# +# +# +# Protection features built into the circuit, e.g., overvoltage protection, +# thermal shutdown. +# +# +# +# +# Updated rate for several processes using the input signal, e.g., History Graph, the circuit +# uses for any such process. +# +# +# +# +# The rate at which the signal changes when ramping from the starting +# value. +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXlockin.yaml b/contributed_definitions/nyaml/SPM/NXlockin.yaml new file mode 100644 index 000000000..6f9b266d8 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXlockin.yaml @@ -0,0 +1,307 @@ +category: base +doc: | + A base class definition for a lock-in amplifier. + + The lock-in amplifier information: the device is being used to extract a (potentially) + very weak input signal buried in the noisy background, where the input signal has + the same frequency (or its harmonic) as a known reference signal. Additionally, + the phase shift between the input signal and the reference signal is measured. + The reference signal might be created by a generator built-in into the lock-in amplifier. +type: group +NXlockin(NXobject): + hardware(NXfabrication): + doc: | + Hardware manufacturers and type of lock-in amplifier. + (NXamplifier): + doc: | + Description of the amplifier (after detection of the signal from the noise) + bias_divider: + doc: | + Bias divider for lock-in channel if if has. + Bias divider = V(ref)/[V(ref)+V(input)] + modulation_status(NX_BOOLEAN): + doc: | + Switch the lock-in modulation on or off. + modulation_signal(NX_CHAR): + doc: | + A periodic voltage signal generated by the lock-in, + usually applied to a sample and used to create a reference signal for the detection of the input signal + lockin_current_flip_value(NX_NUMBER): + exists: optional + doc: | + The number that defines the sign of the lock-in current. The calibration procedure + with retracted tip is normally performed to compensate for the signal phase delay + in SPM. The procedure yields two possible solutions, this number should be equal + to 1 or -1 depending on which solution is chosen. + + # (For bais modulate signal, it depands on the modulate type) + + # unit could be NX_VOLTAGE or NX_CURRENT + reference_amplitude(NX_NUMBER): + unit: NX_ANY + doc: | + Amplitude of the reference signal for the lock-in amplifier. + reference_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Frequency of the reference signal for the lock-in amplifier. + reference_phase(NX_NUMBER): + unit: NX_ANGLE + doc: | + Phase of the reference signal for the lock-in amplifier. + demodulated_signal(NX_CHAR): + doc: | + The modulated output signal will be demodulated, in order to determine the amplitude + and phase at the frequency set in the Frequency field or harmonics, such as current, + bias, et.al. + demodulated_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The frequency of the demodulated signal. + frequency_demodulation_bandwidth(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The bandwidth of the modulated signal that can be applied in frequency + demodulation mechanism. + + # unit could be NX_VOLTAGE or NX_CURRENT + demodulated_amplitude(NX_NUMBER): + unit: NX_ANY + doc: | + The amplitude of the demodulated signal. + amplitude_demodulation_bandwidth(NX_NUMBER): + unit: NX_ANY + doc: | + The bandwidth of the modulated signal that can be applied in amplitude + demodulation mechanism. + demodulated_phase(NX_NUMBER): + unit: NX_ANGLE + doc: | + The phase of the demodulated signal. + phase_demodulation_bandwidth(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The bandwidth of the modulated signal that can be applied in phase demodulation + mechanism. + demodulator_channels(NX_CHAR): + doc: | + List of the demodulator channels. + low_pass_N(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Frequency of the low-pass filter applied on the demodulated + signals (X,Y), cut-off frq (low pass filter) (for each DemodulatorChannels). + hi_pass_N(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Frequency of the high-pass filter applied on the demodulation + signal cut-off frq (hi pass filter) (for each DemodulatorChannels). + lp_filter_order_N(NX_NUMBER): + doc: | + Order of the low-pass filter applied on the demodulated signals (X, Y). + Reducing the bandwidth or increasing the order reduces noise on the demodulated signals, + but increases settling and measurement times. + hp_filter_order_N(NX_NUMBER): + doc: | + Order of the high-pass filter applied on the demodulation + signal. This is used mainly to suppress a DC component of the input + signal noise. + ref_phase_N(NX_NUMBER): + unit: NX_ANGLE + doc: | + Reference phase of reference signal with respect to the demodulated signal + (foreach Channels). + integration_time(NX_NUMBER): + unit: NX_TIME + doc: | + Integration time for the product of the input and the reference signals + harmonic_order_N(NX_NUMBER): + doc: | + The reference signal can be a higher harmonic of the modulation signal. + Here the order of the harmonic is stored. + sensitivity_factor(NX_NUMBER): + doc: | + Ratio of output signal amplitude to input signal amplitue (V/V). + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# c5a5794e8253813e28db0dbe2df778f6bffd00b2447d0488f665e5f89a9a669a +# +# +# +# +# +# A base class definition for a lock-in amplifier. +# +# The lock-in amplifier information: the device is being used to extract a (potentially) +# very weak input signal buried in the noisy background, where the input signal has +# the same frequency (or its harmonic) as a known reference signal. Additionally, +# the phase shift between the input signal and the reference signal is measured. +# The reference signal might be created by a generator built-in into the lock-in amplifier. +# +# +# +# Hardware manufacturers and type of lock-in amplifier. +# +# +# +# +# Description of the amplifier (after detection of the signal from the noise) +# +# +# +# +# Bias divider for lock-in channel if if has. +# Bias divider = V(ref)/[V(ref)+V(input)] +# +# +# +# +# Switch the lock-in modulation on or off. +# +# +# +# +# A periodic voltage signal generated by the lock-in, +# usually applied to a sample and used to create a reference signal for the detection of the input signal +# +# +# +# +# The number that defines the sign of the lock-in current. The calibration procedure +# with retracted tip is normally performed to compensate for the signal phase delay +# in SPM. The procedure yields two possible solutions, this number should be equal +# to 1 or -1 depending on which solution is chosen. +# +# +# +# +# +# +# Amplitude of the reference signal for the lock-in amplifier. +# +# +# +# +# Frequency of the reference signal for the lock-in amplifier. +# +# +# +# +# Phase of the reference signal for the lock-in amplifier. +# +# +# +# +# The modulated output signal will be demodulated, in order to determine the amplitude +# and phase at the frequency set in the Frequency field or harmonics, such as current, +# bias, et.al. +# +# +# +# +# The frequency of the demodulated signal. +# +# +# +# +# The bandwidth of the modulated signal that can be applied in frequency +# demodulation mechanism. +# +# +# +# +# +# The amplitude of the demodulated signal. +# +# +# +# +# The bandwidth of the modulated signal that can be applied in amplitude +# demodulation mechanism. +# +# +# +# +# The phase of the demodulated signal. +# +# +# +# +# The bandwidth of the modulated signal that can be applied in phase demodulation +# mechanism. +# +# +# +# +# List of the demodulator channels. +# +# +# +# +# Frequency of the low-pass filter applied on the demodulated +# signals (X,Y), cut-off frq (low pass filter) (for each DemodulatorChannels). +# +# +# +# +# Frequency of the high-pass filter applied on the demodulation +# signal cut-off frq (hi pass filter) (for each DemodulatorChannels). +# +# +# +# +# Order of the low-pass filter applied on the demodulated signals (X, Y). +# Reducing the bandwidth or increasing the order reduces noise on the demodulated signals, +# but increases settling and measurement times. +# +# +# +# +# Order of the high-pass filter applied on the demodulation +# signal. This is used mainly to suppress a DC component of the input +# signal noise. +# +# +# +# +# Reference phase of reference signal with respect to the demodulated signal +# (foreach Channels). +# +# +# +# +# Integration time for the product of the input and the reference signals +# +# +# +# +# The reference signal can be a higher harmonic of the modulation signal. +# Here the order of the harmonic is stored. +# +# +# +# +# Ratio of output signal amplitude to input signal amplitue (V/V). +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml b/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml new file mode 100644 index 000000000..f13dab1d7 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml @@ -0,0 +1,192 @@ +category: base +doc: | + A base class describing piezo settings for scanning probe microscopy. + + The piezoelectric material of SPM actuators gets deformed due to the applied electric field. + Description below shows calibration coefficients and other configuration parameters of the piezo actuators. + +# Discussion: No need to create this base class rather we can define in spm application definition. +type: group +NXpiezo_config_spm(NXobject): + piezo_material(NXpiezoelectric_material): + doc: | + The material description and properties of the piezoelectric scanner materials. + curvature_radius_N(NX_NUMBER): + unit: NX_LENGTH + doc: | + The N (substring) denotes X or Y. There are 2 parameters in X and Y directions. It can be set + approximately to the length of the piezo tube along X and Y axis. + calibration(NXcalibration): + calibration_type(NX_CHAR): + doc: | + The name of the calibration type, sometimes it is called + `active calibration`. + enumeration: [active, passive] + calibration_name: + doc: | + A specific name of the calibration (e.g. active type with name 'LHe'). + calibration_date(NX_DATE_TIME): + doc: | + The date of the calibration. + calibrated_AXIS(NX_NUMBER): + doc: | + The AXIS (substring) denotes X, Y or Z. There are three directions X, Y, and Z for calibration, + along with three available parameters each: Calibration (m/V), Range (m), and HV gain. Only + two of these parameters are required to define the calibration. Consequently, when any + value is changed, one of the other values will be automatically updated. + hv_gain_N(NX_NUMBER): + doc: | + The N (substring) denotes X or Y or Z. In some systems, there is an HV gain readout feature. For + these systems, the HV gain should be automatically adjusted whenever the gain is + changed at the high voltage amplifier. + range_N(NX_NUMBER): + unit: NX_LENGTH + doc: | + The N (substring) denotes X or Y or Z. There are 3 parameters in X, Y and Z directions. The range + is the maximum distance the piezo can move. + calibration_coefficient_N(NX_NUMBER): + unit: NX_ANY + doc: | + The calibration coefficient is the ratio of the actual distance moved by the piezo due to + the voltage applied to the piezo. It is also called first-order correction. + tilt_N(NX_NUMBER): + unit: NX_ANGLE + doc: | + The N (substring) denotes X and Y directions, and for both directions tilt needs to be adjusted according + to the actual surface. + 2nd_order_correction_N(NX_NUMBER): + unit: NX_ANY + doc: | + The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo + characteristics to compensate the error for that axis. + The following equation shows the + interpretation of the 2nd order correction parameters, For the X-piezo: "Ux = 1/cx · X + cxx · X2" + with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" + where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for + such the second-order correction is (V/m^2). + drift_N(NX_NUMBER): + unit: NX_ANY + doc: | + The N (substring) denotes X, Y and Z directions. Define the + drift speed [m/s] for all three axes. When the compensation is on, the piezo will start to + move at that speed. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 983ecbb63ca89b8133a7b671fba009b74498d7745d5b569592931cb2df75b49e +# +# +# +# +# +# +# A base class describing piezo settings for scanning probe microscopy. +# +# The piezoelectric material of SPM actuators gets deformed due to the applied electric field. +# Description below shows calibration coefficients and other configuration parameters of the piezo actuators. +# +# +# +# The material description and properties of the piezoelectric scanner materials. +# +# +# +# The N (substring) denotes X or Y. There are 2 parameters in X and Y directions. It can be set +# approximately to the length of the piezo tube along X and Y axis. +# +# +# +# +# +# +# The name of the calibration type, sometimes it is called +# `active calibration`. +# +# +# +# +# +# +# +# +# A specific name of the calibration (e.g. active type with name 'LHe'). +# +# +# +# +# The date of the calibration. +# +# +# +# +# The AXIS (substring) denotes X, Y or Z. There are three directions X, Y, and Z for calibration, +# along with three available parameters each: Calibration (m/V), Range (m), and HV gain. Only +# two of these parameters are required to define the calibration. Consequently, when any +# value is changed, one of the other values will be automatically updated. +# +# +# +# +# The N (substring) denotes X or Y or Z. In some systems, there is an HV gain readout feature. For +# these systems, the HV gain should be automatically adjusted whenever the gain is +# changed at the high voltage amplifier. +# +# +# +# +# The N (substring) denotes X or Y or Z. There are 3 parameters in X, Y and Z directions. The range +# is the maximum distance the piezo can move. +# +# +# +# +# The calibration coefficient is the ratio of the actual distance moved by the piezo due to +# the voltage applied to the piezo. It is also called first-order correction. +# +# +# +# +# The N (substring) denotes X and Y directions, and for both directions tilt needs to be adjusted according +# to the actual surface. +# +# +# +# +# The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo +# characteristics to compensate the error for that axis. +# The following equation shows the +# interpretation of the 2nd order correction parameters, For the X-piezo: "Ux = 1/cx · X + cxx · X2" +# with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" +# where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for +# such the second-order correction is (V/m^2). +# +# +# +# +# The N (substring) denotes X, Y and Z directions. Define the +# drift speed [m/s] for all three axes. When the compensation is on, the piezo will start to +# move at that speed. +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml b/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml new file mode 100644 index 000000000..7dc433a5b --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml @@ -0,0 +1,191 @@ +category: base +doc: | + Description and properties of the piezoelectric actuator materials. + The piezoelectric actuator is usually composed of polycrystalline solids and + attached at the head of the tip or cantilever. The material deforms when the external electric field is applied. +type: group +NXpiezoelectric_material(NXobject): + + # Online links: + # 1. ttps://www.ulprospector.com/knowledge/2689/pe-piezoelectric-materials/#:~:text=piezoelectric ceramics, such as lithium,as polyvinylidene fluoride (PVDF). + # 2. https://info.piezo.com/hubfs/Data-Sheets/piezo-material-properties-data-sheet-20201112.pdf + # 3. https://application.wiley-vch.de/books/sample/3527345124_c01.pdf + name(NX_CHAR): + doc: | + The name of the material of the piezo scanner such as Lead Zirconate Titanates + (PZTs). + chemical_description(NXsubstance): + doc: | + The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. + type(NX_CHAR): + doc: | + The type of the material of the piezo scanner (e.g. piezoelectric ceramics, + polymer-film piezoelectrics). + + # Properties of the piezo material + density(NX_NUMBER): + unit: NX_ANY + doc: | + The density of the piezo material. + relative_permittivity(NX_NUMBER): + unit: NX_ANY + doc: | + The relative permittivity (dielectric constant) of the piezo material. + D_piezoelectric_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The piezoelectric charge coefficients of the material. The coefficients describe the electric + polarization generated by the applied stress in material. Different coefficients correspond to different + relative directions of the polarization and the stress. + G_voltage_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The constants define the electric field produced by the external mechanical strain. Different coefficients + correspond to different relative directions of the electric field and the strain. + K_electromechanical_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The electromechanical constant measures the efficiency of the conversion of mechanical energy + into electrical energy. + P_pyroelectric_constant(NX_NUMBER): + unit: NX_ANY + doc: | + The pyroelectric constant defines the change of the polarization vector of the piezoelectric material + per unit change in temperature. + acoustic_impedance(NX_NUMBER): + unit: NX_ANY + doc: | + The acoustic impedance of the piezo material. + young_modulus(NX_NUMBER): + unit: NX_ANY + doc: | + The Young's modulus of the piezo material. + surface_resistivity(NX_NUMBER): + unit: NX_ANY + doc: | + The surface resistivity of the piezo material. + temperature_range(NX_NUMBER): + unit: NX_TEMPERATURE + doc: | + The temperature range of the piezo material. + glass_transition_temperature(NX_NUMBER): + unit: NX_TEMPERATURE + doc: | + The range of temperature where a piezoelectric hard material transforms into the + viscous state. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 39d5862b3a9e4f526a71d3a1ad2234a4f4de5b953ce08c21e47f8bd7a9670ed7 +# +# +# +# +# +# Description and properties of the piezoelectric actuator materials. +# The piezoelectric actuator is usually composed of polycrystalline solids and +# attached at the head of the tip or cantilever. The material deforms when the external electric field is applied. +# +# +# +# +# The name of the material of the piezo scanner such as Lead Zirconate Titanates +# (PZTs). +# +# +# +# +# The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. +# +# +# +# +# The type of the material of the piezo scanner (e.g. piezoelectric ceramics, +# polymer-film piezoelectrics). +# +# +# +# +# +# The density of the piezo material. +# +# +# +# +# The relative permittivity (dielectric constant) of the piezo material. +# +# +# +# +# The piezoelectric charge coefficients of the material. The coefficients describe the electric +# polarization generated by the applied stress in material. Different coefficients correspond to different +# relative directions of the polarization and the stress. +# +# +# +# +# The constants define the electric field produced by the external mechanical strain. Different coefficients +# correspond to different relative directions of the electric field and the strain. +# +# +# +# +# The electromechanical constant measures the efficiency of the conversion of mechanical energy +# into electrical energy. +# +# +# +# +# The pyroelectric constant defines the change of the polarization vector of the piezoelectric material +# per unit change in temperature. +# +# +# +# +# The acoustic impedance of the piezo material. +# +# +# +# +# The Young's modulus of the piezo material. +# +# +# +# +# The surface resistivity of the piezo material. +# +# +# +# +# The temperature range of the piezo material. +# +# +# +# +# The range of temperature where a piezoelectric hard material transforms into the +# viscous state. +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml b/contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml new file mode 100644 index 000000000..66ff50e75 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml @@ -0,0 +1,94 @@ +category: base +doc: | + Extending positioner from NXpositioner to maintain a measurement signal through + a feedback loop. +type: group +NXpositioner_spm(NXpositioner): + z_controller(NXpid): + doc: | + This controller's task is to continuously adjust the Z position of the STM/STS tip in order + to keep the selected control signal as close as possible to the Set Point. Different control + signals lead to different controller's behavior. + + The second PID feedback loop intends to position the tip in the Z direction. + + p_gain (proportional gain) from z_controller is the same as K_p_value from PID controller. + i_gain (integral gain) from z_controller is the same as K_i_value from PID controller. + setpoint from z_controller is the same as setpoint from PID controller. + z_offset(NX_NUMBER): + unit: NX_LENGTH + doc: | + Offset added to the initial averaged position tip on Z-axis before starting to + scan. + tip_position_z(NX_NUMBER): + unit: NX_LENGTH + doc: | + Indicate the tip position Z between tip and sample. The tip position can also be varied when + the controller is not running. This is the final position after the tip reaches an equilibrium state. + controller_name(NX_CHAR): + doc: | + Controller name. This name which will be displayed at places where you can select a + controller. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 4eb587390d9a541bd31e756cb5262a7bf2f824c70bd289041f5ab8dad89bd15a +# +# +# +# +# +# Extending positioner from NXpositioner to maintain a measurement signal through +# a feedback loop. +# +# +# +# This controller's task is to continuously adjust the Z position of the STM/STS tip in order +# to keep the selected control signal as close as possible to the Set Point. Different control +# signals lead to different controller's behavior. +# +# The second PID feedback loop intends to position the tip in the Z direction. +# +# p_gain (proportional gain) from z_controller is the same as K_p_value from PID controller. +# i_gain (integral gain) from z_controller is the same as K_i_value from PID controller. +# setpoint from z_controller is the same as setpoint from PID controller. +# +# +# +# +# Offset added to the initial averaged position tip on Z-axis before starting to +# scan. +# +# +# +# +# Indicate the tip position Z between tip and sample. The tip position can also be varied when +# the controller is not running. This is the final position after the tip reaches an equilibrium state. +# +# +# +# +# Controller name. This name which will be displayed at places where you can select a +# controller. +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXrcs.yaml b/contributed_definitions/nyaml/SPM/NXrcs.yaml new file mode 100644 index 000000000..72dbc9374 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXrcs.yaml @@ -0,0 +1,101 @@ +category: base +doc: | + A base class for the Real Time Control System (RCS). + + A real time control system (RCS) is a reference architecture model + used to design highly task intensive software systems and computing + control systems. +type: group +NXrcs(NXobject): + rcs_name(NX_CHAR): + doc: | + The name of the real-time control system. + rcs_fabrication(NXfabrication): + doc: | + The fabrication information. + rcs_description(NX_CHAR): + doc: | + The description of the real-time control system. + rcs_type(NX_CHAR): + doc: | + The type of the real-time control system. + rcs_manufacturer(NX_CHAR): + doc: | + The manufacturer of the real-time control system. + rcs_serial_number(NX_CHAR): + doc: | + The serial number of the real-time control system. + rcs_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The frequency of the real-time control system. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 0e3f7bfa269c90b6102b23f0c39c4fc5e6fe67bd44a38c647502e94ebf0de5f7 +# +# +# +# +# +# A base class for the Real Time Control System (RCS). +# +# A real time control system (RCS) is a reference architecture model +# used to design highly task intensive software systems and computing +# control systems. +# +# +# +# The name of the real-time control system. +# +# +# +# +# The fabrication information. +# +# +# +# +# The description of the real-time control system. +# +# +# +# +# The type of the real-time control system. +# +# +# +# +# The manufacturer of the real-time control system. +# +# +# +# +# The serial number of the real-time control system. +# +# +# +# +# The frequency of the real-time control system. +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXscan_control.yaml b/contributed_definitions/nyaml/SPM/NXscan_control.yaml new file mode 100644 index 000000000..b9d3eae2e --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXscan_control.yaml @@ -0,0 +1,1064 @@ +category: base + +# Correction: region (use: phase space) +doc: | + A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). + + scan_types: + Trajectory: A list of N-dimensional sequential vectors describes the trajectory line for a full scan. + Mesh: For each dimension a range and a direction are chosen. When a scan along a dimension is done, a single step in the next dimension is taken, and then the scan in the previous dimension is repeated. As such we can speak about the fastest and the slowest scan axes. + Snake: Similar to a mesh scan but with the scanning direction reversed after each line. + Spiral: A scan taken along a spiral trajectory. + Tilt: At each step, a proportional movement is done in all dimensions. + Linear: A scan where the scanning will be performed along a single independent axis. + + Scan_control_types: + Stepping: At each step, a movement to the next point is performed; correction (for example backlash) or active regulation (feedback loop) may or may not be applied. After the movement is done, the measurement is performed without the movement. + Continuous: The scanning of each line in an N-dimensional phase space is done without stopping; measurements are done simultaneously with the movement. + Oscillating: Scanning over a scan point continuously and then moving to start scanning at the next position. +type: group +NXscan_control(NXobject): + scan_time_start(NX_DATE_TIME): + unit: NX_TIME + doc: | + The start time of the scan. + scan_time_end(NX_DATE_TIME): + unit: NX_TIME + doc: | + The end time of the scan. + independent_scan_axes: + doc: | + A list of scan axes which are controlled independently of each other. + (e.g. X, Y, Z, or other physical dimensions) + + The list is in the order of axes of the scan from the fastest to the slowest. + scan_resolution_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan resolution along each dimension as the number of steps per unit of the dimension parameters. + + Rename the field according to the name of the independent dimension (e.g. scan_resolution_x, scan_resolution_voltage). + accuracy_N(NX_NUMBER): + unit: NX_LENGTH + doc: | + Define the accuracy of the scan probe. + scan_type: + doc: | + This group specifies how the trajectory of the scan is defined. + enumeration: [trajectory, mesh, snake, spiral] + scan_control_type: + doc: | + This group specifies whether there is any movement when a data point is + measured. + enumeration: [stepping, continuous, oscillating] + scan_region(NXobject): + doc: | + The scan region is the area of phase space or sub-phase space where the scan is + performed. The region could be N-dimensional and is defined by the minimum and + maximum values of the scan axes. + scan_offset_N(NX_NUMBER): + unit: NX_ANY + doc: | + The offset of the scan region from the origin along the specific scan axis. + + 'N' denotes the name of the specific scan axis. + scan_range_N(NX_NUMBER): + unit: NX_ANY + doc: | + The range of the scan is the length of the scan region along the dimension 'N'. + scan_angle_N(NX_NUMBER): + unit: NX_ANGLE + doc: | + The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough + to define the scan region. This field defines how the spatial space is oriented with respect to + the frame of reference. + + Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). + scan_start_N(NX_NUMBER): + unit: NX_ANY + doc: | + The start of the scan is the starting point of the scan region (phase space or sub-phase space) + for each independent scan axis. + + For N-dimensional, it is a list of N numbers. + scan_end_N(NX_NUMBER): + unit: NX_ANY + doc: | + The end of the scan is the ending point of the scan region (phase space or sub-phase space) + for each independent scan axis. + + Note: The scan_offset and scan_range are equivalent to the scan_start and scan_end. + + For N-dimensional, it is a list of N numbers. + mesh_SCAN(NXobject): + doc: | + For each dimension a range and a direction are chosen. When a scan along a dimension is done, + a single step in the next dimension is taken, and then the scan in the previous dimension is + repeated. As such we can speak about the fastest and the slowest scan axes. + scan_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the forward direction along the axis. + + If the scan goes in the negative direction, the speed should be negative. + + Rename the field, according to the name of the dimension (e.g. scan_speed_x, scan_speed_voltage). + forward_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the forward directions. + Rename the field, according to the name of the dimension. + backward_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the backward directions. + Rename the field, according to the name of the dimension. + channel_NAME_N: + doc: | + Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is + to represent the name of the dimensions. + + Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). + scan_points_N(NX_NUMBER): + doc: | + Define the total number of points in the given axis scan to be performed. + + Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). + stepping_N(NX_NUMBER): + doc: | + The number of steps the probe jumps over the scan steps or points. + + Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + step_size_N(NX_NUMBER): + unit: NX_ANY + doc: | + The length of each step in the scan on each dimension. + + Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). + continuous_N(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points or steps, use True. The default value is True. + Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves + in steps. + + Rename the field, according to the name of the dimension (e.g. continuous_voltage). + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. + The default value is False. + oscillation_frequency(NX_NUMBER): + doc: | + The number of oscillations on each scanning point per second. + SCAN_data(NXdata): + data: + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + + # For spiral scan + spiral_SCAN(NXobject): + doc: | + To define the spiral or circular scan, use this group. + scan_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in forward (clockwise) directions. + + If the scan goes in the negative (anti-clockwise) direction, the speed should be negative. + + Rename the field, according to the circle index. The circle near the center starts with 0. + In case, the speed is the same for all the circles, replace 'N' by 'all'. + \@spiral_direction: + doc: | + Define the direction of the spiral scan. (e.g. clockwise, anticlockwise) + enumeration: [clockwise, anticlockwise] + forward_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the forward (clockwise) directions. + Rename the field, according to the circle index. The circle near the center starts with 0. + + In case, the speed is the same for all the circles, replace 'N' by 'all'. + backward_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the backward (anti-clockwise) directions. + Rename the field, according to the circle index. The circle near the center starts with 0. + + In case, the speed is the same for all the circles, replace 'N' by 'all'. + spiral_radius_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the radius of the spiral circle of scanning. + + Rename the field, according to the circle order, the nearest circle to the center is 0. + scan_points_N(NX_NUMBER): + doc: | + Define the total number of points in a given circle scan to be performed. + + Rename the field, according to the circle order, the nearest circle to the center + is 0 (e.g. scan_points_2). + stepping_N(NX_NUMBER): + doc: | + If the scan probe steps over a number of scan points. + + Rename the field, according to the circle index. The circle near the center starts with 0. + In case, the stepping is the same for all the circles, replace 'N' by 'all'. + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one), use True. + The default value is False. + step_size_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the number of points that the scan probe steps over. + + Rename the field, according to the circle index. The circle near the center or lowest value of a + parameter starts with 0. + In case, the step size is the same for all the circles, replace 'N' by 'all'. + continuous_N(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points, use True. The default value is True. + A scan process can run continuously in the spatial dimension but can be discretized in time or + other physical dimensions (e.g. voltage). + + Rename this field according to the dimensions, considering continuous scan in a two-dimensional space + rename the field as continuous_x_y. + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. The default value is + False. + oscillation_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + Number of oscillation on each scanning point per second. + SCAN_data(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + + # This active_trajectory could be explained under the same group + snake_SCAN(NXobject): + doc: | + To define the snake scan, use this group. + scan_speed_N(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed for the type of snake scan. For the same speed along the + positive and negative directions, use a single number + + Rename the field, according to the name of the fast and slow axis e.g. scan_speed_x. + forward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The field defines the scan speed in the positive direction on the fast axis. + + Rename the field, according to the name of the fast axis. + backward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The field defines the scan speed in the negative direction on the fast axis. + + Rename the field, according to the name of the fast axis. + scan_points_N(NX_NUMBER): + doc: | + Define the total number of points in the given axis scan to be performed. + + Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). + stepping_N(NX_NUMBER): + doc: | + The number of steps the probe jumps over the scan steps or points. + + Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + + Rename the field, according to the name of the dimension. + step_size_N(NX_NUMBER): + unit: NX_ANY + doc: | + The length of each step in the scan on each dimension. + + Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). + channel_NAME_N: + doc: | + Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is + to represent the name of the dimensions. + + Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). + continuous_N(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points or steps, use True. The default value is True. + Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves + in a stepping manner. + + Rename the field, according to the name of the dimension (e.g. continuous_voltage). + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. + The default value is False. + oscillation_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The number of oscillations on each scanning point per second. + SCAN_data(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + traj_SCAN(NXobject): + doc: | + To define the trajectory scan, use this group. + scan_speed(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed through the trajectory points. + forward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The field defines the scan speed in the forward directions through the + trajectory points. + backward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + The field defines the scan speed in the backward directions (backtracking) + through the trajectory points. + channel_NAME_N: + doc: | + Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is + to represent the name of the dimensions. + + Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). + number_of_trajectory_points(NX_NUMBER): + doc: | + The number of trajectory points in the entire scan. + trajectory_points(NX_NUMBER): + doc: | + The trajectory points are the N-dimensional vectors describing all the scan points sequentially. + + The second rank dataset should contain total number of trajectory points (nTraj) and + a full coordinate (nD) of each trajectory point. + dimensions: + rank: 2 + dim: (nTraj, nD) + scan_points_N(NX_NUMBER): + doc: | + Define the total number of scan points between two trajectory points. + + Rename the field, according to the index of the second trajectory points. + For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. + stepping_N(NX_NUMBER): + doc: | + The number of steps the probe jumps over the scan steps or points along the trajectory line from between two trajectory points. + + Rename the field, according to the index of the second trajectory points. + For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + step_size(NX_NUMBER): + unit: NX_ANY + doc: | + The length of each step along the entire trajectory line. + continuous(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points or steps between two + trajectory points, use True. The default value is True. + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. + The default value is False. + oscillation_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The number of oscillations on each scanning point per second. + SCAN_data(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + linear_SCAN(NXobject): + doc: | + Define the scan mode that is performed for a single independent data axis. + scan_speed(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed of the scan disregarding the forward or backward + direction. + forward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the forward directions. + backward_speed(NX_NUMBER): + unit: NX_ANY + doc: | + Define the scan speed in the backward directions. + channel_NAME(NX_CHAR): + doc: | + Name of the channel that records the scan data for the given dimension. + scan_points_N(NX_NUMBER): + doc: | + Define the total number of points in the given axis scan to be performed. + + Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). + stepping_N(NX_NUMBER): + doc: | + The number of steps the probe jumps over the scan steps or points. + + Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). + \@frog_leap_scan: + type: NX_BOOLEAN + doc: | + If the scan probe jumps over a number of scan steps or points (more than one) + to perform each scan. By default, it is False. + step_size_N(NX_NUMBER): + unit: NX_ANY + doc: | + The length of each step in the scan on each dimension. + + Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). + continuous_N(NX_BOOLEAN): + doc: | + If the scan probe moves continuously over the scan points or steps, use True. The default value is True. + Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves + in a stepping manner. + + Rename the field, according to the name of the dimension (e.g. continuous_voltage). + oscillating_N(NX_BOOLEAN): + doc: | + If the scan probe oscillates over the scan point, use True. + The default value is False. + oscillation_frequency(NX_NUMBER): + unit: NX_FREQUENCY + doc: | + The number of oscillations on each scanning point per second. + SCAN_data(NXdata): + doc: | + The scan data is the data collected during the scan. + If the scan has several channels or derivatives from the channel data, please + duplicate this NXdata group for each. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 1342a05bf4369dfe25960b2e7f735066ca667b0d8613e20ae4711b887caa22a5 +# +# +# +# +# +# +# A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). +# +# scan_types: +# Trajectory: A list of N-dimensional sequential vectors describes the trajectory line for a full scan. +# Mesh: For each dimension a range and a direction are chosen. When a scan along a dimension is done, a single step in the next dimension is taken, and then the scan in the previous dimension is repeated. As such we can speak about the fastest and the slowest scan axes. +# Snake: Similar to a mesh scan but with the scanning direction reversed after each line. +# Spiral: A scan taken along a spiral trajectory. +# Tilt: At each step, a proportional movement is done in all dimensions. +# Linear: A scan where the scanning will be performed along a single independent axis. +# +# Scan_control_types: +# Stepping: At each step, a movement to the next point is performed; correction (for example backlash) or active regulation (feedback loop) may or may not be applied. After the movement is done, the measurement is performed without the movement. +# Continuous: The scanning of each line in an N-dimensional phase space is done without stopping; measurements are done simultaneously with the movement. +# Oscillating: Scanning over a scan point continuously and then moving to start scanning at the next position. +# +# +# +# The start time of the scan. +# +# +# +# +# The end time of the scan. +# +# +# +# +# A list of scan axes which are controlled independently of each other. +# (e.g. X, Y, Z, or other physical dimensions) +# +# The list is in the order of axes of the scan from the fastest to the slowest. +# +# +# +# +# Define the scan resolution along each dimension as the number of steps per unit of the dimension parameters. +# +# Rename the field according to the name of the independent dimension (e.g. scan_resolution_x, scan_resolution_voltage). +# +# +# +# +# Define the accuracy of the scan probe. +# +# +# +# +# This group specifies how the trajectory of the scan is defined. +# +# +# +# +# +# +# +# +# +# +# This group specifies whether there is any movement when a data point is +# measured. +# +# +# +# +# +# +# +# +# +# The scan region is the area of phase space or sub-phase space where the scan is +# performed. The region could be N-dimensional and is defined by the minimum and +# maximum values of the scan axes. +# +# +# +# The offset of the scan region from the origin along the specific scan axis. +# +# 'N' denotes the name of the specific scan axis. +# +# +# +# +# The range of the scan is the length of the scan region along the dimension 'N'. +# +# +# +# +# The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough +# to define the scan region. This field defines how the spatial space is oriented with respect to +# the frame of reference. +# +# Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). +# +# +# +# +# The start of the scan is the starting point of the scan region (phase space or sub-phase space) +# for each independent scan axis. +# +# For N-dimensional, it is a list of N numbers. +# +# +# +# +# The end of the scan is the ending point of the scan region (phase space or sub-phase space) +# for each independent scan axis. +# +# Note: The scan_offset and scan_range are equivalent to the scan_start and scan_end. +# +# For N-dimensional, it is a list of N numbers. +# +# +# +# +# +# For each dimension a range and a direction are chosen. When a scan along a dimension is done, +# a single step in the next dimension is taken, and then the scan in the previous dimension is +# repeated. As such we can speak about the fastest and the slowest scan axes. +# +# +# +# Define the scan speed in the forward direction along the axis. +# +# If the scan goes in the negative direction, the speed should be negative. +# +# Rename the field, according to the name of the dimension (e.g. scan_speed_x, scan_speed_voltage). +# +# +# +# +# Define the scan speed in the forward directions. +# Rename the field, according to the name of the dimension. +# +# +# +# +# Define the scan speed in the backward directions. +# Rename the field, according to the name of the dimension. +# +# +# +# +# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is +# to represent the name of the dimensions. +# +# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). +# +# +# +# +# Define the total number of points in the given axis scan to be performed. +# +# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). +# +# +# +# +# The number of steps the probe jumps over the scan steps or points. +# +# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one) +# to perform each scan. By default, it is False. +# +# +# +# +# +# The length of each step in the scan on each dimension. +# +# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). +# +# +# +# +# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. +# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves +# in steps. +# +# Rename the field, according to the name of the dimension (e.g. continuous_voltage). +# +# +# +# +# If the scan probe oscillates over the scan point, use True. +# The default value is False. +# +# +# +# +# The number of oscillations on each scanning point per second. +# +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# +# +# +# +# To define the spiral or circular scan, use this group. +# +# +# +# Define the scan speed in forward (clockwise) directions. +# +# If the scan goes in the negative (anti-clockwise) direction, the speed should be negative. +# +# Rename the field, according to the circle index. The circle near the center starts with 0. +# In case, the speed is the same for all the circles, replace 'N' by 'all'. +# +# +# +# Define the direction of the spiral scan. (e.g. clockwise, anticlockwise) +# +# +# +# +# +# +# +# +# +# Define the scan speed in the forward (clockwise) directions. +# Rename the field, according to the circle index. The circle near the center starts with 0. +# +# In case, the speed is the same for all the circles, replace 'N' by 'all'. +# +# +# +# +# Define the scan speed in the backward (anti-clockwise) directions. +# Rename the field, according to the circle index. The circle near the center starts with 0. +# +# In case, the speed is the same for all the circles, replace 'N' by 'all'. +# +# +# +# +# Define the radius of the spiral circle of scanning. +# +# Rename the field, according to the circle order, the nearest circle to the center is 0. +# +# +# +# +# Define the total number of points in a given circle scan to be performed. +# +# Rename the field, according to the circle order, the nearest circle to the center +# is 0 (e.g. scan_points_2). +# +# +# +# +# If the scan probe steps over a number of scan points. +# +# Rename the field, according to the circle index. The circle near the center starts with 0. +# In case, the stepping is the same for all the circles, replace 'N' by 'all'. +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one), use True. +# The default value is False. +# +# +# +# +# +# Define the number of points that the scan probe steps over. +# +# Rename the field, according to the circle index. The circle near the center or lowest value of a +# parameter starts with 0. +# In case, the step size is the same for all the circles, replace 'N' by 'all'. +# +# +# +# +# If the scan probe moves continuously over the scan points, use True. The default value is True. +# A scan process can run continuously in the spatial dimension but can be discretized in time or +# other physical dimensions (e.g. voltage). +# +# Rename this field according to the dimensions, considering continuous scan in a two-dimensional space +# rename the field as continuous_x_y. +# +# +# +# +# If the scan probe oscillates over the scan point, use True. The default value is +# False. +# +# +# +# +# Number of oscillation on each scanning point per second. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# +# +# +# To define the snake scan, use this group. +# +# +# +# Define the scan speed for the type of snake scan. For the same speed along the +# positive and negative directions, use a single number +# +# Rename the field, according to the name of the fast and slow axis e.g. scan_speed_x. +# +# +# +# +# The field defines the scan speed in the positive direction on the fast axis. +# +# Rename the field, according to the name of the fast axis. +# +# +# +# +# The field defines the scan speed in the negative direction on the fast axis. +# +# Rename the field, according to the name of the fast axis. +# +# +# +# +# Define the total number of points in the given axis scan to be performed. +# +# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). +# +# +# +# +# The number of steps the probe jumps over the scan steps or points. +# +# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one) +# to perform each scan. By default, it is False. +# +# Rename the field, according to the name of the dimension. +# +# +# +# +# +# The length of each step in the scan on each dimension. +# +# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). +# +# +# +# +# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is +# to represent the name of the dimensions. +# +# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). +# +# +# +# +# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. +# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves +# in a stepping manner. +# +# Rename the field, according to the name of the dimension (e.g. continuous_voltage). +# +# +# +# +# If the scan probe oscillates over the scan point, use True. +# The default value is False. +# +# +# +# +# The number of oscillations on each scanning point per second. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# +# +# To define the trajectory scan, use this group. +# +# +# +# Define the scan speed through the trajectory points. +# +# +# +# +# The field defines the scan speed in the forward directions through the +# trajectory points. +# +# +# +# +# The field defines the scan speed in the backward directions (backtracking) +# through the trajectory points. +# +# +# +# +# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is +# to represent the name of the dimensions. +# +# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). +# +# +# +# +# The number of trajectory points in the entire scan. +# +# +# +# +# The trajectory points are the N-dimensional vectors describing all the scan points sequentially. +# +# The second rank dataset should contain total number of trajectory points (nTraj) and +# a full coordinate (nD) of each trajectory point. +# +# +# +# +# +# +# +# +# Define the total number of scan points between two trajectory points. +# +# Rename the field, according to the index of the second trajectory points. +# For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. +# +# +# +# +# The number of steps the probe jumps over the scan steps or points along the trajectory line from between two trajectory points. +# +# Rename the field, according to the index of the second trajectory points. +# For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one) +# to perform each scan. By default, it is False. +# +# +# +# +# +# The length of each step along the entire trajectory line. +# +# +# +# +# If the scan probe moves continuously over the scan points or steps between two +# trajectory points, use True. The default value is True. +# +# +# +# +# If the scan probe oscillates over the scan point, use True. +# The default value is False. +# +# +# +# +# The number of oscillations on each scanning point per second. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# +# +# Define the scan mode that is performed for a single independent data axis. +# +# +# +# Define the scan speed of the scan disregarding the forward or backward +# direction. +# +# +# +# +# Define the scan speed in the forward directions. +# +# +# +# +# Define the scan speed in the backward directions. +# +# +# +# +# Name of the channel that records the scan data for the given dimension. +# +# +# +# +# Define the total number of points in the given axis scan to be performed. +# +# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). +# +# +# +# +# The number of steps the probe jumps over the scan steps or points. +# +# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). +# +# +# +# If the scan probe jumps over a number of scan steps or points (more than one) +# to perform each scan. By default, it is False. +# +# +# +# +# +# The length of each step in the scan on each dimension. +# +# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). +# +# +# +# +# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. +# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves +# in a stepping manner. +# +# Rename the field, according to the name of the dimension (e.g. continuous_voltage). +# +# +# +# +# If the scan probe oscillates over the scan point, use True. +# The default value is False. +# +# +# +# +# The number of oscillations on each scanning point per second. +# +# +# +# +# The scan data is the data collected during the scan. +# If the scan has several channels or derivatives from the channel data, please +# duplicate this NXdata group for each. +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXsensor_scan.yaml b/contributed_definitions/nyaml/SPM/NXsensor_scan.yaml new file mode 100644 index 000000000..4b9483663 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXsensor_scan.yaml @@ -0,0 +1,374 @@ +category: application +doc: | + Application definition for a generic scan using sensors. + + In this application definition, times should be specified always together + with an UTC offset. +symbols: + doc: | + Variables used to set a common size for collected sensor data. + N_scanpoints: | + The number of scan points measured in this scan. +type: group +NXsensor_scan(NXobject): + (NXentry): + definition(NX_CHAR): + \@version: + enumeration: [NXsensor_scan] + experiment_identifier(NXidentifier): + exists: recommended + doc: | + The unique identifier for the entry. The identifier is mainly lab-defined and + can be a combination of the sample name, date and time, experiment condition + (such as temperature) or instrument-generated unique identifier. + collection_identifier: + exists: optional + doc: | + The unique identifier for the collection. The identifier is used to group a + number of the experiments run upon the same setup and/or same sample. + experiment_description: + exists: recommended + start_time(NX_DATE_TIME): + unit: NX_TIME + exists: recommended + end_time(NX_DATE_TIME): + unit: NX_TIME + exists: recommended + (NXprocess): + doc: | + Define the program that was used to generate the results file(s) + with measured data and metadata. + program(NX_CHAR): + doc: | + Commercial or otherwise defined given name of the program + (or a link to the instrument software). + \@version: + doc: | + Either version with build number, commit hash, or description of an + (online) repository where the source code of the program and build + instructions can be found so that the program can be configured in + such a way that result files can be created ideally in a + deterministic manner. + \@program_url: + doc: | + Website of the software. + (NXuser): + doc: | + Contact information of at least the user of the instrument or the + investigator who performed this experiment. Adding multiple users if + relevant is recommended. + name(NX_CHAR): + doc: | + Name of the user. + affiliation(NX_CHAR): + exists: recommended + doc: | + Name of the affiliation of the user at the point in time when + the experiment was performed. + address(NX_CHAR): + exists: recommended + doc: | + Full address (street, street number, ZIP, city, country) + of the user's affiliation. + email(NX_CHAR): + exists: recommended + doc: | + Email address of the user. + orcid(NX_CHAR): + exists: recommended + doc: | + Author ID defined by https://orcid.org/. + telephone_number(NX_CHAR): + exists: recommended + doc: | + Official telephone number of the user. + (NXnote): + exists: optional + doc: | + Any additional information or notes (e.g. purpose of the experiment) that might + be useful to understand the experiment. + (NXinstrument): + (NXenvironment): + doc: | + Describes an environment setup for the experiment. + + All the setting values of the independently scanned controllers are listed under corresponding + NXsensor groups. Similarly, seperate NXsensor groups are used to store the readings from each + measurement sensor. + + For example, in a temperature-dependent IV measurement, the temperature and voltage must be + present as independently scanned controllers and the current sensor must also be present with + its readings. + (NXsensor): + (NXdata): + exists: recommended + doc: | + Plot of measured signal as a function of the timestamp of when they have been + acquired is also possible. + value(NX_FLOAT): + unit: NX_ANY + doc: | + For each point in the scan space, either the nominal setpoint of an independently scanned controller + or a representative average value of a measurement sensor is registered. + + The length of each sensor's data value array stored in this group should be equal to the number of scan points + probed in this scan. For every scan point [N], the corresponding sensor value can be picked from index [N]. + This allows the scan to be made in any order as the user describes above in the experiment. We get matching + values simply using the index of the scan point. + dimensions: + rank: 1 + dim: (N_scanpoints,) + value_timestamp(NX_DATE_TIME): + exists: recommended + doc: | + Timestamp for when the values provided in the value field were registered. + + Individual readings can be stored with their timestamps under value_log. This is to timestamp + the nominal setpoint or average reading values listed above in the value field. + run_control(NX_CHAR): + exists: recommended + \@description: + doc: | + Free-text describing the data acquisition control: an internal + sweep using the built-in functionality of the controller device, + or a set/wait/read/repeat mechanism. + calibration_time(NX_DATE_TIME): + doc: | + ISO8601 datum when calibration was last performed + before this measurement. UTC offset should be specified. + (NXpid): + independent_controllers: + doc: | + A list of names of NXsensor groups used as independently scanned controllers. + measurement_sensors: + doc: | + A list of names of NXsensor groups used as measurement sensors. + (NXsample): + exists: recommended + name(NX_CHAR): + (NXhistory): + exists: optional + (NXdata): + doc: | + A scan specific representation of the measured signals as a function of the independently controlled environment settings. + Plot of every measured signal as a function of the timestamp of when they have been acquired is also possible. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 96e814305ea805ca70b9363e9a117e9bcdc8566928d9bc6c2de8c66b78b03f0b +# +# +# +# +# +# +# Variables used to set a common size for collected sensor data. +# +# +# +# The number of scan points measured in this scan. +# +# +# +# +# Application definition for a generic scan using sensors. +# +# In this application definition, times should be specified always together +# with an UTC offset. +# +# +# +# +# +# +# +# +# +# +# The unique identifier for the entry. The identifier is mainly lab-defined and +# can be a combination of the sample name, date and time, experiment condition +# (such as temperature) or instrument-generated unique identifier. +# +# +# +# +# The unique identifier for the collection. The identifier is used to group a +# number of the experiments run upon the same setup and/or same sample. +# +# +# +# +# +# +# +# Define the program that was used to generate the results file(s) +# with measured data and metadata. +# +# +# +# Commercial or otherwise defined given name of the program +# (or a link to the instrument software). +# +# +# +# Either version with build number, commit hash, or description of an +# (online) repository where the source code of the program and build +# instructions can be found so that the program can be configured in +# such a way that result files can be created ideally in a +# deterministic manner. +# +# +# +# +# Website of the software. +# +# +# +# +# +# +# Contact information of at least the user of the instrument or the +# investigator who performed this experiment. Adding multiple users if +# relevant is recommended. +# +# +# +# Name of the user. +# +# +# +# +# Name of the affiliation of the user at the point in time when +# the experiment was performed. +# +# +# +# +# Full address (street, street number, ZIP, city, country) +# of the user's affiliation. +# +# +# +# +# Email address of the user. +# +# +# +# +# Author ID defined by https://orcid.org/. +# +# +# +# +# Official telephone number of the user. +# +# +# +# +# +# Any additional information or notes (e.g. purpose of the experiment) that might +# be useful to understand the experiment. +# +# +# +# +# +# Describes an environment setup for the experiment. +# +# All the setting values of the independently scanned controllers are listed under corresponding +# NXsensor groups. Similarly, seperate NXsensor groups are used to store the readings from each +# measurement sensor. +# +# For example, in a temperature-dependent IV measurement, the temperature and voltage must be +# present as independently scanned controllers and the current sensor must also be present with +# its readings. +# +# +# +# +# Plot of measured signal as a function of the timestamp of when they have been +# acquired is also possible. +# +# +# +# +# For each point in the scan space, either the nominal setpoint of an independently scanned controller +# or a representative average value of a measurement sensor is registered. +# +# The length of each sensor's data value array stored in this group should be equal to the number of scan points +# probed in this scan. For every scan point [N], the corresponding sensor value can be picked from index [N]. +# This allows the scan to be made in any order as the user describes above in the experiment. We get matching +# values simply using the index of the scan point. +# +# +# +# +# +# +# +# Timestamp for when the values provided in the value field were registered. +# +# Individual readings can be stored with their timestamps under value_log. This is to timestamp +# the nominal setpoint or average reading values listed above in the value field. +# +# +# +# +# +# Free-text describing the data acquisition control: an internal +# sweep using the built-in functionality of the controller device, +# or a set/wait/read/repeat mechanism. +# +# +# +# +# +# ISO8601 datum when calibration was last performed +# before this measurement. UTC offset should be specified. +# +# +# +# +# +# +# A list of names of NXsensor groups used as independently scanned controllers. +# +# +# +# +# A list of names of NXsensor groups used as measurement sensors. +# +# +# +# +# +# +# +# +# +# +# A scan specific representation of the measured signals as a function of the independently controlled environment settings. +# Plot of every measured signal as a function of the timestamp of when they have been acquired is also possible. +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXspm.yaml b/contributed_definitions/nyaml/SPM/NXspm.yaml new file mode 100644 index 000000000..6846d5152 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXspm.yaml @@ -0,0 +1,864 @@ +category: application +doc: | + Scanning Probe Microscopy (SPM) is a branch of microscopy that utilizes a physical probe to scan the surface of + sample and image it at the atomic level. + + The application class NXspm is designed as a skeleton and contains common technical concepts + for specific SPM sub-techniques such as STM, STS, AFM etc. +type: group +NXspm(NXsensor_scan): + (NXentry): + \@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 visualised upon entry. + See https://www.nexusformat.org/2014_How_to_find_default_data.html + for a summary of the discussion. + definition: + doc: | + Name of the definition that is used for the application. + enumeration: [NXspm] + experiment_technique: + doc: | + The technique of the experiment like STM, STS, AFM, etc. + enumeration: [STM, STS, AFM] + scan_mode: + exists: optional + doc: | + The mode of the scan. The possible options depend on the type of experiment. + For example, in STM, the scan mode could be constant height or constant current, + in AFM, the scan mode could be contact mode, tapping mode or non-contact mode. + scan_type: + exists: optional + doc: | + The type of the scan. It mainly describes how scan probe moves in the scan region, e.g. + forward, backward, or both (if scan is repeated). + experiment_identifier(NXidentifier): + exists: optional + doc: | + The identifiers for the experiment which should be unique at least in lab. + experiment_description: + exists: optional + doc: | + The description of the experiment like comments, ontes from from the experiment. + experiment_instrument(NXinstrument): + doc: | + The instrument information. + hardware(NXfabrication): + doc: | + The hardware description of the core instrument setup of the experiment. + Usually, the entire instrument is supplied by a single manufacturer. + To describe the hardware from any sub-components, use the hardware group of that + sub-component (child group of the NXinstrument group) group. + vendor: + doc: | + Company name of the manufacturer. + model: + doc: | + Version or model of the hardware setup provided by the manufacturer. + \@version: + exists: optional + doc: | + If different versions are possible, the value in this field should be made + specific enough to resolve the version. + software(NXfabrication): + doc: | + The software description of the core instrument setup of the experiment. + Usually, the entire instrument is supplied by a single name/manufacturer/model/etc. + To describe the software from any sub-components, use the software group of that component. + vendor: + doc: | + Company name of the manufacturer. + model: + doc: | + Version or model of the component named by the manufacturer. + \@version: + exists: optional + doc: | + If different versions are possible, the value in this field should be made + specific enough to resolve the version. + real_time_controller(NXrcs): + exists: optional + doc: | + The real-time controller information. + rcs_frequency(NX_NUMBER): + exists: optional + doc: | + The frequency of the real-time controller system which indicated the number of close-loop process + (gathering data, process data and update system) control cycles per second. + lockin_amplifier(NXlockin): + exists: optional + doc: | + The lock-in amplifier information. + scan_environment(NXenvironment): + doc: | + Information of the scan environment. + tip_temp(NX_NUMBER): + exists: optional + unit: NX_TEMPERATURE + doc: | + Temperature of STM head. Note: At least one field from tip_temp, + cryo_bottom_temp and cryo_shield_temp must be provided. + cryo_bottom_temp(NX_NUMBER): + exists: optional + unit: NX_TEMPERATURE + doc: | + Temperature of the cold tail of the cryostat. Note: At least one field from + tip_temp, cryo_bottom_temp and cryo_shield_temp must be provided. + cryo_shield_temp(NX_NUMBER): + exists: optional + unit: NX_TEMPERATURE + doc: | + Temperature of liquid nitrogen shield. Note: At + least one field from tip_temp, cryo_bottom_temp and cryo_shield_temp. + scan_name: + exists: optional + doc: | + The name of the scan, mainly lab defined, that helps to differentiate among different + scans performed in the lab. + current_sensor(NXsensor): + exists: optional + doc: | + This is a link to the current_sensor under the instrument group: + entry/experiment_instrument/current_sensor. + volatage_sensor(NXsensor): + exists: optional + doc: | + This is a link to the voltage_sensor under the instrument group: + entry/experiment_instrument/voltage_sensor. + piezo_sensor(NXsensor): + exists: optional + doc: | + This is a link to the piezo_sensor under the instrument group: + entry/experiment_instrument/piezo_sensor. + (NXscan_control): + doc: | + The scan control information like scan region or phase space, type of scan (e.g. + mesh, spiral, etc.), and scan speed, etc. This group mainly stores the raw scan + data. For processed data or final experimental data would go to NXdata group. + scan_name: + exists: optional + doc: | + The name of the scan, mainly lab defined, that helps to differentiate among different + scans performed in lab. This field is intended for several types of scan control + run under the same environment. + current_sensor(NXsensor): + exists: optional + doc: | + Information for current sensor. + (NXamplifier): + exists: optional + doc: | + An amplifier information for the input signal (e.g. from tip). + voltage_sensor(NXsensor): + exists: optional + doc: | + The sensor information for the voltage device. + (NXamplifier): + exists: optional + piezo_sensor(NXsensor): + doc: | + The piezo sensor refers to the height (or Z) piezo sensor if nothing is + mentioned along the X and Y directions. + x(NX_NUMBER): + unit: NX_LENGTH + doc: | + The x position of the piezo. In STS experiment, the piezo stays fixed at + x,y and z and the the tunneling current is measured with respect to the + bias voltage (sweep voltage). + y(NX_NUMBER): + unit: NX_LENGTH + doc: | + The y position of the piezo. + z(NX_NUMBER): + unit: NX_LENGTH + doc: | + The z position of the piezo. + piezo_configuration(NXpiezo_config_spm): + exists: optional + doc: | + The piezo configuration information like piezoelectric calibration and material + properties. + calibration(NXcalibration): + exists: optional + doc: | + Calibration of the piezo device. + (NXpositioner_spm): + doc: | + The positioner information like the position of the tip, the position of the + sample, PID loop feedback etc. + z_controller(NXpid): + doc: | + The PID controller information for the z-axis. + z(NX_NUMBER): + doc: | + To indicate the relative tip position z between tip and sample. The tip position + can also be varied when the z_controller is not running. + controller_status(NX_BOOLEAN): + doc: | + Status if controller is active. + piezo_material(NXpiezoelectric_material): + exists: optional + doc: | + The material description and properties of the piezoelectric scanner materials. + TEMPERATURE(NXsensor): + exists: optional + doc: | + A group handling the temperature such as cryo, shield and tip. For different + type of temperature sensors repeat this group. + temperature(NX_NUMBER): + exists: optional + unit: NX_TEMPERATURE + doc: | + The temperature of the sample. + CHANNEL_temp(NX_CHAR): + exists: optional + doc: | + The name of the channel to measure the temperature. + temperature_calibration(NXcalibration): + exists: optional + doc: | + Calibration of the temperature measurement. + coefficients(NX_NUMBER): + unit: NX_ANY + doc: | + The coefficients of the calibration. + TEMPERATURE_DATA(NXdata): + exists: optional + doc: | + Data (e.g, record from SPM head temperature) from temperature sensor. + bias_spectroscopy_environment(NXenvironment): + doc: | + To explain bias (sweep measurement) voltage applied to the sample. + (NXbias_spectroscopy): + doc: | + Setup and scan data for continuous measurement of bias-voltage on the subject of experiment + vs tunneling current from probe. + (NXpositioner_spm): + exists: optional + doc: | + The positioner information like the position of the tip, PID loop feedback etc. + z_controller(NXpid): + exists: optional + doc: | + The PID controller information for the z-axis. + z_average_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The average time taken by the z-controller to stabilize the tip. + z_controller_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time taken by the z-controller to measure physical properties. + z_controller_hold(NX_BOOLEAN): + exists: optional + doc: | + The status of the controller to be held on the previous position, before going to the + next scan point or line to measure the physical properties. + record_final_z(NX_BOOLEAN): + exists: optional + doc: | + The status of the controller to record the final z position after the scan. + bias_sweep(NXbias_sweep): + doc: | + The bais voltage sweep is a common technique used on the substance or sample or environment + to study the change in the behavior of the sample or substance or environment due to change + in applied bias voltage. + settling_time(NX_NUMBER): + unit: NX_TIME + doc: | + The time is taken to settle the bias voltage at the desired value. On each sweep usually, the system + takes time to settle the bias voltage at the next value. + scan_region(NXobject): + doc: | + The scan region (phase space or sub-phase space) is the region where the scan is + performed. + scan_offset_bias(NX_NUMBER): + exists: optional + unit: NX_VOLTAGE + doc: | + The offset of the bias voltage for bias sweep. + scan_range_bias(NX_NUMBER): + exists: optional + unit: NX_VOLTAGE + doc: | + The range of the scan is the length of the bias voltage over which the sweep + scan will be performed. + scan_start_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The start of the bias scan voltage. + scan_end_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The end of the bias scan voltage. + linear_sweep(NXobject): + doc: | + The linear sweep is a type of scan where the bias voltage is swept + linearly from the starting voltage to the ending voltage. + scan_points_bias(NX_NUMBER): + doc: | + The number of voltage points the sweep scan to be performed. + step_size_bias(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The step size of the sweep. + The step size is the difference between the two consecutive bias voltage during the sweep. + reset_bias(NX_BOOLEAN): + exists: optional + doc: | + The reset_bias is used to reset the bias voltage to the starting value after a + sweep is completed. + sample_bias_votage(NXsensor): + exists: optional + doc: | + The DC bias voltage that is applied to the sample. + bias_voltage(NX_NUMBER): + unit: NX_VOLTAGE + doc: | + The bias voltage (DC) applied to the sample. + bias_offset(NX_NUMBER): + exists: optional + unit: NX_VOLTAGE + doc: | + Offset value of the bias voltage. + bias_calibration(NXcalibration): + exists: optional + doc: | + Calibration of the bias voltage measurement (V/V). + calibration_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by the calibration to setup to acquire the data for + the calibration. + coefficients(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The coefficients of the calibration. + (NXsample): + exists: optional + doc: | + The sample information. + history(NXhistory): + doc: | + A set of physical processes that occurred to the sample prior/during experiment. + sample_environment(NXenvironment): + exists: optional + doc: | + Information of environment around the sample. + sample_bias_voltage(NXsensor): + doc: | + Link to the sample_bias_voltage sensor under the instrument. + reproducibility_indicators(NXobject): + doc: | + The group of indicators (links to the existing fields in different groups) that measure + the reproducibility of the experiment. + resolution_indicators(NXobject): + doc: | + The group of indicators (links to the existing fields in different groups) that + are used to measure the resolution of the experiment results. + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 1f126060ce5b30d24e89ff097819142f117cad30b93dd02e5ff2823e558173a5 +# +# +# +# +# +# Scanning Probe Microscopy (SPM) is a branch of microscopy that utilizes a physical probe to scan the surface of +# sample and image it at the atomic level. +# +# The application class NXspm is designed as a skeleton and contains common technical concepts +# for specific SPM sub-techniques such as STM, STS, AFM etc. +# +# +# +# +# .. 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 visualised upon entry. +# See https://www.nexusformat.org/2014_How_to_find_default_data.html +# for a summary of the discussion. +# +# +# +# +# Name of the definition that is used for the application. +# +# +# +# +# +# +# +# The technique of the experiment like STM, STS, AFM, etc. +# +# +# +# +# +# +# +# +# +# The mode of the scan. The possible options depend on the type of experiment. +# For example, in STM, the scan mode could be constant height or constant current, +# in AFM, the scan mode could be contact mode, tapping mode or non-contact mode. +# +# +# +# +# The type of the scan. It mainly describes how scan probe moves in the scan region, e.g. +# forward, backward, or both (if scan is repeated). +# +# +# +# +# The identifiers for the experiment which should be unique at least in lab. +# +# +# +# +# The description of the experiment like comments, ontes from from the experiment. +# +# +# +# +# The instrument information. +# +# +# +# The hardware description of the core instrument setup of the experiment. +# Usually, the entire instrument is supplied by a single manufacturer. +# To describe the hardware from any sub-components, use the hardware group of that +# sub-component (child group of the NXinstrument group) group. +# +# +# +# Company name of the manufacturer. +# +# +# +# +# Version or model of the hardware setup provided by the manufacturer. +# +# +# +# If different versions are possible, the value in this field should be made +# specific enough to resolve the version. +# +# +# +# +# +# +# The software description of the core instrument setup of the experiment. +# Usually, the entire instrument is supplied by a single name/manufacturer/model/etc. +# To describe the software from any sub-components, use the software group of that component. +# +# +# +# Company name of the manufacturer. +# +# +# +# +# Version or model of the component named by the manufacturer. +# +# +# +# If different versions are possible, the value in this field should be made +# specific enough to resolve the version. +# +# +# +# +# +# +# The real-time controller information. +# +# +# +# The frequency of the real-time controller system which indicated the number of close-loop process +# (gathering data, process data and update system) control cycles per second. +# +# +# +# +# +# The lock-in amplifier information. +# +# +# +# +# Information of the scan environment. +# +# +# +# Temperature of STM head. Note: At least one field from tip_temp, +# cryo_bottom_temp and cryo_shield_temp must be provided. +# +# +# +# +# Temperature of the cold tail of the cryostat. Note: At least one field from +# tip_temp, cryo_bottom_temp and cryo_shield_temp must be provided. +# +# +# +# +# Temperature of liquid nitrogen shield. Note: At +# least one field from tip_temp, cryo_bottom_temp and cryo_shield_temp. +# +# +# +# +# The name of the scan, mainly lab defined, that helps to differentiate among different +# scans performed in the lab. +# +# +# +# +# This is a link to the current_sensor under the instrument group: +# entry/experiment_instrument/current_sensor. +# +# +# +# +# This is a link to the voltage_sensor under the instrument group: +# entry/experiment_instrument/voltage_sensor. +# +# +# +# +# This is a link to the piezo_sensor under the instrument group: +# entry/experiment_instrument/piezo_sensor. +# +# +# +# +# The scan control information like scan region or phase space, type of scan (e.g. +# mesh, spiral, etc.), and scan speed, etc. This group mainly stores the raw scan +# data. For processed data or final experimental data would go to NXdata group. +# +# +# +# The name of the scan, mainly lab defined, that helps to differentiate among different +# scans performed in lab. This field is intended for several types of scan control +# run under the same environment. +# +# +# +# +# +# +# Information for current sensor. +# +# +# +# An amplifier information for the input signal (e.g. from tip). +# +# +# +# +# +# The sensor information for the voltage device. +# +# +# +# +# +# The piezo sensor refers to the height (or Z) piezo sensor if nothing is +# mentioned along the X and Y directions. +# +# +# +# The x position of the piezo. In STS experiment, the piezo stays fixed at +# x,y and z and the the tunneling current is measured with respect to the +# bias voltage (sweep voltage). +# +# +# +# +# The y position of the piezo. +# +# +# +# +# The z position of the piezo. +# +# +# +# +# The piezo configuration information like piezoelectric calibration and material +# properties. +# +# +# +# Calibration of the piezo device. +# +# +# +# +# +# The positioner information like the position of the tip, the position of the +# sample, PID loop feedback etc. +# +# +# +# The PID controller information for the z-axis. +# +# +# +# To indicate the relative tip position z between tip and sample. The tip position +# can also be varied when the z_controller is not running. +# +# +# +# +# Status if controller is active. +# +# +# +# +# +# +# The material description and properties of the piezoelectric scanner materials. +# +# +# +# +# +# A group handling the temperature such as cryo, shield and tip. For different +# type of temperature sensors repeat this group. +# +# +# +# The temperature of the sample. +# +# +# +# +# The name of the channel to measure the temperature. +# +# +# +# +# Calibration of the temperature measurement. +# +# +# +# The coefficients of the calibration. +# +# +# +# +# +# Data (e.g, record from SPM head temperature) from temperature sensor. +# +# +# +# +# +# To explain bias (sweep measurement) voltage applied to the sample. +# +# +# +# Setup and scan data for continuous measurement of bias-voltage on the subject of experiment +# vs tunneling current from probe. +# +# +# +# The positioner information like the position of the tip, PID loop feedback etc. +# +# +# +# The PID controller information for the z-axis. +# +# +# +# The average time taken by the z-controller to stabilize the tip. +# +# +# +# +# The time taken by the z-controller to measure physical properties. +# +# +# +# +# The status of the controller to be held on the previous position, before going to the +# next scan point or line to measure the physical properties. +# +# +# +# +# The status of the controller to record the final z position after the scan. +# +# +# +# +# +# +# The bais voltage sweep is a common technique used on the substance or sample or environment +# to study the change in the behavior of the sample or substance or environment due to change +# in applied bias voltage. +# +# +# +# The time is taken to settle the bias voltage at the desired value. On each sweep usually, the system +# takes time to settle the bias voltage at the next value. +# +# +# +# +# The scan region (phase space or sub-phase space) is the region where the scan is +# performed. +# +# +# +# The offset of the bias voltage for bias sweep. +# +# +# +# +# The range of the scan is the length of the bias voltage over which the sweep +# scan will be performed. +# +# +# +# +# The start of the bias scan voltage. +# +# +# +# +# The end of the bias scan voltage. +# +# +# +# +# +# The linear sweep is a type of scan where the bias voltage is swept +# linearly from the starting voltage to the ending voltage. +# +# +# +# The number of voltage points the sweep scan to be performed. +# +# +# +# +# The step size of the sweep. +# The step size is the difference between the two consecutive bias voltage during the sweep. +# +# +# +# +# The reset_bias is used to reset the bias voltage to the starting value after a +# sweep is completed. +# +# +# +# +# +# +# +# +# The DC bias voltage that is applied to the sample. +# +# +# +# The bias voltage (DC) applied to the sample. +# +# +# +# +# Offset value of the bias voltage. +# +# +# +# +# Calibration of the bias voltage measurement (V/V). +# +# +# +# The time or period is taken by the calibration to setup to acquire the data for +# the calibration. +# +# +# +# +# The coefficients of the calibration. +# +# +# +# +# +# +# +# The sample information. +# +# +# +# A set of physical processes that occurred to the sample prior/during experiment. +# +# +# +# +# Information of environment around the sample. +# +# +# +# Link to the sample_bias_voltage sensor under the instrument. +# +# +# +# +# +# +# The group of indicators (links to the existing fields in different groups) that measure +# the reproducibility of the experiment. +# +# +# +# +# The group of indicators (links to the existing fields in different groups) that +# are used to measure the resolution of the experiment results. +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXstm.yaml b/contributed_definitions/nyaml/SPM/NXstm.yaml new file mode 100644 index 000000000..467913593 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXstm.yaml @@ -0,0 +1,781 @@ +category: application +doc: | + An application definition to describe Scanning Tunneling Microscopy (STM). + +# https://thesis.library.caltech.edu/1943/4/03chapter3.pdf +# TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and NXafm +type: group +NXstm(NXspm): + (NXentry): + definition: + doc: | + Name of the definition that is used for the application. + enumeration: [NXstm] + scan_mode: + doc: | + The mode of the scan that is performed. Two commonly used ones are constant + height mode and constant current mode. + enumeration: [constant height, constant current] + experiment_instrument(NXinstrument): + doc: | + The group explains the instrumentation of the STM experiment such + as current sensor, lock-in amplifier etc. + lockin_amplifier(NXlockin): + doc: | + The lock-in amplifier information. The device is being used to extract + the very weak signal buried in noisy signals. + modulation_signal_type: + exists: optional + unit: NX_UNITLESS + doc: | + The type of the signal (voltage or current) subject fo modulation. + modulation_frequency(NX_NUMBER): + exists: optional + doc: | + The frequency of the sine modulation that is used to modulate the signal in + lock-in. + scan_environment(NXenvironment): + doc: | + The environment information for stm or sts experiment. + (NXscan_control): + doc: | + The scan control information like scan region or phase space, type of scan + (e.g. mesh, spiral, etc.), and scan speed, etc. + scan_type: + doc: | + The type of scan like mesh, spiral, etc. For STS experiment, the scan type is + usually a single-point scan (trajectory scan). + enumeration: [mesh, trajectory, snake, spiral] + scan_region(NXobject): + doc: | + The region of the scan area. + scan_range(NX_NUMBER): + unit: NX_ANY + doc: | + The range of the scan area. + scan_offset(NX_NUMBER): + unit: NX_ANY + doc: | + The offset of the scan area in 2D (X and Y) space. + scan_angle_N(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + The N (substring) denotes the angle of the scan area with different physical + axes. + mesh_SCAN(NXobject): + doc: | + The scan information for mesh scan type for STM experiment. + scan_speed(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The speed of the scanner or the tip during the scan. + scan_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time taken by the scanner to scan the entire area. + forward_speed_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The N (substring) denotes the forward speed of the scanner. + backward_speed_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The N (substring) denotes the backward speed of the scanner. + SCAN_data(NXdata): + doc: | + The data that comes from scanning the area. + tip_temp_sensor(NXsensor): + exists: optional + doc: | + This group stands for the same concept as + /ENTRY[entry]/experiment_instrument/tip_temperature + cryo_temp_sensor(NXsensor): + exists: optional + doc: | + This group stands for the same concept as + /ENTRY[entry]/experiment_instrument/cryo_temperature + cryo_shield_temp_sensor(NXsensor): + exists: optional + doc: | + This group stands for the same concept as + /ENTRY[entry]/experiment_instrument/cryo_shield_temperature + tip_temp_sensor(NXsensor): + exists: optional + doc: | + The temperature of the tip one of the tip. + cryo_temp_sensor(NXsensor): + exists: optional + doc: | + The temperature of the cryostat. + cryo_shield_temp_sensor(NXsensor): + exists: optional + doc: | + The temperature of the cryo shield. + current_sensor(NXsensor): + doc: | + The sensor information. + current(NX_NUMBER): + unit: NX_CURRENT + doc: | + The tunneling current between tip and sample after + applying bias voltage. + current_offset(NX_NUMBER): + exists: optional + unit: NX_CURRENT + doc: | + Offset value of the current measurement. + current_calibration(NXcalibration): + exists: optional + doc: | + Calibration of the current measurement. + calibration_time(NX_DATE_TIME): + exists: optional + unit: NX_TIME + doc: | + The time or period is taken by the calibration to setup to acquire the data for + the calibration. + coefficients(NX_NUMBER): + unit: NX_ANY + doc: | + The coefficients of the calibration. + (NXamplifier): + exists: optional + doc: | + An amplifier information for the input signal (e.g. from tip). + current_gain(NX_NUMBER): + unit: NX_UNITLESS + doc: | + Proportional relationship between the probe output voltage and the actual + tunneling current when measuring the tunneling current. + bias_spectroscopy_environment(NXenvironment): + exists: optional + doc: | + To explain bias (sweep measurement) voltage applied to the sample. + (NXbias_spectroscopy): + exists: optional + doc: | + Setup and scan data for continuous measurement of bias-voltage on the subject of experiment + vs tunneling current from probe. + Data from from this experiment can also be used to calculate the dI/dV spectra. + piezo_sensor(NXsensor): + doc: | + The sensor information for the piezo device. + x(NX_NUMBER): + unit: NX_LENGTH + doc: | + The x position of the piezo. In STS experiment or at the starting, + the piezo stays fixed at x,y and z and the the tunneling current + is measured with respect to the bias voltage (sweep voltage). + y(NX_NUMBER): + unit: NX_LENGTH + doc: | + The y position of the piezo. + z(NX_NUMBER): + unit: NX_LENGTH + doc: | + The z position of the piezo. + piezo_configuration(NXpiezo_config_spm): + exists: optional + doc: | + The piezo configuration information like piezoelectric device calibration and + material properties. + calibration(NXcalibration): + exists: optional + doc: | + Calibration of the piezo device. + 2nd_order_correction_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The N (substring) denotes X and Y directions. The 2nd order piezo + compensate the error for that axis. The following equation shows the + interpretation of the 2nd order correction parameters, + For the X-piezo: "Ux = 1/cx · X + cxx · X2" + with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" + where cx is the calibration of the piezo X and cxx is the 2nd order + correction. The unit for such the second-order correction is (V/m^2). + calibration_type(NX_CHAR): + exists: optional + doc: | + The name of the calibration type, sometimes it is called + e.g active calibration, passive calibration. + calibration_coefficient_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + The calibration coefficient is the ratio of the actual distance moved by the piezo to + the voltage applied to the piezo. It is also called first-order correction. + drift_N(NX_NUMBER): + exists: optional + unit: NX_ANY + doc: | + Set up the settings to enable or disable the drift compensation. + drift_correction_status(NX_BOOLEAN): + exists: optional + doc: | + Whether the drift has been corrected in case there is a deviation in the + drift. + tilt_N(NX_NUMBER): + exists: optional + unit: NX_ANGLE + doc: | + The N (substring) denotes X and Y directions, and for both directions + tilt needs to be adjusted according to the actual surface. + hv_gain_N(NX_NUMBER): + doc: | + The N (substring) denotes X or Y or Z. In some systems, + there is an HV gain readout feature. For these systems, + the HV gain should be automatically adjusted whenever + the gain is changed at the high voltage amplifier. + (NXpositioner_spm): + doc: | + The positioner information like the position of the tip, + PID loop feedback etc. + z_controller(NXpid): + doc: | + The PID controller information for the z-axis. + z(NX_NUMBER): + doc: | + To indicate the relative tip position z between tip and sample. The tip position + can also be varied when the z_controller is not running. + set_point(NX_NUMBER): + unit: NX_ANY + doc: | + The set point for the z-controller to be fixed and the target value could be + height or current. + controller_name: + exists: recommended + doc: | + The name of the controller or channels. + controller_status(NX_BOOLEAN): + exists: recommended + doc: | + The status of the controller to say was PID has been used or not. + tip_lift(NX_NUMBER): + exists: optional + unit: NX_LENGTH + doc: | + If the tip is lifted from the stable point. + switch_off_delay: + exists: optional + unit: NX_TIME + doc: | + The switch-off delay of the controller from its stable point. + reproducibility_indicators(NXobject): + doc: | + The group's concepts hold the link to the related concepts that define the + reproducibility of the STM experiment. + current(NX_NUMBER): + exists: optional + doc: | + The tunneling current between tip and sample after application of bias voltage. + link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current + current_offset(NX_NUMBER): + exists: optional + doc: | + The tunneling current between tip and sample after application of bias voltage. + link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current + current_gain(NX_NUMBER): + exists: optional + doc: | + Proportional relationship between the probe output voltage and the actual + tunneling current when measuring the tunneling current. + link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/amplifier/current_gain + bias_sweep(NXobject): + exists: optional + doc: | + Link to target: + /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] + modulation_signal_type: + exists: optional + doc: | + This is the signal on which the modulation voltage or current will be added. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type + modulation_frequency(NX_NUMBER): + exists: optional + doc: | + The frequency of the sine modulation that is used to modulate the signal in lock-in. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency + resolution_indicators(NXobject): + doc: | + The group's concepts hold the link to the related concepts that define the + resolution of the STM experiment. + stm_head_temp(NXsensor): + doc: | + Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp + cryo_bottom_temp(NXsensor): + doc: | + Link to target: + /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp + cryo_shield_temp(NXsensor): + doc: | + Link to target: + /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature + bias_sweep(NXobject): + doc: | + Link to target: + /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] + modulation_signal_type: + exists: optional + doc: | + This is the signal on which the modulation voltage or current will be added. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type + modulation_signal_type + modulation_frequency(NX_NUMBER): + exists: optional + doc: | + The frequency of the sine modulation that is used to modulate the signal in lock-in. + link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# dc264bb9af726dabff6ffe26896197ca9b53ea2285ffbdbcf0337aa92eba7b6b +# +# +# +# +# +# +# An application definition to describe Scanning Tunneling Microscopy (STM). +# +# +# +# +# Name of the definition that is used for the application. +# +# +# +# +# +# +# +# The mode of the scan that is performed. Two commonly used ones are constant +# height mode and constant current mode. +# +# +# +# +# +# +# +# +# The group explains the instrumentation of the STM experiment such +# as current sensor, lock-in amplifier etc. +# +# +# +# The lock-in amplifier information. The device is being used to extract +# the very weak signal buried in noisy signals. +# +# +# +# The type of the signal (voltage or current) subject fo modulation. +# +# +# +# +# The frequency of the sine modulation that is used to modulate the signal in +# lock-in. +# +# +# +# +# +# The environment information for stm or sts experiment. +# +# +# +# The scan control information like scan region or phase space, type of scan +# (e.g. mesh, spiral, etc.), and scan speed, etc. +# +# +# +# The type of scan like mesh, spiral, etc. For STS experiment, the scan type is +# usually a single-point scan (trajectory scan). +# +# +# +# +# +# +# +# +# +# +# The region of the scan area. +# +# +# +# The range of the scan area. +# +# +# +# +# The offset of the scan area in 2D (X and Y) space. +# +# +# +# +# The N (substring) denotes the angle of the scan area with different physical +# axes. +# +# +# +# +# +# The scan information for mesh scan type for STM experiment. +# +# +# +# The speed of the scanner or the tip during the scan. +# +# +# +# +# The time taken by the scanner to scan the entire area. +# +# +# +# +# The N (substring) denotes the forward speed of the scanner. +# +# +# +# +# The N (substring) denotes the backward speed of the scanner. +# +# +# +# +# The data that comes from scanning the area. +# +# +# +# +# +# +# This group stands for the same concept as +# /ENTRY[entry]/experiment_instrument/tip_temperature +# +# +# +# +# This group stands for the same concept as +# /ENTRY[entry]/experiment_instrument/cryo_temperature +# +# +# +# +# This group stands for the same concept as +# /ENTRY[entry]/experiment_instrument/cryo_shield_temperature +# +# +# +# +# +# The temperature of the tip one of the tip. +# +# +# +# +# The temperature of the cryostat. +# +# +# +# +# The temperature of the cryo shield. +# +# +# +# +# The sensor information. +# +# +# +# The tunneling current between tip and sample after +# applying bias voltage. +# +# +# +# +# Offset value of the current measurement. +# +# +# +# +# Calibration of the current measurement. +# +# +# +# The time or period is taken by the calibration to setup to acquire the data for +# the calibration. +# +# +# +# +# The coefficients of the calibration. +# +# +# +# +# +# An amplifier information for the input signal (e.g. from tip). +# +# +# +# Proportional relationship between the probe output voltage and the actual +# tunneling current when measuring the tunneling current. +# +# +# +# +# +# +# To explain bias (sweep measurement) voltage applied to the sample. +# +# +# +# Setup and scan data for continuous measurement of bias-voltage on the subject of experiment +# vs tunneling current from probe. +# Data from from this experiment can also be used to calculate the dI/dV spectra. +# +# +# +# +# +# The sensor information for the piezo device. +# +# +# +# The x position of the piezo. In STS experiment or at the starting, +# the piezo stays fixed at x,y and z and the the tunneling current +# is measured with respect to the bias voltage (sweep voltage). +# +# +# +# +# The y position of the piezo. +# +# +# +# +# The z position of the piezo. +# +# +# +# +# The piezo configuration information like piezoelectric device calibration and +# material properties. +# +# +# +# Calibration of the piezo device. +# +# +# +# The N (substring) denotes X and Y directions. The 2nd order piezo +# compensate the error for that axis. The following equation shows the +# interpretation of the 2nd order correction parameters, +# For the X-piezo: "Ux = 1/cx · X + cxx · X2" +# with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" +# where cx is the calibration of the piezo X and cxx is the 2nd order +# correction. The unit for such the second-order correction is (V/m^2). +# +# +# +# +# The name of the calibration type, sometimes it is called +# e.g active calibration, passive calibration. +# +# +# +# +# The calibration coefficient is the ratio of the actual distance moved by the piezo to +# the voltage applied to the piezo. It is also called first-order correction. +# +# +# +# +# Set up the settings to enable or disable the drift compensation. +# +# +# +# +# Whether the drift has been corrected in case there is a deviation in the +# drift. +# +# +# +# +# The N (substring) denotes X and Y directions, and for both directions +# tilt needs to be adjusted according to the actual surface. +# +# +# +# +# The N (substring) denotes X or Y or Z. In some systems, +# there is an HV gain readout feature. For these systems, +# the HV gain should be automatically adjusted whenever +# the gain is changed at the high voltage amplifier. +# +# +# +# +# +# +# The positioner information like the position of the tip, +# PID loop feedback etc. +# +# +# +# The PID controller information for the z-axis. +# +# +# +# To indicate the relative tip position z between tip and sample. The tip position +# can also be varied when the z_controller is not running. +# +# +# +# +# The set point for the z-controller to be fixed and the target value could be +# height or current. +# +# +# +# +# The name of the controller or channels. +# +# +# +# +# The status of the controller to say was PID has been used or not. +# +# +# +# +# If the tip is lifted from the stable point. +# +# +# +# +# The switch-off delay of the controller from its stable point. +# +# +# +# +# +# +# +# +# The group's concepts hold the link to the related concepts that define the +# reproducibility of the STM experiment. +# +# +# +# The tunneling current between tip and sample after application of bias voltage. +# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current +# +# +# +# +# The tunneling current between tip and sample after application of bias voltage. +# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current +# +# +# +# +# Proportional relationship between the probe output voltage and the actual +# tunneling current when measuring the tunneling current. +# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/amplifier/current_gain +# +# +# +# +# Link to target: +# /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] +# +# +# +# +# This is the signal on which the modulation voltage or current will be added. +# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type +# +# +# +# +# The frequency of the sine modulation that is used to modulate the signal in lock-in. +# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency +# +# +# +# +# +# The group's concepts hold the link to the related concepts that define the +# resolution of the STM experiment. +# +# +# +# Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp +# +# +# +# +# Link to target: +# /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp +# +# +# +# +# Link to target: +# /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature +# +# +# +# +# Link to target: +# /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] +# +# +# +# +# This is the signal on which the modulation voltage or current will be added. +# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type +# modulation_signal_type +# +# +# +# +# The frequency of the sine modulation that is used to modulate the signal in lock-in. +# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency +# +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/NXsts.yaml b/contributed_definitions/nyaml/SPM/NXsts.yaml new file mode 100644 index 000000000..7c6cafadc --- /dev/null +++ b/contributed_definitions/nyaml/SPM/NXsts.yaml @@ -0,0 +1,63 @@ +category: application +doc: | + An application definition to describe Scanning Tunneling Spectroscopy (STS). + + The NXsts is duplication of NXspm and is considered as a proxy application definition + for Scanning Tunneling Spectroscopy (STS) technique. + +# https://thesis.library.caltech.edu/1943/4/03chapter3.pdf +# TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and NXafm +type: group +NXsts(NXspm): + (NXentry): + definition: + doc: | + Name of the definition that is used for the application. + enumeration: [NXsts] + +# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ +# 3c249fd275af32b4b2747ed7356a3175a5edca21b88516b1662e38723d33d052 +# +# +# +# +# +# +# An application definition to describe Scanning Tunneling Spectroscopy (STS). +# +# The NXsts is duplication of NXspm and is considered as a proxy application definition +# for Scanning Tunneling Spectroscopy (STS) technique. +# +# +# +# +# Name of the definition that is used for the application. +# +# +# +# +# +# +# diff --git a/contributed_definitions/nyaml/SPM/README.md b/contributed_definitions/nyaml/SPM/README.md new file mode 100644 index 000000000..12bdb985c --- /dev/null +++ b/contributed_definitions/nyaml/SPM/README.md @@ -0,0 +1,82 @@ +# Application Definition for SPM Domain + +# General SPM Base Class + + + id1 + id1 --> id2 + id1 --> id3 + id1 --> id4 + id1 --> id5 + id1 --> id6 + + id2 --> id13 + id2 --> id14 + id2 --> id16 + + id13 --> id21 + id13 --> id22 + id13 --> id23 + id13 --> id24 + +``` + +## STM App Def +```mermaid +graph TD; + subgraph STM + %%hh%% + id1["NXstm(NXspm)"] + id2["ENTRY"] + end + subgraph NXinstrument + id6["(NXinstrument)"] + end + + subgraph NXenvironment + %%hh%% + id12["sweep_control"] + end + + + id1 --> id2 + + id2 --> id6 + id6 --> id12 + +``` +--> + +## Revised App Def and Base Class for SPM Domain +1. SPM, STM, AFM, STS +2. Lockin, Bias_spectorscopy, Bias_sweep, Scan_control, Positioner_spm, +3. piezoelectric_material, piezo_config_spm, rcs, cantilever_spm + diff --git a/contributed_definitions/nyaml/SPM/nyaml2nxdl.sh b/contributed_definitions/nyaml/SPM/nyaml2nxdl.sh new file mode 100644 index 000000000..6701c8510 --- /dev/null +++ b/contributed_definitions/nyaml/SPM/nyaml2nxdl.sh @@ -0,0 +1,39 @@ +#!/bin/bash + + +#Starting line of a bash script + +set -e +for file in *; do + if [[ $file == *.yaml ]]; then + echo "Converting $file to NXDL" + nyaml2nxdl $file + fi +done + + +for file in *; do + if [[ $file == *.nxdl.xml ]]; then + echo "Converting $file to NYAML" + nyaml2nxdl $file + mv $file ../../ + fi +done + +for file in *; do + if [[ $file == *_parsed.yaml ]]; then + mv $file $(echo $file | sed 's/_parsed//') + fi +done + +for file in *; do + if [[ $file == *.yaml ]]; then + cp $file ../ + fi +done + +rm ../../NXbias_spectroscopy_old.nxdl.xml +rm ../../NXspm_v1_backup.nxdl.xml +rm ../NXbias_spectroscopy_old.yaml +rm ../NXspm_v1_backup.yaml + From 4937c978e47c2b76a1f8adb828b13d941521b97e Mon Sep 17 00:00:00 2001 From: RubelMozumder <32923026+RubelMozumder@users.noreply.github.com> Date: Wed, 27 Nov 2024 14:04:52 +0100 Subject: [PATCH 4/8] Review from Tamash (#303) * space. * Modified some descriptions trying to clarify the meaning of the elements. Please check them! Modified:Update NXafm.yaml * NXbias_spectroscopy.yaml * Update NXscan.yaml I just added a slight clarification what we mean under the word scan. However, it makes me wonder whether this should be more a base class than an application definition. And whether the control parameter set should be only positional. So, I have some doubts here... * Update NXcantilever_spm.yaml added some explanation and clarification to the cantilever properties and what are the driving details of cantilever oscillations * Update NXcircuit.yaml minor changes to allow for multichannel boards, e.g. 4 or 16 channel A/D converters or amplifiers * Update NXlockin.yaml Minor changes in documentation, removed some redundant information on the demodulated signal. * Update NXpiezo_config_spm.yaml minimal changes in docstrings * Update NXpositioner_spm.yaml minor correction, the Z positioner has no idea where the sample is, so sample - probe distance is unknown at this point * Update NXscan_control.yaml some minor comment changes * Generated nxdl files. * Revert "Update NXscan.yaml" This reverts commit 3f376f0130417d179f46f9a6f377b68193071c00. This file is covered by #304 https://github.com/FAIRmat-NFDI/nexus_definitions/pull/304 --------- Co-authored-by: T. Haraszti Rename lockin_current_flip_number to loockin_current_flip_sign. add NXidentifier in NXsensor_scan. Delete unnecessary file. Revert "Delete unnecessary file." This reverts commit 8c6b03cba1f2308cae003126ee6857285d076b37. Preparation for example in nomad. Corrected typo in heterodyne word Update NXlockin.yaml Minor fix. --- contributed_definitions/NXafm.nxdl.xml | 27 +++- .../NXbias_spectroscopy.nxdl.xml | 58 +++++-- .../NXcalibration.nxdl.xml | 4 +- .../NXcantilever_spm.nxdl.xml | 28 +++- contributed_definitions/NXcircuit.nxdl.xml | 33 +++- contributed_definitions/NXlockin.nxdl.xml | 40 ++--- .../NXpiezo_config_spm.nxdl.xml | 12 +- .../NXpiezoelectric_material.nxdl.xml | 10 ++ .../NXpositioner_spm.nxdl.xml | 6 +- .../NXscan_control.nxdl.xml | 16 +- .../NXsensor_scan.nxdl.xml | 23 ++- contributed_definitions/NXspm.nxdl.xml | 21 +-- contributed_definitions/NXstm.nxdl.xml | 82 +--------- contributed_definitions/nyaml/NXafm.yaml | 57 +++++-- .../nyaml/NXbias_spectroscopy.yaml | 122 ++++++++++---- .../nyaml/NXcalibration.yaml | 10 +- .../nyaml/NXcantilever_spm.yaml | 52 +++++- contributed_definitions/nyaml/NXcircuit.yaml | 65 ++++++-- contributed_definitions/nyaml/NXlockin.yaml | 78 ++++----- .../nyaml/NXpiezo_config_spm.yaml | 24 ++- .../nyaml/NXpiezoelectric_material.yaml | 18 ++- .../nyaml/NXpositioner_spm.yaml | 14 +- .../nyaml/NXscan_control.yaml | 34 ++-- .../nyaml/NXsensor_scan.yaml | 46 ++++-- contributed_definitions/nyaml/NXspm.yaml | 41 ++--- contributed_definitions/nyaml/NXstm.yaml | 149 ++---------------- contributed_definitions/nyaml/README.md | 6 +- contributed_definitions/nyaml/SPM/NXafm.yaml | 57 +++++-- .../nyaml/SPM/NXbias_spectroscopy.yaml | 122 ++++++++++---- .../nyaml/SPM/NXcalibration.yaml | 10 +- .../nyaml/SPM/NXcantilever_spm.yaml | 52 +++++- .../nyaml/SPM/NXcircuit.yaml | 65 ++++++-- .../nyaml/SPM/NXlockin.yaml | 78 ++++----- .../nyaml/SPM/NXpiezo_config_spm.yaml | 24 ++- .../nyaml/SPM/NXpiezoelectric_material.yaml | 18 ++- .../nyaml/SPM/NXpositioner_spm.yaml | 14 +- .../nyaml/SPM/NXscan_control.yaml | 34 ++-- .../nyaml/SPM/NXsensor_scan.yaml | 46 ++++-- contributed_definitions/nyaml/SPM/NXspm.yaml | 41 ++--- contributed_definitions/nyaml/SPM/NXstm.yaml | 149 ++---------------- contributed_definitions/nyaml/SPM/README.md | 2 + 41 files changed, 966 insertions(+), 822 deletions(-) diff --git a/contributed_definitions/NXafm.nxdl.xml b/contributed_definitions/NXafm.nxdl.xml index 2df73e8cc..5a0e8f5fd 100644 --- a/contributed_definitions/NXafm.nxdl.xml +++ b/contributed_definitions/NXafm.nxdl.xml @@ -23,7 +23,7 @@ --> - An application definition to describe Atomic Force Microscopy (AFM) scanning + An application definition to describe atomic force microscopy (AFM) scanning technique. @@ -43,6 +43,8 @@ + + @@ -52,20 +54,33 @@ - The photo detector instrument information. + Information about the quadrant photodiode deflection detector. The cantilever information. + + Generally speaking, the cantilever resembles a leaf spring, which behaves as a simple harmonic oscillator. + When the probe (tip or particle) on the end of the cantilever is close to the surface of the sample, + an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. + The detector (typically a light pointer hitting a quadrant photodiode) measures this deformation and, therefore, + the force acting on the cantilever. + In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting + on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of + this loop controls the vertical position of the cantilever. - Generally speaking, the cantilever resembles a simple harmonic oscillator. - When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. - In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. + When a cantilever is oscillated close to its resonance, this describes the oscillator properties. + + A cantilever can be used in direct contact mode to detect interaction forces or oscillated close to its + resonance frequency. Changes in the oscillation amplitude, phase (between oscillated tail and moving tip) + or resonance frequency are very sensitive to changes in the interction potential field, giving rise of + various measurement modes, such as non-contact or intermittent-contact (tapping) modes. + The threshold voltage for oscillator excitation. @@ -141,7 +156,7 @@ - The positioner information like the position of the tip, the position of the + The positioner information like the position of the end of the cantilever, the position of the sample, PID loop feedback etc. diff --git a/contributed_definitions/NXbias_spectroscopy.nxdl.xml b/contributed_definitions/NXbias_spectroscopy.nxdl.xml index ab7c6ddd5..c67fcb6d6 100644 --- a/contributed_definitions/NXbias_spectroscopy.nxdl.xml +++ b/contributed_definitions/NXbias_spectroscopy.nxdl.xml @@ -25,14 +25,19 @@ A base class for bias spectroscopy to describe the change in the physical properties of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. + + In these experiments an electric potential is applied between the (conductive) sample and the probe + (tip), and the physical properties (e.g. tunnelling current) is measured as the function of this + potential. The potential is varied in so-called voltage sweeps and the corresponding properties are + recorded accordingly. The measurement of the I(V) curve can come in two ways: - 1. Constant Spacing: The bias voltage is swept from the start to the end with a constant - spacing between the tip and surface. - 2. Variadic Spacing: The bias voltage is swept from the start to the end in a discretized + 1. Constant spacing: The bias voltage is swept from the start to the end with a constant spacing between the tip and surface. + 2. Variable spacing: The bias voltage is swept from the start to the end in a discretized + spacing between the tip and surface. (Either an array of voltages, or the steps are defined). @@ -41,33 +46,40 @@ - The pid positioner information while running bias voltage-tunneling current - measurement. + The PID (proportional, integral, differential feedback system) positioner information while running + bias voltage-tunneling current measurement. + + These components position the probe relative to the sample, thus help obtaining maps of the data + across the sample surface. - The z-offset is a starting tip position before the sweep starts. + The z-offset is a starting tip position before the sweep starts (typically the position of a + piezo element). + - + The time or period is taken by a bias sweep to acquire the data for - a single bias sweep point. + a single bias sweep point (when the given point or whole sweep is started.). - + The time or period is taken by a bias sweep to be displayed. - + The time or period is taken by the circuit to measure a full bias sweep voltage or - bias current. + bias current. (duration of the measurement) + The time or period is taken by the circuit to indicate the bias sweep voltage @@ -80,9 +92,17 @@ The bias sweep information. + - The type of scan like mesh, spiral, etc. For STS experiment, the scan type is - usually a single-point scan (trajectory scan). + The type of scan like mesh, spiral, etc. + + This combines not only how the voltages are changed, but how the voltage values are + correlated to a position across the sample surface, measuring sweeps are each spatial + coordinate or mapping the response at constant voltage, etc. + For STS experiment, the scan type is usually a single-point scan (trajectory scan). @@ -93,14 +113,14 @@ The number of sweeps taken during the bias spectroscopy. - + The initial time is taken to settle the bias voltage at the desired value. On each sweep usually, the system takes time to settle to the bias voltage at the next value. - + The time is taken to settle the bias voltage at the desired value. The time (at the last sweep) to settle for the last value of the sweep. @@ -118,7 +138,7 @@ The z position after the sweeps are done. - + The total time needed for the entire voltage sweep. @@ -145,15 +165,19 @@ + The linear scan information for scanning of a smaple. + + In this scan type the probe is scanned with a constant velocity across the surface, + and parameters are measured along the line. The speed of the scanner or the probe during the scan. - + The time taken by the scanner to scan the entire area. diff --git a/contributed_definitions/NXcalibration.nxdl.xml b/contributed_definitions/NXcalibration.nxdl.xml index a0284e350..782a3e457 100644 --- a/contributed_definitions/NXcalibration.nxdl.xml +++ b/contributed_definitions/NXcalibration.nxdl.xml @@ -50,12 +50,12 @@ A description of the procedures employed. - + The start time of the calibration. - + The end time of the calibration. diff --git a/contributed_definitions/NXcantilever_spm.nxdl.xml b/contributed_definitions/NXcantilever_spm.nxdl.xml index bdcb1b367..e6487341b 100644 --- a/contributed_definitions/NXcantilever_spm.nxdl.xml +++ b/contributed_definitions/NXcantilever_spm.nxdl.xml @@ -31,6 +31,7 @@ Generally speaking, the cantilever resembles a simple harmonic oscillator. When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. + This part describes the oscillator driving the oscillations of a cantilever in an AFM or other experiment. @@ -109,7 +110,7 @@ The configuration information of the cantilever such as calibration information, - material properties, etc. + material properties, size, resonance, etc. @@ -121,6 +122,31 @@ The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. + + + The shape of the cantilever as a general text, such as A-shape, beam, or arrow. + + + + + Nominal length between base and end of the cantilever in micrometers. + + + + + Nominal width of the cantilever in microns. + + + + + Nominal thickness of the cantilever in microns. + + + + + Nominal free resonance frequency of the cantilever in air, in kHz. + + The calibration information of the cantilever. diff --git a/contributed_definitions/NXcircuit.nxdl.xml b/contributed_definitions/NXcircuit.nxdl.xml index 5213107fb..6865bf8ec 100644 --- a/contributed_definitions/NXcircuit.nxdl.xml +++ b/contributed_definitions/NXcircuit.nxdl.xml @@ -22,13 +22,29 @@ # For further information, see http://www.nexusformat.org --> + + + Constant to be used in the definition: the number of channels of the + circuit board. + + + + number of channels of the circuit board. + + + Application definition for circuit devices. + + Electronic circuits are hardware components connecting several electronic components to achieve + specific functionality, e.g. amplifying a voltage or convert a voltage to binary numbers, etc. - Hardware where the circuit is implanted; includes hardware manufacturers and - type + Hardware where the circuit is implanted; includes information about the hardware manufacturers and + type (e.g. part number) + All the elements below may be single numbers of an array of values with length N_channel + describing multiple input and output channels. @@ -55,11 +71,15 @@ digital, mixed-signal. + - The operating frequency range of the circuit. + The operating frequency of the circuit, see also bandwidth below, which is possibly + centered around this frequency. However, not necessarily (e.g. running a 100 kHz bandwidth + amplifier at low, audio frequencies 1 - 20,000 Hz) + Input impedance of the circuit. @@ -78,13 +98,12 @@ - Noise level (in current or voltage) in the circuit. + RMS noise level (in current or voltage) in the circuit in voltage or current. - If circuit handles AC current or signal it may have a band Bandwidth of the circuit to be - responded. + The bandwidth of the frequency response of the circuit. @@ -104,7 +123,7 @@ - Number of output channels collected to this circuit. + Number of output channels collected to this circuit. Most probably N_channel. diff --git a/contributed_definitions/NXlockin.nxdl.xml b/contributed_definitions/NXlockin.nxdl.xml index 2941aee35..06c656d9d 100644 --- a/contributed_definitions/NXlockin.nxdl.xml +++ b/contributed_definitions/NXlockin.nxdl.xml @@ -27,13 +27,14 @@ The lock-in amplifier information: the device is being used to extract a (potentially) very weak input signal buried in the noisy background, where the input signal has - the same frequency (or its harmonic) as a known reference signal. Additionally, - the phase shift between the input signal and the reference signal is measured. + the same frequency (or its harmonic) as a known reference signal, using heterodyne + detection. + This method extracts the amplitude and phase shift of the current signal to the reference. The reference signal might be created by a generator built-in into the lock-in amplifier. - Hardware manufacturers and type of lock-in amplifier. + Hardware manufacturers and type (product number) of lock-in amplifier. @@ -58,16 +59,19 @@ usually applied to a sample and used to create a reference signal for the detection of the input signal - + - The number that defines the sign of the lock-in current. The calibration procedure - with retracted tip is normally performed to compensate for the signal phase delay + The sign (1 or -1) that defines the sign of the lock-in current. + The calibration procedure with retracted tip is normally performed to compensate for the signal phase delay in SPM. The procedure yields two possible solutions, this number should be equal - to 1 or -1 depending on which solution is chosen. + to 1 or -1 depending on which solution is chosen (this concept mainly used in STS experiments, + e.g. in Nanonis machine). - + Amplitude of the reference signal for the lock-in amplifier. @@ -80,14 +84,12 @@ - Phase of the reference signal for the lock-in amplifier. + Phase of the reference signal set in the lock-in amplifier. - The modulated output signal will be demodulated, in order to determine the amplitude - and phase at the frequency set in the Frequency field or harmonics, such as current, - bias, et.al. + Type of the demodulated signal, current | voltage. @@ -107,23 +109,11 @@ The amplitude of the demodulated signal. - - - The bandwidth of the modulated signal that can be applied in amplitude - demodulation mechanism. - - The phase of the demodulated signal. - - - The bandwidth of the modulated signal that can be applied in phase demodulation - mechanism. - - List of the demodulator channels. @@ -157,7 +147,7 @@ - Reference phase of reference signal with respect to the demodulated signal + An extra reference phase offset of reference signal with respect to the demodulated signal (foreach Channels). diff --git a/contributed_definitions/NXpiezo_config_spm.nxdl.xml b/contributed_definitions/NXpiezo_config_spm.nxdl.xml index dee9b34cf..46666150e 100644 --- a/contributed_definitions/NXpiezo_config_spm.nxdl.xml +++ b/contributed_definitions/NXpiezo_config_spm.nxdl.xml @@ -25,10 +25,11 @@ Discussion: No need to create this base class rather we can define in spm application definition.--> - A base class describing piezo settings for scanning probe microscopy. + A base class describing piezo actuator settings for scanning probe microscopy. - The piezoelectric material of SPM actuators gets deformed due to the applied electric field. - Description below shows calibration coefficients and other configuration parameters of the piezo actuators. + Piezoelectric actuators work utilizing the inverse-piezoelectric effect, when a voltage + is applied on the material and it deforms proportional to the applied voltage. + Description below shows calibration coefficients and other configuration parameters of open loop piezo actuators (that is actuators without capacitive sensor feedback systems). @@ -106,6 +107,11 @@ Discussion: No need to create this base class rather we can define in spm applic such the second-order correction is (V/m^2). + + + The drift correction status (true / false) in calibration step of piezo. + + The N (substring) denotes X, Y and Z directions. Define the diff --git a/contributed_definitions/NXpiezoelectric_material.nxdl.xml b/contributed_definitions/NXpiezoelectric_material.nxdl.xml index 4bf1be011..6677f0db7 100644 --- a/contributed_definitions/NXpiezoelectric_material.nxdl.xml +++ b/contributed_definitions/NXpiezoelectric_material.nxdl.xml @@ -37,6 +37,16 @@ (PZTs). + + + The identifier of the piezo material. + + + + The identifier of the piezo material. + + + The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. diff --git a/contributed_definitions/NXpositioner_spm.nxdl.xml b/contributed_definitions/NXpositioner_spm.nxdl.xml index e0ed367c6..3048b7c96 100644 --- a/contributed_definitions/NXpositioner_spm.nxdl.xml +++ b/contributed_definitions/NXpositioner_spm.nxdl.xml @@ -24,7 +24,7 @@ Extending positioner from NXpositioner to maintain a measurement signal through - a feedback loop. + a feedback loop, specialized for scanning probe microscopy applications. @@ -47,8 +47,8 @@ - Indicate the tip position Z between tip and sample. The tip position can also be varied when - the controller is not running. This is the final position after the tip reaches an equilibrium state. + Indicate the tip position Z. The tip position can also be varied when the controller is not running. + This is the final position after the tip reaches an equilibrium state. diff --git a/contributed_definitions/NXscan_control.nxdl.xml b/contributed_definitions/NXscan_control.nxdl.xml index 8ecd4a67e..015c240a7 100644 --- a/contributed_definitions/NXscan_control.nxdl.xml +++ b/contributed_definitions/NXscan_control.nxdl.xml @@ -82,8 +82,7 @@ - This group specifies whether there is any movement when a data point is - measured. + This strig describes how the scan was performed. @@ -99,9 +98,9 @@ - The offset of the scan region from the origin along the specific scan axis. + The offset of center of the scan region from the origin along the specific scan axis. - 'N' denotes the name of the specific scan axis. + 'N' denotes the name of the specific scan axis. (Offset, start and end positions are related) @@ -145,7 +144,8 @@ - Define the scan speed in the forward direction along the axis. + Define the scan speed in the forward direction along the axis if forward and backward + speeds below are not specified. If the scan goes in the negative direction, the speed should be negative. @@ -181,7 +181,8 @@ - The number of steps the probe jumps over the scan steps or points. + The number of steps the probe jumps over the scan steps or points. This describes when not + every point from the scan_points is measured along an axis. Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). @@ -245,7 +246,8 @@ - Define the direction of the spiral scan. (e.g. clockwise, anticlockwise) + Define the direction of the spiral scan. (e.g. clockwise, anticlockwise from looking back + along the surface normal) diff --git a/contributed_definitions/NXsensor_scan.nxdl.xml b/contributed_definitions/NXsensor_scan.nxdl.xml index e884a399f..472d047e8 100644 --- a/contributed_definitions/NXsensor_scan.nxdl.xml +++ b/contributed_definitions/NXsensor_scan.nxdl.xml @@ -39,6 +39,19 @@ with an UTC offset. + + + .. 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 visualised upon entry. + See https://www.nexusformat.org/2014_How_to_find_default_data.html + for a summary of the discussion. + + @@ -52,15 +65,15 @@ (such as temperature) or instrument-generated unique identifier. - + The unique identifier for the collection. The identifier is used to group a number of the experiments run upon the same setup and/or same sample. - + - - + + Define the program that was used to generate the results file(s) @@ -183,7 +196,7 @@ - + ISO8601 datum when calibration was last performed before this measurement. UTC offset should be specified. diff --git a/contributed_definitions/NXspm.nxdl.xml b/contributed_definitions/NXspm.nxdl.xml index 0afdf28ab..079df9929 100644 --- a/contributed_definitions/NXspm.nxdl.xml +++ b/contributed_definitions/NXspm.nxdl.xml @@ -30,19 +30,6 @@ for specific SPM sub-techniques such as STM, STS, AFM etc. - - - .. 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 visualised upon entry. - See https://www.nexusformat.org/2014_How_to_find_default_data.html - for a summary of the discussion. - - Name of the definition that is used for the application. @@ -337,12 +324,12 @@ The PID controller information for the z-axis. - + The average time taken by the z-controller to stabilize the tip. - + The time taken by the z-controller to measure physical properties. @@ -443,7 +430,7 @@ Calibration of the bias voltage measurement (V/V). - + The time or period is taken by the calibration to setup to acquire the data for the calibration. @@ -483,7 +470,7 @@ the reproducibility of the experiment. - + The group of indicators (links to the existing fields in different groups) that are used to measure the resolution of the experiment results. diff --git a/contributed_definitions/NXstm.nxdl.xml b/contributed_definitions/NXstm.nxdl.xml index 741cfb042..eb8bbb85d 100644 --- a/contributed_definitions/NXstm.nxdl.xml +++ b/contributed_definitions/NXstm.nxdl.xml @@ -90,57 +90,6 @@ TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and - - - The region of the scan area. - - - - The range of the scan area. - - - - - The offset of the scan area in 2D (X and Y) space. - - - - - The N (substring) denotes the angle of the scan area with different physical - axes. - - - - - - The scan information for mesh scan type for STM experiment. - - - - The speed of the scanner or the tip during the scan. - - - - - The time taken by the scanner to scan the entire area. - - - - - The N (substring) denotes the forward speed of the scanner. - - - - - The N (substring) denotes the backward speed of the scanner. - - - - - The data that comes from scanning the area. - - - @@ -195,7 +144,7 @@ TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and Calibration of the current measurement. - + The time or period is taken by the calibration to setup to acquire the data for the calibration. @@ -235,23 +184,6 @@ TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and The sensor information for the piezo device. - - - The x position of the piezo. In STS experiment or at the starting, - the piezo stays fixed at x,y and z and the the tunneling current - is measured with respect to the bias voltage (sweep voltage). - - - - - The y position of the piezo. - - - - - The z position of the piezo. - - The piezo configuration information like piezoelectric device calibration and @@ -356,7 +288,7 @@ TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and - + The group's concepts hold the link to the related concepts that define the reproducibility of the STM experiment. @@ -399,29 +331,29 @@ TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and - + The group's concepts hold the link to the related concepts that define the resolution of the STM experiment. - + Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp - + Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp - + Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature - + Link to target: /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] diff --git a/contributed_definitions/nyaml/NXafm.yaml b/contributed_definitions/nyaml/NXafm.yaml index 53f4bfe30..dcb92f282 100644 --- a/contributed_definitions/nyaml/NXafm.yaml +++ b/contributed_definitions/nyaml/NXafm.yaml @@ -1,6 +1,6 @@ category: application doc: | - An application definition to describe Atomic Force Microscopy (AFM) scanning + An application definition to describe atomic force microscopy (AFM) scanning technique. type: group NXafm(NXspm): @@ -12,7 +12,7 @@ NXafm(NXspm): scan_mode: doc: | The mode of the scan. - enumeration: [contact mode, tapping mode, non-contact mode] + enumeration: [contact mode, tapping mode, non-contact mode, Kelvin probe, electric force] experiment_instrument(NXinstrument): doc: | The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding @@ -20,20 +20,34 @@ NXafm(NXspm): photo_detector(NXdetector): exists: optional doc: | - The photo detector instrument information. + Information about the quadrant photodiode deflection detector. (NXcantilever_spm): exists: optional doc: | The cantilever information. + + Generally speaking, the cantilever resembles a leaf spring, which behaves as a simple harmonic oscillator. + When the probe (tip or particle) on the end of the cantilever is close to the surface of the sample, + an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. + The detector (typically a light pointer hitting a quadrant photodiode) measures this deformation and, therefore, + the force acting on the cantilever. + In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting + on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of + this loop controls the vertical position of the cantilever. cantilever_oscillator(NXobject): exists: optional doc: | - Generally speaking, the cantilever resembles a simple harmonic oscillator. - When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. - In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. + When a cantilever is oscillated close to its resonance, this describes the oscillator properties. + + A cantilever can be used in direct contact mode to detect interaction forces or oscillated close to its + resonance frequency. Changes in the oscillation amplitude, phase (between oscillated tail and moving tip) + or resonance frequency are very sensitive to changes in the interction potential field, giving rise of + various measurement modes, such as non-contact or intermittent-contact (tapping) modes. oscillator_excitation(NX_NUMBER): exists: optional unit: NX_ANY + + # is this correct? I would expect a driving voltage... doc: | The threshold voltage for oscillator excitation. phase_lock_loop(NXlockin): @@ -87,7 +101,7 @@ NXafm(NXspm): The material description and properties of the piezoelectric scanner materials. (NXpositioner_spm): doc: | - The positioner information like the position of the tip, the position of the + The positioner information like the position of the end of the cantilever, the position of the sample, PID loop feedback etc. tip_temp_sensor(NXsensor): exists: optional @@ -95,7 +109,7 @@ NXafm(NXspm): The temperature of the scan environment or tip of the cantilever. # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# fa4fba4dbdb47b6b13313bb2987b9130506b025dac0b45aacd9d586f9e5aa137 +# 5e6d35c0745060adc6707dfd9991c887a33b67ca2ed32ece1f7a00403906419f # # # # # -# An application definition to describe Atomic Force Microscopy (AFM) scanning +# An application definition to describe atomic force microscopy (AFM) scanning # technique. # # @@ -141,6 +155,8 @@ NXafm(NXspm): # # # +# +# # # # @@ -150,20 +166,33 @@ NXafm(NXspm): # # # -# The photo detector instrument information. +# Information about the quadrant photodiode deflection detector. # # # # # The cantilever information. +# +# Generally speaking, the cantilever resembles a leaf spring, which behaves as a simple harmonic oscillator. +# When the probe (tip or particle) on the end of the cantilever is close to the surface of the sample, +# an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. +# The detector (typically a light pointer hitting a quadrant photodiode) measures this deformation and, therefore, +# the force acting on the cantilever. +# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting +# on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of +# this loop controls the vertical position of the cantilever. # # # -# Generally speaking, the cantilever resembles a simple harmonic oscillator. -# When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. -# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. +# When a cantilever is oscillated close to its resonance, this describes the oscillator properties. +# +# A cantilever can be used in direct contact mode to detect interaction forces or oscillated close to its +# resonance frequency. Changes in the oscillation amplitude, phase (between oscillated tail and moving tip) +# or resonance frequency are very sensitive to changes in the interction potential field, giving rise of +# various measurement modes, such as non-contact or intermittent-contact (tapping) modes. # # +# # # The threshold voltage for oscillator excitation. # @@ -239,7 +268,7 @@ NXafm(NXspm): # # # -# The positioner information like the position of the tip, the position of the +# The positioner information like the position of the end of the cantilever, the position of the # sample, PID loop feedback etc. # # diff --git a/contributed_definitions/nyaml/NXbias_spectroscopy.yaml b/contributed_definitions/nyaml/NXbias_spectroscopy.yaml index d16ab3d3a..f1ba312ee 100644 --- a/contributed_definitions/nyaml/NXbias_spectroscopy.yaml +++ b/contributed_definitions/nyaml/NXbias_spectroscopy.yaml @@ -2,43 +2,57 @@ category: base doc: | A base class for bias spectroscopy to describe the change in the physical properties of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. + + In these experiments an electric potential is applied between the (conductive) sample and the probe + (tip), and the physical properties (e.g. tunnelling current) is measured as the function of this + potential. The potential is varied in so-called voltage sweeps and the corresponding properties are + recorded accordingly. type: group NXbias_spectroscopy(NXobject): measurement_type: doc: | The measurement of the I(V) curve can come in two ways: - 1. Constant Spacing: The bias voltage is swept from the start to the end with a constant - spacing between the tip and surface. - 2. Variadic Spacing: The bias voltage is swept from the start to the end in a discretized + 1. Constant spacing: The bias voltage is swept from the start to the end with a constant spacing between the tip and surface. + 2. Variable spacing: The bias voltage is swept from the start to the end in a discretized + spacing between the tip and surface. (Either an array of voltages, or the steps are defined). enumeration: [constant_spacing, variadic_spacing] (NXpositioner_spm): doc: | - The pid positioner information while running bias voltage-tunneling current - measurement. + The PID (proportional, integral, differential feedback system) positioner information while running + bias voltage-tunneling current measurement. + + These components position the probe relative to the sample, thus help obtaining maps of the data + across the sample surface. z_offset(NX_NUMBER): unit: NX_LENGTH doc: | - The z-offset is a starting tip position before the sweep starts. + The z-offset is a starting tip position before the sweep starts (typically the position of a + piezo element). + + # how these time specifications relate to the later time values, like + # scan_time? (NXcircuit): exists: optional - acquisition_time(NX_DATE_TIME): + acquisition_time(NX_NUMBER): exists: optional unit: NX_TIME doc: | The time or period is taken by a bias sweep to acquire the data for - a single bias sweep point. - animation_time(NX_DATE_TIME): + a single bias sweep point (when the given point or whole sweep is started.). + animation_time(NX_NUMBER): exists: optional unit: NX_TIME doc: | The time or period is taken by a bias sweep to be displayed. - measurement_time(NX_DATE_TIME): + measurement_time(NX_NUMBER): exists: optional unit: NX_TIME doc: | The time or period is taken by the circuit to measure a full bias sweep voltage or - bias current. + bias current. (duration of the measurement) + + # how does this indicators_period differs from animation time? indicators_period(NX_DATE_TIME): exists: optional unit: NX_TIME @@ -49,21 +63,30 @@ NXbias_spectroscopy(NXobject): doc: | The bias sweep information. scan_type: + + # I modify this text, by I may be wrong T. + # key is: I can change X,Y location at constant voltage or do a sweep + # at every X,Y coordinate, and I can define patterns how X,Y values follow + # each other (e.g. spiral) doc: | - The type of scan like mesh, spiral, etc. For STS experiment, the scan type is - usually a single-point scan (trajectory scan). + The type of scan like mesh, spiral, etc. + + This combines not only how the voltages are changed, but how the voltage values are + correlated to a position across the sample surface, measuring sweeps are each spatial + coordinate or mapping the response at constant voltage, etc. + For STS experiment, the scan type is usually a single-point scan (trajectory scan). enumeration: [linear] sweep_number(NX_NUMBER): doc: | The number of sweeps taken during the bias spectroscopy. - first_settling_time(NX_DATE_TIME): + first_settling_time(NX_NUMBER): exists: optional unit: NX_TIME doc: | The initial time is taken to settle the bias voltage at the desired value. On each sweep usually, the system takes time to settle to the bias voltage at the next value. - end_settling_time(NX_DATE_TIME): + end_settling_time(NX_NUMBER): exists: optional unit: NX_TIME doc: | @@ -80,7 +103,7 @@ NXbias_spectroscopy(NXobject): exists: recommended doc: | The z position after the sweeps are done. - total_spectroscopy_time(NX_DATE_TIME): + total_spectroscopy_time(NX_NUMBER): exists: recommended unit: NX_TIME doc: | @@ -102,13 +125,18 @@ NXbias_spectroscopy(NXobject): The N (substring) denotes the angle of the scan area with different physical axes. linear_sweep(NXobject): + + # is this a special case of the scans described above? doc: | The linear scan information for scanning of a smaple. + + In this scan type the probe is scanned with a constant velocity across the surface, + and parameters are measured along the line. scan_speed(NX_NUMBER): unit: NX_ANY doc: | The speed of the scanner or the probe during the scan. - scan_time(NX_DATE_TIME): + scan_time(NX_NUMBER): unit: NX_TIME doc: | The time taken by the scanner to scan the entire area. @@ -125,7 +153,7 @@ NXbias_spectroscopy(NXobject): The data that comes from scanning the area. # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 5b57b4e955019fabedb0a7fe4fc70a0626dce64f58aa542d7ab6d4161d0a0bdd +# 5b49dd5999a0c8838e232a3bfd90ce43f173d07395f56231de1be8e67bd7151b # # # # -# +# # # The time or period is taken by a bias sweep to acquire the data for -# a single bias sweep point. +# a single bias sweep point (when the given point or whole sweep is started.). # # -# +# # # The time or period is taken by a bias sweep to be displayed. # # -# +# # # The time or period is taken by the circuit to measure a full bias sweep voltage or -# bias current. +# bias current. (duration of the measurement) # # +# # # # The time or period is taken by the circuit to indicate the bias sweep voltage @@ -208,9 +248,17 @@ NXbias_spectroscopy(NXobject): # The bias sweep information. # # +# # -# The type of scan like mesh, spiral, etc. For STS experiment, the scan type is -# usually a single-point scan (trajectory scan). +# The type of scan like mesh, spiral, etc. +# +# This combines not only how the voltages are changed, but how the voltage values are +# correlated to a position across the sample surface, measuring sweeps are each spatial +# coordinate or mapping the response at constant voltage, etc. +# For STS experiment, the scan type is usually a single-point scan (trajectory scan). # # # @@ -221,14 +269,14 @@ NXbias_spectroscopy(NXobject): # The number of sweeps taken during the bias spectroscopy. # # -# +# # # The initial time is taken to settle the bias voltage at the desired value. # On each sweep usually, the system takes time to settle to the bias voltage # at the next value. # # -# +# # # The time is taken to settle the bias voltage at the desired value. # The time (at the last sweep) to settle for the last value of the sweep. @@ -246,7 +294,7 @@ NXbias_spectroscopy(NXobject): # The z position after the sweeps are done. # # -# +# # # The total time needed for the entire voltage sweep. # @@ -273,15 +321,19 @@ NXbias_spectroscopy(NXobject): # # # +# # # The linear scan information for scanning of a smaple. +# +# In this scan type the probe is scanned with a constant velocity across the surface, +# and parameters are measured along the line. # # # # The speed of the scanner or the probe during the scan. # # -# +# # # The time taken by the scanner to scan the entire area. # diff --git a/contributed_definitions/nyaml/NXcalibration.yaml b/contributed_definitions/nyaml/NXcalibration.yaml index e7e362caf..2c59fac02 100644 --- a/contributed_definitions/nyaml/NXcalibration.yaml +++ b/contributed_definitions/nyaml/NXcalibration.yaml @@ -13,10 +13,10 @@ NXcalibration(NXobject): description(NX_CHAR): doc: | A description of the procedures employed. - start_time(NX_DATE_TIME): + start_time(NX_NUMBER): doc: | The start time of the calibration. - end_time(NX_DATE_TIME): + end_time(NX_NUMBER): doc: | The end time of the calibration. calibration_interval(NX_FLOAT): @@ -168,7 +168,7 @@ NXcalibration(NXobject): for a summary of the discussion. # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 0637e042803449160e95d45786d186382342ce32958d181cfbd42830ffb145c2 +# 43ca2db5ea4eeb4af5d70b9d78e32cc291cf755de199c0cc2538369b87ebed91 # # # # +# +# +# Constant to be used in the definition: the number of channels of the +# circuit board. +# +# +# +# number of channels of the circuit board. +# +# +# # # Application definition for circuit devices. +# +# Electronic circuits are hardware components connecting several electronic components to achieve +# specific functionality, e.g. amplifying a voltage or convert a voltage to binary numbers, etc. # # # -# Hardware where the circuit is implanted; includes hardware manufacturers and -# type +# Hardware where the circuit is implanted; includes information about the hardware manufacturers and +# type (e.g. part number) +# All the elements below may be single numbers of an array of values with length N_channel +# describing multiple input and output channels. # # # @@ -147,11 +179,15 @@ NXcircuit(NXobject): # digital, mixed-signal. # # +# # # -# The operating frequency range of the circuit. +# The operating frequency of the circuit, see also bandwidth below, which is possibly +# centered around this frequency. However, not necessarily (e.g. running a 100 kHz bandwidth +# amplifier at low, audio frequencies 1 - 20,000 Hz) # # +# # # # Input impedance of the circuit. @@ -170,13 +206,12 @@ NXcircuit(NXobject): # # # -# Noise level (in current or voltage) in the circuit. +# RMS noise level (in current or voltage) in the circuit in voltage or current. # # # # -# If circuit handles AC current or signal it may have a band Bandwidth of the circuit to be -# responded. +# The bandwidth of the frequency response of the circuit. # # # @@ -196,7 +231,7 @@ NXcircuit(NXobject): # # # -# Number of output channels collected to this circuit. +# Number of output channels collected to this circuit. Most probably N_channel. # # # diff --git a/contributed_definitions/nyaml/NXlockin.yaml b/contributed_definitions/nyaml/NXlockin.yaml index 6f9b266d8..cc2257a6e 100644 --- a/contributed_definitions/nyaml/NXlockin.yaml +++ b/contributed_definitions/nyaml/NXlockin.yaml @@ -4,14 +4,15 @@ doc: | The lock-in amplifier information: the device is being used to extract a (potentially) very weak input signal buried in the noisy background, where the input signal has - the same frequency (or its harmonic) as a known reference signal. Additionally, - the phase shift between the input signal and the reference signal is measured. + the same frequency (or its harmonic) as a known reference signal, using heterodyne + detection. + This method extracts the amplitude and phase shift of the current signal to the reference. The reference signal might be created by a generator built-in into the lock-in amplifier. type: group NXlockin(NXobject): hardware(NXfabrication): doc: | - Hardware manufacturers and type of lock-in amplifier. + Hardware manufacturers and type (product number) of lock-in amplifier. (NXamplifier): doc: | Description of the amplifier (after detection of the signal from the noise) @@ -26,17 +27,20 @@ NXlockin(NXobject): doc: | A periodic voltage signal generated by the lock-in, usually applied to a sample and used to create a reference signal for the detection of the input signal - lockin_current_flip_value(NX_NUMBER): + lockin_current_flip_sign(NX_NUMBER): exists: optional doc: | - The number that defines the sign of the lock-in current. The calibration procedure - with retracted tip is normally performed to compensate for the signal phase delay + The sign (1 or -1) that defines the sign of the lock-in current. + The calibration procedure with retracted tip is normally performed to compensate for the signal phase delay in SPM. The procedure yields two possible solutions, this number should be equal - to 1 or -1 depending on which solution is chosen. + to 1 or -1 depending on which solution is chosen (this concept mainly used in STS experiments, + e.g. in Nanonis machine). # (For bais modulate signal, it depands on the modulate type) # unit could be NX_VOLTAGE or NX_CURRENT + # these (reference amplitude, frequency and phase) should be specivied on channel basis, + # even when common reference is sent to different channels reference_amplitude(NX_NUMBER): unit: NX_ANY doc: | @@ -48,12 +52,10 @@ NXlockin(NXobject): reference_phase(NX_NUMBER): unit: NX_ANGLE doc: | - Phase of the reference signal for the lock-in amplifier. + Phase of the reference signal set in the lock-in amplifier. demodulated_signal(NX_CHAR): doc: | - The modulated output signal will be demodulated, in order to determine the amplitude - and phase at the frequency set in the Frequency field or harmonics, such as current, - bias, et.al. + Type of the demodulated signal, current | voltage. demodulated_frequency(NX_NUMBER): unit: NX_FREQUENCY doc: | @@ -69,20 +71,10 @@ NXlockin(NXobject): unit: NX_ANY doc: | The amplitude of the demodulated signal. - amplitude_demodulation_bandwidth(NX_NUMBER): - unit: NX_ANY - doc: | - The bandwidth of the modulated signal that can be applied in amplitude - demodulation mechanism. demodulated_phase(NX_NUMBER): unit: NX_ANGLE doc: | The phase of the demodulated signal. - phase_demodulation_bandwidth(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The bandwidth of the modulated signal that can be applied in phase demodulation - mechanism. demodulator_channels(NX_CHAR): doc: | List of the demodulator channels. @@ -109,7 +101,7 @@ NXlockin(NXobject): ref_phase_N(NX_NUMBER): unit: NX_ANGLE doc: | - Reference phase of reference signal with respect to the demodulated signal + An extra reference phase offset of reference signal with respect to the demodulated signal (foreach Channels). integration_time(NX_NUMBER): unit: NX_TIME @@ -124,7 +116,7 @@ NXlockin(NXobject): Ratio of output signal amplitude to input signal amplitue (V/V). # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# c5a5794e8253813e28db0dbe2df778f6bffd00b2447d0488f665e5f89a9a669a +# 340ff0c78db623cc9da1e2fbb030f3c24cd1f514f6d5a410c310d9238449a7b1 # # # -# +# # # # Amplitude of the reference signal for the lock-in amplifier. @@ -207,14 +203,12 @@ NXlockin(NXobject): # # # -# Phase of the reference signal for the lock-in amplifier. +# Phase of the reference signal set in the lock-in amplifier. # # # # -# The modulated output signal will be demodulated, in order to determine the amplitude -# and phase at the frequency set in the Frequency field or harmonics, such as current, -# bias, et.al. +# Type of the demodulated signal, current | voltage. # # # @@ -234,23 +228,11 @@ NXlockin(NXobject): # The amplitude of the demodulated signal. # # -# -# -# The bandwidth of the modulated signal that can be applied in amplitude -# demodulation mechanism. -# -# # # # The phase of the demodulated signal. # # -# -# -# The bandwidth of the modulated signal that can be applied in phase demodulation -# mechanism. -# -# # # # List of the demodulator channels. @@ -284,7 +266,7 @@ NXlockin(NXobject): # # # -# Reference phase of reference signal with respect to the demodulated signal +# An extra reference phase offset of reference signal with respect to the demodulated signal # (foreach Channels). # # diff --git a/contributed_definitions/nyaml/NXpiezo_config_spm.yaml b/contributed_definitions/nyaml/NXpiezo_config_spm.yaml index f13dab1d7..78dd861a6 100644 --- a/contributed_definitions/nyaml/NXpiezo_config_spm.yaml +++ b/contributed_definitions/nyaml/NXpiezo_config_spm.yaml @@ -1,9 +1,10 @@ category: base doc: | - A base class describing piezo settings for scanning probe microscopy. + A base class describing piezo actuator settings for scanning probe microscopy. - The piezoelectric material of SPM actuators gets deformed due to the applied electric field. - Description below shows calibration coefficients and other configuration parameters of the piezo actuators. + Piezoelectric actuators work utilizing the inverse-piezoelectric effect, when a voltage + is applied on the material and it deforms proportional to the applied voltage. + Description below shows calibration coefficients and other configuration parameters of open loop piezo actuators (that is actuators without capacitive sensor feedback systems). # Discussion: No need to create this base class rather we can define in spm application definition. type: group @@ -64,6 +65,9 @@ NXpiezo_config_spm(NXobject): with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for such the second-order correction is (V/m^2). + drift_correction_status(NX_BOOLEAN): + doc: | + The drift correction status (true / false) in calibration step of piezo. drift_N(NX_NUMBER): unit: NX_ANY doc: | @@ -72,7 +76,7 @@ NXpiezo_config_spm(NXobject): move at that speed. # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 983ecbb63ca89b8133a7b671fba009b74498d7745d5b569592931cb2df75b49e +# 96e710da01fe879d6ab92e5a15bf41b9f916f75e23b1d254f36999406f0afa60 # # # # # -# A base class describing piezo settings for scanning probe microscopy. +# A base class describing piezo actuator settings for scanning probe microscopy. # -# The piezoelectric material of SPM actuators gets deformed due to the applied electric field. -# Description below shows calibration coefficients and other configuration parameters of the piezo actuators. +# Piezoelectric actuators work utilizing the inverse-piezoelectric effect, when a voltage +# is applied on the material and it deforms proportional to the applied voltage. +# Description below shows calibration coefficients and other configuration parameters of open loop piezo actuators (that is actuators without capacitive sensor feedback systems). # # # @@ -181,6 +186,11 @@ NXpiezo_config_spm(NXobject): # such the second-order correction is (V/m^2). # # +# +# +# The drift correction status (true / false) in calibration step of piezo. +# +# # # # The N (substring) denotes X, Y and Z directions. Define the diff --git a/contributed_definitions/nyaml/NXpiezoelectric_material.yaml b/contributed_definitions/nyaml/NXpiezoelectric_material.yaml index 7dc433a5b..0960a4033 100644 --- a/contributed_definitions/nyaml/NXpiezoelectric_material.yaml +++ b/contributed_definitions/nyaml/NXpiezoelectric_material.yaml @@ -14,6 +14,12 @@ NXpiezoelectric_material(NXobject): doc: | The name of the material of the piezo scanner such as Lead Zirconate Titanates (PZTs). + piezo_material_identifier(NXidentifier): + doc: | + The identifier of the piezo material. + identifier(NX_CHAR): + doc: | + The identifier of the piezo material. chemical_description(NXsubstance): doc: | The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. @@ -75,7 +81,7 @@ NXpiezoelectric_material(NXobject): viscous state. # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 39d5862b3a9e4f526a71d3a1ad2234a4f4de5b953ce08c21e47f8bd7a9670ed7 +# 0f228771942f8ad9c37ecfbdd4dc96d0193a3da548a401a92aec2d436caf26c6 # # # id22 id13 --> id23 id13 --> id24 - + ``` ## STM App Def diff --git a/contributed_definitions/nyaml/SPM/NXafm.yaml b/contributed_definitions/nyaml/SPM/NXafm.yaml index 53f4bfe30..dcb92f282 100644 --- a/contributed_definitions/nyaml/SPM/NXafm.yaml +++ b/contributed_definitions/nyaml/SPM/NXafm.yaml @@ -1,6 +1,6 @@ category: application doc: | - An application definition to describe Atomic Force Microscopy (AFM) scanning + An application definition to describe atomic force microscopy (AFM) scanning technique. type: group NXafm(NXspm): @@ -12,7 +12,7 @@ NXafm(NXspm): scan_mode: doc: | The mode of the scan. - enumeration: [contact mode, tapping mode, non-contact mode] + enumeration: [contact mode, tapping mode, non-contact mode, Kelvin probe, electric force] experiment_instrument(NXinstrument): doc: | The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding @@ -20,20 +20,34 @@ NXafm(NXspm): photo_detector(NXdetector): exists: optional doc: | - The photo detector instrument information. + Information about the quadrant photodiode deflection detector. (NXcantilever_spm): exists: optional doc: | The cantilever information. + + Generally speaking, the cantilever resembles a leaf spring, which behaves as a simple harmonic oscillator. + When the probe (tip or particle) on the end of the cantilever is close to the surface of the sample, + an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. + The detector (typically a light pointer hitting a quadrant photodiode) measures this deformation and, therefore, + the force acting on the cantilever. + In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting + on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of + this loop controls the vertical position of the cantilever. cantilever_oscillator(NXobject): exists: optional doc: | - Generally speaking, the cantilever resembles a simple harmonic oscillator. - When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. - In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. + When a cantilever is oscillated close to its resonance, this describes the oscillator properties. + + A cantilever can be used in direct contact mode to detect interaction forces or oscillated close to its + resonance frequency. Changes in the oscillation amplitude, phase (between oscillated tail and moving tip) + or resonance frequency are very sensitive to changes in the interction potential field, giving rise of + various measurement modes, such as non-contact or intermittent-contact (tapping) modes. oscillator_excitation(NX_NUMBER): exists: optional unit: NX_ANY + + # is this correct? I would expect a driving voltage... doc: | The threshold voltage for oscillator excitation. phase_lock_loop(NXlockin): @@ -87,7 +101,7 @@ NXafm(NXspm): The material description and properties of the piezoelectric scanner materials. (NXpositioner_spm): doc: | - The positioner information like the position of the tip, the position of the + The positioner information like the position of the end of the cantilever, the position of the sample, PID loop feedback etc. tip_temp_sensor(NXsensor): exists: optional @@ -95,7 +109,7 @@ NXafm(NXspm): The temperature of the scan environment or tip of the cantilever. # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# fa4fba4dbdb47b6b13313bb2987b9130506b025dac0b45aacd9d586f9e5aa137 +# 5e6d35c0745060adc6707dfd9991c887a33b67ca2ed32ece1f7a00403906419f # # # # # -# An application definition to describe Atomic Force Microscopy (AFM) scanning +# An application definition to describe atomic force microscopy (AFM) scanning # technique. # # @@ -141,6 +155,8 @@ NXafm(NXspm): # # # +# +# # # # @@ -150,20 +166,33 @@ NXafm(NXspm): # # # -# The photo detector instrument information. +# Information about the quadrant photodiode deflection detector. # # # # # The cantilever information. +# +# Generally speaking, the cantilever resembles a leaf spring, which behaves as a simple harmonic oscillator. +# When the probe (tip or particle) on the end of the cantilever is close to the surface of the sample, +# an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. +# The detector (typically a light pointer hitting a quadrant photodiode) measures this deformation and, therefore, +# the force acting on the cantilever. +# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting +# on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of +# this loop controls the vertical position of the cantilever. # # # -# Generally speaking, the cantilever resembles a simple harmonic oscillator. -# When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. -# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. +# When a cantilever is oscillated close to its resonance, this describes the oscillator properties. +# +# A cantilever can be used in direct contact mode to detect interaction forces or oscillated close to its +# resonance frequency. Changes in the oscillation amplitude, phase (between oscillated tail and moving tip) +# or resonance frequency are very sensitive to changes in the interction potential field, giving rise of +# various measurement modes, such as non-contact or intermittent-contact (tapping) modes. # # +# # # The threshold voltage for oscillator excitation. # @@ -239,7 +268,7 @@ NXafm(NXspm): # # # -# The positioner information like the position of the tip, the position of the +# The positioner information like the position of the end of the cantilever, the position of the # sample, PID loop feedback etc. # # diff --git a/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml b/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml index d16ab3d3a..f1ba312ee 100644 --- a/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml +++ b/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml @@ -2,43 +2,57 @@ category: base doc: | A base class for bias spectroscopy to describe the change in the physical properties of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. + + In these experiments an electric potential is applied between the (conductive) sample and the probe + (tip), and the physical properties (e.g. tunnelling current) is measured as the function of this + potential. The potential is varied in so-called voltage sweeps and the corresponding properties are + recorded accordingly. type: group NXbias_spectroscopy(NXobject): measurement_type: doc: | The measurement of the I(V) curve can come in two ways: - 1. Constant Spacing: The bias voltage is swept from the start to the end with a constant - spacing between the tip and surface. - 2. Variadic Spacing: The bias voltage is swept from the start to the end in a discretized + 1. Constant spacing: The bias voltage is swept from the start to the end with a constant spacing between the tip and surface. + 2. Variable spacing: The bias voltage is swept from the start to the end in a discretized + spacing between the tip and surface. (Either an array of voltages, or the steps are defined). enumeration: [constant_spacing, variadic_spacing] (NXpositioner_spm): doc: | - The pid positioner information while running bias voltage-tunneling current - measurement. + The PID (proportional, integral, differential feedback system) positioner information while running + bias voltage-tunneling current measurement. + + These components position the probe relative to the sample, thus help obtaining maps of the data + across the sample surface. z_offset(NX_NUMBER): unit: NX_LENGTH doc: | - The z-offset is a starting tip position before the sweep starts. + The z-offset is a starting tip position before the sweep starts (typically the position of a + piezo element). + + # how these time specifications relate to the later time values, like + # scan_time? (NXcircuit): exists: optional - acquisition_time(NX_DATE_TIME): + acquisition_time(NX_NUMBER): exists: optional unit: NX_TIME doc: | The time or period is taken by a bias sweep to acquire the data for - a single bias sweep point. - animation_time(NX_DATE_TIME): + a single bias sweep point (when the given point or whole sweep is started.). + animation_time(NX_NUMBER): exists: optional unit: NX_TIME doc: | The time or period is taken by a bias sweep to be displayed. - measurement_time(NX_DATE_TIME): + measurement_time(NX_NUMBER): exists: optional unit: NX_TIME doc: | The time or period is taken by the circuit to measure a full bias sweep voltage or - bias current. + bias current. (duration of the measurement) + + # how does this indicators_period differs from animation time? indicators_period(NX_DATE_TIME): exists: optional unit: NX_TIME @@ -49,21 +63,30 @@ NXbias_spectroscopy(NXobject): doc: | The bias sweep information. scan_type: + + # I modify this text, by I may be wrong T. + # key is: I can change X,Y location at constant voltage or do a sweep + # at every X,Y coordinate, and I can define patterns how X,Y values follow + # each other (e.g. spiral) doc: | - The type of scan like mesh, spiral, etc. For STS experiment, the scan type is - usually a single-point scan (trajectory scan). + The type of scan like mesh, spiral, etc. + + This combines not only how the voltages are changed, but how the voltage values are + correlated to a position across the sample surface, measuring sweeps are each spatial + coordinate or mapping the response at constant voltage, etc. + For STS experiment, the scan type is usually a single-point scan (trajectory scan). enumeration: [linear] sweep_number(NX_NUMBER): doc: | The number of sweeps taken during the bias spectroscopy. - first_settling_time(NX_DATE_TIME): + first_settling_time(NX_NUMBER): exists: optional unit: NX_TIME doc: | The initial time is taken to settle the bias voltage at the desired value. On each sweep usually, the system takes time to settle to the bias voltage at the next value. - end_settling_time(NX_DATE_TIME): + end_settling_time(NX_NUMBER): exists: optional unit: NX_TIME doc: | @@ -80,7 +103,7 @@ NXbias_spectroscopy(NXobject): exists: recommended doc: | The z position after the sweeps are done. - total_spectroscopy_time(NX_DATE_TIME): + total_spectroscopy_time(NX_NUMBER): exists: recommended unit: NX_TIME doc: | @@ -102,13 +125,18 @@ NXbias_spectroscopy(NXobject): The N (substring) denotes the angle of the scan area with different physical axes. linear_sweep(NXobject): + + # is this a special case of the scans described above? doc: | The linear scan information for scanning of a smaple. + + In this scan type the probe is scanned with a constant velocity across the surface, + and parameters are measured along the line. scan_speed(NX_NUMBER): unit: NX_ANY doc: | The speed of the scanner or the probe during the scan. - scan_time(NX_DATE_TIME): + scan_time(NX_NUMBER): unit: NX_TIME doc: | The time taken by the scanner to scan the entire area. @@ -125,7 +153,7 @@ NXbias_spectroscopy(NXobject): The data that comes from scanning the area. # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 5b57b4e955019fabedb0a7fe4fc70a0626dce64f58aa542d7ab6d4161d0a0bdd +# 5b49dd5999a0c8838e232a3bfd90ce43f173d07395f56231de1be8e67bd7151b # # # # -# +# # # The time or period is taken by a bias sweep to acquire the data for -# a single bias sweep point. +# a single bias sweep point (when the given point or whole sweep is started.). # # -# +# # # The time or period is taken by a bias sweep to be displayed. # # -# +# # # The time or period is taken by the circuit to measure a full bias sweep voltage or -# bias current. +# bias current. (duration of the measurement) # # +# # # # The time or period is taken by the circuit to indicate the bias sweep voltage @@ -208,9 +248,17 @@ NXbias_spectroscopy(NXobject): # The bias sweep information. # # +# # -# The type of scan like mesh, spiral, etc. For STS experiment, the scan type is -# usually a single-point scan (trajectory scan). +# The type of scan like mesh, spiral, etc. +# +# This combines not only how the voltages are changed, but how the voltage values are +# correlated to a position across the sample surface, measuring sweeps are each spatial +# coordinate or mapping the response at constant voltage, etc. +# For STS experiment, the scan type is usually a single-point scan (trajectory scan). # # # @@ -221,14 +269,14 @@ NXbias_spectroscopy(NXobject): # The number of sweeps taken during the bias spectroscopy. # # -# +# # # The initial time is taken to settle the bias voltage at the desired value. # On each sweep usually, the system takes time to settle to the bias voltage # at the next value. # # -# +# # # The time is taken to settle the bias voltage at the desired value. # The time (at the last sweep) to settle for the last value of the sweep. @@ -246,7 +294,7 @@ NXbias_spectroscopy(NXobject): # The z position after the sweeps are done. # # -# +# # # The total time needed for the entire voltage sweep. # @@ -273,15 +321,19 @@ NXbias_spectroscopy(NXobject): # # # +# # # The linear scan information for scanning of a smaple. +# +# In this scan type the probe is scanned with a constant velocity across the surface, +# and parameters are measured along the line. # # # # The speed of the scanner or the probe during the scan. # # -# +# # # The time taken by the scanner to scan the entire area. # diff --git a/contributed_definitions/nyaml/SPM/NXcalibration.yaml b/contributed_definitions/nyaml/SPM/NXcalibration.yaml index e7e362caf..2c59fac02 100644 --- a/contributed_definitions/nyaml/SPM/NXcalibration.yaml +++ b/contributed_definitions/nyaml/SPM/NXcalibration.yaml @@ -13,10 +13,10 @@ NXcalibration(NXobject): description(NX_CHAR): doc: | A description of the procedures employed. - start_time(NX_DATE_TIME): + start_time(NX_NUMBER): doc: | The start time of the calibration. - end_time(NX_DATE_TIME): + end_time(NX_NUMBER): doc: | The end time of the calibration. calibration_interval(NX_FLOAT): @@ -168,7 +168,7 @@ NXcalibration(NXobject): for a summary of the discussion. # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 0637e042803449160e95d45786d186382342ce32958d181cfbd42830ffb145c2 +# 43ca2db5ea4eeb4af5d70b9d78e32cc291cf755de199c0cc2538369b87ebed91 # # # # +# +# +# Constant to be used in the definition: the number of channels of the +# circuit board. +# +# +# +# number of channels of the circuit board. +# +# +# # # Application definition for circuit devices. +# +# Electronic circuits are hardware components connecting several electronic components to achieve +# specific functionality, e.g. amplifying a voltage or convert a voltage to binary numbers, etc. # # # -# Hardware where the circuit is implanted; includes hardware manufacturers and -# type +# Hardware where the circuit is implanted; includes information about the hardware manufacturers and +# type (e.g. part number) +# All the elements below may be single numbers of an array of values with length N_channel +# describing multiple input and output channels. # # # @@ -147,11 +179,15 @@ NXcircuit(NXobject): # digital, mixed-signal. # # +# # # -# The operating frequency range of the circuit. +# The operating frequency of the circuit, see also bandwidth below, which is possibly +# centered around this frequency. However, not necessarily (e.g. running a 100 kHz bandwidth +# amplifier at low, audio frequencies 1 - 20,000 Hz) # # +# # # # Input impedance of the circuit. @@ -170,13 +206,12 @@ NXcircuit(NXobject): # # # -# Noise level (in current or voltage) in the circuit. +# RMS noise level (in current or voltage) in the circuit in voltage or current. # # # # -# If circuit handles AC current or signal it may have a band Bandwidth of the circuit to be -# responded. +# The bandwidth of the frequency response of the circuit. # # # @@ -196,7 +231,7 @@ NXcircuit(NXobject): # # # -# Number of output channels collected to this circuit. +# Number of output channels collected to this circuit. Most probably N_channel. # # # diff --git a/contributed_definitions/nyaml/SPM/NXlockin.yaml b/contributed_definitions/nyaml/SPM/NXlockin.yaml index 6f9b266d8..cc2257a6e 100644 --- a/contributed_definitions/nyaml/SPM/NXlockin.yaml +++ b/contributed_definitions/nyaml/SPM/NXlockin.yaml @@ -4,14 +4,15 @@ doc: | The lock-in amplifier information: the device is being used to extract a (potentially) very weak input signal buried in the noisy background, where the input signal has - the same frequency (or its harmonic) as a known reference signal. Additionally, - the phase shift between the input signal and the reference signal is measured. + the same frequency (or its harmonic) as a known reference signal, using heterodyne + detection. + This method extracts the amplitude and phase shift of the current signal to the reference. The reference signal might be created by a generator built-in into the lock-in amplifier. type: group NXlockin(NXobject): hardware(NXfabrication): doc: | - Hardware manufacturers and type of lock-in amplifier. + Hardware manufacturers and type (product number) of lock-in amplifier. (NXamplifier): doc: | Description of the amplifier (after detection of the signal from the noise) @@ -26,17 +27,20 @@ NXlockin(NXobject): doc: | A periodic voltage signal generated by the lock-in, usually applied to a sample and used to create a reference signal for the detection of the input signal - lockin_current_flip_value(NX_NUMBER): + lockin_current_flip_sign(NX_NUMBER): exists: optional doc: | - The number that defines the sign of the lock-in current. The calibration procedure - with retracted tip is normally performed to compensate for the signal phase delay + The sign (1 or -1) that defines the sign of the lock-in current. + The calibration procedure with retracted tip is normally performed to compensate for the signal phase delay in SPM. The procedure yields two possible solutions, this number should be equal - to 1 or -1 depending on which solution is chosen. + to 1 or -1 depending on which solution is chosen (this concept mainly used in STS experiments, + e.g. in Nanonis machine). # (For bais modulate signal, it depands on the modulate type) # unit could be NX_VOLTAGE or NX_CURRENT + # these (reference amplitude, frequency and phase) should be specivied on channel basis, + # even when common reference is sent to different channels reference_amplitude(NX_NUMBER): unit: NX_ANY doc: | @@ -48,12 +52,10 @@ NXlockin(NXobject): reference_phase(NX_NUMBER): unit: NX_ANGLE doc: | - Phase of the reference signal for the lock-in amplifier. + Phase of the reference signal set in the lock-in amplifier. demodulated_signal(NX_CHAR): doc: | - The modulated output signal will be demodulated, in order to determine the amplitude - and phase at the frequency set in the Frequency field or harmonics, such as current, - bias, et.al. + Type of the demodulated signal, current | voltage. demodulated_frequency(NX_NUMBER): unit: NX_FREQUENCY doc: | @@ -69,20 +71,10 @@ NXlockin(NXobject): unit: NX_ANY doc: | The amplitude of the demodulated signal. - amplitude_demodulation_bandwidth(NX_NUMBER): - unit: NX_ANY - doc: | - The bandwidth of the modulated signal that can be applied in amplitude - demodulation mechanism. demodulated_phase(NX_NUMBER): unit: NX_ANGLE doc: | The phase of the demodulated signal. - phase_demodulation_bandwidth(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The bandwidth of the modulated signal that can be applied in phase demodulation - mechanism. demodulator_channels(NX_CHAR): doc: | List of the demodulator channels. @@ -109,7 +101,7 @@ NXlockin(NXobject): ref_phase_N(NX_NUMBER): unit: NX_ANGLE doc: | - Reference phase of reference signal with respect to the demodulated signal + An extra reference phase offset of reference signal with respect to the demodulated signal (foreach Channels). integration_time(NX_NUMBER): unit: NX_TIME @@ -124,7 +116,7 @@ NXlockin(NXobject): Ratio of output signal amplitude to input signal amplitue (V/V). # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# c5a5794e8253813e28db0dbe2df778f6bffd00b2447d0488f665e5f89a9a669a +# 340ff0c78db623cc9da1e2fbb030f3c24cd1f514f6d5a410c310d9238449a7b1 # # # -# +# # # # Amplitude of the reference signal for the lock-in amplifier. @@ -207,14 +203,12 @@ NXlockin(NXobject): # # # -# Phase of the reference signal for the lock-in amplifier. +# Phase of the reference signal set in the lock-in amplifier. # # # # -# The modulated output signal will be demodulated, in order to determine the amplitude -# and phase at the frequency set in the Frequency field or harmonics, such as current, -# bias, et.al. +# Type of the demodulated signal, current | voltage. # # # @@ -234,23 +228,11 @@ NXlockin(NXobject): # The amplitude of the demodulated signal. # # -# -# -# The bandwidth of the modulated signal that can be applied in amplitude -# demodulation mechanism. -# -# # # # The phase of the demodulated signal. # # -# -# -# The bandwidth of the modulated signal that can be applied in phase demodulation -# mechanism. -# -# # # # List of the demodulator channels. @@ -284,7 +266,7 @@ NXlockin(NXobject): # # # -# Reference phase of reference signal with respect to the demodulated signal +# An extra reference phase offset of reference signal with respect to the demodulated signal # (foreach Channels). # # diff --git a/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml b/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml index f13dab1d7..78dd861a6 100644 --- a/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml +++ b/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml @@ -1,9 +1,10 @@ category: base doc: | - A base class describing piezo settings for scanning probe microscopy. + A base class describing piezo actuator settings for scanning probe microscopy. - The piezoelectric material of SPM actuators gets deformed due to the applied electric field. - Description below shows calibration coefficients and other configuration parameters of the piezo actuators. + Piezoelectric actuators work utilizing the inverse-piezoelectric effect, when a voltage + is applied on the material and it deforms proportional to the applied voltage. + Description below shows calibration coefficients and other configuration parameters of open loop piezo actuators (that is actuators without capacitive sensor feedback systems). # Discussion: No need to create this base class rather we can define in spm application definition. type: group @@ -64,6 +65,9 @@ NXpiezo_config_spm(NXobject): with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for such the second-order correction is (V/m^2). + drift_correction_status(NX_BOOLEAN): + doc: | + The drift correction status (true / false) in calibration step of piezo. drift_N(NX_NUMBER): unit: NX_ANY doc: | @@ -72,7 +76,7 @@ NXpiezo_config_spm(NXobject): move at that speed. # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 983ecbb63ca89b8133a7b671fba009b74498d7745d5b569592931cb2df75b49e +# 96e710da01fe879d6ab92e5a15bf41b9f916f75e23b1d254f36999406f0afa60 # # # # # -# A base class describing piezo settings for scanning probe microscopy. +# A base class describing piezo actuator settings for scanning probe microscopy. # -# The piezoelectric material of SPM actuators gets deformed due to the applied electric field. -# Description below shows calibration coefficients and other configuration parameters of the piezo actuators. +# Piezoelectric actuators work utilizing the inverse-piezoelectric effect, when a voltage +# is applied on the material and it deforms proportional to the applied voltage. +# Description below shows calibration coefficients and other configuration parameters of open loop piezo actuators (that is actuators without capacitive sensor feedback systems). # # # @@ -181,6 +186,11 @@ NXpiezo_config_spm(NXobject): # such the second-order correction is (V/m^2). # # +# +# +# The drift correction status (true / false) in calibration step of piezo. +# +# # # # The N (substring) denotes X, Y and Z directions. Define the diff --git a/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml b/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml index 7dc433a5b..0960a4033 100644 --- a/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml +++ b/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml @@ -14,6 +14,12 @@ NXpiezoelectric_material(NXobject): doc: | The name of the material of the piezo scanner such as Lead Zirconate Titanates (PZTs). + piezo_material_identifier(NXidentifier): + doc: | + The identifier of the piezo material. + identifier(NX_CHAR): + doc: | + The identifier of the piezo material. chemical_description(NXsubstance): doc: | The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. @@ -75,7 +81,7 @@ NXpiezoelectric_material(NXobject): viscous state. # ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 39d5862b3a9e4f526a71d3a1ad2234a4f4de5b953ce08c21e47f8bd7a9670ed7 +# 0f228771942f8ad9c37ecfbdd4dc96d0193a3da548a401a92aec2d436caf26c6 # # # id1 - id1 --> id2 - id1 --> id3 - id1 --> id4 - id1 --> id5 - id1 --> id6 - - id2 --> id13 - id2 --> id14 - id2 --> id16 - - id13 --> id21 - id13 --> id22 - id13 --> id23 - id13 --> id24 - -``` - -## STM App Def -```mermaid -graph TD; - subgraph STM - %%hh%% - id1["NXstm(NXspm)"] - id2["ENTRY"] - end - subgraph NXinstrument - id6["(NXinstrument)"] - end - - subgraph NXenvironment - %%hh%% - id12["sweep_control"] - end - - - id1 --> id2 - - id2 --> id6 - id6 --> id12 - -``` --> diff --git a/contributed_definitions/nyaml/SPM/NXafm.yaml b/contributed_definitions/nyaml/SPM/NXafm.yaml deleted file mode 100644 index dcb92f282..000000000 --- a/contributed_definitions/nyaml/SPM/NXafm.yaml +++ /dev/null @@ -1,283 +0,0 @@ -category: application -doc: | - An application definition to describe atomic force microscopy (AFM) scanning - technique. -type: group -NXafm(NXspm): - (NXentry): - definition: - doc: | - Name of the definition that is used for the application. - enumeration: [NXafm] - scan_mode: - doc: | - The mode of the scan. - enumeration: [contact mode, tapping mode, non-contact mode, Kelvin probe, electric force] - experiment_instrument(NXinstrument): - doc: | - The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding - instruments. - photo_detector(NXdetector): - exists: optional - doc: | - Information about the quadrant photodiode deflection detector. - (NXcantilever_spm): - exists: optional - doc: | - The cantilever information. - - Generally speaking, the cantilever resembles a leaf spring, which behaves as a simple harmonic oscillator. - When the probe (tip or particle) on the end of the cantilever is close to the surface of the sample, - an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. - The detector (typically a light pointer hitting a quadrant photodiode) measures this deformation and, therefore, - the force acting on the cantilever. - In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting - on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of - this loop controls the vertical position of the cantilever. - cantilever_oscillator(NXobject): - exists: optional - doc: | - When a cantilever is oscillated close to its resonance, this describes the oscillator properties. - - A cantilever can be used in direct contact mode to detect interaction forces or oscillated close to its - resonance frequency. Changes in the oscillation amplitude, phase (between oscillated tail and moving tip) - or resonance frequency are very sensitive to changes in the interction potential field, giving rise of - various measurement modes, such as non-contact or intermittent-contact (tapping) modes. - oscillator_excitation(NX_NUMBER): - exists: optional - unit: NX_ANY - - # is this correct? I would expect a driving voltage... - doc: | - The threshold voltage for oscillator excitation. - phase_lock_loop(NXlockin): - exists: optional - doc: | - Phase locked loop for cantilever lock-in device. - amplitude_excitation(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The reference amplitude (also called drive amplitude) of the cantilever. - scan_environment(NXenvironment): - doc: | - The environment information. - height_piezo_sensor(NXsensor): - doc: | - Link to the group ENTRY[entry]/experiment_instrument/height_piezo_sensor. - XY_piezo_sensor(NXsensor): - doc: | - Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. - tip_temp_sensor(NXsensor): - doc: | - Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. - height_piezo_sensor(NXsensor): - exists: optional - doc: | - The sensor information for the height piezo device. - piezo_configuration(NXpiezo_config_spm): - doc: | - The piezo configuration information like piezoelectric calibration and material - properties. - piezo_material(NXpiezoelectric_material): - exists: optional - doc: | - The material description and properties of the piezoelectric scanner materials. - (NXpositioner_spm): - doc: | - The positioner information like the position of the tip, the position of the - sample, PID loop feedback etc. - XY_piezo_sensor(NXsensor): - exists: optional - doc: | - The sensor information for the xy piezo device. - piezo_configuration(NXpiezo_config_spm): - doc: | - The piezo configuration information like piezoelectric calibration and material - properties. - piezo_material(NXpiezoelectric_material): - exists: optional - doc: | - The material description and properties of the piezoelectric scanner materials. - (NXpositioner_spm): - doc: | - The positioner information like the position of the end of the cantilever, the position of the - sample, PID loop feedback etc. - tip_temp_sensor(NXsensor): - exists: optional - doc: | - The temperature of the scan environment or tip of the cantilever. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 5e6d35c0745060adc6707dfd9991c887a33b67ca2ed32ece1f7a00403906419f -# -# -# -# -# -# An application definition to describe atomic force microscopy (AFM) scanning -# technique. -# -# -# -# -# Name of the definition that is used for the application. -# -# -# -# -# -# -# -# The mode of the scan. -# -# -# -# -# -# -# -# -# -# -# -# The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding -# instruments. -# -# -# -# Information about the quadrant photodiode deflection detector. -# -# -# -# -# The cantilever information. -# -# Generally speaking, the cantilever resembles a leaf spring, which behaves as a simple harmonic oscillator. -# When the probe (tip or particle) on the end of the cantilever is close to the surface of the sample, -# an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. -# The detector (typically a light pointer hitting a quadrant photodiode) measures this deformation and, therefore, -# the force acting on the cantilever. -# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting -# on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of -# this loop controls the vertical position of the cantilever. -# -# -# -# When a cantilever is oscillated close to its resonance, this describes the oscillator properties. -# -# A cantilever can be used in direct contact mode to detect interaction forces or oscillated close to its -# resonance frequency. Changes in the oscillation amplitude, phase (between oscillated tail and moving tip) -# or resonance frequency are very sensitive to changes in the interction potential field, giving rise of -# various measurement modes, such as non-contact or intermittent-contact (tapping) modes. -# -# -# -# -# The threshold voltage for oscillator excitation. -# -# -# -# -# Phase locked loop for cantilever lock-in device. -# -# -# -# The reference amplitude (also called drive amplitude) of the cantilever. -# -# -# -# -# -# -# -# The environment information. -# -# -# -# Link to the group ENTRY[entry]/experiment_instrument/height_piezo_sensor. -# -# -# -# -# Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. -# -# -# -# -# Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. -# -# -# -# -# -# The sensor information for the height piezo device. -# -# -# -# The piezo configuration information like piezoelectric calibration and material -# properties. -# -# -# -# The material description and properties of the piezoelectric scanner materials. -# -# -# -# -# -# The positioner information like the position of the tip, the position of the -# sample, PID loop feedback etc. -# -# -# -# -# -# The sensor information for the xy piezo device. -# -# -# -# The piezo configuration information like piezoelectric calibration and material -# properties. -# -# -# -# The material description and properties of the piezoelectric scanner materials. -# -# -# -# -# -# The positioner information like the position of the end of the cantilever, the position of the -# sample, PID loop feedback etc. -# -# -# -# -# -# The temperature of the scan environment or tip of the cantilever. -# -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml b/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml deleted file mode 100644 index f1ba312ee..000000000 --- a/contributed_definitions/nyaml/SPM/NXbias_spectroscopy.yaml +++ /dev/null @@ -1,358 +0,0 @@ -category: base -doc: | - A base class for bias spectroscopy to describe the change in the physical properties - of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. - - In these experiments an electric potential is applied between the (conductive) sample and the probe - (tip), and the physical properties (e.g. tunnelling current) is measured as the function of this - potential. The potential is varied in so-called voltage sweeps and the corresponding properties are - recorded accordingly. -type: group -NXbias_spectroscopy(NXobject): - measurement_type: - doc: | - The measurement of the I(V) curve can come in two ways: - 1. Constant spacing: The bias voltage is swept from the start to the end with a constant - spacing between the tip and surface. - 2. Variable spacing: The bias voltage is swept from the start to the end in a discretized - spacing between the tip and surface. (Either an array of voltages, or the steps are defined). - enumeration: [constant_spacing, variadic_spacing] - (NXpositioner_spm): - doc: | - The PID (proportional, integral, differential feedback system) positioner information while running - bias voltage-tunneling current measurement. - - These components position the probe relative to the sample, thus help obtaining maps of the data - across the sample surface. - z_offset(NX_NUMBER): - unit: NX_LENGTH - doc: | - The z-offset is a starting tip position before the sweep starts (typically the position of a - piezo element). - - # how these time specifications relate to the later time values, like - # scan_time? - (NXcircuit): - exists: optional - acquisition_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by a bias sweep to acquire the data for - a single bias sweep point (when the given point or whole sweep is started.). - animation_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by a bias sweep to be displayed. - measurement_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by the circuit to measure a full bias sweep voltage or - bias current. (duration of the measurement) - - # how does this indicators_period differs from animation time? - indicators_period(NX_DATE_TIME): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by the circuit to indicate the bias sweep voltage - after measuring the voltage. - (NXbias_sweep): - doc: | - The bias sweep information. - scan_type: - - # I modify this text, by I may be wrong T. - # key is: I can change X,Y location at constant voltage or do a sweep - # at every X,Y coordinate, and I can define patterns how X,Y values follow - # each other (e.g. spiral) - doc: | - The type of scan like mesh, spiral, etc. - - This combines not only how the voltages are changed, but how the voltage values are - correlated to a position across the sample surface, measuring sweeps are each spatial - coordinate or mapping the response at constant voltage, etc. - For STS experiment, the scan type is usually a single-point scan (trajectory scan). - enumeration: [linear] - sweep_number(NX_NUMBER): - doc: | - The number of sweeps taken during the bias spectroscopy. - first_settling_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The initial time is taken to settle the bias voltage at the desired value. - On each sweep usually, the system takes time to settle to the bias voltage - at the next value. - end_settling_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time is taken to settle the bias voltage at the desired value. - The time (at the last sweep) to settle for the last value of the sweep. - max_slew_rate(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The rate at which the amplifier responds to the voltage change - (to reach at the desired value). It defines if the tip movement and - voltage sweep are synchronized. - final_z(NX_NUMBER): - exists: recommended - doc: | - The z position after the sweeps are done. - total_spectroscopy_time(NX_NUMBER): - exists: recommended - unit: NX_TIME - doc: | - The total time needed for the entire voltage sweep. - scan_region(NXobject): - doc: | - The region of the scan area. - scan_range(NX_NUMBER): - unit: NX_ANY - doc: | - The range of the scan area. - scan_offset(NX_NUMBER): - unit: NX_ANY - doc: | - The offset of the scan area in 2D (X and Y) space. - scan_angle_N(NX_NUMBER): - unit: NX_ANGLE - doc: | - The N (substring) denotes the angle of the scan area with different physical - axes. - linear_sweep(NXobject): - - # is this a special case of the scans described above? - doc: | - The linear scan information for scanning of a smaple. - - In this scan type the probe is scanned with a constant velocity across the surface, - and parameters are measured along the line. - scan_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The speed of the scanner or the probe during the scan. - scan_time(NX_NUMBER): - unit: NX_TIME - doc: | - The time taken by the scanner to scan the entire area. - forward_speed_bias(NX_NUMBER): - unit: NX_ANY - doc: | - Speed of the scanner or the probe moves forward direction. - backward_speed_bias(NX_NUMBER): - unit: NX_ANY - doc: | - Speed of the scanner or the probe that moves backward direction. - SCAN_data(NXdata): - doc: | - The data that comes from scanning the area. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 5b49dd5999a0c8838e232a3bfd90ce43f173d07395f56231de1be8e67bd7151b -# -# -# -# -# -# A base class for bias spectroscopy to describe the change in the physical properties -# of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. -# -# In these experiments an electric potential is applied between the (conductive) sample and the probe -# (tip), and the physical properties (e.g. tunnelling current) is measured as the function of this -# potential. The potential is varied in so-called voltage sweeps and the corresponding properties are -# recorded accordingly. -# -# -# -# The measurement of the I(V) curve can come in two ways: -# 1. Constant spacing: The bias voltage is swept from the start to the end with a constant -# spacing between the tip and surface. -# 2. Variable spacing: The bias voltage is swept from the start to the end in a discretized -# spacing between the tip and surface. (Either an array of voltages, or the steps are defined). -# -# -# -# -# -# -# -# -# The PID (proportional, integral, differential feedback system) positioner information while running -# bias voltage-tunneling current measurement. -# -# These components position the probe relative to the sample, thus help obtaining maps of the data -# across the sample surface. -# -# -# -# The z-offset is a starting tip position before the sweep starts (typically the position of a -# piezo element). -# -# -# -# -# -# -# -# The time or period is taken by a bias sweep to acquire the data for -# a single bias sweep point (when the given point or whole sweep is started.). -# -# -# -# -# The time or period is taken by a bias sweep to be displayed. -# -# -# -# -# The time or period is taken by the circuit to measure a full bias sweep voltage or -# bias current. (duration of the measurement) -# -# -# -# -# -# The time or period is taken by the circuit to indicate the bias sweep voltage -# after measuring the voltage. -# -# -# -# -# -# The bias sweep information. -# -# -# -# -# The type of scan like mesh, spiral, etc. -# -# This combines not only how the voltages are changed, but how the voltage values are -# correlated to a position across the sample surface, measuring sweeps are each spatial -# coordinate or mapping the response at constant voltage, etc. -# For STS experiment, the scan type is usually a single-point scan (trajectory scan). -# -# -# -# -# -# -# -# The number of sweeps taken during the bias spectroscopy. -# -# -# -# -# The initial time is taken to settle the bias voltage at the desired value. -# On each sweep usually, the system takes time to settle to the bias voltage -# at the next value. -# -# -# -# -# The time is taken to settle the bias voltage at the desired value. -# The time (at the last sweep) to settle for the last value of the sweep. -# -# -# -# -# The rate at which the amplifier responds to the voltage change -# (to reach at the desired value). It defines if the tip movement and -# voltage sweep are synchronized. -# -# -# -# -# The z position after the sweeps are done. -# -# -# -# -# The total time needed for the entire voltage sweep. -# -# -# -# -# The region of the scan area. -# -# -# -# The range of the scan area. -# -# -# -# -# The offset of the scan area in 2D (X and Y) space. -# -# -# -# -# The N (substring) denotes the angle of the scan area with different physical -# axes. -# -# -# -# -# -# -# The linear scan information for scanning of a smaple. -# -# In this scan type the probe is scanned with a constant velocity across the surface, -# and parameters are measured along the line. -# -# -# -# The speed of the scanner or the probe during the scan. -# -# -# -# -# The time taken by the scanner to scan the entire area. -# -# -# -# -# Speed of the scanner or the probe moves forward direction. -# -# -# -# -# Speed of the scanner or the probe that moves backward direction. -# -# -# -# -# The data that comes from scanning the area. -# -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXbias_sweep.yaml b/contributed_definitions/nyaml/SPM/NXbias_sweep.yaml deleted file mode 100644 index 683cfb91c..000000000 --- a/contributed_definitions/nyaml/SPM/NXbias_sweep.yaml +++ /dev/null @@ -1,149 +0,0 @@ -category: base -doc: | - A base class that defines how the bias voltage sweep is performed in the - scanning probe microscopy experiments. -type: group -NXbias_sweep(NXscan_control): - scan_region(NXobject): - doc: | - The scan region is the area of phase space or sub-phase space where the scan is - performed. - scan_offset_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The starting voltage of the bias sweep. The range of voltages for the sweep can - be defined with scan voltage offset and scan voltage range (difference between - minimum and maximum voltage values in a sweep) - scan_range_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The range of voltages for the sweep can be defined with scan voltage offset and - scan voltage range (difference between minimum and maximum voltage values in a - sweep) - scan_start_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The start of the bias scan voltage. - scan_end_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The end value of the bias scan voltage. - linear_sweep(NXobject): - doc: | - In the linear sweep, the bias voltage is changed linearly from the start value - to the end value. - backward_sweep(NX_BOOLEAN): - doc: | - If the bias voltage sweep is also performed in the opposite direction. - scan_points_bias(NX_NUMBER): - doc: | - The number of voltage points per sweep. - step_size_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The step size between the two consecutive bias voltage values during the sweep. - reset_bias(NX_BOOLEAN): - doc: | - The reset_bias defines whether the bias voltage should be reset to the starting - value after the sweep is completed. - SCAN_data(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, - please duplicate this NXdata group for each. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 63c8e627522926180b6b1a3bb3699f0c7f94d6f86a2335d5f38add044dd2190c -# -# -# -# -# -# A base class that defines how the bias voltage sweep is performed in the -# scanning probe microscopy experiments. -# -# -# -# The scan region is the area of phase space or sub-phase space where the scan is -# performed. -# -# -# -# The starting voltage of the bias sweep. The range of voltages for the sweep can -# be defined with scan voltage offset and scan voltage range (difference between -# minimum and maximum voltage values in a sweep) -# -# -# -# -# The range of voltages for the sweep can be defined with scan voltage offset and -# scan voltage range (difference between minimum and maximum voltage values in a -# sweep) -# -# -# -# -# The start of the bias scan voltage. -# -# -# -# -# The end value of the bias scan voltage. -# -# -# -# -# -# In the linear sweep, the bias voltage is changed linearly from the start value -# to the end value. -# -# -# -# If the bias voltage sweep is also performed in the opposite direction. -# -# -# -# -# The number of voltage points per sweep. -# -# -# -# -# The step size between the two consecutive bias voltage values during the sweep. -# -# -# -# -# The reset_bias defines whether the bias voltage should be reset to the starting -# value after the sweep is completed. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, -# please duplicate this NXdata group for each. -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXcalibration.yaml b/contributed_definitions/nyaml/SPM/NXcalibration.yaml deleted file mode 100644 index 2c59fac02..000000000 --- a/contributed_definitions/nyaml/SPM/NXcalibration.yaml +++ /dev/null @@ -1,419 +0,0 @@ -category: base -doc: | - Subclass of NXprocess to describe post-processing calibrations. -symbols: - doc: | - The symbols used in the schema to specify e.g. dimensions of arrays - ncoeff: | - Number of coefficients of the calibration function - ncal: | - Number of points of the calibrated and uncalibrated axes -type: group -NXcalibration(NXobject): - description(NX_CHAR): - doc: | - A description of the procedures employed. - start_time(NX_NUMBER): - doc: | - The start time of the calibration. - end_time(NX_NUMBER): - doc: | - The end time of the calibration. - calibration_interval(NX_FLOAT): - unit: NX_TIME - doc: | - The time difference between the start and end time of the calibration. - Or the value directly comes from the instrument. - validity_period(NX_DATE_TIME): - doc: | - The period for which the calibration is valid. Usually, every instrument or part of the - needs to be calibrated at regular intervals. - calibration_type(NX_CHAR): - doc: | - The type of calibration, e.g., active calibration, passive calibration, - or according to the laboratory defined type. - physical_quantity: - doc: | - The physical quantity of the calibration, e.g., - energy, momentum, time, etc. - calibration_method(NXidentifier): - doc: | - A digital persistent identifier (e.g., DOI, ISO standard) referring to a detailed description of a - calibration method but no actual calibration data. - calibration_reference(NXidentifier): - doc: | - A digital persistent identifier (e.g., a DOI) referring to a publicly available calibration measurement - used for this instrument, e.g., a measurement of a known standard containing calibration information. - The axis values may be copied or linked in the appropriate NXcalibration fields for reference. - calibration_object(NXserialized): - doc: | - A file serialisation of a calibration which may not be publicly available (externally from the nexus file). - - This metadata can be a documentation of the source (file) or database (entry) from which pieces - of information have been extracted for consumption (e.g. in a research data management system (RDMS)). - It is also possible to include the actual file by using the `file` field. - - The axis values may be copied or linked in the appropriate NXcalibration fields for reference. - last_process(NX_CHAR): - doc: | - Indicates the name of the last operation applied in the NXprocess sequence. - applied(NX_BOOLEAN): - doc: | - Has the calibration been applied? - calibration_software: - doc: | - Name of the software used for this calibration. - \@version: - doc: | - Software version. - original_axis(NX_FLOAT): - unit: NX_ANY - doc: | - Vector containing the data coordinates in the original uncalibrated axis - dimensions: - rank: 1 - dim: (ncal,) - \@symbol: - doc: | - The symbol of the axis to be used in the fit_function, e.g., `energy`, `E`. - This should comply to the following naming rules (similar to python's naming rules): - - * A variable name must start with a letter or the underscore character - * A variable name cannot start with a number - * A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ ) - * Variable names are case-sensitive (age, Age and AGE are three different variables) - \@input_path: - doc: | - The path from which this data is derived, e.g., raw detector axis. - Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. - input_SYMBOL(NX_FLOAT): - unit: NX_ANY - doc: | - Additional input axis to be used in the formula. - The part after `input_` is used as the symbol to be used in the `fit_function`, i.e., - if the field name is `input_my_field` you should refer to this axis by `my_field` in the `fit_function`. - dimensions: - rank: 1 - dim: (ncal,) - \@input_path: - doc: | - The path from which this data is derived, e.g., raw detector axis. - Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. - coefficients(NX_FLOAT): - unit: NX_ANY - doc: | - For non-linear energy calibrations, e.g. in a TOF, a polynomial function is fit - to a set of features (peaks) at well defined energy positions to determine - E(TOF). Here we can store the array of fit coefficients. - dimensions: - rank: 1 - dim: (ncoeff,) - fit_function(NX_CHAR): - doc: | - For non-linear energy calibrations. Here we can store the formula of the - fit function. - - Use a0, a1, ..., an for the coefficients, corresponding to the values in the coefficients field. - - Use x0, x1, ..., xn for the nth position in the `original_axis` field. - If there is the symbol attribute specified for the `original_axis` this may be used instead of x. - If you want to use the whole axis use `x`. - Alternate axis can also be available as specified by the `input_SYMBOL` field. - The data should then be referred here by the `SYMBOL` name, e.g., for a field - name `input_my_field` it should be referred here by `my_field` or `my_field0` if - you want to read the zeroth element of the array. - - The formula should be numpy compliant. - scaling(NX_FLOAT): - unit: NX_ANY - doc: | - For linear calibration. Scaling parameter. - This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. - offset(NX_FLOAT): - unit: NX_ANY - doc: | - For linear calibration. Offset parameter. - This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. - mapping_MAPPING(NX_FLOAT): - doc: | - Mapping data for calibration. - - This can be used to map data points from uncalibrated to calibrated values, - i.e., by multiplying each point in the input axis by the corresponding point in the mapping data. - calibrated_AXIS(NX_FLOAT): - unit: NX_ANY - doc: | - A vector representing the axis after calibration, matching the data length - dimensions: - rank: 1 - dim: (ncal,) - \@output_path: - doc: | - The path to which this data is written, e.g., the calibrated energy. - Should be a valid NeXus path name, e.g., /entry/data/energy. - (NXdata): - doc: | - Any data acquired/used during the calibration that does not fit the `NX_FLOAT` fields above. - NXdata groups can be used for multidimensional data which are relevant to the calibration - \@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 ++++++++++++++++++++++++++++++++++ -# 43ca2db5ea4eeb4af5d70b9d78e32cc291cf755de199c0cc2538369b87ebed91 -# -# -# -# -# -# -# The symbols used in the schema to specify e.g. dimensions of arrays -# -# -# -# Number of coefficients of the calibration function -# -# -# -# -# Number of points of the calibrated and uncalibrated axes -# -# -# -# -# Subclass of NXprocess to describe post-processing calibrations. -# -# -# -# A description of the procedures employed. -# -# -# -# -# The start time of the calibration. -# -# -# -# -# The end time of the calibration. -# -# -# -# -# The time difference between the start and end time of the calibration. -# Or the value directly comes from the instrument. -# -# -# -# -# The period for which the calibration is valid. Usually, every instrument or part of the -# needs to be calibrated at regular intervals. -# -# -# -# -# The type of calibration, e.g., active calibration, passive calibration, -# or according to the laboratory defined type. -# -# -# -# -# The physical quantity of the calibration, e.g., -# energy, momentum, time, etc. -# -# -# -# -# A digital persistent identifier (e.g., DOI, ISO standard) referring to a detailed description of a -# calibration method but no actual calibration data. -# -# -# -# -# A digital persistent identifier (e.g., a DOI) referring to a publicly available calibration measurement -# used for this instrument, e.g., a measurement of a known standard containing calibration information. -# The axis values may be copied or linked in the appropriate NXcalibration fields for reference. -# -# -# -# -# A file serialisation of a calibration which may not be publicly available (externally from the nexus file). -# -# This metadata can be a documentation of the source (file) or database (entry) from which pieces -# of information have been extracted for consumption (e.g. in a research data management system (RDMS)). -# It is also possible to include the actual file by using the `file` field. -# -# The axis values may be copied or linked in the appropriate NXcalibration fields for reference. -# -# -# -# -# Indicates the name of the last operation applied in the NXprocess sequence. -# -# -# -# -# Has the calibration been applied? -# -# -# -# -# Name of the software used for this calibration. -# -# -# -# Software version. -# -# -# -# -# -# Vector containing the data coordinates in the original uncalibrated axis -# -# -# -# -# -# -# The symbol of the axis to be used in the fit_function, e.g., `energy`, `E`. -# This should comply to the following naming rules (similar to python's naming rules): -# -# * A variable name must start with a letter or the underscore character -# * A variable name cannot start with a number -# * A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ ) -# * Variable names are case-sensitive (age, Age and AGE are three different variables) -# -# -# -# -# The path from which this data is derived, e.g., raw detector axis. -# Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. -# -# -# -# -# -# Additional input axis to be used in the formula. -# The part after `input_` is used as the symbol to be used in the `fit_function`, i.e., -# if the field name is `input_my_field` you should refer to this axis by `my_field` in the `fit_function`. -# -# -# -# -# -# -# The path from which this data is derived, e.g., raw detector axis. -# Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. -# -# -# -# -# -# For non-linear energy calibrations, e.g. in a TOF, a polynomial function is fit -# to a set of features (peaks) at well defined energy positions to determine -# E(TOF). Here we can store the array of fit coefficients. -# -# -# -# -# -# -# -# For non-linear energy calibrations. Here we can store the formula of the -# fit function. -# -# Use a0, a1, ..., an for the coefficients, corresponding to the values in the coefficients field. -# -# Use x0, x1, ..., xn for the nth position in the `original_axis` field. -# If there is the symbol attribute specified for the `original_axis` this may be used instead of x. -# If you want to use the whole axis use `x`. -# Alternate axis can also be available as specified by the `input_SYMBOL` field. -# The data should then be referred here by the `SYMBOL` name, e.g., for a field -# name `input_my_field` it should be referred here by `my_field` or `my_field0` if -# you want to read the zeroth element of the array. -# -# The formula should be numpy compliant. -# -# -# -# -# For linear calibration. Scaling parameter. -# This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. -# -# -# -# -# For linear calibration. Offset parameter. -# This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. -# -# -# -# -# Mapping data for calibration. -# -# This can be used to map data points from uncalibrated to calibrated values, -# i.e., by multiplying each point in the input axis by the corresponding point in the mapping data. -# -# -# -# -# A vector representing the axis after calibration, matching the data length -# -# -# -# -# -# -# The path to which this data is written, e.g., the calibrated energy. -# Should be a valid NeXus path name, e.g., /entry/data/energy. -# -# -# -# -# -# Any data acquired/used during the calibration that does not fit the `NX_FLOAT` fields above. -# NXdata groups can be used for multidimensional data which are relevant to the calibration -# -# -# -# -# .. 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/SPM/NXcantilever_spm.yaml b/contributed_definitions/nyaml/SPM/NXcantilever_spm.yaml deleted file mode 100644 index 3b1f1666a..000000000 --- a/contributed_definitions/nyaml/SPM/NXcantilever_spm.yaml +++ /dev/null @@ -1,281 +0,0 @@ -category: base -doc: | - A base class to describe the cantilever used in Atomic Force Microscopy (AFM) - techniques. -type: group -NXcantilever_spm(NXobject): - cantilever_oscillator(NXobject): - doc: | - Generally speaking, the cantilever resembles a simple harmonic oscillator. - When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. - In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. - This part describes the oscillator driving the oscillations of a cantilever in an AFM or other experiment. - reference_amplitude(NX_NUMBER): - unit: NX_ANY - doc: | - The reference amplitude (also called drive amplitude) of the cantilever. - reference_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The reference frequency (also called drive frequency or resonance frequency) of - the cantilever. - frequency_harmonic(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The harmonic (e.g., second harmonic of the fundamental frequency) frequency of - the cantilever. - phase_lock_loop(NXlockin): - doc: | - Phase locked loop for cantilever lock-in device. - cantilever_amplitude_positioner(NXpositioner): - doc: | - Describes the cantilever frequency positioner, if it exists. - cantilever_phase_positioner(NXpositioner): - doc: | - Describes the cantilever phase positioner, if it exists. - cantilever_frequency_positioner(NXpositioner): - doc: | - Describes the cantilever frequency positioner, if it exists. - phase_shift(NX_NUMBER): - unit: NX_ANGLE - doc: | - The phase difference between the reference signal of cantilever and response - signal. - frequency_shift(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Shift in the resonance frequency of the cantilever. - frequency_cutoff(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The cutoff frequency of the cantilever. - frequency_bandwidth(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The bandwidth of the resonance frequency. - target_amplitude(NX_NUMBER): - unit: NX_ANY - doc: | - The target amplitude of the cantilever to start the AFM/SPM experiment. - active_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The active frequency of the cantilever to start the experiment. - reference_phase(NX_NUMBER): - unit: NX_ANGLE - doc: | - The reference phase of the cantilever oscillator. - cantilever_config(NXobject): - doc: | - The configuration information of the cantilever such as calibration information, - material properties, size, resonance, etc. - cantilever_coating: - doc: | - The coating material of the cantilever. - curvature_radius_N(NX_NUMBER): - unit: NX_ANY - doc: | - The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. - cantilever_type: - doc: | - The shape of the cantilever as a general text, such as A-shape, beam, or arrow. - cantilever_length(NX_NUMBER): - unit: NX_LENGTH - doc: | - Nominal length between base and end of the cantilever in micrometers. - cantilever_width(NX_NUMBER): - unit: NX_LENGTH - doc: | - Nominal width of the cantilever in microns. - cantilever_thickness(NX_NUMBER): - unit: NX_LENGTH - doc: | - Nominal thickness of the cantilever in microns. - cantilever_resonance_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Nominal free resonance frequency of the cantilever in air, in kHz. - (NXcalibration): - doc: | - The calibration information of the cantilever. - sensitivity(NX_NUMBER): - unit: NX_ANY - doc: | - A force applied to the cantilever tip will cause a change in - cantilever's oscillation amplitude (in dynamic mode) or deflection of the cantilever. - The sensitivity of the cantilever is calculated as the ratio of this change to the force causing it. - spring_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The spring constant coefficient of the cantilever. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 89398ae58cda108a83a696128f7e8021a9abb5a60b191883f4f622692f616ab1 -# -# -# -# -# -# A base class to describe the cantilever used in Atomic Force Microscopy (AFM) -# techniques. -# -# -# -# Generally speaking, the cantilever resembles a simple harmonic oscillator. -# When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. -# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. -# This part describes the oscillator driving the oscillations of a cantilever in an AFM or other experiment. -# -# -# -# The reference amplitude (also called drive amplitude) of the cantilever. -# -# -# -# -# The reference frequency (also called drive frequency or resonance frequency) of -# the cantilever. -# -# -# -# -# The harmonic (e.g., second harmonic of the fundamental frequency) frequency of -# the cantilever. -# -# -# -# -# Phase locked loop for cantilever lock-in device. -# -# -# -# Describes the cantilever frequency positioner, if it exists. -# -# -# -# -# Describes the cantilever phase positioner, if it exists. -# -# -# -# -# Describes the cantilever frequency positioner, if it exists. -# -# -# -# -# -# The phase difference between the reference signal of cantilever and response -# signal. -# -# -# -# -# Shift in the resonance frequency of the cantilever. -# -# -# -# -# The cutoff frequency of the cantilever. -# -# -# -# -# The bandwidth of the resonance frequency. -# -# -# -# -# The target amplitude of the cantilever to start the AFM/SPM experiment. -# -# -# -# -# The active frequency of the cantilever to start the experiment. -# -# -# -# -# The reference phase of the cantilever oscillator. -# -# -# -# -# -# The configuration information of the cantilever such as calibration information, -# material properties, size, resonance, etc. -# -# -# -# The coating material of the cantilever. -# -# -# -# -# The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. -# -# -# -# -# The shape of the cantilever as a general text, such as A-shape, beam, or arrow. -# -# -# -# -# Nominal length between base and end of the cantilever in micrometers. -# -# -# -# -# Nominal width of the cantilever in microns. -# -# -# -# -# Nominal thickness of the cantilever in microns. -# -# -# -# -# Nominal free resonance frequency of the cantilever in air, in kHz. -# -# -# -# -# The calibration information of the cantilever. -# -# -# -# A force applied to the cantilever tip will cause a change in -# cantilever's oscillation amplitude (in dynamic mode) or deflection of the cantilever. -# The sensitivity of the cantilever is calculated as the ratio of this change to the force causing it. -# -# -# -# -# The spring constant coefficient of the cantilever. -# -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXcircuit.yaml b/contributed_definitions/nyaml/SPM/NXcircuit.yaml deleted file mode 100644 index a4da57121..000000000 --- a/contributed_definitions/nyaml/SPM/NXcircuit.yaml +++ /dev/null @@ -1,270 +0,0 @@ -category: base -doc: | - Application definition for circuit devices. - - Electronic circuits are hardware components connecting several electronic components to achieve - specific functionality, e.g. amplifying a voltage or convert a voltage to binary numbers, etc. -symbols: - doc: | - Constant to be used in the definition: the number of channels of the - circuit board. - N_channel: | - number of channels of the circuit board. -type: group -NXcircuit(NXobject): - hardware(NXfabrication): - doc: | - Hardware where the circuit is implanted; includes information about the hardware manufacturers and - type (e.g. part number) - All the elements below may be single numbers of an array of values with length N_channel - describing multiple input and output channels. - components: - doc: | - List of components used in the circuit, e.g., resistors, capacitors, transistors or any - other complex components. - connections: - doc: | - Description of how components are interconnected, including connection points - and wiring. - power_source: - doc: | - Details of the power source for the circuit, including voltage and current - ratings. - signal_type: - doc: | - Type of signal (input signal) the circuit is designed to handle, e.g., analog, - digital, mixed-signal. - - # should this be a min / max range? - operating_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The operating frequency of the circuit, see also bandwidth below, which is possibly - centered around this frequency. However, not necessarily (e.g. running a 100 kHz bandwidth - amplifier at low, audio frequencies 1 - 20,000 Hz) - - # we may need an NX_RESISTANCE defined - input_impedance(NX_NUMBER): - unit: NX_ANY - doc: | - Input impedance of the circuit. - output_impedance(NX_NUMBER): - unit: NX_ANY - doc: | - Output impedance of the circuit. - gain(NX_NUMBER): - unit: NX_UNITLESS - doc: | - Gain of the circuit, if applicable, usually all instruments have a gain which might be - important or not. - noise_level(NX_NUMBER): - unit: NX_ANY - doc: | - RMS noise level (in current or voltage) in the circuit in voltage or current. - bandwidth(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The bandwidth of the frequency response of the circuit. - temperature_range(NX_NUMBER): - unit: NX_ANY - doc: | - Operating temperature range of the circuit. - calibration(NXcalibration): - doc: | - Calibration data for the circuit. - offset(NX_NUMBER): - unit: NX_ANY - doc: | - Offset value for current or voltage. - output_channels(NX_NUMBER): - doc: | - Number of output channels collected to this circuit. Most probably N_channel. - output_signal(NX_NUMBER): - unit: NX_ANY - doc: | - Type of output signal, e.g., voltage, current, digital. - power_consumption(NX_NUMBER): - unit: NX_ANY - doc: | - Power consumption of the circuit per unit time. - status_indicators: - doc: | - Status indicators for the circuit, e.g., LEDs, display readouts. - protection_features(NX_CHAR): - doc: | - Protection features built into the circuit, e.g., overvoltage protection, - thermal shutdown. - acquisition_time(NX_NUMBER): - unit: NX_TIME - doc: | - Updated rate for several processes using the input signal, e.g., History Graph, the circuit - uses for any such process. - output_slew_rate(NX_CHAR): - doc: | - The rate at which the signal changes when ramping from the starting - value. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# a9455117da8b441d29ef1660d4c789c8d044ced52dacd958c0a82ca13594cee0 -# -# -# -# -# -# -# Constant to be used in the definition: the number of channels of the -# circuit board. -# -# -# -# number of channels of the circuit board. -# -# -# -# -# Application definition for circuit devices. -# -# Electronic circuits are hardware components connecting several electronic components to achieve -# specific functionality, e.g. amplifying a voltage or convert a voltage to binary numbers, etc. -# -# -# -# Hardware where the circuit is implanted; includes information about the hardware manufacturers and -# type (e.g. part number) -# All the elements below may be single numbers of an array of values with length N_channel -# describing multiple input and output channels. -# -# -# -# -# List of components used in the circuit, e.g., resistors, capacitors, transistors or any -# other complex components. -# -# -# -# -# Description of how components are interconnected, including connection points -# and wiring. -# -# -# -# -# Details of the power source for the circuit, including voltage and current -# ratings. -# -# -# -# -# Type of signal (input signal) the circuit is designed to handle, e.g., analog, -# digital, mixed-signal. -# -# -# -# -# -# The operating frequency of the circuit, see also bandwidth below, which is possibly -# centered around this frequency. However, not necessarily (e.g. running a 100 kHz bandwidth -# amplifier at low, audio frequencies 1 - 20,000 Hz) -# -# -# -# -# -# Input impedance of the circuit. -# -# -# -# -# Output impedance of the circuit. -# -# -# -# -# Gain of the circuit, if applicable, usually all instruments have a gain which might be -# important or not. -# -# -# -# -# RMS noise level (in current or voltage) in the circuit in voltage or current. -# -# -# -# -# The bandwidth of the frequency response of the circuit. -# -# -# -# -# Operating temperature range of the circuit. -# -# -# -# -# Calibration data for the circuit. -# -# -# -# -# Offset value for current or voltage. -# -# -# -# -# Number of output channels collected to this circuit. Most probably N_channel. -# -# -# -# -# Type of output signal, e.g., voltage, current, digital. -# -# -# -# -# Power consumption of the circuit per unit time. -# -# -# -# -# Status indicators for the circuit, e.g., LEDs, display readouts. -# -# -# -# -# Protection features built into the circuit, e.g., overvoltage protection, -# thermal shutdown. -# -# -# -# -# Updated rate for several processes using the input signal, e.g., History Graph, the circuit -# uses for any such process. -# -# -# -# -# The rate at which the signal changes when ramping from the starting -# value. -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXlockin.yaml b/contributed_definitions/nyaml/SPM/NXlockin.yaml deleted file mode 100644 index cc2257a6e..000000000 --- a/contributed_definitions/nyaml/SPM/NXlockin.yaml +++ /dev/null @@ -1,289 +0,0 @@ -category: base -doc: | - A base class definition for a lock-in amplifier. - - The lock-in amplifier information: the device is being used to extract a (potentially) - very weak input signal buried in the noisy background, where the input signal has - the same frequency (or its harmonic) as a known reference signal, using heterodyne - detection. - This method extracts the amplitude and phase shift of the current signal to the reference. - The reference signal might be created by a generator built-in into the lock-in amplifier. -type: group -NXlockin(NXobject): - hardware(NXfabrication): - doc: | - Hardware manufacturers and type (product number) of lock-in amplifier. - (NXamplifier): - doc: | - Description of the amplifier (after detection of the signal from the noise) - bias_divider: - doc: | - Bias divider for lock-in channel if if has. - Bias divider = V(ref)/[V(ref)+V(input)] - modulation_status(NX_BOOLEAN): - doc: | - Switch the lock-in modulation on or off. - modulation_signal(NX_CHAR): - doc: | - A periodic voltage signal generated by the lock-in, - usually applied to a sample and used to create a reference signal for the detection of the input signal - lockin_current_flip_sign(NX_NUMBER): - exists: optional - doc: | - The sign (1 or -1) that defines the sign of the lock-in current. - The calibration procedure with retracted tip is normally performed to compensate for the signal phase delay - in SPM. The procedure yields two possible solutions, this number should be equal - to 1 or -1 depending on which solution is chosen (this concept mainly used in STS experiments, - e.g. in Nanonis machine). - - # (For bais modulate signal, it depands on the modulate type) - - # unit could be NX_VOLTAGE or NX_CURRENT - # these (reference amplitude, frequency and phase) should be specivied on channel basis, - # even when common reference is sent to different channels - reference_amplitude(NX_NUMBER): - unit: NX_ANY - doc: | - Amplitude of the reference signal for the lock-in amplifier. - reference_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Frequency of the reference signal for the lock-in amplifier. - reference_phase(NX_NUMBER): - unit: NX_ANGLE - doc: | - Phase of the reference signal set in the lock-in amplifier. - demodulated_signal(NX_CHAR): - doc: | - Type of the demodulated signal, current | voltage. - demodulated_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The frequency of the demodulated signal. - frequency_demodulation_bandwidth(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The bandwidth of the modulated signal that can be applied in frequency - demodulation mechanism. - - # unit could be NX_VOLTAGE or NX_CURRENT - demodulated_amplitude(NX_NUMBER): - unit: NX_ANY - doc: | - The amplitude of the demodulated signal. - demodulated_phase(NX_NUMBER): - unit: NX_ANGLE - doc: | - The phase of the demodulated signal. - demodulator_channels(NX_CHAR): - doc: | - List of the demodulator channels. - low_pass_N(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Frequency of the low-pass filter applied on the demodulated - signals (X,Y), cut-off frq (low pass filter) (for each DemodulatorChannels). - hi_pass_N(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Frequency of the high-pass filter applied on the demodulation - signal cut-off frq (hi pass filter) (for each DemodulatorChannels). - lp_filter_order_N(NX_NUMBER): - doc: | - Order of the low-pass filter applied on the demodulated signals (X, Y). - Reducing the bandwidth or increasing the order reduces noise on the demodulated signals, - but increases settling and measurement times. - hp_filter_order_N(NX_NUMBER): - doc: | - Order of the high-pass filter applied on the demodulation - signal. This is used mainly to suppress a DC component of the input - signal noise. - ref_phase_N(NX_NUMBER): - unit: NX_ANGLE - doc: | - An extra reference phase offset of reference signal with respect to the demodulated signal - (foreach Channels). - integration_time(NX_NUMBER): - unit: NX_TIME - doc: | - Integration time for the product of the input and the reference signals - harmonic_order_N(NX_NUMBER): - doc: | - The reference signal can be a higher harmonic of the modulation signal. - Here the order of the harmonic is stored. - sensitivity_factor(NX_NUMBER): - doc: | - Ratio of output signal amplitude to input signal amplitue (V/V). - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 340ff0c78db623cc9da1e2fbb030f3c24cd1f514f6d5a410c310d9238449a7b1 -# -# -# -# -# -# A base class definition for a lock-in amplifier. -# -# The lock-in amplifier information: the device is being used to extract a (potentially) -# very weak input signal buried in the noisy background, where the input signal has -# the same frequency (or its harmonic) as a known reference signal, using heterodyne -# detection. -# This method extracts the amplitude and phase shift of the current signal to the reference. -# The reference signal might be created by a generator built-in into the lock-in amplifier. -# -# -# -# Hardware manufacturers and type (product number) of lock-in amplifier. -# -# -# -# -# Description of the amplifier (after detection of the signal from the noise) -# -# -# -# -# Bias divider for lock-in channel if if has. -# Bias divider = V(ref)/[V(ref)+V(input)] -# -# -# -# -# Switch the lock-in modulation on or off. -# -# -# -# -# A periodic voltage signal generated by the lock-in, -# usually applied to a sample and used to create a reference signal for the detection of the input signal -# -# -# -# -# The sign (1 or -1) that defines the sign of the lock-in current. -# The calibration procedure with retracted tip is normally performed to compensate for the signal phase delay -# in SPM. The procedure yields two possible solutions, this number should be equal -# to 1 or -1 depending on which solution is chosen (this concept mainly used in STS experiments, -# e.g. in Nanonis machine). -# -# -# -# -# -# -# Amplitude of the reference signal for the lock-in amplifier. -# -# -# -# -# Frequency of the reference signal for the lock-in amplifier. -# -# -# -# -# Phase of the reference signal set in the lock-in amplifier. -# -# -# -# -# Type of the demodulated signal, current | voltage. -# -# -# -# -# The frequency of the demodulated signal. -# -# -# -# -# The bandwidth of the modulated signal that can be applied in frequency -# demodulation mechanism. -# -# -# -# -# -# The amplitude of the demodulated signal. -# -# -# -# -# The phase of the demodulated signal. -# -# -# -# -# List of the demodulator channels. -# -# -# -# -# Frequency of the low-pass filter applied on the demodulated -# signals (X,Y), cut-off frq (low pass filter) (for each DemodulatorChannels). -# -# -# -# -# Frequency of the high-pass filter applied on the demodulation -# signal cut-off frq (hi pass filter) (for each DemodulatorChannels). -# -# -# -# -# Order of the low-pass filter applied on the demodulated signals (X, Y). -# Reducing the bandwidth or increasing the order reduces noise on the demodulated signals, -# but increases settling and measurement times. -# -# -# -# -# Order of the high-pass filter applied on the demodulation -# signal. This is used mainly to suppress a DC component of the input -# signal noise. -# -# -# -# -# An extra reference phase offset of reference signal with respect to the demodulated signal -# (foreach Channels). -# -# -# -# -# Integration time for the product of the input and the reference signals -# -# -# -# -# The reference signal can be a higher harmonic of the modulation signal. -# Here the order of the harmonic is stored. -# -# -# -# -# Ratio of output signal amplitude to input signal amplitue (V/V). -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml b/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml deleted file mode 100644 index 78dd861a6..000000000 --- a/contributed_definitions/nyaml/SPM/NXpiezo_config_spm.yaml +++ /dev/null @@ -1,202 +0,0 @@ -category: base -doc: | - A base class describing piezo actuator settings for scanning probe microscopy. - - Piezoelectric actuators work utilizing the inverse-piezoelectric effect, when a voltage - is applied on the material and it deforms proportional to the applied voltage. - Description below shows calibration coefficients and other configuration parameters of open loop piezo actuators (that is actuators without capacitive sensor feedback systems). - -# Discussion: No need to create this base class rather we can define in spm application definition. -type: group -NXpiezo_config_spm(NXobject): - piezo_material(NXpiezoelectric_material): - doc: | - The material description and properties of the piezoelectric scanner materials. - curvature_radius_N(NX_NUMBER): - unit: NX_LENGTH - doc: | - The N (substring) denotes X or Y. There are 2 parameters in X and Y directions. It can be set - approximately to the length of the piezo tube along X and Y axis. - calibration(NXcalibration): - calibration_type(NX_CHAR): - doc: | - The name of the calibration type, sometimes it is called - `active calibration`. - enumeration: [active, passive] - calibration_name: - doc: | - A specific name of the calibration (e.g. active type with name 'LHe'). - calibration_date(NX_DATE_TIME): - doc: | - The date of the calibration. - calibrated_AXIS(NX_NUMBER): - doc: | - The AXIS (substring) denotes X, Y or Z. There are three directions X, Y, and Z for calibration, - along with three available parameters each: Calibration (m/V), Range (m), and HV gain. Only - two of these parameters are required to define the calibration. Consequently, when any - value is changed, one of the other values will be automatically updated. - hv_gain_N(NX_NUMBER): - doc: | - The N (substring) denotes X or Y or Z. In some systems, there is an HV gain readout feature. For - these systems, the HV gain should be automatically adjusted whenever the gain is - changed at the high voltage amplifier. - range_N(NX_NUMBER): - unit: NX_LENGTH - doc: | - The N (substring) denotes X or Y or Z. There are 3 parameters in X, Y and Z directions. The range - is the maximum distance the piezo can move. - calibration_coefficient_N(NX_NUMBER): - unit: NX_ANY - doc: | - The calibration coefficient is the ratio of the actual distance moved by the piezo due to - the voltage applied to the piezo. It is also called first-order correction. - tilt_N(NX_NUMBER): - unit: NX_ANGLE - doc: | - The N (substring) denotes X and Y directions, and for both directions tilt needs to be adjusted according - to the actual surface. - 2nd_order_correction_N(NX_NUMBER): - unit: NX_ANY - doc: | - The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo - characteristics to compensate the error for that axis. - The following equation shows the - interpretation of the 2nd order correction parameters, For the X-piezo: "Ux = 1/cx · X + cxx · X2" - with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" - where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for - such the second-order correction is (V/m^2). - drift_correction_status(NX_BOOLEAN): - doc: | - The drift correction status (true / false) in calibration step of piezo. - drift_N(NX_NUMBER): - unit: NX_ANY - doc: | - The N (substring) denotes X, Y and Z directions. Define the - drift speed [m/s] for all three axes. When the compensation is on, the piezo will start to - move at that speed. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 96e710da01fe879d6ab92e5a15bf41b9f916f75e23b1d254f36999406f0afa60 -# -# -# -# -# -# -# A base class describing piezo actuator settings for scanning probe microscopy. -# -# Piezoelectric actuators work utilizing the inverse-piezoelectric effect, when a voltage -# is applied on the material and it deforms proportional to the applied voltage. -# Description below shows calibration coefficients and other configuration parameters of open loop piezo actuators (that is actuators without capacitive sensor feedback systems). -# -# -# -# The material description and properties of the piezoelectric scanner materials. -# -# -# -# The N (substring) denotes X or Y. There are 2 parameters in X and Y directions. It can be set -# approximately to the length of the piezo tube along X and Y axis. -# -# -# -# -# -# -# The name of the calibration type, sometimes it is called -# `active calibration`. -# -# -# -# -# -# -# -# -# A specific name of the calibration (e.g. active type with name 'LHe'). -# -# -# -# -# The date of the calibration. -# -# -# -# -# The AXIS (substring) denotes X, Y or Z. There are three directions X, Y, and Z for calibration, -# along with three available parameters each: Calibration (m/V), Range (m), and HV gain. Only -# two of these parameters are required to define the calibration. Consequently, when any -# value is changed, one of the other values will be automatically updated. -# -# -# -# -# The N (substring) denotes X or Y or Z. In some systems, there is an HV gain readout feature. For -# these systems, the HV gain should be automatically adjusted whenever the gain is -# changed at the high voltage amplifier. -# -# -# -# -# The N (substring) denotes X or Y or Z. There are 3 parameters in X, Y and Z directions. The range -# is the maximum distance the piezo can move. -# -# -# -# -# The calibration coefficient is the ratio of the actual distance moved by the piezo due to -# the voltage applied to the piezo. It is also called first-order correction. -# -# -# -# -# The N (substring) denotes X and Y directions, and for both directions tilt needs to be adjusted according -# to the actual surface. -# -# -# -# -# The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo -# characteristics to compensate the error for that axis. -# The following equation shows the -# interpretation of the 2nd order correction parameters, For the X-piezo: "Ux = 1/cx · X + cxx · X2" -# with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" -# where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for -# such the second-order correction is (V/m^2). -# -# -# -# -# The drift correction status (true / false) in calibration step of piezo. -# -# -# -# -# The N (substring) denotes X, Y and Z directions. Define the -# drift speed [m/s] for all three axes. When the compensation is on, the piezo will start to -# move at that speed. -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml b/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml deleted file mode 100644 index 0960a4033..000000000 --- a/contributed_definitions/nyaml/SPM/NXpiezoelectric_material.yaml +++ /dev/null @@ -1,207 +0,0 @@ -category: base -doc: | - Description and properties of the piezoelectric actuator materials. - The piezoelectric actuator is usually composed of polycrystalline solids and - attached at the head of the tip or cantilever. The material deforms when the external electric field is applied. -type: group -NXpiezoelectric_material(NXobject): - - # Online links: - # 1. ttps://www.ulprospector.com/knowledge/2689/pe-piezoelectric-materials/#:~:text=piezoelectric ceramics, such as lithium,as polyvinylidene fluoride (PVDF). - # 2. https://info.piezo.com/hubfs/Data-Sheets/piezo-material-properties-data-sheet-20201112.pdf - # 3. https://application.wiley-vch.de/books/sample/3527345124_c01.pdf - name(NX_CHAR): - doc: | - The name of the material of the piezo scanner such as Lead Zirconate Titanates - (PZTs). - piezo_material_identifier(NXidentifier): - doc: | - The identifier of the piezo material. - identifier(NX_CHAR): - doc: | - The identifier of the piezo material. - chemical_description(NXsubstance): - doc: | - The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. - type(NX_CHAR): - doc: | - The type of the material of the piezo scanner (e.g. piezoelectric ceramics, - polymer-film piezoelectrics). - - # Properties of the piezo material - density(NX_NUMBER): - unit: NX_ANY - doc: | - The density of the piezo material. - relative_permittivity(NX_NUMBER): - unit: NX_ANY - doc: | - The relative permittivity (dielectric constant) of the piezo material. - D_piezoelectric_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The piezoelectric charge coefficients of the material. The coefficients describe the electric - polarization generated by the applied stress in material. Different coefficients correspond to different - relative directions of the polarization and the stress. - G_voltage_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The constants define the electric field produced by the external mechanical strain. Different coefficients - correspond to different relative directions of the electric field and the strain. - K_electromechanical_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The electromechanical constant measures the efficiency of the conversion of mechanical energy - into electrical energy. - P_pyroelectric_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The pyroelectric constant defines the change of the polarization vector of the piezoelectric material - per unit change in temperature. - acoustic_impedance(NX_NUMBER): - unit: NX_ANY - doc: | - The acoustic impedance of the piezo material. - young_modulus(NX_NUMBER): - unit: NX_ANY - doc: | - The Young's modulus of the piezo material. - surface_resistivity(NX_NUMBER): - unit: NX_ANY - doc: | - The surface resistivity of the piezo material. - temperature_range(NX_NUMBER): - unit: NX_TEMPERATURE - doc: | - The temperature range of the piezo material. - glass_transition_temperature(NX_NUMBER): - unit: NX_TEMPERATURE - doc: | - The range of temperature where a piezoelectric hard material transforms into the - viscous state. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 0f228771942f8ad9c37ecfbdd4dc96d0193a3da548a401a92aec2d436caf26c6 -# -# -# -# -# -# Description and properties of the piezoelectric actuator materials. -# The piezoelectric actuator is usually composed of polycrystalline solids and -# attached at the head of the tip or cantilever. The material deforms when the external electric field is applied. -# -# -# -# -# The name of the material of the piezo scanner such as Lead Zirconate Titanates -# (PZTs). -# -# -# -# -# The identifier of the piezo material. -# -# -# -# The identifier of the piezo material. -# -# -# -# -# -# The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. -# -# -# -# -# The type of the material of the piezo scanner (e.g. piezoelectric ceramics, -# polymer-film piezoelectrics). -# -# -# -# -# -# The density of the piezo material. -# -# -# -# -# The relative permittivity (dielectric constant) of the piezo material. -# -# -# -# -# The piezoelectric charge coefficients of the material. The coefficients describe the electric -# polarization generated by the applied stress in material. Different coefficients correspond to different -# relative directions of the polarization and the stress. -# -# -# -# -# The constants define the electric field produced by the external mechanical strain. Different coefficients -# correspond to different relative directions of the electric field and the strain. -# -# -# -# -# The electromechanical constant measures the efficiency of the conversion of mechanical energy -# into electrical energy. -# -# -# -# -# The pyroelectric constant defines the change of the polarization vector of the piezoelectric material -# per unit change in temperature. -# -# -# -# -# The acoustic impedance of the piezo material. -# -# -# -# -# The Young's modulus of the piezo material. -# -# -# -# -# The surface resistivity of the piezo material. -# -# -# -# -# The temperature range of the piezo material. -# -# -# -# -# The range of temperature where a piezoelectric hard material transforms into the -# viscous state. -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml b/contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml deleted file mode 100644 index eb9989a12..000000000 --- a/contributed_definitions/nyaml/SPM/NXpositioner_spm.yaml +++ /dev/null @@ -1,94 +0,0 @@ -category: base -doc: | - Extending positioner from NXpositioner to maintain a measurement signal through - a feedback loop, specialized for scanning probe microscopy applications. -type: group -NXpositioner_spm(NXpositioner): - z_controller(NXpid): - doc: | - This controller's task is to continuously adjust the Z position of the STM/STS tip in order - to keep the selected control signal as close as possible to the Set Point. Different control - signals lead to different controller's behavior. - - The second PID feedback loop intends to position the tip in the Z direction. - - p_gain (proportional gain) from z_controller is the same as K_p_value from PID controller. - i_gain (integral gain) from z_controller is the same as K_i_value from PID controller. - setpoint from z_controller is the same as setpoint from PID controller. - z_offset(NX_NUMBER): - unit: NX_LENGTH - doc: | - Offset added to the initial averaged position tip on Z-axis before starting to - scan. - tip_position_z(NX_NUMBER): - unit: NX_LENGTH - doc: | - Indicate the tip position Z. The tip position can also be varied when the controller is not running. - This is the final position after the tip reaches an equilibrium state. - controller_name(NX_CHAR): - doc: | - Controller name. This name which will be displayed at places where you can select a - controller. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# a5050064b9d6434b8199aad19b42444df89447c2ffc7e324b0dacecbb0ca4c1c -# -# -# -# -# -# Extending positioner from NXpositioner to maintain a measurement signal through -# a feedback loop, specialized for scanning probe microscopy applications. -# -# -# -# This controller's task is to continuously adjust the Z position of the STM/STS tip in order -# to keep the selected control signal as close as possible to the Set Point. Different control -# signals lead to different controller's behavior. -# -# The second PID feedback loop intends to position the tip in the Z direction. -# -# p_gain (proportional gain) from z_controller is the same as K_p_value from PID controller. -# i_gain (integral gain) from z_controller is the same as K_i_value from PID controller. -# setpoint from z_controller is the same as setpoint from PID controller. -# -# -# -# -# Offset added to the initial averaged position tip on Z-axis before starting to -# scan. -# -# -# -# -# Indicate the tip position Z. The tip position can also be varied when the controller is not running. -# This is the final position after the tip reaches an equilibrium state. -# -# -# -# -# Controller name. This name which will be displayed at places where you can select a -# controller. -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXrcs.yaml b/contributed_definitions/nyaml/SPM/NXrcs.yaml deleted file mode 100644 index 72dbc9374..000000000 --- a/contributed_definitions/nyaml/SPM/NXrcs.yaml +++ /dev/null @@ -1,101 +0,0 @@ -category: base -doc: | - A base class for the Real Time Control System (RCS). - - A real time control system (RCS) is a reference architecture model - used to design highly task intensive software systems and computing - control systems. -type: group -NXrcs(NXobject): - rcs_name(NX_CHAR): - doc: | - The name of the real-time control system. - rcs_fabrication(NXfabrication): - doc: | - The fabrication information. - rcs_description(NX_CHAR): - doc: | - The description of the real-time control system. - rcs_type(NX_CHAR): - doc: | - The type of the real-time control system. - rcs_manufacturer(NX_CHAR): - doc: | - The manufacturer of the real-time control system. - rcs_serial_number(NX_CHAR): - doc: | - The serial number of the real-time control system. - rcs_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The frequency of the real-time control system. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 0e3f7bfa269c90b6102b23f0c39c4fc5e6fe67bd44a38c647502e94ebf0de5f7 -# -# -# -# -# -# A base class for the Real Time Control System (RCS). -# -# A real time control system (RCS) is a reference architecture model -# used to design highly task intensive software systems and computing -# control systems. -# -# -# -# The name of the real-time control system. -# -# -# -# -# The fabrication information. -# -# -# -# -# The description of the real-time control system. -# -# -# -# -# The type of the real-time control system. -# -# -# -# -# The manufacturer of the real-time control system. -# -# -# -# -# The serial number of the real-time control system. -# -# -# -# -# The frequency of the real-time control system. -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXscan_control.yaml b/contributed_definitions/nyaml/SPM/NXscan_control.yaml deleted file mode 100644 index b464b76e3..000000000 --- a/contributed_definitions/nyaml/SPM/NXscan_control.yaml +++ /dev/null @@ -1,1068 +0,0 @@ -category: base - -# Correction: region (use: phase space) -doc: | - A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). - - scan_types: - Trajectory: A list of N-dimensional sequential vectors describes the trajectory line for a full scan. - Mesh: For each dimension a range and a direction are chosen. When a scan along a dimension is done, a single step in the next dimension is taken, and then the scan in the previous dimension is repeated. As such we can speak about the fastest and the slowest scan axes. - Snake: Similar to a mesh scan but with the scanning direction reversed after each line. - Spiral: A scan taken along a spiral trajectory. - Tilt: At each step, a proportional movement is done in all dimensions. - Linear: A scan where the scanning will be performed along a single independent axis. - - Scan_control_types: - Stepping: At each step, a movement to the next point is performed; correction (for example backlash) or active regulation (feedback loop) may or may not be applied. After the movement is done, the measurement is performed without the movement. - Continuous: The scanning of each line in an N-dimensional phase space is done without stopping; measurements are done simultaneously with the movement. - Oscillating: Scanning over a scan point continuously and then moving to start scanning at the next position. -type: group -NXscan_control(NXobject): - scan_time_start(NX_DATE_TIME): - unit: NX_TIME - doc: | - The start time of the scan. - scan_time_end(NX_DATE_TIME): - unit: NX_TIME - doc: | - The end time of the scan. - independent_scan_axes: - doc: | - A list of scan axes which are controlled independently of each other. - (e.g. X, Y, Z, or other physical dimensions) - - The list is in the order of axes of the scan from the fastest to the slowest. - scan_resolution_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan resolution along each dimension as the number of steps per unit of the dimension parameters. - - Rename the field according to the name of the independent dimension (e.g. scan_resolution_x, scan_resolution_voltage). - accuracy_N(NX_NUMBER): - unit: NX_LENGTH - doc: | - Define the accuracy of the scan probe. - scan_type: - doc: | - This group specifies how the trajectory of the scan is defined. - enumeration: [trajectory, mesh, snake, spiral] - scan_control_type: - doc: | - This strig describes how the scan was performed. - enumeration: [stepping, continuous, oscillating] - scan_region(NXobject): - doc: | - The scan region is the area of phase space or sub-phase space where the scan is - performed. The region could be N-dimensional and is defined by the minimum and - maximum values of the scan axes. - scan_offset_N(NX_NUMBER): - unit: NX_ANY - doc: | - The offset of center of the scan region from the origin along the specific scan axis. - - 'N' denotes the name of the specific scan axis. (Offset, start and end positions are related) - scan_range_N(NX_NUMBER): - unit: NX_ANY - doc: | - The range of the scan is the length of the scan region along the dimension 'N'. - scan_angle_N(NX_NUMBER): - unit: NX_ANGLE - doc: | - The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough - to define the scan region. This field defines how the spatial space is oriented with respect to - the frame of reference. - - Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). - scan_start_N(NX_NUMBER): - unit: NX_ANY - doc: | - The start of the scan is the starting point of the scan region (phase space or sub-phase space) - for each independent scan axis. - - For N-dimensional, it is a list of N numbers. - scan_end_N(NX_NUMBER): - unit: NX_ANY - doc: | - The end of the scan is the ending point of the scan region (phase space or sub-phase space) - for each independent scan axis. - - Note: The scan_offset and scan_range are equivalent to the scan_start and scan_end. - - For N-dimensional, it is a list of N numbers. - mesh_SCAN(NXobject): - doc: | - For each dimension a range and a direction are chosen. When a scan along a dimension is done, - a single step in the next dimension is taken, and then the scan in the previous dimension is - repeated. As such we can speak about the fastest and the slowest scan axes. - scan_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the forward direction along the axis if forward and backward - speeds below are not specified. - - If the scan goes in the negative direction, the speed should be negative. - - Rename the field, according to the name of the dimension (e.g. scan_speed_x, scan_speed_voltage). - forward_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the forward directions. - Rename the field, according to the name of the dimension. - backward_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the backward directions. - Rename the field, according to the name of the dimension. - channel_NAME_N: - doc: | - Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is - to represent the name of the dimensions. - - Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). - scan_points_N(NX_NUMBER): - doc: | - Define the total number of points in the given axis scan to be performed. - - Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). - stepping_N(NX_NUMBER): - doc: | - The number of steps the probe jumps over the scan steps or points. This describes when not - every point from the scan_points is measured along an axis. - - Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one) - to perform each scan. By default, it is False. - step_size_N(NX_NUMBER): - unit: NX_ANY - doc: | - The length of each step in the scan on each dimension. - - Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). - continuous_N(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points or steps, use True. The default value is True. - Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves - in steps. - - Rename the field, according to the name of the dimension (e.g. continuous_voltage). - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. - The default value is False. - oscillation_frequency(NX_NUMBER): - doc: | - The number of oscillations on each scanning point per second. - SCAN_data(NXdata): - data: - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - - # For spiral scan - spiral_SCAN(NXobject): - doc: | - To define the spiral or circular scan, use this group. - scan_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in forward (clockwise) directions. - - If the scan goes in the negative (anti-clockwise) direction, the speed should be negative. - - Rename the field, according to the circle index. The circle near the center starts with 0. - In case, the speed is the same for all the circles, replace 'N' by 'all'. - \@spiral_direction: - doc: | - Define the direction of the spiral scan. (e.g. clockwise, anticlockwise from looking back - along the surface normal) - enumeration: [clockwise, anticlockwise] - forward_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the forward (clockwise) directions. - Rename the field, according to the circle index. The circle near the center starts with 0. - - In case, the speed is the same for all the circles, replace 'N' by 'all'. - backward_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the backward (anti-clockwise) directions. - Rename the field, according to the circle index. The circle near the center starts with 0. - - In case, the speed is the same for all the circles, replace 'N' by 'all'. - spiral_radius_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the radius of the spiral circle of scanning. - - Rename the field, according to the circle order, the nearest circle to the center is 0. - scan_points_N(NX_NUMBER): - doc: | - Define the total number of points in a given circle scan to be performed. - - Rename the field, according to the circle order, the nearest circle to the center - is 0 (e.g. scan_points_2). - stepping_N(NX_NUMBER): - doc: | - If the scan probe steps over a number of scan points. - - Rename the field, according to the circle index. The circle near the center starts with 0. - In case, the stepping is the same for all the circles, replace 'N' by 'all'. - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one), use True. - The default value is False. - step_size_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the number of points that the scan probe steps over. - - Rename the field, according to the circle index. The circle near the center or lowest value of a - parameter starts with 0. - In case, the step size is the same for all the circles, replace 'N' by 'all'. - continuous_N(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points, use True. The default value is True. - A scan process can run continuously in the spatial dimension but can be discretized in time or - other physical dimensions (e.g. voltage). - - Rename this field according to the dimensions, considering continuous scan in a two-dimensional space - rename the field as continuous_x_y. - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. The default value is - False. - oscillation_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Number of oscillation on each scanning point per second. - SCAN_data(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - - # This active_trajectory could be explained under the same group - snake_SCAN(NXobject): - doc: | - To define the snake scan, use this group. - scan_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed for the type of snake scan. For the same speed along the - positive and negative directions, use a single number - - Rename the field, according to the name of the fast and slow axis e.g. scan_speed_x. - forward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The field defines the scan speed in the positive direction on the fast axis. - - Rename the field, according to the name of the fast axis. - backward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The field defines the scan speed in the negative direction on the fast axis. - - Rename the field, according to the name of the fast axis. - scan_points_N(NX_NUMBER): - doc: | - Define the total number of points in the given axis scan to be performed. - - Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). - stepping_N(NX_NUMBER): - doc: | - The number of steps the probe jumps over the scan steps or points. - - Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one) - to perform each scan. By default, it is False. - - Rename the field, according to the name of the dimension. - step_size_N(NX_NUMBER): - unit: NX_ANY - doc: | - The length of each step in the scan on each dimension. - - Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). - channel_NAME_N: - doc: | - Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is - to represent the name of the dimensions. - - Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). - continuous_N(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points or steps, use True. The default value is True. - Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves - in a stepping manner. - - Rename the field, according to the name of the dimension (e.g. continuous_voltage). - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. - The default value is False. - oscillation_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The number of oscillations on each scanning point per second. - SCAN_data(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - traj_SCAN(NXobject): - doc: | - To define the trajectory scan, use this group. - scan_speed(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed through the trajectory points. - forward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The field defines the scan speed in the forward directions through the - trajectory points. - backward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The field defines the scan speed in the backward directions (backtracking) - through the trajectory points. - channel_NAME_N: - doc: | - Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is - to represent the name of the dimensions. - - Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). - number_of_trajectory_points(NX_NUMBER): - doc: | - The number of trajectory points in the entire scan. - trajectory_points(NX_NUMBER): - doc: | - The trajectory points are the N-dimensional vectors describing all the scan points sequentially. - - The second rank dataset should contain total number of trajectory points (nTraj) and - a full coordinate (nD) of each trajectory point. - dimensions: - rank: 2 - dim: (nTraj, nD) - scan_points_N(NX_NUMBER): - doc: | - Define the total number of scan points between two trajectory points. - - Rename the field, according to the index of the second trajectory points. - For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. - stepping_N(NX_NUMBER): - doc: | - The number of steps the probe jumps over the scan steps or points along the trajectory line from between two trajectory points. - - Rename the field, according to the index of the second trajectory points. - For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one) - to perform each scan. By default, it is False. - step_size(NX_NUMBER): - unit: NX_ANY - doc: | - The length of each step along the entire trajectory line. - continuous(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points or steps between two - trajectory points, use True. The default value is True. - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. - The default value is False. - oscillation_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The number of oscillations on each scanning point per second. - SCAN_data(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - linear_SCAN(NXobject): - doc: | - Define the scan mode that is performed for a single independent data axis. - scan_speed(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed of the scan disregarding the forward or backward - direction. - forward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the forward directions. - backward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the backward directions. - channel_NAME(NX_CHAR): - doc: | - Name of the channel that records the scan data for the given dimension. - scan_points_N(NX_NUMBER): - doc: | - Define the total number of points in the given axis scan to be performed. - - Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). - stepping_N(NX_NUMBER): - doc: | - The number of steps the probe jumps over the scan steps or points. - - Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one) - to perform each scan. By default, it is False. - step_size_N(NX_NUMBER): - unit: NX_ANY - doc: | - The length of each step in the scan on each dimension. - - Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). - continuous_N(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points or steps, use True. The default value is True. - Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves - in a stepping manner. - - Rename the field, according to the name of the dimension (e.g. continuous_voltage). - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. - The default value is False. - oscillation_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The number of oscillations on each scanning point per second. - SCAN_data(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# d18ffd5c1912f2d3afd811c93b192903484a7e805d1db7646eeea5e051c1277c -# -# -# -# -# -# -# A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). -# -# scan_types: -# Trajectory: A list of N-dimensional sequential vectors describes the trajectory line for a full scan. -# Mesh: For each dimension a range and a direction are chosen. When a scan along a dimension is done, a single step in the next dimension is taken, and then the scan in the previous dimension is repeated. As such we can speak about the fastest and the slowest scan axes. -# Snake: Similar to a mesh scan but with the scanning direction reversed after each line. -# Spiral: A scan taken along a spiral trajectory. -# Tilt: At each step, a proportional movement is done in all dimensions. -# Linear: A scan where the scanning will be performed along a single independent axis. -# -# Scan_control_types: -# Stepping: At each step, a movement to the next point is performed; correction (for example backlash) or active regulation (feedback loop) may or may not be applied. After the movement is done, the measurement is performed without the movement. -# Continuous: The scanning of each line in an N-dimensional phase space is done without stopping; measurements are done simultaneously with the movement. -# Oscillating: Scanning over a scan point continuously and then moving to start scanning at the next position. -# -# -# -# The start time of the scan. -# -# -# -# -# The end time of the scan. -# -# -# -# -# A list of scan axes which are controlled independently of each other. -# (e.g. X, Y, Z, or other physical dimensions) -# -# The list is in the order of axes of the scan from the fastest to the slowest. -# -# -# -# -# Define the scan resolution along each dimension as the number of steps per unit of the dimension parameters. -# -# Rename the field according to the name of the independent dimension (e.g. scan_resolution_x, scan_resolution_voltage). -# -# -# -# -# Define the accuracy of the scan probe. -# -# -# -# -# This group specifies how the trajectory of the scan is defined. -# -# -# -# -# -# -# -# -# -# -# This strig describes how the scan was performed. -# -# -# -# -# -# -# -# -# -# The scan region is the area of phase space or sub-phase space where the scan is -# performed. The region could be N-dimensional and is defined by the minimum and -# maximum values of the scan axes. -# -# -# -# The offset of center of the scan region from the origin along the specific scan axis. -# -# 'N' denotes the name of the specific scan axis. (Offset, start and end positions are related) -# -# -# -# -# The range of the scan is the length of the scan region along the dimension 'N'. -# -# -# -# -# The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough -# to define the scan region. This field defines how the spatial space is oriented with respect to -# the frame of reference. -# -# Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). -# -# -# -# -# The start of the scan is the starting point of the scan region (phase space or sub-phase space) -# for each independent scan axis. -# -# For N-dimensional, it is a list of N numbers. -# -# -# -# -# The end of the scan is the ending point of the scan region (phase space or sub-phase space) -# for each independent scan axis. -# -# Note: The scan_offset and scan_range are equivalent to the scan_start and scan_end. -# -# For N-dimensional, it is a list of N numbers. -# -# -# -# -# -# For each dimension a range and a direction are chosen. When a scan along a dimension is done, -# a single step in the next dimension is taken, and then the scan in the previous dimension is -# repeated. As such we can speak about the fastest and the slowest scan axes. -# -# -# -# Define the scan speed in the forward direction along the axis if forward and backward -# speeds below are not specified. -# -# If the scan goes in the negative direction, the speed should be negative. -# -# Rename the field, according to the name of the dimension (e.g. scan_speed_x, scan_speed_voltage). -# -# -# -# -# Define the scan speed in the forward directions. -# Rename the field, according to the name of the dimension. -# -# -# -# -# Define the scan speed in the backward directions. -# Rename the field, according to the name of the dimension. -# -# -# -# -# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is -# to represent the name of the dimensions. -# -# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). -# -# -# -# -# Define the total number of points in the given axis scan to be performed. -# -# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). -# -# -# -# -# The number of steps the probe jumps over the scan steps or points. This describes when not -# every point from the scan_points is measured along an axis. -# -# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one) -# to perform each scan. By default, it is False. -# -# -# -# -# -# The length of each step in the scan on each dimension. -# -# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). -# -# -# -# -# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. -# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves -# in steps. -# -# Rename the field, according to the name of the dimension (e.g. continuous_voltage). -# -# -# -# -# If the scan probe oscillates over the scan point, use True. -# The default value is False. -# -# -# -# -# The number of oscillations on each scanning point per second. -# -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# -# -# -# -# To define the spiral or circular scan, use this group. -# -# -# -# Define the scan speed in forward (clockwise) directions. -# -# If the scan goes in the negative (anti-clockwise) direction, the speed should be negative. -# -# Rename the field, according to the circle index. The circle near the center starts with 0. -# In case, the speed is the same for all the circles, replace 'N' by 'all'. -# -# -# -# Define the direction of the spiral scan. (e.g. clockwise, anticlockwise from looking back -# along the surface normal) -# -# -# -# -# -# -# -# -# -# Define the scan speed in the forward (clockwise) directions. -# Rename the field, according to the circle index. The circle near the center starts with 0. -# -# In case, the speed is the same for all the circles, replace 'N' by 'all'. -# -# -# -# -# Define the scan speed in the backward (anti-clockwise) directions. -# Rename the field, according to the circle index. The circle near the center starts with 0. -# -# In case, the speed is the same for all the circles, replace 'N' by 'all'. -# -# -# -# -# Define the radius of the spiral circle of scanning. -# -# Rename the field, according to the circle order, the nearest circle to the center is 0. -# -# -# -# -# Define the total number of points in a given circle scan to be performed. -# -# Rename the field, according to the circle order, the nearest circle to the center -# is 0 (e.g. scan_points_2). -# -# -# -# -# If the scan probe steps over a number of scan points. -# -# Rename the field, according to the circle index. The circle near the center starts with 0. -# In case, the stepping is the same for all the circles, replace 'N' by 'all'. -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one), use True. -# The default value is False. -# -# -# -# -# -# Define the number of points that the scan probe steps over. -# -# Rename the field, according to the circle index. The circle near the center or lowest value of a -# parameter starts with 0. -# In case, the step size is the same for all the circles, replace 'N' by 'all'. -# -# -# -# -# If the scan probe moves continuously over the scan points, use True. The default value is True. -# A scan process can run continuously in the spatial dimension but can be discretized in time or -# other physical dimensions (e.g. voltage). -# -# Rename this field according to the dimensions, considering continuous scan in a two-dimensional space -# rename the field as continuous_x_y. -# -# -# -# -# If the scan probe oscillates over the scan point, use True. The default value is -# False. -# -# -# -# -# Number of oscillation on each scanning point per second. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# -# -# -# To define the snake scan, use this group. -# -# -# -# Define the scan speed for the type of snake scan. For the same speed along the -# positive and negative directions, use a single number -# -# Rename the field, according to the name of the fast and slow axis e.g. scan_speed_x. -# -# -# -# -# The field defines the scan speed in the positive direction on the fast axis. -# -# Rename the field, according to the name of the fast axis. -# -# -# -# -# The field defines the scan speed in the negative direction on the fast axis. -# -# Rename the field, according to the name of the fast axis. -# -# -# -# -# Define the total number of points in the given axis scan to be performed. -# -# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). -# -# -# -# -# The number of steps the probe jumps over the scan steps or points. -# -# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one) -# to perform each scan. By default, it is False. -# -# Rename the field, according to the name of the dimension. -# -# -# -# -# -# The length of each step in the scan on each dimension. -# -# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). -# -# -# -# -# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is -# to represent the name of the dimensions. -# -# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). -# -# -# -# -# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. -# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves -# in a stepping manner. -# -# Rename the field, according to the name of the dimension (e.g. continuous_voltage). -# -# -# -# -# If the scan probe oscillates over the scan point, use True. -# The default value is False. -# -# -# -# -# The number of oscillations on each scanning point per second. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# -# -# To define the trajectory scan, use this group. -# -# -# -# Define the scan speed through the trajectory points. -# -# -# -# -# The field defines the scan speed in the forward directions through the -# trajectory points. -# -# -# -# -# The field defines the scan speed in the backward directions (backtracking) -# through the trajectory points. -# -# -# -# -# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is -# to represent the name of the dimensions. -# -# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). -# -# -# -# -# The number of trajectory points in the entire scan. -# -# -# -# -# The trajectory points are the N-dimensional vectors describing all the scan points sequentially. -# -# The second rank dataset should contain total number of trajectory points (nTraj) and -# a full coordinate (nD) of each trajectory point. -# -# -# -# -# -# -# -# -# Define the total number of scan points between two trajectory points. -# -# Rename the field, according to the index of the second trajectory points. -# For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. -# -# -# -# -# The number of steps the probe jumps over the scan steps or points along the trajectory line from between two trajectory points. -# -# Rename the field, according to the index of the second trajectory points. -# For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one) -# to perform each scan. By default, it is False. -# -# -# -# -# -# The length of each step along the entire trajectory line. -# -# -# -# -# If the scan probe moves continuously over the scan points or steps between two -# trajectory points, use True. The default value is True. -# -# -# -# -# If the scan probe oscillates over the scan point, use True. -# The default value is False. -# -# -# -# -# The number of oscillations on each scanning point per second. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# -# -# Define the scan mode that is performed for a single independent data axis. -# -# -# -# Define the scan speed of the scan disregarding the forward or backward -# direction. -# -# -# -# -# Define the scan speed in the forward directions. -# -# -# -# -# Define the scan speed in the backward directions. -# -# -# -# -# Name of the channel that records the scan data for the given dimension. -# -# -# -# -# Define the total number of points in the given axis scan to be performed. -# -# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). -# -# -# -# -# The number of steps the probe jumps over the scan steps or points. -# -# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one) -# to perform each scan. By default, it is False. -# -# -# -# -# -# The length of each step in the scan on each dimension. -# -# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). -# -# -# -# -# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. -# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves -# in a stepping manner. -# -# Rename the field, according to the name of the dimension (e.g. continuous_voltage). -# -# -# -# -# If the scan probe oscillates over the scan point, use True. -# The default value is False. -# -# -# -# -# The number of oscillations on each scanning point per second. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXsensor_scan.yaml b/contributed_definitions/nyaml/SPM/NXsensor_scan.yaml deleted file mode 100644 index 7d5c42490..000000000 --- a/contributed_definitions/nyaml/SPM/NXsensor_scan.yaml +++ /dev/null @@ -1,400 +0,0 @@ -category: application -doc: | - Application definition for a generic scan using sensors. - - In this application definition, times should be specified always together - with an UTC offset. -symbols: - doc: | - Variables used to set a common size for collected sensor data. - N_scanpoints: | - The number of scan points measured in this scan. -type: group -NXsensor_scan(NXobject): - (NXentry): - \@default: - exists: recommended - 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 visualised upon entry. - See https://www.nexusformat.org/2014_How_to_find_default_data.html - for a summary of the discussion. - definition(NX_CHAR): - \@version: - enumeration: [NXsensor_scan] - experiment_identifier(NXidentifier): - exists: recommended - doc: | - The unique identifier for the entry. The identifier is mainly lab-defined and - can be a combination of the sample name, date and time, experiment condition - (such as temperature) or instrument-generated unique identifier. - collection_identifier(NXidentifier): - exists: optional - doc: | - The unique identifier for the collection. The identifier is used to group a - number of the experiments run upon the same setup and/or same sample. - experiment_description: - exists: recommended - start_time(NX_NUMBER): - unit: NX_TIME - exists: recommended - end_time(NX_NUMBER): - unit: NX_TIME - exists: recommended - (NXprocess): - doc: | - Define the program that was used to generate the results file(s) - with measured data and metadata. - program(NX_CHAR): - doc: | - Commercial or otherwise defined given name of the program - (or a link to the instrument software). - \@version: - doc: | - Either version with build number, commit hash, or description of an - (online) repository where the source code of the program and build - instructions can be found so that the program can be configured in - such a way that result files can be created ideally in a - deterministic manner. - \@program_url: - doc: | - Website of the software. - (NXuser): - doc: | - Contact information of at least the user of the instrument or the - investigator who performed this experiment. Adding multiple users if - relevant is recommended. - name(NX_CHAR): - doc: | - Name of the user. - affiliation(NX_CHAR): - exists: recommended - doc: | - Name of the affiliation of the user at the point in time when - the experiment was performed. - address(NX_CHAR): - exists: recommended - doc: | - Full address (street, street number, ZIP, city, country) - of the user's affiliation. - email(NX_CHAR): - exists: recommended - doc: | - Email address of the user. - orcid(NX_CHAR): - exists: recommended - doc: | - Author ID defined by https://orcid.org/. - telephone_number(NX_CHAR): - exists: recommended - doc: | - Official telephone number of the user. - (NXnote): - exists: optional - doc: | - Any additional information or notes (e.g. purpose of the experiment) that might - be useful to understand the experiment. - (NXinstrument): - (NXenvironment): - doc: | - Describes an environment setup for the experiment. - - All the setting values of the independently scanned controllers are listed under corresponding - NXsensor groups. Similarly, seperate NXsensor groups are used to store the readings from each - measurement sensor. - - For example, in a temperature-dependent IV measurement, the temperature and voltage must be - present as independently scanned controllers and the current sensor must also be present with - its readings. - (NXsensor): - (NXdata): - exists: recommended - doc: | - Plot of measured signal as a function of the timestamp of when they have been - acquired is also possible. - value(NX_FLOAT): - unit: NX_ANY - doc: | - For each point in the scan space, either the nominal setpoint of an independently scanned controller - or a representative average value of a measurement sensor is registered. - - The length of each sensor's data value array stored in this group should be equal to the number of scan points - probed in this scan. For every scan point [N], the corresponding sensor value can be picked from index [N]. - This allows the scan to be made in any order as the user describes above in the experiment. We get matching - values simply using the index of the scan point. - dimensions: - rank: 1 - dim: (N_scanpoints,) - value_timestamp(NX_DATE_TIME): - exists: recommended - doc: | - Timestamp for when the values provided in the value field were registered. - - Individual readings can be stored with their timestamps under value_log. This is to timestamp - the nominal setpoint or average reading values listed above in the value field. - run_control(NX_CHAR): - exists: recommended - \@description: - doc: | - Free-text describing the data acquisition control: an internal - sweep using the built-in functionality of the controller device, - or a set/wait/read/repeat mechanism. - calibration_time(NX_NUMBER): - unit: NX_TIME - doc: | - ISO8601 datum when calibration was last performed - before this measurement. UTC offset should be specified. - (NXpid): - independent_controllers: - doc: | - A list of names of NXsensor groups used as independently scanned controllers. - measurement_sensors: - doc: | - A list of names of NXsensor groups used as measurement sensors. - (NXsample): - exists: recommended - name(NX_CHAR): - (NXhistory): - exists: optional - (NXdata): - doc: | - A scan specific representation of the measured signals as a function of the independently controlled environment settings. - Plot of every measured signal as a function of the timestamp of when they have been acquired is also possible. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# f3e7b07bd31669f7b0e222c1f9f170699fb12046a5a4879ec5a2cf03f670d0dc -# -# -# -# -# -# -# Variables used to set a common size for collected sensor data. -# -# -# -# The number of scan points measured in this scan. -# -# -# -# -# Application definition for a generic scan using sensors. -# -# In this application definition, times should be specified always together -# with an UTC offset. -# -# -# -# -# .. 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 visualised upon entry. -# See https://www.nexusformat.org/2014_How_to_find_default_data.html -# for a summary of the discussion. -# -# -# -# -# -# -# -# -# -# -# The unique identifier for the entry. The identifier is mainly lab-defined and -# can be a combination of the sample name, date and time, experiment condition -# (such as temperature) or instrument-generated unique identifier. -# -# -# -# -# The unique identifier for the collection. The identifier is used to group a -# number of the experiments run upon the same setup and/or same sample. -# -# -# -# -# -# -# -# Define the program that was used to generate the results file(s) -# with measured data and metadata. -# -# -# -# Commercial or otherwise defined given name of the program -# (or a link to the instrument software). -# -# -# -# Either version with build number, commit hash, or description of an -# (online) repository where the source code of the program and build -# instructions can be found so that the program can be configured in -# such a way that result files can be created ideally in a -# deterministic manner. -# -# -# -# -# Website of the software. -# -# -# -# -# -# -# Contact information of at least the user of the instrument or the -# investigator who performed this experiment. Adding multiple users if -# relevant is recommended. -# -# -# -# Name of the user. -# -# -# -# -# Name of the affiliation of the user at the point in time when -# the experiment was performed. -# -# -# -# -# Full address (street, street number, ZIP, city, country) -# of the user's affiliation. -# -# -# -# -# Email address of the user. -# -# -# -# -# Author ID defined by https://orcid.org/. -# -# -# -# -# Official telephone number of the user. -# -# -# -# -# -# Any additional information or notes (e.g. purpose of the experiment) that might -# be useful to understand the experiment. -# -# -# -# -# -# Describes an environment setup for the experiment. -# -# All the setting values of the independently scanned controllers are listed under corresponding -# NXsensor groups. Similarly, seperate NXsensor groups are used to store the readings from each -# measurement sensor. -# -# For example, in a temperature-dependent IV measurement, the temperature and voltage must be -# present as independently scanned controllers and the current sensor must also be present with -# its readings. -# -# -# -# -# Plot of measured signal as a function of the timestamp of when they have been -# acquired is also possible. -# -# -# -# -# For each point in the scan space, either the nominal setpoint of an independently scanned controller -# or a representative average value of a measurement sensor is registered. -# -# The length of each sensor's data value array stored in this group should be equal to the number of scan points -# probed in this scan. For every scan point [N], the corresponding sensor value can be picked from index [N]. -# This allows the scan to be made in any order as the user describes above in the experiment. We get matching -# values simply using the index of the scan point. -# -# -# -# -# -# -# -# Timestamp for when the values provided in the value field were registered. -# -# Individual readings can be stored with their timestamps under value_log. This is to timestamp -# the nominal setpoint or average reading values listed above in the value field. -# -# -# -# -# -# Free-text describing the data acquisition control: an internal -# sweep using the built-in functionality of the controller device, -# or a set/wait/read/repeat mechanism. -# -# -# -# -# -# ISO8601 datum when calibration was last performed -# before this measurement. UTC offset should be specified. -# -# -# -# -# -# -# A list of names of NXsensor groups used as independently scanned controllers. -# -# -# -# -# A list of names of NXsensor groups used as measurement sensors. -# -# -# -# -# -# -# -# -# -# -# A scan specific representation of the measured signals as a function of the independently controlled environment settings. -# Plot of every measured signal as a function of the timestamp of when they have been acquired is also possible. -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXspm.yaml b/contributed_definitions/nyaml/SPM/NXspm.yaml deleted file mode 100644 index 16bf6331c..000000000 --- a/contributed_definitions/nyaml/SPM/NXspm.yaml +++ /dev/null @@ -1,841 +0,0 @@ -category: application -doc: | - Scanning Probe Microscopy (SPM) is a branch of microscopy that utilizes a physical probe to scan the surface of - sample and image it at the atomic level. - - The application class NXspm is designed as a skeleton and contains common technical concepts - for specific SPM sub-techniques such as STM, STS, AFM etc. -type: group -NXspm(NXsensor_scan): - (NXentry): - definition: - doc: | - Name of the definition that is used for the application. - enumeration: [NXspm] - experiment_technique: - doc: | - The technique of the experiment like STM, STS, AFM, etc. - enumeration: [STM, STS, AFM] - scan_mode: - exists: optional - doc: | - The mode of the scan. The possible options depend on the type of experiment. - For example, in STM, the scan mode could be constant height or constant current, - in AFM, the scan mode could be contact mode, tapping mode or non-contact mode. - scan_type: - exists: optional - doc: | - The type of the scan. It mainly describes how scan probe moves in the scan region, e.g. - forward, backward, or both (if scan is repeated). - experiment_identifier(NXidentifier): - exists: optional - doc: | - The identifiers for the experiment which should be unique at least in lab. - experiment_description: - exists: optional - doc: | - The description of the experiment like comments, ontes from from the experiment. - experiment_instrument(NXinstrument): - doc: | - The instrument information. - hardware(NXfabrication): - doc: | - The hardware description of the core instrument setup of the experiment. - Usually, the entire instrument is supplied by a single manufacturer. - To describe the hardware from any sub-components, use the hardware group of that - sub-component (child group of the NXinstrument group) group. - vendor: - doc: | - Company name of the manufacturer. - model: - doc: | - Version or model of the hardware setup provided by the manufacturer. - \@version: - exists: optional - doc: | - If different versions are possible, the value in this field should be made - specific enough to resolve the version. - software(NXfabrication): - doc: | - The software description of the core instrument setup of the experiment. - Usually, the entire instrument is supplied by a single name/manufacturer/model/etc. - To describe the software from any sub-components, use the software group of that component. - vendor: - doc: | - Company name of the manufacturer. - model: - doc: | - Version or model of the component named by the manufacturer. - \@version: - exists: optional - doc: | - If different versions are possible, the value in this field should be made - specific enough to resolve the version. - real_time_controller(NXrcs): - exists: optional - doc: | - The real-time controller information. - rcs_frequency(NX_NUMBER): - exists: optional - doc: | - The frequency of the real-time controller system which indicated the number of close-loop process - (gathering data, process data and update system) control cycles per second. - lockin_amplifier(NXlockin): - exists: optional - doc: | - The lock-in amplifier information. - scan_environment(NXenvironment): - doc: | - Information of the scan environment. - tip_temp(NX_NUMBER): - exists: optional - unit: NX_TEMPERATURE - doc: | - Temperature of STM head. Note: At least one field from tip_temp, - cryo_bottom_temp and cryo_shield_temp must be provided. - cryo_bottom_temp(NX_NUMBER): - exists: optional - unit: NX_TEMPERATURE - doc: | - Temperature of the cold tail of the cryostat. Note: At least one field from - tip_temp, cryo_bottom_temp and cryo_shield_temp must be provided. - cryo_shield_temp(NX_NUMBER): - exists: optional - unit: NX_TEMPERATURE - doc: | - Temperature of liquid nitrogen shield. Note: At - least one field from tip_temp, cryo_bottom_temp and cryo_shield_temp. - scan_name: - exists: optional - doc: | - The name of the scan, mainly lab defined, that helps to differentiate among different - scans performed in the lab. - current_sensor(NXsensor): - exists: optional - doc: | - This is a link to the current_sensor under the instrument group: - entry/experiment_instrument/current_sensor. - volatage_sensor(NXsensor): - exists: optional - doc: | - This is a link to the voltage_sensor under the instrument group: - entry/experiment_instrument/voltage_sensor. - piezo_sensor(NXsensor): - exists: optional - doc: | - This is a link to the piezo_sensor under the instrument group: - entry/experiment_instrument/piezo_sensor. - (NXscan_control): - doc: | - The scan control information like scan region or phase space, type of scan (e.g. - mesh, spiral, etc.), and scan speed, etc. This group mainly stores the raw scan - data. For processed data or final experimental data would go to NXdata group. - scan_name: - exists: optional - doc: | - The name of the scan, mainly lab defined, that helps to differentiate among different - scans performed in lab. This field is intended for several types of scan control - run under the same environment. - current_sensor(NXsensor): - exists: optional - doc: | - Information for current sensor. - (NXamplifier): - exists: optional - doc: | - An amplifier information for the input signal (e.g. from tip). - voltage_sensor(NXsensor): - exists: optional - doc: | - The sensor information for the voltage device. - (NXamplifier): - exists: optional - piezo_sensor(NXsensor): - doc: | - The piezo sensor refers to the height (or Z) piezo sensor if nothing is - mentioned along the X and Y directions. - x(NX_NUMBER): - unit: NX_LENGTH - doc: | - The x position of the piezo. In STS experiment, the piezo stays fixed at - x,y and z and the the tunneling current is measured with respect to the - bias voltage (sweep voltage). - y(NX_NUMBER): - unit: NX_LENGTH - doc: | - The y position of the piezo. - z(NX_NUMBER): - unit: NX_LENGTH - doc: | - The z position of the piezo. - piezo_configuration(NXpiezo_config_spm): - exists: optional - doc: | - The piezo configuration information like piezoelectric calibration and material - properties. - calibration(NXcalibration): - exists: optional - doc: | - Calibration of the piezo device. - (NXpositioner_spm): - doc: | - The positioner information like the position of the tip, the position of the - sample, PID loop feedback etc. - z_controller(NXpid): - doc: | - The PID controller information for the z-axis. - z(NX_NUMBER): - doc: | - To indicate the relative tip position z between tip and sample. The tip position - can also be varied when the z_controller is not running. - controller_status(NX_BOOLEAN): - doc: | - Status if controller is active. - piezo_material(NXpiezoelectric_material): - exists: optional - doc: | - The material description and properties of the piezoelectric scanner materials. - TEMPERATURE(NXsensor): - exists: optional - doc: | - A group handling the temperature such as cryo, shield and tip. For different - type of temperature sensors repeat this group. - temperature(NX_NUMBER): - exists: optional - unit: NX_TEMPERATURE - doc: | - The temperature of the sample. - CHANNEL_temp(NX_CHAR): - exists: optional - doc: | - The name of the channel to measure the temperature. - temperature_calibration(NXcalibration): - exists: optional - doc: | - Calibration of the temperature measurement. - coefficients(NX_NUMBER): - unit: NX_ANY - doc: | - The coefficients of the calibration. - TEMPERATURE_DATA(NXdata): - exists: optional - doc: | - Data (e.g, record from SPM head temperature) from temperature sensor. - bias_spectroscopy_environment(NXenvironment): - doc: | - To explain bias (sweep measurement) voltage applied to the sample. - (NXbias_spectroscopy): - doc: | - Setup and scan data for continuous measurement of bias-voltage on the subject of experiment - vs tunneling current from probe. - (NXpositioner_spm): - exists: optional - doc: | - The positioner information like the position of the tip, PID loop feedback etc. - z_controller(NXpid): - exists: optional - doc: | - The PID controller information for the z-axis. - z_average_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The average time taken by the z-controller to stabilize the tip. - z_controller_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time taken by the z-controller to measure physical properties. - z_controller_hold(NX_BOOLEAN): - exists: optional - doc: | - The status of the controller to be held on the previous position, before going to the - next scan point or line to measure the physical properties. - record_final_z(NX_BOOLEAN): - exists: optional - doc: | - The status of the controller to record the final z position after the scan. - bias_sweep(NXbias_sweep): - doc: | - The bais voltage sweep is a common technique used on the substance or sample or environment - to study the change in the behavior of the sample or substance or environment due to change - in applied bias voltage. - settling_time(NX_NUMBER): - unit: NX_TIME - doc: | - The time is taken to settle the bias voltage at the desired value. On each sweep usually, the system - takes time to settle the bias voltage at the next value. - scan_region(NXobject): - doc: | - The scan region (phase space or sub-phase space) is the region where the scan is - performed. - scan_offset_bias(NX_NUMBER): - exists: optional - unit: NX_VOLTAGE - doc: | - The offset of the bias voltage for bias sweep. - scan_range_bias(NX_NUMBER): - exists: optional - unit: NX_VOLTAGE - doc: | - The range of the scan is the length of the bias voltage over which the sweep - scan will be performed. - scan_start_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The start of the bias scan voltage. - scan_end_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The end of the bias scan voltage. - linear_sweep(NXobject): - doc: | - The linear sweep is a type of scan where the bias voltage is swept - linearly from the starting voltage to the ending voltage. - scan_points_bias(NX_NUMBER): - doc: | - The number of voltage points the sweep scan to be performed. - step_size_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The step size of the sweep. - The step size is the difference between the two consecutive bias voltage during the sweep. - reset_bias(NX_BOOLEAN): - exists: optional - doc: | - The reset_bias is used to reset the bias voltage to the starting value after a - sweep is completed. - sample_bias_votage(NXsensor): - exists: optional - doc: | - The DC bias voltage that is applied to the sample. - bias_voltage(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The bias voltage (DC) applied to the sample. - bias_offset(NX_NUMBER): - exists: optional - unit: NX_VOLTAGE - doc: | - Offset value of the bias voltage. - bias_calibration(NXcalibration): - exists: optional - doc: | - Calibration of the bias voltage measurement (V/V). - calibration_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by the calibration to setup to acquire the data for - the calibration. - coefficients(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The coefficients of the calibration. - (NXsample): - exists: optional - doc: | - The sample information. - history(NXhistory): - doc: | - A set of physical processes that occurred to the sample prior/during experiment. - sample_environment(NXenvironment): - exists: optional - doc: | - Information of environment around the sample. - sample_bias_voltage(NXsensor): - doc: | - Link to the sample_bias_voltage sensor under the instrument. - reproducibility_indicators(NXobject): - doc: | - The group of indicators (links to the existing fields in different groups) that measure - the reproducibility of the experiment. - resolution_indicators(NXobject): - exists: optional - doc: | - The group of indicators (links to the existing fields in different groups) that - are used to measure the resolution of the experiment results. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 024acfe5f7495619bd18650959526d439d77db6e3f1c1c261065366908510744 -# -# -# -# -# -# Scanning Probe Microscopy (SPM) is a branch of microscopy that utilizes a physical probe to scan the surface of -# sample and image it at the atomic level. -# -# The application class NXspm is designed as a skeleton and contains common technical concepts -# for specific SPM sub-techniques such as STM, STS, AFM etc. -# -# -# -# -# Name of the definition that is used for the application. -# -# -# -# -# -# -# -# The technique of the experiment like STM, STS, AFM, etc. -# -# -# -# -# -# -# -# -# -# The mode of the scan. The possible options depend on the type of experiment. -# For example, in STM, the scan mode could be constant height or constant current, -# in AFM, the scan mode could be contact mode, tapping mode or non-contact mode. -# -# -# -# -# The type of the scan. It mainly describes how scan probe moves in the scan region, e.g. -# forward, backward, or both (if scan is repeated). -# -# -# -# -# The identifiers for the experiment which should be unique at least in lab. -# -# -# -# -# The description of the experiment like comments, ontes from from the experiment. -# -# -# -# -# The instrument information. -# -# -# -# The hardware description of the core instrument setup of the experiment. -# Usually, the entire instrument is supplied by a single manufacturer. -# To describe the hardware from any sub-components, use the hardware group of that -# sub-component (child group of the NXinstrument group) group. -# -# -# -# Company name of the manufacturer. -# -# -# -# -# Version or model of the hardware setup provided by the manufacturer. -# -# -# -# If different versions are possible, the value in this field should be made -# specific enough to resolve the version. -# -# -# -# -# -# -# The software description of the core instrument setup of the experiment. -# Usually, the entire instrument is supplied by a single name/manufacturer/model/etc. -# To describe the software from any sub-components, use the software group of that component. -# -# -# -# Company name of the manufacturer. -# -# -# -# -# Version or model of the component named by the manufacturer. -# -# -# -# If different versions are possible, the value in this field should be made -# specific enough to resolve the version. -# -# -# -# -# -# -# The real-time controller information. -# -# -# -# The frequency of the real-time controller system which indicated the number of close-loop process -# (gathering data, process data and update system) control cycles per second. -# -# -# -# -# -# The lock-in amplifier information. -# -# -# -# -# Information of the scan environment. -# -# -# -# Temperature of STM head. Note: At least one field from tip_temp, -# cryo_bottom_temp and cryo_shield_temp must be provided. -# -# -# -# -# Temperature of the cold tail of the cryostat. Note: At least one field from -# tip_temp, cryo_bottom_temp and cryo_shield_temp must be provided. -# -# -# -# -# Temperature of liquid nitrogen shield. Note: At -# least one field from tip_temp, cryo_bottom_temp and cryo_shield_temp. -# -# -# -# -# The name of the scan, mainly lab defined, that helps to differentiate among different -# scans performed in the lab. -# -# -# -# -# This is a link to the current_sensor under the instrument group: -# entry/experiment_instrument/current_sensor. -# -# -# -# -# This is a link to the voltage_sensor under the instrument group: -# entry/experiment_instrument/voltage_sensor. -# -# -# -# -# This is a link to the piezo_sensor under the instrument group: -# entry/experiment_instrument/piezo_sensor. -# -# -# -# -# The scan control information like scan region or phase space, type of scan (e.g. -# mesh, spiral, etc.), and scan speed, etc. This group mainly stores the raw scan -# data. For processed data or final experimental data would go to NXdata group. -# -# -# -# The name of the scan, mainly lab defined, that helps to differentiate among different -# scans performed in lab. This field is intended for several types of scan control -# run under the same environment. -# -# -# -# -# -# -# Information for current sensor. -# -# -# -# An amplifier information for the input signal (e.g. from tip). -# -# -# -# -# -# The sensor information for the voltage device. -# -# -# -# -# -# The piezo sensor refers to the height (or Z) piezo sensor if nothing is -# mentioned along the X and Y directions. -# -# -# -# The x position of the piezo. In STS experiment, the piezo stays fixed at -# x,y and z and the the tunneling current is measured with respect to the -# bias voltage (sweep voltage). -# -# -# -# -# The y position of the piezo. -# -# -# -# -# The z position of the piezo. -# -# -# -# -# The piezo configuration information like piezoelectric calibration and material -# properties. -# -# -# -# Calibration of the piezo device. -# -# -# -# -# -# The positioner information like the position of the tip, the position of the -# sample, PID loop feedback etc. -# -# -# -# The PID controller information for the z-axis. -# -# -# -# To indicate the relative tip position z between tip and sample. The tip position -# can also be varied when the z_controller is not running. -# -# -# -# -# Status if controller is active. -# -# -# -# -# -# -# The material description and properties of the piezoelectric scanner materials. -# -# -# -# -# -# A group handling the temperature such as cryo, shield and tip. For different -# type of temperature sensors repeat this group. -# -# -# -# The temperature of the sample. -# -# -# -# -# The name of the channel to measure the temperature. -# -# -# -# -# Calibration of the temperature measurement. -# -# -# -# The coefficients of the calibration. -# -# -# -# -# -# Data (e.g, record from SPM head temperature) from temperature sensor. -# -# -# -# -# -# To explain bias (sweep measurement) voltage applied to the sample. -# -# -# -# Setup and scan data for continuous measurement of bias-voltage on the subject of experiment -# vs tunneling current from probe. -# -# -# -# The positioner information like the position of the tip, PID loop feedback etc. -# -# -# -# The PID controller information for the z-axis. -# -# -# -# The average time taken by the z-controller to stabilize the tip. -# -# -# -# -# The time taken by the z-controller to measure physical properties. -# -# -# -# -# The status of the controller to be held on the previous position, before going to the -# next scan point or line to measure the physical properties. -# -# -# -# -# The status of the controller to record the final z position after the scan. -# -# -# -# -# -# -# The bais voltage sweep is a common technique used on the substance or sample or environment -# to study the change in the behavior of the sample or substance or environment due to change -# in applied bias voltage. -# -# -# -# The time is taken to settle the bias voltage at the desired value. On each sweep usually, the system -# takes time to settle the bias voltage at the next value. -# -# -# -# -# The scan region (phase space or sub-phase space) is the region where the scan is -# performed. -# -# -# -# The offset of the bias voltage for bias sweep. -# -# -# -# -# The range of the scan is the length of the bias voltage over which the sweep -# scan will be performed. -# -# -# -# -# The start of the bias scan voltage. -# -# -# -# -# The end of the bias scan voltage. -# -# -# -# -# -# The linear sweep is a type of scan where the bias voltage is swept -# linearly from the starting voltage to the ending voltage. -# -# -# -# The number of voltage points the sweep scan to be performed. -# -# -# -# -# The step size of the sweep. -# The step size is the difference between the two consecutive bias voltage during the sweep. -# -# -# -# -# The reset_bias is used to reset the bias voltage to the starting value after a -# sweep is completed. -# -# -# -# -# -# -# -# -# The DC bias voltage that is applied to the sample. -# -# -# -# The bias voltage (DC) applied to the sample. -# -# -# -# -# Offset value of the bias voltage. -# -# -# -# -# Calibration of the bias voltage measurement (V/V). -# -# -# -# The time or period is taken by the calibration to setup to acquire the data for -# the calibration. -# -# -# -# -# The coefficients of the calibration. -# -# -# -# -# -# -# -# The sample information. -# -# -# -# A set of physical processes that occurred to the sample prior/during experiment. -# -# -# -# -# Information of environment around the sample. -# -# -# -# Link to the sample_bias_voltage sensor under the instrument. -# -# -# -# -# -# -# The group of indicators (links to the existing fields in different groups) that measure -# the reproducibility of the experiment. -# -# -# -# -# The group of indicators (links to the existing fields in different groups) that -# are used to measure the resolution of the experiment results. -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXstm.yaml b/contributed_definitions/nyaml/SPM/NXstm.yaml deleted file mode 100644 index d9ddf7539..000000000 --- a/contributed_definitions/nyaml/SPM/NXstm.yaml +++ /dev/null @@ -1,662 +0,0 @@ -category: application -doc: | - An application definition to describe Scanning Tunneling Microscopy (STM). - -# https://thesis.library.caltech.edu/1943/4/03chapter3.pdf -# TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and NXafm -type: group -NXstm(NXspm): - (NXentry): - definition: - doc: | - Name of the definition that is used for the application. - enumeration: [NXstm] - scan_mode: - doc: | - The mode of the scan that is performed. Two commonly used ones are constant - height mode and constant current mode. - enumeration: [constant height, constant current] - experiment_instrument(NXinstrument): - doc: | - The group explains the instrumentation of the STM experiment such - as current sensor, lock-in amplifier etc. - lockin_amplifier(NXlockin): - doc: | - The lock-in amplifier information. The device is being used to extract - the very weak signal buried in noisy signals. - modulation_signal_type: - exists: optional - unit: NX_UNITLESS - doc: | - The type of the signal (voltage or current) subject fo modulation. - modulation_frequency(NX_NUMBER): - exists: optional - doc: | - The frequency of the sine modulation that is used to modulate the signal in - lock-in. - scan_environment(NXenvironment): - doc: | - The environment information for stm or sts experiment. - (NXscan_control): - doc: | - The scan control information like scan region or phase space, type of scan - (e.g. mesh, spiral, etc.), and scan speed, etc. - scan_type: - doc: | - The type of scan like mesh, spiral, etc. For STS experiment, the scan type is - usually a single-point scan (trajectory scan). - enumeration: [mesh, trajectory, snake, spiral] - tip_temp_sensor(NXsensor): - exists: optional - doc: | - This group stands for the same concept as - /ENTRY[entry]/experiment_instrument/tip_temperature - cryo_temp_sensor(NXsensor): - exists: optional - doc: | - This group stands for the same concept as - /ENTRY[entry]/experiment_instrument/cryo_temperature - cryo_shield_temp_sensor(NXsensor): - exists: optional - doc: | - This group stands for the same concept as - /ENTRY[entry]/experiment_instrument/cryo_shield_temperature - tip_temp_sensor(NXsensor): - exists: optional - doc: | - The temperature of the tip one of the tip. - cryo_temp_sensor(NXsensor): - exists: optional - doc: | - The temperature of the cryostat. - cryo_shield_temp_sensor(NXsensor): - exists: optional - doc: | - The temperature of the cryo shield. - current_sensor(NXsensor): - doc: | - The sensor information. - current(NX_NUMBER): - unit: NX_CURRENT - doc: | - The tunneling current between tip and sample after - applying bias voltage. - current_offset(NX_NUMBER): - exists: optional - unit: NX_CURRENT - doc: | - Offset value of the current measurement. - current_calibration(NXcalibration): - exists: optional - doc: | - Calibration of the current measurement. - calibration_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by the calibration to setup to acquire the data for - the calibration. - coefficients(NX_NUMBER): - unit: NX_ANY - doc: | - The coefficients of the calibration. - (NXamplifier): - exists: optional - doc: | - An amplifier information for the input signal (e.g. from tip). - current_gain(NX_NUMBER): - unit: NX_UNITLESS - doc: | - Proportional relationship between the probe output voltage and the actual - tunneling current when measuring the tunneling current. - bias_spectroscopy_environment(NXenvironment): - exists: optional - doc: | - To explain bias (sweep measurement) voltage applied to the sample. - (NXbias_spectroscopy): - exists: optional - doc: | - Setup and scan data for continuous measurement of bias-voltage on the subject of experiment - vs tunneling current from probe. - Data from from this experiment can also be used to calculate the dI/dV spectra. - piezo_sensor(NXsensor): - doc: | - The sensor information for the piezo device. - piezo_configuration(NXpiezo_config_spm): - exists: optional - doc: | - The piezo configuration information like piezoelectric device calibration and - material properties. - calibration(NXcalibration): - exists: optional - doc: | - Calibration of the piezo device. - 2nd_order_correction_N(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The N (substring) denotes X and Y directions. The 2nd order piezo - compensate the error for that axis. The following equation shows the - interpretation of the 2nd order correction parameters, - For the X-piezo: "Ux = 1/cx · X + cxx · X2" - with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" - where cx is the calibration of the piezo X and cxx is the 2nd order - correction. The unit for such the second-order correction is (V/m^2). - calibration_type(NX_CHAR): - exists: optional - doc: | - The name of the calibration type, sometimes it is called - e.g active calibration, passive calibration. - calibration_coefficient_N(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The calibration coefficient is the ratio of the actual distance moved by the piezo to - the voltage applied to the piezo. It is also called first-order correction. - drift_N(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - Set up the settings to enable or disable the drift compensation. - drift_correction_status(NX_BOOLEAN): - exists: optional - doc: | - Whether the drift has been corrected in case there is a deviation in the - drift. - tilt_N(NX_NUMBER): - exists: optional - unit: NX_ANGLE - doc: | - The N (substring) denotes X and Y directions, and for both directions - tilt needs to be adjusted according to the actual surface. - hv_gain_N(NX_NUMBER): - doc: | - The N (substring) denotes X or Y or Z. In some systems, - there is an HV gain readout feature. For these systems, - the HV gain should be automatically adjusted whenever - the gain is changed at the high voltage amplifier. - (NXpositioner_spm): - doc: | - The positioner information like the position of the tip, - PID loop feedback etc. - z_controller(NXpid): - doc: | - The PID controller information for the z-axis. - z(NX_NUMBER): - doc: | - To indicate the relative tip position z between tip and sample. The tip position - can also be varied when the z_controller is not running. - set_point(NX_NUMBER): - unit: NX_ANY - doc: | - The set point for the z-controller to be fixed and the target value could be - height or current. - controller_name: - exists: recommended - doc: | - The name of the controller or channels. - controller_status(NX_BOOLEAN): - exists: recommended - doc: | - The status of the controller to say was PID has been used or not. - tip_lift(NX_NUMBER): - exists: optional - unit: NX_LENGTH - doc: | - If the tip is lifted from the stable point. - switch_off_delay: - exists: optional - unit: NX_TIME - doc: | - The switch-off delay of the controller from its stable point. - reproducibility_indicators(NXobject): - exists: optional - doc: | - The group's concepts hold the link to the related concepts that define the - reproducibility of the STM experiment. - current(NX_NUMBER): - exists: optional - doc: | - The tunneling current between tip and sample after application of bias voltage. - link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current - current_offset(NX_NUMBER): - exists: optional - doc: | - The tunneling current between tip and sample after application of bias voltage. - link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current - current_gain(NX_NUMBER): - exists: optional - doc: | - Proportional relationship between the probe output voltage and the actual - tunneling current when measuring the tunneling current. - link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/amplifier/current_gain - bias_sweep(NXobject): - exists: optional - doc: | - Link to target: - /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] - modulation_signal_type: - exists: optional - doc: | - This is the signal on which the modulation voltage or current will be added. - link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type - modulation_frequency(NX_NUMBER): - exists: optional - doc: | - The frequency of the sine modulation that is used to modulate the signal in lock-in. - link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency - resolution_indicators(NXobject): - exists: optional - doc: | - The group's concepts hold the link to the related concepts that define the - resolution of the STM experiment. - stm_head_temp(NXsensor): - exists: optional - doc: | - Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp - cryo_bottom_temp(NXsensor): - exists: optional - doc: | - Link to target: - /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp - cryo_shield_temp(NXsensor): - exists: optional - doc: | - Link to target: - /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature - bias_sweep(NXobject): - exists: optional - doc: | - Link to target: - /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] - modulation_signal_type: - exists: optional - doc: | - This is the signal on which the modulation voltage or current will be added. - link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type - modulation_signal_type - modulation_frequency(NX_NUMBER): - exists: optional - doc: | - The frequency of the sine modulation that is used to modulate the signal in lock-in. - link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# abfdeef834431bb4df994cabb82c26f62f2cf58095ae7a3497808392064b4157 -# -# -# -# -# -# -# An application definition to describe Scanning Tunneling Microscopy (STM). -# -# -# -# -# Name of the definition that is used for the application. -# -# -# -# -# -# -# -# The mode of the scan that is performed. Two commonly used ones are constant -# height mode and constant current mode. -# -# -# -# -# -# -# -# -# The group explains the instrumentation of the STM experiment such -# as current sensor, lock-in amplifier etc. -# -# -# -# The lock-in amplifier information. The device is being used to extract -# the very weak signal buried in noisy signals. -# -# -# -# The type of the signal (voltage or current) subject fo modulation. -# -# -# -# -# The frequency of the sine modulation that is used to modulate the signal in -# lock-in. -# -# -# -# -# -# The environment information for stm or sts experiment. -# -# -# -# The scan control information like scan region or phase space, type of scan -# (e.g. mesh, spiral, etc.), and scan speed, etc. -# -# -# -# The type of scan like mesh, spiral, etc. For STS experiment, the scan type is -# usually a single-point scan (trajectory scan). -# -# -# -# -# -# -# -# -# -# -# -# This group stands for the same concept as -# /ENTRY[entry]/experiment_instrument/tip_temperature -# -# -# -# -# This group stands for the same concept as -# /ENTRY[entry]/experiment_instrument/cryo_temperature -# -# -# -# -# This group stands for the same concept as -# /ENTRY[entry]/experiment_instrument/cryo_shield_temperature -# -# -# -# -# -# The temperature of the tip one of the tip. -# -# -# -# -# The temperature of the cryostat. -# -# -# -# -# The temperature of the cryo shield. -# -# -# -# -# The sensor information. -# -# -# -# The tunneling current between tip and sample after -# applying bias voltage. -# -# -# -# -# Offset value of the current measurement. -# -# -# -# -# Calibration of the current measurement. -# -# -# -# The time or period is taken by the calibration to setup to acquire the data for -# the calibration. -# -# -# -# -# The coefficients of the calibration. -# -# -# -# -# -# An amplifier information for the input signal (e.g. from tip). -# -# -# -# Proportional relationship between the probe output voltage and the actual -# tunneling current when measuring the tunneling current. -# -# -# -# -# -# -# To explain bias (sweep measurement) voltage applied to the sample. -# -# -# -# Setup and scan data for continuous measurement of bias-voltage on the subject of experiment -# vs tunneling current from probe. -# Data from from this experiment can also be used to calculate the dI/dV spectra. -# -# -# -# -# -# The sensor information for the piezo device. -# -# -# -# The piezo configuration information like piezoelectric device calibration and -# material properties. -# -# -# -# Calibration of the piezo device. -# -# -# -# The N (substring) denotes X and Y directions. The 2nd order piezo -# compensate the error for that axis. The following equation shows the -# interpretation of the 2nd order correction parameters, -# For the X-piezo: "Ux = 1/cx · X + cxx · X2" -# with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" -# where cx is the calibration of the piezo X and cxx is the 2nd order -# correction. The unit for such the second-order correction is (V/m^2). -# -# -# -# -# The name of the calibration type, sometimes it is called -# e.g active calibration, passive calibration. -# -# -# -# -# The calibration coefficient is the ratio of the actual distance moved by the piezo to -# the voltage applied to the piezo. It is also called first-order correction. -# -# -# -# -# Set up the settings to enable or disable the drift compensation. -# -# -# -# -# Whether the drift has been corrected in case there is a deviation in the -# drift. -# -# -# -# -# The N (substring) denotes X and Y directions, and for both directions -# tilt needs to be adjusted according to the actual surface. -# -# -# -# -# The N (substring) denotes X or Y or Z. In some systems, -# there is an HV gain readout feature. For these systems, -# the HV gain should be automatically adjusted whenever -# the gain is changed at the high voltage amplifier. -# -# -# -# -# -# -# The positioner information like the position of the tip, -# PID loop feedback etc. -# -# -# -# The PID controller information for the z-axis. -# -# -# -# To indicate the relative tip position z between tip and sample. The tip position -# can also be varied when the z_controller is not running. -# -# -# -# -# The set point for the z-controller to be fixed and the target value could be -# height or current. -# -# -# -# -# The name of the controller or channels. -# -# -# -# -# The status of the controller to say was PID has been used or not. -# -# -# -# -# If the tip is lifted from the stable point. -# -# -# -# -# The switch-off delay of the controller from its stable point. -# -# -# -# -# -# -# -# -# The group's concepts hold the link to the related concepts that define the -# reproducibility of the STM experiment. -# -# -# -# The tunneling current between tip and sample after application of bias voltage. -# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current -# -# -# -# -# The tunneling current between tip and sample after application of bias voltage. -# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current -# -# -# -# -# Proportional relationship between the probe output voltage and the actual -# tunneling current when measuring the tunneling current. -# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/amplifier/current_gain -# -# -# -# -# Link to target: -# /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] -# -# -# -# -# This is the signal on which the modulation voltage or current will be added. -# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type -# -# -# -# -# The frequency of the sine modulation that is used to modulate the signal in lock-in. -# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency -# -# -# -# -# -# The group's concepts hold the link to the related concepts that define the -# resolution of the STM experiment. -# -# -# -# Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp -# -# -# -# -# Link to target: -# /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp -# -# -# -# -# Link to target: -# /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature -# -# -# -# -# Link to target: -# /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] -# -# -# -# -# This is the signal on which the modulation voltage or current will be added. -# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type -# modulation_signal_type -# -# -# -# -# The frequency of the sine modulation that is used to modulate the signal in lock-in. -# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency -# -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/NXsts.yaml b/contributed_definitions/nyaml/SPM/NXsts.yaml deleted file mode 100644 index 7c6cafadc..000000000 --- a/contributed_definitions/nyaml/SPM/NXsts.yaml +++ /dev/null @@ -1,63 +0,0 @@ -category: application -doc: | - An application definition to describe Scanning Tunneling Spectroscopy (STS). - - The NXsts is duplication of NXspm and is considered as a proxy application definition - for Scanning Tunneling Spectroscopy (STS) technique. - -# https://thesis.library.caltech.edu/1943/4/03chapter3.pdf -# TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and NXafm -type: group -NXsts(NXspm): - (NXentry): - definition: - doc: | - Name of the definition that is used for the application. - enumeration: [NXsts] - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 3c249fd275af32b4b2747ed7356a3175a5edca21b88516b1662e38723d33d052 -# -# -# -# -# -# -# An application definition to describe Scanning Tunneling Spectroscopy (STS). -# -# The NXsts is duplication of NXspm and is considered as a proxy application definition -# for Scanning Tunneling Spectroscopy (STS) technique. -# -# -# -# -# Name of the definition that is used for the application. -# -# -# -# -# -# -# diff --git a/contributed_definitions/nyaml/SPM/README.md b/contributed_definitions/nyaml/SPM/README.md deleted file mode 100644 index afacd11ee..000000000 --- a/contributed_definitions/nyaml/SPM/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# Application Definition for SPM Domain - -# General SPM Base Class - - - id1 - id1 --> id2 - id1 --> id3 - id1 --> id4 - id1 --> id5 - id1 --> id6 - - id2 --> id13 - id2 --> id14 - id2 --> id16 - - id13 --> id21 - id13 --> id22 - id13 --> id23 - id13 --> id24 - -``` - -## STM App Def -```mermaid -graph TD; - subgraph STM - %%hh%% - id1["NXstm(NXspm)"] - id2["ENTRY"] - end - subgraph NXinstrument - id6["(NXinstrument)"] - end - - subgraph NXenvironment - %%hh%% - id12["sweep_control"] - end - - - id1 --> id2 - - id2 --> id6 - id6 --> id12 - -``` ---> - -## Revised App Def and Base Class for SPM Domain -1. SPM, STM, AFM, STS -2. Lockin, Bias_spectorscopy, Bias_sweep, Scan_control, Positioner_spm, -3. piezoelectric_material, piezo_config_spm, rcs, cantilever_spm -# TODO: -1. Add scan type `trajectory` for STS in config and eln file. - diff --git a/contributed_definitions/nyaml/SPM/nyaml2nxdl.sh b/contributed_definitions/nyaml/SPM/nyaml2nxdl.sh deleted file mode 100644 index 6701c8510..000000000 --- a/contributed_definitions/nyaml/SPM/nyaml2nxdl.sh +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/bash - - -#Starting line of a bash script - -set -e -for file in *; do - if [[ $file == *.yaml ]]; then - echo "Converting $file to NXDL" - nyaml2nxdl $file - fi -done - - -for file in *; do - if [[ $file == *.nxdl.xml ]]; then - echo "Converting $file to NYAML" - nyaml2nxdl $file - mv $file ../../ - fi -done - -for file in *; do - if [[ $file == *_parsed.yaml ]]; then - mv $file $(echo $file | sed 's/_parsed//') - fi -done - -for file in *; do - if [[ $file == *.yaml ]]; then - cp $file ../ - fi -done - -rm ../../NXbias_spectroscopy_old.nxdl.xml -rm ../../NXspm_v1_backup.nxdl.xml -rm ../NXbias_spectroscopy_old.yaml -rm ../NXspm_v1_backup.yaml - From 85bfeecd77222e6da6d6b4dd31633ccb9b492037 Mon Sep 17 00:00:00 2001 From: Rubel Date: Thu, 5 Dec 2024 18:20:31 +0100 Subject: [PATCH 6/8] Remove nyaml files. --- base_classes/nyaml/NXpositioner.yaml | 249 -- contributed_definitions/nyaml/NXafm.yaml | 283 --- .../nyaml/NXbias_spectroscopy.yaml | 358 --- .../nyaml/NXbias_sweep.yaml | 149 -- .../nyaml/NXcalibration.yaml | 419 ---- .../nyaml/NXcantilever_spm.yaml | 281 --- contributed_definitions/nyaml/NXcircuit.yaml | 270 --- .../nyaml/NXfabrication.yaml | 103 - contributed_definitions/nyaml/NXlockin.yaml | 289 --- .../nyaml/NXoptical_spectroscopy.yaml | 2157 ----------------- .../nyaml/NXpiezo_config_spm.yaml | 202 -- .../nyaml/NXpiezoelectric_material.yaml | 207 -- .../nyaml/NXpositioner_spm.yaml | 94 - contributed_definitions/nyaml/NXrcs.yaml | 101 - .../nyaml/NXscan_control.yaml | 1068 -------- .../nyaml/NXsensor_scan.yaml | 400 --- contributed_definitions/nyaml/NXspm.yaml | 841 ------- contributed_definitions/nyaml/NXstm.yaml | 662 ----- contributed_definitions/nyaml/NXsts.yaml | 63 - 19 files changed, 8196 deletions(-) delete mode 100644 base_classes/nyaml/NXpositioner.yaml delete mode 100644 contributed_definitions/nyaml/NXafm.yaml delete mode 100644 contributed_definitions/nyaml/NXbias_spectroscopy.yaml delete mode 100644 contributed_definitions/nyaml/NXbias_sweep.yaml delete mode 100644 contributed_definitions/nyaml/NXcalibration.yaml delete mode 100644 contributed_definitions/nyaml/NXcantilever_spm.yaml delete mode 100644 contributed_definitions/nyaml/NXcircuit.yaml delete mode 100644 contributed_definitions/nyaml/NXfabrication.yaml delete mode 100644 contributed_definitions/nyaml/NXlockin.yaml delete mode 100644 contributed_definitions/nyaml/NXoptical_spectroscopy.yaml delete mode 100644 contributed_definitions/nyaml/NXpiezo_config_spm.yaml delete mode 100644 contributed_definitions/nyaml/NXpiezoelectric_material.yaml delete mode 100644 contributed_definitions/nyaml/NXpositioner_spm.yaml delete mode 100644 contributed_definitions/nyaml/NXrcs.yaml delete mode 100644 contributed_definitions/nyaml/NXscan_control.yaml delete mode 100644 contributed_definitions/nyaml/NXsensor_scan.yaml delete mode 100644 contributed_definitions/nyaml/NXspm.yaml delete mode 100644 contributed_definitions/nyaml/NXstm.yaml delete mode 100644 contributed_definitions/nyaml/NXsts.yaml diff --git a/base_classes/nyaml/NXpositioner.yaml b/base_classes/nyaml/NXpositioner.yaml deleted file mode 100644 index 1b500081b..000000000 --- a/base_classes/nyaml/NXpositioner.yaml +++ /dev/null @@ -1,249 +0,0 @@ -category: base -doc: | - A generic positioner such as a motor or piezo-electric transducer. -type: group -NXpositioner(NXobject): - \@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. - name: - doc: | - symbolic or mnemonic name (one word) - description: - doc: | - description of positioner - value(NX_NUMBER): - unit: NX_ANY - doc: | - best known value of positioner - need [n] as may be scanned - dimensions: - rank: 1 - dim: (n,) - raw_value(NX_NUMBER): - unit: NX_ANY - doc: | - raw value of positioner - need [n] as may be scanned - dimensions: - rank: 1 - dim: (n,) - target_value(NX_NUMBER): - unit: NX_ANY - doc: | - targeted (commanded) value of positioner - need [n] as may be scanned - dimensions: - rank: 1 - dim: (n,) - tolerance(NX_NUMBER): - unit: NX_ANY - doc: | - maximum allowable difference between target_value and value - dimensions: - rank: 1 - dim: (n,) - soft_limit_min(NX_NUMBER): - unit: NX_ANY - doc: | - minimum allowed limit to set value - soft_limit_max(NX_NUMBER): - unit: NX_ANY - doc: | - maximum allowed limit to set value - velocity(NX_NUMBER): - unit: NX_ANY - doc: | - velocity of the positioner (distance moved per unit time) - acceleration_time(NX_NUMBER): - unit: NX_ANY - doc: | - time to ramp the velocity up to full speed - - # TODO other parameters: settling time, backlash, link to readback channel - controller_record: - doc: | - Hardware device record, e.g. EPICS process variable, taco/tango. - 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. - - .. todo:: - Add a definition for the reference point of a positioner. - (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. - actuator(NXactuator): - doc: | - The actuator of the positioner which is responsible for the movement of the - probe. - feedback(NXpid): - doc: | - The feedback of the actual position of the positioner. - pv_sensor(NXsensor): - doc: | - If present, the value and the value_log of this pv_sensor is the same as - the value and raw_value of the position itself. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 6ec490e1ecc7a173d67cc3c8e7d0cfb08a4106defa8d5a3a269cb6ff1e006200 -# -# -# -# -# -# A generic positioner such as a motor or piezo-electric transducer. -# -# -# -# .. 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. -# -# -# -# -# symbolic or mnemonic name (one word) -# -# -# -# -# description of positioner -# -# -# -# -# best known value of positioner - need [n] as may be scanned -# -# -# -# -# -# -# -# raw value of positioner - need [n] as may be scanned -# -# -# -# -# -# -# -# targeted (commanded) value of positioner - need [n] as may be scanned -# -# -# -# -# -# -# -# maximum allowable difference between target_value and value -# -# -# -# -# -# -# -# minimum allowed limit to set value -# -# -# -# -# maximum allowed limit to set value -# -# -# -# -# velocity of the positioner (distance moved per unit time) -# -# -# -# -# time to ramp the velocity up to full speed -# -# -# -# -# -# Hardware device record, e.g. EPICS process variable, taco/tango. -# -# -# -# -# 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. -# -# .. todo:: -# Add a definition for the reference point of a positioner. -# -# -# -# -# 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. -# -# -# -# -# The actuator of the positioner which is responsible for the movement of the -# probe. -# -# -# -# The feedback of the actual position of the positioner. -# -# -# -# If present, the value and the value_log of this pv_sensor is the same as -# the value and raw_value of the position itself. -# -# -# -# -# diff --git a/contributed_definitions/nyaml/NXafm.yaml b/contributed_definitions/nyaml/NXafm.yaml deleted file mode 100644 index dcb92f282..000000000 --- a/contributed_definitions/nyaml/NXafm.yaml +++ /dev/null @@ -1,283 +0,0 @@ -category: application -doc: | - An application definition to describe atomic force microscopy (AFM) scanning - technique. -type: group -NXafm(NXspm): - (NXentry): - definition: - doc: | - Name of the definition that is used for the application. - enumeration: [NXafm] - scan_mode: - doc: | - The mode of the scan. - enumeration: [contact mode, tapping mode, non-contact mode, Kelvin probe, electric force] - experiment_instrument(NXinstrument): - doc: | - The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding - instruments. - photo_detector(NXdetector): - exists: optional - doc: | - Information about the quadrant photodiode deflection detector. - (NXcantilever_spm): - exists: optional - doc: | - The cantilever information. - - Generally speaking, the cantilever resembles a leaf spring, which behaves as a simple harmonic oscillator. - When the probe (tip or particle) on the end of the cantilever is close to the surface of the sample, - an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. - The detector (typically a light pointer hitting a quadrant photodiode) measures this deformation and, therefore, - the force acting on the cantilever. - In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting - on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of - this loop controls the vertical position of the cantilever. - cantilever_oscillator(NXobject): - exists: optional - doc: | - When a cantilever is oscillated close to its resonance, this describes the oscillator properties. - - A cantilever can be used in direct contact mode to detect interaction forces or oscillated close to its - resonance frequency. Changes in the oscillation amplitude, phase (between oscillated tail and moving tip) - or resonance frequency are very sensitive to changes in the interction potential field, giving rise of - various measurement modes, such as non-contact or intermittent-contact (tapping) modes. - oscillator_excitation(NX_NUMBER): - exists: optional - unit: NX_ANY - - # is this correct? I would expect a driving voltage... - doc: | - The threshold voltage for oscillator excitation. - phase_lock_loop(NXlockin): - exists: optional - doc: | - Phase locked loop for cantilever lock-in device. - amplitude_excitation(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The reference amplitude (also called drive amplitude) of the cantilever. - scan_environment(NXenvironment): - doc: | - The environment information. - height_piezo_sensor(NXsensor): - doc: | - Link to the group ENTRY[entry]/experiment_instrument/height_piezo_sensor. - XY_piezo_sensor(NXsensor): - doc: | - Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. - tip_temp_sensor(NXsensor): - doc: | - Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. - height_piezo_sensor(NXsensor): - exists: optional - doc: | - The sensor information for the height piezo device. - piezo_configuration(NXpiezo_config_spm): - doc: | - The piezo configuration information like piezoelectric calibration and material - properties. - piezo_material(NXpiezoelectric_material): - exists: optional - doc: | - The material description and properties of the piezoelectric scanner materials. - (NXpositioner_spm): - doc: | - The positioner information like the position of the tip, the position of the - sample, PID loop feedback etc. - XY_piezo_sensor(NXsensor): - exists: optional - doc: | - The sensor information for the xy piezo device. - piezo_configuration(NXpiezo_config_spm): - doc: | - The piezo configuration information like piezoelectric calibration and material - properties. - piezo_material(NXpiezoelectric_material): - exists: optional - doc: | - The material description and properties of the piezoelectric scanner materials. - (NXpositioner_spm): - doc: | - The positioner information like the position of the end of the cantilever, the position of the - sample, PID loop feedback etc. - tip_temp_sensor(NXsensor): - exists: optional - doc: | - The temperature of the scan environment or tip of the cantilever. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 5e6d35c0745060adc6707dfd9991c887a33b67ca2ed32ece1f7a00403906419f -# -# -# -# -# -# An application definition to describe atomic force microscopy (AFM) scanning -# technique. -# -# -# -# -# Name of the definition that is used for the application. -# -# -# -# -# -# -# -# The mode of the scan. -# -# -# -# -# -# -# -# -# -# -# -# The group explains the core instruments' setup of the AFM experiment as well as the environment of the corresponding -# instruments. -# -# -# -# Information about the quadrant photodiode deflection detector. -# -# -# -# -# The cantilever information. -# -# Generally speaking, the cantilever resembles a leaf spring, which behaves as a simple harmonic oscillator. -# When the probe (tip or particle) on the end of the cantilever is close to the surface of the sample, -# an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. -# The detector (typically a light pointer hitting a quadrant photodiode) measures this deformation and, therefore, -# the force acting on the cantilever. -# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting -# on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of -# this loop controls the vertical position of the cantilever. -# -# -# -# When a cantilever is oscillated close to its resonance, this describes the oscillator properties. -# -# A cantilever can be used in direct contact mode to detect interaction forces or oscillated close to its -# resonance frequency. Changes in the oscillation amplitude, phase (between oscillated tail and moving tip) -# or resonance frequency are very sensitive to changes in the interction potential field, giving rise of -# various measurement modes, such as non-contact or intermittent-contact (tapping) modes. -# -# -# -# -# The threshold voltage for oscillator excitation. -# -# -# -# -# Phase locked loop for cantilever lock-in device. -# -# -# -# The reference amplitude (also called drive amplitude) of the cantilever. -# -# -# -# -# -# -# -# The environment information. -# -# -# -# Link to the group ENTRY[entry]/experiment_instrument/height_piezo_sensor. -# -# -# -# -# Link to the group ENTRY[entry]/experiment_instrument/XY_piezo_sensor. -# -# -# -# -# Link to the group ENTRY[entry]/experiment_instrument/cantilever_temperature. -# -# -# -# -# -# The sensor information for the height piezo device. -# -# -# -# The piezo configuration information like piezoelectric calibration and material -# properties. -# -# -# -# The material description and properties of the piezoelectric scanner materials. -# -# -# -# -# -# The positioner information like the position of the tip, the position of the -# sample, PID loop feedback etc. -# -# -# -# -# -# The sensor information for the xy piezo device. -# -# -# -# The piezo configuration information like piezoelectric calibration and material -# properties. -# -# -# -# The material description and properties of the piezoelectric scanner materials. -# -# -# -# -# -# The positioner information like the position of the end of the cantilever, the position of the -# sample, PID loop feedback etc. -# -# -# -# -# -# The temperature of the scan environment or tip of the cantilever. -# -# -# -# -# diff --git a/contributed_definitions/nyaml/NXbias_spectroscopy.yaml b/contributed_definitions/nyaml/NXbias_spectroscopy.yaml deleted file mode 100644 index f1ba312ee..000000000 --- a/contributed_definitions/nyaml/NXbias_spectroscopy.yaml +++ /dev/null @@ -1,358 +0,0 @@ -category: base -doc: | - A base class for bias spectroscopy to describe the change in the physical properties - of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. - - In these experiments an electric potential is applied between the (conductive) sample and the probe - (tip), and the physical properties (e.g. tunnelling current) is measured as the function of this - potential. The potential is varied in so-called voltage sweeps and the corresponding properties are - recorded accordingly. -type: group -NXbias_spectroscopy(NXobject): - measurement_type: - doc: | - The measurement of the I(V) curve can come in two ways: - 1. Constant spacing: The bias voltage is swept from the start to the end with a constant - spacing between the tip and surface. - 2. Variable spacing: The bias voltage is swept from the start to the end in a discretized - spacing between the tip and surface. (Either an array of voltages, or the steps are defined). - enumeration: [constant_spacing, variadic_spacing] - (NXpositioner_spm): - doc: | - The PID (proportional, integral, differential feedback system) positioner information while running - bias voltage-tunneling current measurement. - - These components position the probe relative to the sample, thus help obtaining maps of the data - across the sample surface. - z_offset(NX_NUMBER): - unit: NX_LENGTH - doc: | - The z-offset is a starting tip position before the sweep starts (typically the position of a - piezo element). - - # how these time specifications relate to the later time values, like - # scan_time? - (NXcircuit): - exists: optional - acquisition_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by a bias sweep to acquire the data for - a single bias sweep point (when the given point or whole sweep is started.). - animation_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by a bias sweep to be displayed. - measurement_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by the circuit to measure a full bias sweep voltage or - bias current. (duration of the measurement) - - # how does this indicators_period differs from animation time? - indicators_period(NX_DATE_TIME): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by the circuit to indicate the bias sweep voltage - after measuring the voltage. - (NXbias_sweep): - doc: | - The bias sweep information. - scan_type: - - # I modify this text, by I may be wrong T. - # key is: I can change X,Y location at constant voltage or do a sweep - # at every X,Y coordinate, and I can define patterns how X,Y values follow - # each other (e.g. spiral) - doc: | - The type of scan like mesh, spiral, etc. - - This combines not only how the voltages are changed, but how the voltage values are - correlated to a position across the sample surface, measuring sweeps are each spatial - coordinate or mapping the response at constant voltage, etc. - For STS experiment, the scan type is usually a single-point scan (trajectory scan). - enumeration: [linear] - sweep_number(NX_NUMBER): - doc: | - The number of sweeps taken during the bias spectroscopy. - first_settling_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The initial time is taken to settle the bias voltage at the desired value. - On each sweep usually, the system takes time to settle to the bias voltage - at the next value. - end_settling_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time is taken to settle the bias voltage at the desired value. - The time (at the last sweep) to settle for the last value of the sweep. - max_slew_rate(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The rate at which the amplifier responds to the voltage change - (to reach at the desired value). It defines if the tip movement and - voltage sweep are synchronized. - final_z(NX_NUMBER): - exists: recommended - doc: | - The z position after the sweeps are done. - total_spectroscopy_time(NX_NUMBER): - exists: recommended - unit: NX_TIME - doc: | - The total time needed for the entire voltage sweep. - scan_region(NXobject): - doc: | - The region of the scan area. - scan_range(NX_NUMBER): - unit: NX_ANY - doc: | - The range of the scan area. - scan_offset(NX_NUMBER): - unit: NX_ANY - doc: | - The offset of the scan area in 2D (X and Y) space. - scan_angle_N(NX_NUMBER): - unit: NX_ANGLE - doc: | - The N (substring) denotes the angle of the scan area with different physical - axes. - linear_sweep(NXobject): - - # is this a special case of the scans described above? - doc: | - The linear scan information for scanning of a smaple. - - In this scan type the probe is scanned with a constant velocity across the surface, - and parameters are measured along the line. - scan_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The speed of the scanner or the probe during the scan. - scan_time(NX_NUMBER): - unit: NX_TIME - doc: | - The time taken by the scanner to scan the entire area. - forward_speed_bias(NX_NUMBER): - unit: NX_ANY - doc: | - Speed of the scanner or the probe moves forward direction. - backward_speed_bias(NX_NUMBER): - unit: NX_ANY - doc: | - Speed of the scanner or the probe that moves backward direction. - SCAN_data(NXdata): - doc: | - The data that comes from scanning the area. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 5b49dd5999a0c8838e232a3bfd90ce43f173d07395f56231de1be8e67bd7151b -# -# -# -# -# -# A base class for bias spectroscopy to describe the change in the physical properties -# of the sample with respect to the sweep voltage applied on a sample of STM/AFM/... experiment. -# -# In these experiments an electric potential is applied between the (conductive) sample and the probe -# (tip), and the physical properties (e.g. tunnelling current) is measured as the function of this -# potential. The potential is varied in so-called voltage sweeps and the corresponding properties are -# recorded accordingly. -# -# -# -# The measurement of the I(V) curve can come in two ways: -# 1. Constant spacing: The bias voltage is swept from the start to the end with a constant -# spacing between the tip and surface. -# 2. Variable spacing: The bias voltage is swept from the start to the end in a discretized -# spacing between the tip and surface. (Either an array of voltages, or the steps are defined). -# -# -# -# -# -# -# -# -# The PID (proportional, integral, differential feedback system) positioner information while running -# bias voltage-tunneling current measurement. -# -# These components position the probe relative to the sample, thus help obtaining maps of the data -# across the sample surface. -# -# -# -# The z-offset is a starting tip position before the sweep starts (typically the position of a -# piezo element). -# -# -# -# -# -# -# -# The time or period is taken by a bias sweep to acquire the data for -# a single bias sweep point (when the given point or whole sweep is started.). -# -# -# -# -# The time or period is taken by a bias sweep to be displayed. -# -# -# -# -# The time or period is taken by the circuit to measure a full bias sweep voltage or -# bias current. (duration of the measurement) -# -# -# -# -# -# The time or period is taken by the circuit to indicate the bias sweep voltage -# after measuring the voltage. -# -# -# -# -# -# The bias sweep information. -# -# -# -# -# The type of scan like mesh, spiral, etc. -# -# This combines not only how the voltages are changed, but how the voltage values are -# correlated to a position across the sample surface, measuring sweeps are each spatial -# coordinate or mapping the response at constant voltage, etc. -# For STS experiment, the scan type is usually a single-point scan (trajectory scan). -# -# -# -# -# -# -# -# The number of sweeps taken during the bias spectroscopy. -# -# -# -# -# The initial time is taken to settle the bias voltage at the desired value. -# On each sweep usually, the system takes time to settle to the bias voltage -# at the next value. -# -# -# -# -# The time is taken to settle the bias voltage at the desired value. -# The time (at the last sweep) to settle for the last value of the sweep. -# -# -# -# -# The rate at which the amplifier responds to the voltage change -# (to reach at the desired value). It defines if the tip movement and -# voltage sweep are synchronized. -# -# -# -# -# The z position after the sweeps are done. -# -# -# -# -# The total time needed for the entire voltage sweep. -# -# -# -# -# The region of the scan area. -# -# -# -# The range of the scan area. -# -# -# -# -# The offset of the scan area in 2D (X and Y) space. -# -# -# -# -# The N (substring) denotes the angle of the scan area with different physical -# axes. -# -# -# -# -# -# -# The linear scan information for scanning of a smaple. -# -# In this scan type the probe is scanned with a constant velocity across the surface, -# and parameters are measured along the line. -# -# -# -# The speed of the scanner or the probe during the scan. -# -# -# -# -# The time taken by the scanner to scan the entire area. -# -# -# -# -# Speed of the scanner or the probe moves forward direction. -# -# -# -# -# Speed of the scanner or the probe that moves backward direction. -# -# -# -# -# The data that comes from scanning the area. -# -# -# -# -# diff --git a/contributed_definitions/nyaml/NXbias_sweep.yaml b/contributed_definitions/nyaml/NXbias_sweep.yaml deleted file mode 100644 index 683cfb91c..000000000 --- a/contributed_definitions/nyaml/NXbias_sweep.yaml +++ /dev/null @@ -1,149 +0,0 @@ -category: base -doc: | - A base class that defines how the bias voltage sweep is performed in the - scanning probe microscopy experiments. -type: group -NXbias_sweep(NXscan_control): - scan_region(NXobject): - doc: | - The scan region is the area of phase space or sub-phase space where the scan is - performed. - scan_offset_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The starting voltage of the bias sweep. The range of voltages for the sweep can - be defined with scan voltage offset and scan voltage range (difference between - minimum and maximum voltage values in a sweep) - scan_range_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The range of voltages for the sweep can be defined with scan voltage offset and - scan voltage range (difference between minimum and maximum voltage values in a - sweep) - scan_start_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The start of the bias scan voltage. - scan_end_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The end value of the bias scan voltage. - linear_sweep(NXobject): - doc: | - In the linear sweep, the bias voltage is changed linearly from the start value - to the end value. - backward_sweep(NX_BOOLEAN): - doc: | - If the bias voltage sweep is also performed in the opposite direction. - scan_points_bias(NX_NUMBER): - doc: | - The number of voltage points per sweep. - step_size_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The step size between the two consecutive bias voltage values during the sweep. - reset_bias(NX_BOOLEAN): - doc: | - The reset_bias defines whether the bias voltage should be reset to the starting - value after the sweep is completed. - SCAN_data(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, - please duplicate this NXdata group for each. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 63c8e627522926180b6b1a3bb3699f0c7f94d6f86a2335d5f38add044dd2190c -# -# -# -# -# -# A base class that defines how the bias voltage sweep is performed in the -# scanning probe microscopy experiments. -# -# -# -# The scan region is the area of phase space or sub-phase space where the scan is -# performed. -# -# -# -# The starting voltage of the bias sweep. The range of voltages for the sweep can -# be defined with scan voltage offset and scan voltage range (difference between -# minimum and maximum voltage values in a sweep) -# -# -# -# -# The range of voltages for the sweep can be defined with scan voltage offset and -# scan voltage range (difference between minimum and maximum voltage values in a -# sweep) -# -# -# -# -# The start of the bias scan voltage. -# -# -# -# -# The end value of the bias scan voltage. -# -# -# -# -# -# In the linear sweep, the bias voltage is changed linearly from the start value -# to the end value. -# -# -# -# If the bias voltage sweep is also performed in the opposite direction. -# -# -# -# -# The number of voltage points per sweep. -# -# -# -# -# The step size between the two consecutive bias voltage values during the sweep. -# -# -# -# -# The reset_bias defines whether the bias voltage should be reset to the starting -# value after the sweep is completed. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, -# please duplicate this NXdata group for each. -# -# -# -# diff --git a/contributed_definitions/nyaml/NXcalibration.yaml b/contributed_definitions/nyaml/NXcalibration.yaml deleted file mode 100644 index 2c59fac02..000000000 --- a/contributed_definitions/nyaml/NXcalibration.yaml +++ /dev/null @@ -1,419 +0,0 @@ -category: base -doc: | - Subclass of NXprocess to describe post-processing calibrations. -symbols: - doc: | - The symbols used in the schema to specify e.g. dimensions of arrays - ncoeff: | - Number of coefficients of the calibration function - ncal: | - Number of points of the calibrated and uncalibrated axes -type: group -NXcalibration(NXobject): - description(NX_CHAR): - doc: | - A description of the procedures employed. - start_time(NX_NUMBER): - doc: | - The start time of the calibration. - end_time(NX_NUMBER): - doc: | - The end time of the calibration. - calibration_interval(NX_FLOAT): - unit: NX_TIME - doc: | - The time difference between the start and end time of the calibration. - Or the value directly comes from the instrument. - validity_period(NX_DATE_TIME): - doc: | - The period for which the calibration is valid. Usually, every instrument or part of the - needs to be calibrated at regular intervals. - calibration_type(NX_CHAR): - doc: | - The type of calibration, e.g., active calibration, passive calibration, - or according to the laboratory defined type. - physical_quantity: - doc: | - The physical quantity of the calibration, e.g., - energy, momentum, time, etc. - calibration_method(NXidentifier): - doc: | - A digital persistent identifier (e.g., DOI, ISO standard) referring to a detailed description of a - calibration method but no actual calibration data. - calibration_reference(NXidentifier): - doc: | - A digital persistent identifier (e.g., a DOI) referring to a publicly available calibration measurement - used for this instrument, e.g., a measurement of a known standard containing calibration information. - The axis values may be copied or linked in the appropriate NXcalibration fields for reference. - calibration_object(NXserialized): - doc: | - A file serialisation of a calibration which may not be publicly available (externally from the nexus file). - - This metadata can be a documentation of the source (file) or database (entry) from which pieces - of information have been extracted for consumption (e.g. in a research data management system (RDMS)). - It is also possible to include the actual file by using the `file` field. - - The axis values may be copied or linked in the appropriate NXcalibration fields for reference. - last_process(NX_CHAR): - doc: | - Indicates the name of the last operation applied in the NXprocess sequence. - applied(NX_BOOLEAN): - doc: | - Has the calibration been applied? - calibration_software: - doc: | - Name of the software used for this calibration. - \@version: - doc: | - Software version. - original_axis(NX_FLOAT): - unit: NX_ANY - doc: | - Vector containing the data coordinates in the original uncalibrated axis - dimensions: - rank: 1 - dim: (ncal,) - \@symbol: - doc: | - The symbol of the axis to be used in the fit_function, e.g., `energy`, `E`. - This should comply to the following naming rules (similar to python's naming rules): - - * A variable name must start with a letter or the underscore character - * A variable name cannot start with a number - * A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ ) - * Variable names are case-sensitive (age, Age and AGE are three different variables) - \@input_path: - doc: | - The path from which this data is derived, e.g., raw detector axis. - Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. - input_SYMBOL(NX_FLOAT): - unit: NX_ANY - doc: | - Additional input axis to be used in the formula. - The part after `input_` is used as the symbol to be used in the `fit_function`, i.e., - if the field name is `input_my_field` you should refer to this axis by `my_field` in the `fit_function`. - dimensions: - rank: 1 - dim: (ncal,) - \@input_path: - doc: | - The path from which this data is derived, e.g., raw detector axis. - Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. - coefficients(NX_FLOAT): - unit: NX_ANY - doc: | - For non-linear energy calibrations, e.g. in a TOF, a polynomial function is fit - to a set of features (peaks) at well defined energy positions to determine - E(TOF). Here we can store the array of fit coefficients. - dimensions: - rank: 1 - dim: (ncoeff,) - fit_function(NX_CHAR): - doc: | - For non-linear energy calibrations. Here we can store the formula of the - fit function. - - Use a0, a1, ..., an for the coefficients, corresponding to the values in the coefficients field. - - Use x0, x1, ..., xn for the nth position in the `original_axis` field. - If there is the symbol attribute specified for the `original_axis` this may be used instead of x. - If you want to use the whole axis use `x`. - Alternate axis can also be available as specified by the `input_SYMBOL` field. - The data should then be referred here by the `SYMBOL` name, e.g., for a field - name `input_my_field` it should be referred here by `my_field` or `my_field0` if - you want to read the zeroth element of the array. - - The formula should be numpy compliant. - scaling(NX_FLOAT): - unit: NX_ANY - doc: | - For linear calibration. Scaling parameter. - This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. - offset(NX_FLOAT): - unit: NX_ANY - doc: | - For linear calibration. Offset parameter. - This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. - mapping_MAPPING(NX_FLOAT): - doc: | - Mapping data for calibration. - - This can be used to map data points from uncalibrated to calibrated values, - i.e., by multiplying each point in the input axis by the corresponding point in the mapping data. - calibrated_AXIS(NX_FLOAT): - unit: NX_ANY - doc: | - A vector representing the axis after calibration, matching the data length - dimensions: - rank: 1 - dim: (ncal,) - \@output_path: - doc: | - The path to which this data is written, e.g., the calibrated energy. - Should be a valid NeXus path name, e.g., /entry/data/energy. - (NXdata): - doc: | - Any data acquired/used during the calibration that does not fit the `NX_FLOAT` fields above. - NXdata groups can be used for multidimensional data which are relevant to the calibration - \@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 ++++++++++++++++++++++++++++++++++ -# 43ca2db5ea4eeb4af5d70b9d78e32cc291cf755de199c0cc2538369b87ebed91 -# -# -# -# -# -# -# The symbols used in the schema to specify e.g. dimensions of arrays -# -# -# -# Number of coefficients of the calibration function -# -# -# -# -# Number of points of the calibrated and uncalibrated axes -# -# -# -# -# Subclass of NXprocess to describe post-processing calibrations. -# -# -# -# A description of the procedures employed. -# -# -# -# -# The start time of the calibration. -# -# -# -# -# The end time of the calibration. -# -# -# -# -# The time difference between the start and end time of the calibration. -# Or the value directly comes from the instrument. -# -# -# -# -# The period for which the calibration is valid. Usually, every instrument or part of the -# needs to be calibrated at regular intervals. -# -# -# -# -# The type of calibration, e.g., active calibration, passive calibration, -# or according to the laboratory defined type. -# -# -# -# -# The physical quantity of the calibration, e.g., -# energy, momentum, time, etc. -# -# -# -# -# A digital persistent identifier (e.g., DOI, ISO standard) referring to a detailed description of a -# calibration method but no actual calibration data. -# -# -# -# -# A digital persistent identifier (e.g., a DOI) referring to a publicly available calibration measurement -# used for this instrument, e.g., a measurement of a known standard containing calibration information. -# The axis values may be copied or linked in the appropriate NXcalibration fields for reference. -# -# -# -# -# A file serialisation of a calibration which may not be publicly available (externally from the nexus file). -# -# This metadata can be a documentation of the source (file) or database (entry) from which pieces -# of information have been extracted for consumption (e.g. in a research data management system (RDMS)). -# It is also possible to include the actual file by using the `file` field. -# -# The axis values may be copied or linked in the appropriate NXcalibration fields for reference. -# -# -# -# -# Indicates the name of the last operation applied in the NXprocess sequence. -# -# -# -# -# Has the calibration been applied? -# -# -# -# -# Name of the software used for this calibration. -# -# -# -# Software version. -# -# -# -# -# -# Vector containing the data coordinates in the original uncalibrated axis -# -# -# -# -# -# -# The symbol of the axis to be used in the fit_function, e.g., `energy`, `E`. -# This should comply to the following naming rules (similar to python's naming rules): -# -# * A variable name must start with a letter or the underscore character -# * A variable name cannot start with a number -# * A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ ) -# * Variable names are case-sensitive (age, Age and AGE are three different variables) -# -# -# -# -# The path from which this data is derived, e.g., raw detector axis. -# Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. -# -# -# -# -# -# Additional input axis to be used in the formula. -# The part after `input_` is used as the symbol to be used in the `fit_function`, i.e., -# if the field name is `input_my_field` you should refer to this axis by `my_field` in the `fit_function`. -# -# -# -# -# -# -# The path from which this data is derived, e.g., raw detector axis. -# Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw. -# -# -# -# -# -# For non-linear energy calibrations, e.g. in a TOF, a polynomial function is fit -# to a set of features (peaks) at well defined energy positions to determine -# E(TOF). Here we can store the array of fit coefficients. -# -# -# -# -# -# -# -# For non-linear energy calibrations. Here we can store the formula of the -# fit function. -# -# Use a0, a1, ..., an for the coefficients, corresponding to the values in the coefficients field. -# -# Use x0, x1, ..., xn for the nth position in the `original_axis` field. -# If there is the symbol attribute specified for the `original_axis` this may be used instead of x. -# If you want to use the whole axis use `x`. -# Alternate axis can also be available as specified by the `input_SYMBOL` field. -# The data should then be referred here by the `SYMBOL` name, e.g., for a field -# name `input_my_field` it should be referred here by `my_field` or `my_field0` if -# you want to read the zeroth element of the array. -# -# The formula should be numpy compliant. -# -# -# -# -# For linear calibration. Scaling parameter. -# This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. -# -# -# -# -# For linear calibration. Offset parameter. -# This should yield the relation `calibrated_axis` = `scaling` * `original_axis` + `offset`. -# -# -# -# -# Mapping data for calibration. -# -# This can be used to map data points from uncalibrated to calibrated values, -# i.e., by multiplying each point in the input axis by the corresponding point in the mapping data. -# -# -# -# -# A vector representing the axis after calibration, matching the data length -# -# -# -# -# -# -# The path to which this data is written, e.g., the calibrated energy. -# Should be a valid NeXus path name, e.g., /entry/data/energy. -# -# -# -# -# -# Any data acquired/used during the calibration that does not fit the `NX_FLOAT` fields above. -# NXdata groups can be used for multidimensional data which are relevant to the calibration -# -# -# -# -# .. 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/NXcantilever_spm.yaml b/contributed_definitions/nyaml/NXcantilever_spm.yaml deleted file mode 100644 index 3b1f1666a..000000000 --- a/contributed_definitions/nyaml/NXcantilever_spm.yaml +++ /dev/null @@ -1,281 +0,0 @@ -category: base -doc: | - A base class to describe the cantilever used in Atomic Force Microscopy (AFM) - techniques. -type: group -NXcantilever_spm(NXobject): - cantilever_oscillator(NXobject): - doc: | - Generally speaking, the cantilever resembles a simple harmonic oscillator. - When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. - In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. - This part describes the oscillator driving the oscillations of a cantilever in an AFM or other experiment. - reference_amplitude(NX_NUMBER): - unit: NX_ANY - doc: | - The reference amplitude (also called drive amplitude) of the cantilever. - reference_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The reference frequency (also called drive frequency or resonance frequency) of - the cantilever. - frequency_harmonic(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The harmonic (e.g., second harmonic of the fundamental frequency) frequency of - the cantilever. - phase_lock_loop(NXlockin): - doc: | - Phase locked loop for cantilever lock-in device. - cantilever_amplitude_positioner(NXpositioner): - doc: | - Describes the cantilever frequency positioner, if it exists. - cantilever_phase_positioner(NXpositioner): - doc: | - Describes the cantilever phase positioner, if it exists. - cantilever_frequency_positioner(NXpositioner): - doc: | - Describes the cantilever frequency positioner, if it exists. - phase_shift(NX_NUMBER): - unit: NX_ANGLE - doc: | - The phase difference between the reference signal of cantilever and response - signal. - frequency_shift(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Shift in the resonance frequency of the cantilever. - frequency_cutoff(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The cutoff frequency of the cantilever. - frequency_bandwidth(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The bandwidth of the resonance frequency. - target_amplitude(NX_NUMBER): - unit: NX_ANY - doc: | - The target amplitude of the cantilever to start the AFM/SPM experiment. - active_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The active frequency of the cantilever to start the experiment. - reference_phase(NX_NUMBER): - unit: NX_ANGLE - doc: | - The reference phase of the cantilever oscillator. - cantilever_config(NXobject): - doc: | - The configuration information of the cantilever such as calibration information, - material properties, size, resonance, etc. - cantilever_coating: - doc: | - The coating material of the cantilever. - curvature_radius_N(NX_NUMBER): - unit: NX_ANY - doc: | - The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. - cantilever_type: - doc: | - The shape of the cantilever as a general text, such as A-shape, beam, or arrow. - cantilever_length(NX_NUMBER): - unit: NX_LENGTH - doc: | - Nominal length between base and end of the cantilever in micrometers. - cantilever_width(NX_NUMBER): - unit: NX_LENGTH - doc: | - Nominal width of the cantilever in microns. - cantilever_thickness(NX_NUMBER): - unit: NX_LENGTH - doc: | - Nominal thickness of the cantilever in microns. - cantilever_resonance_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Nominal free resonance frequency of the cantilever in air, in kHz. - (NXcalibration): - doc: | - The calibration information of the cantilever. - sensitivity(NX_NUMBER): - unit: NX_ANY - doc: | - A force applied to the cantilever tip will cause a change in - cantilever's oscillation amplitude (in dynamic mode) or deflection of the cantilever. - The sensitivity of the cantilever is calculated as the ratio of this change to the force causing it. - spring_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The spring constant coefficient of the cantilever. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 89398ae58cda108a83a696128f7e8021a9abb5a60b191883f4f622692f616ab1 -# -# -# -# -# -# A base class to describe the cantilever used in Atomic Force Microscopy (AFM) -# techniques. -# -# -# -# Generally speaking, the cantilever resembles a simple harmonic oscillator. -# When the cantilever tip is close to the surface of the sample, an attractive or repulsive force appears between the cantilever and the sample, deforming the cantilever. The detector (typically a photodiode) measures this deformation and, therefore, the force acting on the cantilever. -# In a typical AFM scan cantilever moves toward the surface of the sample until a user-defined value of force acting on the cantilever is reached. The measured force is used as an input of a PID feedback loop, and the output of this loop controls the vertical position of the cantilever. -# This part describes the oscillator driving the oscillations of a cantilever in an AFM or other experiment. -# -# -# -# The reference amplitude (also called drive amplitude) of the cantilever. -# -# -# -# -# The reference frequency (also called drive frequency or resonance frequency) of -# the cantilever. -# -# -# -# -# The harmonic (e.g., second harmonic of the fundamental frequency) frequency of -# the cantilever. -# -# -# -# -# Phase locked loop for cantilever lock-in device. -# -# -# -# Describes the cantilever frequency positioner, if it exists. -# -# -# -# -# Describes the cantilever phase positioner, if it exists. -# -# -# -# -# Describes the cantilever frequency positioner, if it exists. -# -# -# -# -# -# The phase difference between the reference signal of cantilever and response -# signal. -# -# -# -# -# Shift in the resonance frequency of the cantilever. -# -# -# -# -# The cutoff frequency of the cantilever. -# -# -# -# -# The bandwidth of the resonance frequency. -# -# -# -# -# The target amplitude of the cantilever to start the AFM/SPM experiment. -# -# -# -# -# The active frequency of the cantilever to start the experiment. -# -# -# -# -# The reference phase of the cantilever oscillator. -# -# -# -# -# -# The configuration information of the cantilever such as calibration information, -# material properties, size, resonance, etc. -# -# -# -# The coating material of the cantilever. -# -# -# -# -# The radius of curvature of the cantilever tip. The (substring) N denotes X or Y. -# -# -# -# -# The shape of the cantilever as a general text, such as A-shape, beam, or arrow. -# -# -# -# -# Nominal length between base and end of the cantilever in micrometers. -# -# -# -# -# Nominal width of the cantilever in microns. -# -# -# -# -# Nominal thickness of the cantilever in microns. -# -# -# -# -# Nominal free resonance frequency of the cantilever in air, in kHz. -# -# -# -# -# The calibration information of the cantilever. -# -# -# -# A force applied to the cantilever tip will cause a change in -# cantilever's oscillation amplitude (in dynamic mode) or deflection of the cantilever. -# The sensitivity of the cantilever is calculated as the ratio of this change to the force causing it. -# -# -# -# -# The spring constant coefficient of the cantilever. -# -# -# -# -# diff --git a/contributed_definitions/nyaml/NXcircuit.yaml b/contributed_definitions/nyaml/NXcircuit.yaml deleted file mode 100644 index a4da57121..000000000 --- a/contributed_definitions/nyaml/NXcircuit.yaml +++ /dev/null @@ -1,270 +0,0 @@ -category: base -doc: | - Application definition for circuit devices. - - Electronic circuits are hardware components connecting several electronic components to achieve - specific functionality, e.g. amplifying a voltage or convert a voltage to binary numbers, etc. -symbols: - doc: | - Constant to be used in the definition: the number of channels of the - circuit board. - N_channel: | - number of channels of the circuit board. -type: group -NXcircuit(NXobject): - hardware(NXfabrication): - doc: | - Hardware where the circuit is implanted; includes information about the hardware manufacturers and - type (e.g. part number) - All the elements below may be single numbers of an array of values with length N_channel - describing multiple input and output channels. - components: - doc: | - List of components used in the circuit, e.g., resistors, capacitors, transistors or any - other complex components. - connections: - doc: | - Description of how components are interconnected, including connection points - and wiring. - power_source: - doc: | - Details of the power source for the circuit, including voltage and current - ratings. - signal_type: - doc: | - Type of signal (input signal) the circuit is designed to handle, e.g., analog, - digital, mixed-signal. - - # should this be a min / max range? - operating_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The operating frequency of the circuit, see also bandwidth below, which is possibly - centered around this frequency. However, not necessarily (e.g. running a 100 kHz bandwidth - amplifier at low, audio frequencies 1 - 20,000 Hz) - - # we may need an NX_RESISTANCE defined - input_impedance(NX_NUMBER): - unit: NX_ANY - doc: | - Input impedance of the circuit. - output_impedance(NX_NUMBER): - unit: NX_ANY - doc: | - Output impedance of the circuit. - gain(NX_NUMBER): - unit: NX_UNITLESS - doc: | - Gain of the circuit, if applicable, usually all instruments have a gain which might be - important or not. - noise_level(NX_NUMBER): - unit: NX_ANY - doc: | - RMS noise level (in current or voltage) in the circuit in voltage or current. - bandwidth(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The bandwidth of the frequency response of the circuit. - temperature_range(NX_NUMBER): - unit: NX_ANY - doc: | - Operating temperature range of the circuit. - calibration(NXcalibration): - doc: | - Calibration data for the circuit. - offset(NX_NUMBER): - unit: NX_ANY - doc: | - Offset value for current or voltage. - output_channels(NX_NUMBER): - doc: | - Number of output channels collected to this circuit. Most probably N_channel. - output_signal(NX_NUMBER): - unit: NX_ANY - doc: | - Type of output signal, e.g., voltage, current, digital. - power_consumption(NX_NUMBER): - unit: NX_ANY - doc: | - Power consumption of the circuit per unit time. - status_indicators: - doc: | - Status indicators for the circuit, e.g., LEDs, display readouts. - protection_features(NX_CHAR): - doc: | - Protection features built into the circuit, e.g., overvoltage protection, - thermal shutdown. - acquisition_time(NX_NUMBER): - unit: NX_TIME - doc: | - Updated rate for several processes using the input signal, e.g., History Graph, the circuit - uses for any such process. - output_slew_rate(NX_CHAR): - doc: | - The rate at which the signal changes when ramping from the starting - value. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# a9455117da8b441d29ef1660d4c789c8d044ced52dacd958c0a82ca13594cee0 -# -# -# -# -# -# -# Constant to be used in the definition: the number of channels of the -# circuit board. -# -# -# -# number of channels of the circuit board. -# -# -# -# -# Application definition for circuit devices. -# -# Electronic circuits are hardware components connecting several electronic components to achieve -# specific functionality, e.g. amplifying a voltage or convert a voltage to binary numbers, etc. -# -# -# -# Hardware where the circuit is implanted; includes information about the hardware manufacturers and -# type (e.g. part number) -# All the elements below may be single numbers of an array of values with length N_channel -# describing multiple input and output channels. -# -# -# -# -# List of components used in the circuit, e.g., resistors, capacitors, transistors or any -# other complex components. -# -# -# -# -# Description of how components are interconnected, including connection points -# and wiring. -# -# -# -# -# Details of the power source for the circuit, including voltage and current -# ratings. -# -# -# -# -# Type of signal (input signal) the circuit is designed to handle, e.g., analog, -# digital, mixed-signal. -# -# -# -# -# -# The operating frequency of the circuit, see also bandwidth below, which is possibly -# centered around this frequency. However, not necessarily (e.g. running a 100 kHz bandwidth -# amplifier at low, audio frequencies 1 - 20,000 Hz) -# -# -# -# -# -# Input impedance of the circuit. -# -# -# -# -# Output impedance of the circuit. -# -# -# -# -# Gain of the circuit, if applicable, usually all instruments have a gain which might be -# important or not. -# -# -# -# -# RMS noise level (in current or voltage) in the circuit in voltage or current. -# -# -# -# -# The bandwidth of the frequency response of the circuit. -# -# -# -# -# Operating temperature range of the circuit. -# -# -# -# -# Calibration data for the circuit. -# -# -# -# -# Offset value for current or voltage. -# -# -# -# -# Number of output channels collected to this circuit. Most probably N_channel. -# -# -# -# -# Type of output signal, e.g., voltage, current, digital. -# -# -# -# -# Power consumption of the circuit per unit time. -# -# -# -# -# Status indicators for the circuit, e.g., LEDs, display readouts. -# -# -# -# -# Protection features built into the circuit, e.g., overvoltage protection, -# thermal shutdown. -# -# -# -# -# Updated rate for several processes using the input signal, e.g., History Graph, the circuit -# uses for any such process. -# -# -# -# -# The rate at which the signal changes when ramping from the starting -# value. -# -# -# diff --git a/contributed_definitions/nyaml/NXfabrication.yaml b/contributed_definitions/nyaml/NXfabrication.yaml deleted file mode 100644 index a4cf76ee9..000000000 --- a/contributed_definitions/nyaml/NXfabrication.yaml +++ /dev/null @@ -1,103 +0,0 @@ -category: base -doc: | - Details about a component as it is defined by its manufacturer. -type: group -NXfabrication(NXobject): - vendor(NX_CHAR): - doc: | - Company name of the manufacturer. - model(NX_CHAR): - doc: | - Version or model of the component named by the manufacturer. - \@version: - type: NX_CHAR - doc: | - If different versions exist are possible, the value in this field should be made - specific enough to resolve the version. - identifier(NXidentifier): - doc: | - Ideally, (globally) unique persistent identifier, i.e. - a serial number or hash identifier of the component. - construction_date(NX_DATE_TIME): - doc: | - Datetime of components initial construction. This refers to the date of - first measurement after new construction or to the relocation date, - if it describes a multicomponent/custom-build setup. - Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, - otherwise the local time zone is assumed per ISO8601. - - This could be year of construction or year and month of construction if full data is not available - capability(NX_CHAR): - doc: | - Free-text list with eventually multiple terms of - functionalities which the component offers. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 3a06b064fa22aaa0b569124e399153e7df939a53bfdc4ea2fdf240048cb1f84f -# -# -# -# -# -# Details about a component as it is defined by its manufacturer. -# -# -# -# Company name of the manufacturer. -# -# -# -# -# Version or model of the component named by the manufacturer. -# -# -# -# If different versions exist are possible, the value in this field should be made -# specific enough to resolve the version. -# -# -# -# -# -# Ideally, (globally) unique persistent identifier, i.e. -# a serial number or hash identifier of the component. -# -# -# -# -# Datetime of components initial construction. This refers to the date of -# first measurement after new construction or to the relocation date, -# if it describes a multicomponent/custom-build setup. -# Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, -# otherwise the local time zone is assumed per ISO8601. -# -# This could be year of construction or year and month of construction if full data is not available -# -# -# -# -# Free-text list with eventually multiple terms of -# functionalities which the component offers. -# -# -# diff --git a/contributed_definitions/nyaml/NXlockin.yaml b/contributed_definitions/nyaml/NXlockin.yaml deleted file mode 100644 index cc2257a6e..000000000 --- a/contributed_definitions/nyaml/NXlockin.yaml +++ /dev/null @@ -1,289 +0,0 @@ -category: base -doc: | - A base class definition for a lock-in amplifier. - - The lock-in amplifier information: the device is being used to extract a (potentially) - very weak input signal buried in the noisy background, where the input signal has - the same frequency (or its harmonic) as a known reference signal, using heterodyne - detection. - This method extracts the amplitude and phase shift of the current signal to the reference. - The reference signal might be created by a generator built-in into the lock-in amplifier. -type: group -NXlockin(NXobject): - hardware(NXfabrication): - doc: | - Hardware manufacturers and type (product number) of lock-in amplifier. - (NXamplifier): - doc: | - Description of the amplifier (after detection of the signal from the noise) - bias_divider: - doc: | - Bias divider for lock-in channel if if has. - Bias divider = V(ref)/[V(ref)+V(input)] - modulation_status(NX_BOOLEAN): - doc: | - Switch the lock-in modulation on or off. - modulation_signal(NX_CHAR): - doc: | - A periodic voltage signal generated by the lock-in, - usually applied to a sample and used to create a reference signal for the detection of the input signal - lockin_current_flip_sign(NX_NUMBER): - exists: optional - doc: | - The sign (1 or -1) that defines the sign of the lock-in current. - The calibration procedure with retracted tip is normally performed to compensate for the signal phase delay - in SPM. The procedure yields two possible solutions, this number should be equal - to 1 or -1 depending on which solution is chosen (this concept mainly used in STS experiments, - e.g. in Nanonis machine). - - # (For bais modulate signal, it depands on the modulate type) - - # unit could be NX_VOLTAGE or NX_CURRENT - # these (reference amplitude, frequency and phase) should be specivied on channel basis, - # even when common reference is sent to different channels - reference_amplitude(NX_NUMBER): - unit: NX_ANY - doc: | - Amplitude of the reference signal for the lock-in amplifier. - reference_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Frequency of the reference signal for the lock-in amplifier. - reference_phase(NX_NUMBER): - unit: NX_ANGLE - doc: | - Phase of the reference signal set in the lock-in amplifier. - demodulated_signal(NX_CHAR): - doc: | - Type of the demodulated signal, current | voltage. - demodulated_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The frequency of the demodulated signal. - frequency_demodulation_bandwidth(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The bandwidth of the modulated signal that can be applied in frequency - demodulation mechanism. - - # unit could be NX_VOLTAGE or NX_CURRENT - demodulated_amplitude(NX_NUMBER): - unit: NX_ANY - doc: | - The amplitude of the demodulated signal. - demodulated_phase(NX_NUMBER): - unit: NX_ANGLE - doc: | - The phase of the demodulated signal. - demodulator_channels(NX_CHAR): - doc: | - List of the demodulator channels. - low_pass_N(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Frequency of the low-pass filter applied on the demodulated - signals (X,Y), cut-off frq (low pass filter) (for each DemodulatorChannels). - hi_pass_N(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Frequency of the high-pass filter applied on the demodulation - signal cut-off frq (hi pass filter) (for each DemodulatorChannels). - lp_filter_order_N(NX_NUMBER): - doc: | - Order of the low-pass filter applied on the demodulated signals (X, Y). - Reducing the bandwidth or increasing the order reduces noise on the demodulated signals, - but increases settling and measurement times. - hp_filter_order_N(NX_NUMBER): - doc: | - Order of the high-pass filter applied on the demodulation - signal. This is used mainly to suppress a DC component of the input - signal noise. - ref_phase_N(NX_NUMBER): - unit: NX_ANGLE - doc: | - An extra reference phase offset of reference signal with respect to the demodulated signal - (foreach Channels). - integration_time(NX_NUMBER): - unit: NX_TIME - doc: | - Integration time for the product of the input and the reference signals - harmonic_order_N(NX_NUMBER): - doc: | - The reference signal can be a higher harmonic of the modulation signal. - Here the order of the harmonic is stored. - sensitivity_factor(NX_NUMBER): - doc: | - Ratio of output signal amplitude to input signal amplitue (V/V). - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 340ff0c78db623cc9da1e2fbb030f3c24cd1f514f6d5a410c310d9238449a7b1 -# -# -# -# -# -# A base class definition for a lock-in amplifier. -# -# The lock-in amplifier information: the device is being used to extract a (potentially) -# very weak input signal buried in the noisy background, where the input signal has -# the same frequency (or its harmonic) as a known reference signal, using heterodyne -# detection. -# This method extracts the amplitude and phase shift of the current signal to the reference. -# The reference signal might be created by a generator built-in into the lock-in amplifier. -# -# -# -# Hardware manufacturers and type (product number) of lock-in amplifier. -# -# -# -# -# Description of the amplifier (after detection of the signal from the noise) -# -# -# -# -# Bias divider for lock-in channel if if has. -# Bias divider = V(ref)/[V(ref)+V(input)] -# -# -# -# -# Switch the lock-in modulation on or off. -# -# -# -# -# A periodic voltage signal generated by the lock-in, -# usually applied to a sample and used to create a reference signal for the detection of the input signal -# -# -# -# -# The sign (1 or -1) that defines the sign of the lock-in current. -# The calibration procedure with retracted tip is normally performed to compensate for the signal phase delay -# in SPM. The procedure yields two possible solutions, this number should be equal -# to 1 or -1 depending on which solution is chosen (this concept mainly used in STS experiments, -# e.g. in Nanonis machine). -# -# -# -# -# -# -# Amplitude of the reference signal for the lock-in amplifier. -# -# -# -# -# Frequency of the reference signal for the lock-in amplifier. -# -# -# -# -# Phase of the reference signal set in the lock-in amplifier. -# -# -# -# -# Type of the demodulated signal, current | voltage. -# -# -# -# -# The frequency of the demodulated signal. -# -# -# -# -# The bandwidth of the modulated signal that can be applied in frequency -# demodulation mechanism. -# -# -# -# -# -# The amplitude of the demodulated signal. -# -# -# -# -# The phase of the demodulated signal. -# -# -# -# -# List of the demodulator channels. -# -# -# -# -# Frequency of the low-pass filter applied on the demodulated -# signals (X,Y), cut-off frq (low pass filter) (for each DemodulatorChannels). -# -# -# -# -# Frequency of the high-pass filter applied on the demodulation -# signal cut-off frq (hi pass filter) (for each DemodulatorChannels). -# -# -# -# -# Order of the low-pass filter applied on the demodulated signals (X, Y). -# Reducing the bandwidth or increasing the order reduces noise on the demodulated signals, -# but increases settling and measurement times. -# -# -# -# -# Order of the high-pass filter applied on the demodulation -# signal. This is used mainly to suppress a DC component of the input -# signal noise. -# -# -# -# -# An extra reference phase offset of reference signal with respect to the demodulated signal -# (foreach Channels). -# -# -# -# -# Integration time for the product of the input and the reference signals -# -# -# -# -# The reference signal can be a higher harmonic of the modulation signal. -# Here the order of the harmonic is stored. -# -# -# -# -# Ratio of output signal amplitude to input signal amplitue (V/V). -# -# -# diff --git a/contributed_definitions/nyaml/NXoptical_spectroscopy.yaml b/contributed_definitions/nyaml/NXoptical_spectroscopy.yaml deleted file mode 100644 index 19dc970a8..000000000 --- a/contributed_definitions/nyaml/NXoptical_spectroscopy.yaml +++ /dev/null @@ -1,2157 +0,0 @@ -category: application -doc: | - A general application definition of optical spectroscopy elements, which may - be used as a template to derive specialized optical spectroscopy experiments. - - Possible specializations are ellipsometry, Raman spectroscopy, photoluminescence, - reflectivity/transmission spectroscopy. - - A general optical experiment consists of (i) a light/photon source, (ii) a sample, - (iii) a detector. - - For any free text descriptions, it is recommended to enter data in english - language, as this is the most FAIR representation. -symbols: - doc: | - Variables used throughout the document, e.g. dimensions or parameters. - N_spectrum: | - Length of the spectrum array (e.g. wavelength or energy) of the measured - data. - N_measurements: | - Number of measurements (1st dimension of measured_data array). This is - equal to the number of parameters scanned. For example, if the experiment - was performed at three different temperatures and two different pressures - N_measurements = 2*3 = 6. - -# 04/2024 -# Extension of the Draft Version (05/2023) of a NeXus application definition which -# serves as a template for various optical spectroscopy experiments -# TODO: -# - Add NXlens_opt and NXwaveplate to NXinstrument? -# - Make polfilter_TYPE(NXbeam_device) own base class -\-> rework NXpolarizer_opt. and add them to NXinstrument. -# - Make spectralfilter_TYPE(NXbeam_device) own base class -\-> extend NXfilter? and add them to NXinstrument. -# - Make offset angles for polar and azimutal? -# - Can angle_reference_frame be replaced later by only using reference_frames and generic angle description? -# - Add optical elements and rework them: NXfiber, NXbeam_splitter, -# - Consider to make power flux recommended? Difficult parameter to measure. Relevant for some samples/techniques, but not for all. Powder density? Nominal vs. measured? -# - Is there something to describe the spot size? -# - Restructure the concept "type" in "source_TYPE" to medium and model(NXfabication) -\-> suggestion from Markus: "splitting up the concept into type(NXfabrication) and emitting medium(NXion/NXatom) is a better alternative?" -# - How to describe beam size properties? NXbeam/extend? Is this enough? or do we need more abitrary shapes as elliptically? Maybe as well focus spot size? -# - Think of removing/reworking of (optional) NXfabrications? Con: bloats up the NeXus def (move it to base classes?) Pro: as the fixed name device_information is used, the structure is more FAIR / clean designed? -type: group -NXoptical_spectroscopy(NXobject): - (NXentry): - definition: - doc: | - An application definition describing a general optical experiment. - \@version: - doc: | - Version number to identify which definition of this application - definition was used for this entry/data. - \@URL: - doc: | - URL where to find further material (documentation, examples) relevant - to the application definition. - enumeration: [NXoptical_spectroscopy] - title: - exists: recommended - start_time(NX_DATE_TIME): - exists: recommended - doc: | - Datetime of the start of the measurement. - Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, - otherwise, the local time zone is assumed per ISO8601. - - It is required to enter at least one of both measurement times, either "start_time" or "end_time". - end_time(NX_DATE_TIME): - exists: recommended - doc: | - Datetime of the end of the measurement. - Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, - otherwise the local time zone is assumed per ISO8601. - - It is required to enter at least one of both measurement times, either "start_time" or "end_time". - experiment_identifier(NXidentifier): - exists: recommended - doc: | - A (globally persistent) unique identifier of the experiment. - (i) The identifier is usually defined by the facility, laboratory or - principal investigator. - (ii) The identifier enables to link experiments to e.g. proposals. - service(NX_CHAR): - exists: optional - identifier(NX_CHAR): - exists: recommended - identifier_type: - exists: recommended - doc: | - Select the range of validity of this identier. - Local: Setup#1 at Institute building #2 in Room #3 - Global: Unique identification of with by unique location and unique - globally persistent time stamp. - enumeration: [local, global] - is_persistent(NX_BOOLEAN): - exists: optional - experiment_description: - exists: optional - doc: | - An optional free-text description of the experiment. - - Users are strongly advised to parameterize the description of their experiment - by using respective groups and fields and base classes instead of writing prose - into this field. - - The reason is that such a free-text field is difficult to machine-interpret. - The motivation behind keeping this field for now is to learn how far the - current base classes need extension based on user feedback. - experiment_type: - doc: | - Specify the type of the optical experiment. - - Chose other if none of these methods are suitable. You may specify - fundamental characteristics or properties in the experimental sub-type. - - For Raman spectroscopy or ellipsometry use the respective specializations - of NXoptical_spectroscopy. - enumeration: [photoluminescence, transmission spectroscopy, reflection spectroscopy, other] - experiment_sub_type: - exists: optional - doc: | - Specify a special property or characteristic of the experiment, which specifies - the generic experiment type. - enumeration: [time resolved, imaging, pump-probe, other] - experiment_type_other: - exists: optional - doc: | - If "other" was selected in "experiment_type" and/or in "experiment_sub_type", - specify the experiment here with a free text name, which is knwon in the - respective community of interest. - reference_frames(NXcoordinate_system_set): - exists: optional - doc: | - Description of one or more coordinate systems that are specific to the - experiment. Examples are beam centered, sample-normal centered, - laboratory-system centered, sample-stage centered, crystal-symmetry centered. - beam_ref_frame(NXcoordinate_system): - exists: optional - depends_on(NX_CHAR): - doc: | - This refers to the coordinate system along the beam path. The origin and - base is defined at z=0, where the incident beam hits the sample at the surface. - (NXtransformations): - doc: | - This is the default NeXus coordinate system (McStas), if the transformation - does not change the coordinate system at all - i.e. it is unity. - Otherwise, by this a respective transformation of the beam - reference frame to the default reference frame could be made. i.e. - exchange of x and z coordinate, rotation of respective coordinates - towards each other. - sample_normal_ref_frame(NXcoordinate_system): - exists: optional - depends_on(NX_CHAR): - doc: | - Link to transformations defining the sample-normal base coordinate system, - which is defined such that the positive z-axis is parallel to the sample normal, - and the x-y-plane lies inside the sample surface. - (NXtransformations): - doc: | - Set of transformations, describing the orientation of the sample-normal coordinate system - with respect to the beam coordinate system (.). - (NXuser): - exists: ['min', '0', 'max', 'unbounded'] - doc: | - Contact information and eventually details of at persons who - performed the measurements. This can be for example the principal - investigator or student. Examples are: name, affiliation, address, telephone - number, email, role as well as identifiers such as orcid or similar. - It is recommended to add multiple users if relevant. - - Due to data privacy concerns, there is no minimum requirement. - If no user with specific name is allowed to be given, it is required to - assign at least an affiliation - (NXinstrument): - doc: | - Devices or elements of the optical spectroscopy setup described with its - properties and general information. - - This includes for example: - - The beam device's or instrument's model, company, serial number, construction year, etc. - - Used software or code - - Experiment descriptive parameters as reference frames, resolution, calibration - - Photon beams with their respective properties such as angles and polarization - - Various optical beam path devices, which interact, manipulate or measure optical beams - - Characteristics of the medium surrounding the sample - - "Beam devices" for a beam path description - - Stages(NXmanipulator) - - Sensors and actuators to control or measure sample or beam properties - beam_TYPE(NXbeam): - exists: ['min', '1', 'max', 'unbounded'] - doc: | - This can be used to describe properties of a photon beam. - A beam is always defined between two beam_devices, via - "previous_device" and "next_device". - - It is required to define at least one incident beam which is incident - to the sample. You may specify if this beam parameters are acutally measured - or just nominal. - If this beam is the output of a source, chose the same - name appendix as for the NXsource instance (e.g. TYPE=532nm) - parameter_reliability: - doc: | - Select the reliability of the respective beam characteristics. Either, - the parameters are measured via another device or method or just given - nominally via the properties of a light source properties (532nm, 100mW). - enumeration: [measured, nominal] - incident_wavelength(NX_NUMBER): - exists: recommended - incident_wavelength_spread(NX_NUMBER): - exists: recommended - incident_polarization(NX_NUMBER): - exists: recommended - extent(NX_FLOAT): - exists: recommended - associated_source(NX_CHAR): - exists: optional - doc: | - The path to the device which emitted this beam (light source or frequency doubler). - - This parameter is recommended, if the previous optical element is a photon source. - In this way, the properties of the laser or light souce can be described - and associated. - The beam should be named with the same appendix as the source, e.g., - for TYPE=532nmlaser, there should be both a NXsource named - "source_532nmlaser" and a NXbeam named "beam_532nmlaser". - - Example: /entry/instrument/source_532nmlaser - - # The two polarization descriptions may be completely replaced by polarization - beam_polarization_type: - exists: optional - enumeration: [linear, circular, ellipically, unpolarized] - linear_beam_sample_polarization(NX_NUMBER): - exists: optional - unit: NX_ANGLE - doc: | - Angle of the linear polarized light, with respect to a fixed arbitrary - defined 0° position. This can be used if no definition of respective - cooridnate systems for beam and sample normal is done. If coordinate systems - are defined, refer to beam "incident_polarization". - detector_TYPE(NXdetector): - exists: ['min', '1', 'max', 'unbounded'] - detector_channel_type: - enumeration: [single-channel, multichannel] - detector_type: - exists: recommended - doc: | - Description of the detector type. - enumeration: [CCD, photomultiplier, photodiode, avalanche-photodiode, streak camera, bolometer, golay detectors, pyroelectric detector, deuterated triglycine sulphate, other] - detector_type_other: - exists: optional - doc: | - Type of detector, if "other" was selected in "detector_type". - raw_data(NXdata): - exists: recommended - doc: | - Contains the raw data collected by the detector before calibration. - The data which is considered raw might change from experiment to experiment - due to hardware pre-processing of the data. - This field ideally collects the data with the lowest level of processing - possible. - - # Define a similar convention for NXoptical_spectroscopy? Or only for NXraman, NXellipsometry and NXphotoluminescence? - # Fields should be named according to new following convention: - # - **pixel_x**: Detector pixel in x direction. - # - **pixel_y**: Detector pixel in y direction. - # - **energy**: (Un)calibrated energy (kinetic or binding energy). Unit category: NX_ENERGY (e.g., eV). - # - **kx**: (Un)calibrated x axis in k-space. Unit category: NX_ANY (e.g., 1/Angström). - # - **ky**: (Un)calibrated y axis in k-space. Unit category: NX_ANY (1/Angström). - # - **kz**: (Un)calibrated z axis in k-space. Unit category: NX_ANY (1/Angström). - # - **angular0**: Fast-axis angular coordinate (or second slow axis if angularly integrated). - # Unit category: NX_ANGLE - # - **angular1**: Slow-axis angular coordinate (or second fast axis if simultaneously dispersed in 2 dimensions) - # Unit category: NX_ANGLE - # - **spatial0**: Fast-axis spatial coordinate (or second slow axis if spatially integrated) - # Unit category: NX_LENGTH - # - **spatial1**: Slow-axis spatial coordinate (or second fast axis if simultaneously dispersed in 2 dimensions) - # Unit category: NX_LENGTH - # - **delay**: Calibrated delay time. Unit category: NX_TIME (s). - # - **polarization_angle**: Linear polarization angle of the incoming or - # outgoing beam. - # Unit category: NX_ANGLE (° or rad) - # - **ellipticity**: Ellipticity of the incoming or outgoing beam. - # Unit category: NX_ANGLE (° or rad) - # - **time_of_flight**: Total time of flight. Unit category: NX_TIME_OF_FLIGHT - # - **time_of_flight_adc**: Time-of-flight values, analog-to-digital converted. - # - **external_AXIS**: Describes an axis which is coming from outside the detectors scope. - \@signal: - enumeration: [raw] - raw(NX_NUMBER): - doc: | - Raw data before calibration. - additional_detector_hardware: - exists: optional - doc: | - Specify respective hardware which was used for the detector. For - example special electronics required for time-correlated single photon - counting (TCSPC). - device_information(NXfabrication): - exists: recommended - source_TYPE(NXsource): - exists: recommended - type: - exists: recommended - enumeration: [Synchrotron X-ray Source, Rotating Anode X-ray, Fixed Tube X-ray, UV Laser, Optical Laser, Laser, Dye-Laser, Broadband Tunable Light Source, Halogen lamp, LED, Mercury Cadmium Telluride, Deuterium Lamp, Xenon Lamp, Globar, other] - type_other: - exists: optional - doc: | - Specification of type, may also go to name. - name: - exists: recommended - standard: - exists: optional - doc: | - If available, name/ID/norm of the light source standard. - device_information(NXfabrication): - exists: recommended - doc: | - Details about the device information. - associated_beam(NX_CHAR): - exists: recommended - doc: | - The path to a beam emitted by this source. - Should be named with the same appendix, e.g., - for TYPE=532nmlaser, there should as well be - a NXbeam named "beam_532nmlaser" together with this source - instance named "source_532nmlaser" - - Example: /entry/instrument/beam_532nmlaser - (NXmonochromator): - exists: recommended - device_information(NXfabrication): - exists: recommended - angle_reference_frame: - exists: recommended - doc: | - Defines the reference frame which is used to describe the sample orientation - with respect to the beam directions. - - A beam centered description is the default and uses 4 angles(similar to XRD): - - Omega (angle between sample surface and incident beam) - - 2Theta (angle between the transmitted beam and the detection beam) - - Chi (sample tilt angle, angle between plane#1 and the surface normal, - plane#1 = spanned by incidence beam and detection - and detection. If Chi=0°, then plane#1 is the plane of - incidence in reflection setups) - - Phi (inplane rotation of sample, rotation axis is the samples - surface normal) - - - A sample normal centered description is as well possible: - - angle of incidence (angle between incident beam and sample surface) - - angle of detection (angle between detection beam and sample surface) - - angle of incident and detection beam - - angle of in-plane sample rotation (direction along the sample's surface normal) - - An arbitrary reference frame can be defined by "reference_frames" - and used via "instrument/angle_sample_and_beam_TYPE" - enumeration: [beam centered, sample-normal centered] - omega(NX_NUMBER): - exists: optional - unit: NX_ANGLE - doc: | - Angle between sample incident beam and sample surface. - twotheta(NX_NUMBER): - exists: optional - unit: NX_ANGLE - doc: | - Angle between incident and detection beam - chi(NX_NUMBER): - exists: optional - unit: NX_ANGLE - doc: | - Sample tilt between sample normal, and the plane spanned by detection and - incident beam. - phi(NX_NUMBER): - exists: optional - unit: NX_ANGLE - doc: | - Inplane rotation of the sample, with rotation axis along sample normal. - angle_of_incidence(NX_NUMBER): - exists: optional - unit: NX_ANGLE - doc: | - Angle(s) of the incident beam vs. the normal of the bottom reflective - (substrate) surface in the sample. These two directions span the plane - of incidence. - angle_of_detection(NX_NUMBER): - exists: optional - unit: NX_ANGLE - doc: | - Detection angle(s) of the beam reflected or scattered off the sample - vs. the normal of the bottom reflective (substrate) surface in the - sample if not equal to the angle(s) of incidence. - These two directions span the plane of detection. - angle_of_incident_and_detection_beam(NX_NUMBER): - exists: optional - unit: NX_ANGLE - doc: | - Angle between the incident and detection beam. - If angle_of_detection + angle_of_incidence = angle_of_incident_and_detection_beam, - then the setup is a reflection setup. - If angle_of_detection + angle_of_incidence != angle_of_incident_and_detection_beam - then the setup may be a light scattering setup. - (i.e. 90° + 90° != 90°, i.e. incident and detection beam in the sample surface, but - the angle source-sample-detector is 90°) - angle_of_in_plane_sample_rotation(NX_NUMBER): - exists: optional - unit: NX_ANGLE - doc: | - Angle of the inplane orientation of the sample. This might be an arbitrary, - angle without specific relation to the sample symmetry, - of the angle to a specific sample property (i.e. crystallographic axis or sample - shape such as wafer flat) - generic_beam_sample_angle_TYPE(NXtransformations): - exists: recommended - doc: | - Set of transformations, describing the relative orientation of different - parts of the experiment (beams or sample). You may select one of the specified - angles for incident and detection beam or sample, and then use polar and azimuthal - angles to define the direction via sperical coordinates. - This allows consistent defintion between different coordinate system. - You may refer to self defined coordinate system as well. - - - If "angle_reference_frame = beam centered", then this coordinate system is used: - McStas system (NeXus default) - (https://manual.nexusformat.org/design.html#mcstas-and-nxgeometry-system) - - i.e. the z-coordinate math:`[0,0,1]` is along the incident beam direction and - the x-coordinate math:`[1,0,0]` is in the horizontal plane. Hence, usually math:`[0,1,0]` - is vertically oriented. - - If "angle_reference_frame = sample-normal centered", then this coordinate - system is used - z - math:`[0,0,1]` along sample surface normal - x - math:`[1,0,0]` defined by sample surface projected incident beam. - y - math:`[0,1,0]` in the sample surface, orthogonal to z and x. - For this case, x may be ill defined, if the incident beam is perpendicular - to the sample surface. In this case, use the beam centered description. - type: - enumeration: [incident beam, detection beam, sample] - polar(NX_NUMBER): - unit: NX_ANGLE - doc: | - Rotation about the y axis (polar rotation within the sample plane). - \@transformation_type: - enumeration: [rotation] - \@vector: - enumeration: [[0, 1, 0]] - \@depends_on: - doc: | - Path to a transformation that places the sample surface - into the origin of the arpes_geometry coordinate system. - azimuth(NX_NUMBER): - unit: NX_ANGLE - doc: | - Rotation about the z axis (azimuthal rotation within the sample plane). - \@transformation_type: - enumeration: [rotation] - \@vector: - enumeration: [[0, 0, 1]] - \@depends_on: - enumeration: [offset_tilt] - lateral_focal_point_offset(NX_NUMBER): - exists: optional - unit: NX_LENGTH - doc: | - Specify if there is a lateral offset on the sample surface, between the focal - points of the incident beam and the detection beam. - (NXbeam_device): - exists: ['min', '0', 'max', 'unbounded'] - doc: | - Describes the order of respective beam devices in the optical beam - path. - - Everything object which interacts or modifies optical beam properties, - may be an beam device, e.g. Filter, Window, Beamsplitter, Photon Source, - Detector, etc, - - It is intended, to include this functionality later to "older" beam - components, such as NXsource, NXdetector, NXlens, etc. - Until this is possbible, auxillary beam devices have to be created, - for each "older" beam component instead, to allow a beam path description. - To link the auxillary beam device to the real device properties, the - attribute \@device should be used. - \@device: - exists: recommended - doc: | - Reference to beam device, which is described by a NeXus concept - (e.g. for NXsource, entry/instrument/source_TYPE). - previous_device: - exists: recommended - doc: | - Reference to the previous beam device, from which the photon beam came - to reach this beam device. A photon source is related as origin by ".". - This enables a logical order description of the optical setup. - (NXlens_opt): - exists: optional - doc: | - This is the optical element used to focus or collect light. This may - be a genereic lens or microcope objectives which are used for the - Raman scattering process. - type: - enumeration: [objective, lens, glass fiber, none, other] - device_information(NXfabrication): - exists: optional - (NXwaveplate): - exists: optional - (NXopt_window): - exists: optional - polfilter_TYPE(NXbeam_device): - exists: optional - doc: | - polarization filter to prepare light to be measured or to be incident - on the sample. - Genereric polarization filter porperties may be implemented via NXfilter_pol - at a later stage. - filter_mechanism(NX_CHAR): - exists: optional - doc: | - Physical principle of the polarization filter used to create a - defined incident or scattered light state. - enumeration: [polarization by Fresnel reflection, birefringent polarizers, thin film polarizers, wire-grid polarizers, other] - specific_polarization_filter_type(NX_CHAR): - exists: optional - doc: | - Specific name or type of the polarizer used. - - Free text, for example: Glan-Thompson, Glan-Taylor, Rochon Prism, Wollaston - Polarizer... - device_information(NXfabrication): - exists: optional - spectralfilter_TYPE(NXbeam_device): - exists: optional - doc: | - Spectral filter used to modify properties of the scattered or incident light. - Genereric spectral filter porperties may be implemented via NXfilter_spec - at a later stage. - filter_type: - exists: optional - doc: | - Type of laserline filter used to supress the laser, if measurements - close to the laserline are performed. - enumeration: [long-pass filter, short-pass filter, notch filter, reflection filter, neutral density filter, other] - intended_use: - exists: optional - doc: | - Type of laserline filter used to supress the laser, if measurements - close to the laserline are performed. - enumeration: [laser line cleanup, raylight line removal, spectral filtering, intensity manipulation, other] - filter_characteristics(NXdata): - exists: optional - doc: | - Properties of the spectral filter such as wavelength dependent Transmission - or reflectivity. - \@characteristics_type: - exists: optional - doc: | - Which property is used to form the spectral properties of light, - i.e. transmission or reflection properties. - enumeration: [transmission, reflection] - device_information(NXfabrication): - exists: optional - - # Later for rework of specific optical elements - # (NXbeam_splitter): - # exists: optional - # doc: | - # Can be used to describe a beam splitter as optical element. - (NXbeam_transfer_matrix_table): - exists: optional - doc: | - Allows description of beam properties via matrices, which relate ingoing with - outgoing beam properties. - sample_stage(NXmanipulator): - exists: optional - doc: | - Sample stage (or manipulator) for positioning of the sample. This should - only contain the spatial orientation of movement. - stage_type: - exists: optional - doc: | - Specify the type of the sample stage. - enumeration: [manual stage, scanning stage, liquid stage, gas cell, cryostat, heater, other] - stage_type_other: - exists: optional - doc: | - If "other" was chosen in stage_type, enter here a free text description - of the stage type. - transformations(NXtransformations): - exists: optional - doc: | - This allows a description of the stages relation or orientation and - position with respect to the sample or beam, if an laboratory or - an stage coordinate system is defined. - beam_sample_relation: - exists: optional - doc: | - Description of relation of the beam with the sample. How dit the - sample hit the beam, e.g. 'center of sample, long edge parallel - to the plane of incidence'. - Is redundent, if a full orientation description is done via the - stages "transformations" entry. - device_information(NXfabrication): - exists: optional - temperature_sensor(NXsensor): - exists: recommended - name: - exists: recommended - measurement: - enumeration: [temperature] - type: - exists: optional - value(NX_FLOAT): - device_information(NXfabrication): - exists: optional - temp_control_TYPE(NXactuator): - exists: optional - doc: | - Type of control for the sample temperature. Replace TYPE by "cryostat" or - "heater" to specify it. - name: - exists: recommended - physical_quantity: - enumeration: [temperature] - cooler_or_heater: - exists: recommended - enumeration: [cooler, heater] - type: - exists: optional - doc: | - Hardware used for actuation, i.e. laser, gas lamp, filament, resistive - (NXpid): - exists: recommended - setpoint(NX_FLOAT): - exists: recommended - device_information(NXfabrication): - exists: optional - device_information(NXfabrication): - exists: recommended - doc: | - General device information of the optical spectroscopy setup, if - suitable (e.g. for a tabletop spectrometer or other non-custom build setups). - For custom build setups, this may be limited to the construction year. - vendor: - exists: recommended - model: - exists: recommended - identifier(NXidentifier): - exists: recommended - construction_year(NX_DATE_TIME): - exists: optional - software_TYPE(NXprogram): - exists: recommended - program: - doc: | - Commercial or otherwise defined given name of the program that was - used to control any parts of the optical spectroscopy setup. - The uppercase TYPE should be replaced by a specification name, i.e. - "software_detector" or "software_stage" to specify the respective - program or software components. - \@version: - exists: recommended - doc: | - Either version with build number, commit hash, or description of a - (online) repository where the source code of the program and build - instructions can be found so that the program can be configured in - such a way that result files can be created ideally in a - deterministic manner. - \@URL: - exists: optional - doc: | - Description of the software by persistent resource, where the program, - code, script etc. can be found. - instrument_calibration_DEVICE(NXcalibration): - exists: recommended - doc: | - Pre-calibration of an arbitrary device of the instrumental setup, which - has the name DEVICE. You can specify here how, at which time by which method - the calibration was done. As well the accuracy and a link to the calibration - dataset. - device_path: - exists: recommended - doc: | - Path to the device, which was calibrated. - Example: entry/instrument/DEVICE - calibration_accuracy(NXdata): - exists: optional - doc: | - Provide data about the determined accuracy of the device, this may - may be a single value or a dataset like wavelength error vs. wavelength etc. - calibration_status(NX_CHAR): - exists: recommended - doc: | - Was a calibration performed? If yes, when was it done? If the - calibration time is provided, it should be specified in - ENTRY/INSTRUMENT/calibration/calibration_time. - enumeration: [calibration time provided, no calibration, within 1 hour, within 1 day, within 1 week] - calibration_time(NX_DATE_TIME): - exists: optional - doc: | - If calibtration status is 'calibration time provided', specify the - ISO8601 date when calibration was last performed before this - measurement. UTC offset should be specified. - (NXdata): - exists: optional - doc: | - Generic data which does not fit to the 'NX_FLOAT' fields in NXproces. - This can be for example the instrument response function. - wavelength_resolution(NXresolution): - exists: optional - doc: | - The overall resolution of the optical instrument. - physical_quantity: - enumeration: [wavelength] - type: - exists: recommended - resolution(NX_FLOAT): - unit: NX_WAVELENGTH - doc: | - Minimum distinguishable wavelength separation of peaks in spectra. - sample_medium_refractive_indices(NX_FLOAT): - exists: optional - unit: NX_UNITLESS - doc: | - Array of pairs of complex refractive indices n + ik of the medium - for every measured spectral point/wavelength/energy. - Only necessary if the measurement was performed not in air, or - something very well known, e.g. high purity water. - dimensions: - rank: 2 - dim: (2, N_spectrum) - (NXsample): - doc: | - Properties of the sample, such as sample type, layer structure, - chemical formula, atom types, its history etc. - Information about the sample stage and sample environment should be - described in ENTRY/INSTRUMENT/sample_stage. - name: - sample_id: - exists: recommended - doc: | - Locally unique ID of the sample, used in the reasearch institute or group. - physical_form: - exists: recommended - doc: | - State the form of the sample, examples are: - thin film, single crystal, poly crystal, amorphous, single layer, - multi layer, liquid, gas, pellet, powder. - Generic properties of liquids or gases see NXsample properties. - description: - exists: optional - doc: | - Free text description of the sample. - chemical_formula: - exists: recommended - doc: | - Chemical formula of the sample. Use the Hill system (explained here: - https://en.wikipedia.org/wiki/Chemical_formula#Hill_system) to write - the chemical formula. In case the sample consists of several layers, - this should be a list of the chemical formulas of the individual - layers, where the first entry is the chemical formula of the top - layer (the one on the front surface, on which the light incident). - The order must be consistent with layer_structure - atom_types: - exists: optional - doc: | - List of comma-separated elements from the periodic table that are - contained in the sample. If the sample substance has multiple - components, all elements from each component must be included in - 'atom_types'. - preparation_date(NX_DATE_TIME): - exists: recommended - doc: | - ISO 8601 time code with local time zone offset to UTC information - when the specimen was prepared. - - Ideally, report the end of the preparation, i.e. the last known timestamp when - the measured specimen surface was actively prepared. - history(NXhistory): - exists: recommended - doc: | - A set of activities that occurred to the sample prior to/during the experiment. - temperature(NXenvironment): - exists: recommended - doc: | - Sample temperature (either controlled or just measured). - temperature_nominal: - exists: optional - doc: | - If no sensor was available for the determination of temperature, selected - a nominal value which represents approximately the situation of sample temperature. - enumeration: [room temperature, liquid helium temperature, liquid nitrogen temperature, other] - temperature_nominal_other(NX_NUMBER): - exists: optional - unit: NX_TEMPERATURE - doc: | - If temperature_nominal is "other", enter here a nominal/assumed/estimated - sample temperature. - temperature_sensor(NXsensor): - exists: recommended - doc: | - Temperature sensor measuring the sample temperature. - This should be a link to /entry/instrument/manipulator/temperature_sensor. - sample_heater(NXactuator): - exists: optional - doc: | - Device to heat the sample. - This should be a link to /entry/instrument/manipulator/sample_heater. - sample_cooler(NXactuator): - exists: optional - doc: | - Device for cooling the sample (Cryostat, Airflow cooler, etc.). - This should be a link to /entry/instrument/manipulator/cryostat. - (NXenvironment): - exists: optional - doc: | - Arbirary sample property which may be varied during the experiment - and controlled by a device. Examples are pressure, voltage, magnetic field etc. - Similar to the temperautre description of the sample. - sample_medium: - exists: recommended - doc: | - Medium, in which the sample is placed. - enumeration: [air, vacuum, inert atmosphere, oxidising atmosphere, reducing atmosphere, sealed can, water, other] - - # Make something like NXlayer_structure_sample? - thickness(NX_NUMBER): - exists: optional - unit: NX_LENGTH - doc: | - (Measured) sample thickness. - - The information is recorded to qualify if the light used was likely - able to shine through the sample. - - In this case the value should be set to the actual thickness of - the specimen viewed for an illumination situation where the nominal - surface normal of the specimen is parallel to the optical axis. - thickness_determination: - exists: optional - doc: | - If a thickness if given, please specify how this thickness was estimated or - determined. - - # Maybe consider here to include NXsample_component_set. - layer_structure: - exists: optional - doc: | - Qualitative description of the layer structure for the sample, - starting with the top layer (i.e. the one on the front surface, on - which the light incident), e.g. native oxide/bulk substrate, or - Si/native oxide/thermal oxide/polymer/peptide. - sample_orientation: - exists: optional - doc: | - Specify the sample orientation, how is its sample normal oriented - relative in the laboratory reference frame, incident beam reference - frame. - substrate: - exists: recommended - doc: | - If the sample is grown or fixed on a substrate, specify this here by - a free text description. - (NXdata): - doc: | - Here generic types of data may be saved.. This may refer to data derived - from single or multiple raw measurements (i.e. several intensities are - evaluated for different parameters: ellipsometry -> psi and delta) - - i.e. non-raw data. - As well plotable data may be stored/linked here, which provides the most suitable - representation of the data (for the respective community). - - You may provide multiple instances of NXdata - \@axes: - doc: | - Spectrum, i.e. x-axis of the data (e.g. wavelength, energy etc.) - \@signal: - doc: | - Spectrum, i.e. y-axis of the data (e.g. counts, intensity) - measurement_data_calibration_TYPE(NXprocess): - exists: recommended - wavelength_calibration(NXcalibration): - exists: optional - calibrated_axis(NX_FLOAT): - exists: recommended - doc: | - Location to save the calibrated wavelength data. - - # The old "data_collection(NXprocess)" is now replaced by more flexbile - # NXdata. The detailed inclusion of a data collection description (i.e. - # raw data from ellipsometry as polarization values to the usually used - # psi and delta values), will be done later after the NXopt workshop. - derived_parameters(NXprocess): - exists: optional - doc: | - Parameters that are derived from the measured data. - depolarization(NX_NUMBER): - exists: optional - unit: NX_UNITLESS - doc: | - Light loss due to depolarization as a value in [0-1]. - dimensions: - rank: 3 - dim: (N_measurements, 1, N_spectrum) - jones_quality_factor(NX_NUMBER): - exists: optional - unit: NX_UNITLESS - doc: | - Jones quality factor. - dimensions: - rank: 3 - dim: (N_measurements, 1, N_spectrum) - reflectivity(NX_NUMBER): - exists: optional - unit: NX_UNITLESS - doc: | - Reflectivity. - dimensions: - rank: 3 - dim: (N_measurements, 1, N_spectrum) - transmittance(NX_NUMBER): - exists: optional - unit: NX_UNITLESS - doc: | - Transmittance. - dimensions: - rank: 3 - dim: (N_measurements, 1, N_spectrum) - ANALYSIS_program(NXprocess): - exists: optional - program: - doc: | - Commercial or otherwise defined given name of the program that was - used to generate or calculate the derived parameters. - If home written, one can provide the actual steps in the NOTE - subfield here. - version: - doc: | - Either version with build number, commit hash, or description of a - (online) repository where the source code of the program and build - instructions can be found so that the program can be configured in - such a way that result files can be created ideally in a - deterministic manner. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 12c67a466e389862f20db7d4af090899e2ef8d60fc58ace7c28a837421a208a1 -# -# -# -# -# -# -# -# Variables used throughout the document, e.g. dimensions or parameters. -# -# -# -# Length of the spectrum array (e.g. wavelength or energy) of the measured -# data. -# -# -# -# -# Number of measurements (1st dimension of measured_data array). This is -# equal to the number of parameters scanned. For example, if the experiment -# was performed at three different temperatures and two different pressures -# N_measurements = 2*3 = 6. -# -# -# -# -# A general application definition of optical spectroscopy elements, which may -# be used as a template to derive specialized optical spectroscopy experiments. -# -# Possible specializations are ellipsometry, Raman spectroscopy, photoluminescence, -# reflectivity/transmission spectroscopy. -# -# A general optical experiment consists of (i) a light/photon source, (ii) a sample, -# (iii) a detector. -# -# For any free text descriptions, it is recommended to enter data in english -# language, as this is the most FAIR representation. -# -# -# -# -# An application definition describing a general optical experiment. -# -# -# -# Version number to identify which definition of this application -# definition was used for this entry/data. -# -# -# -# -# URL where to find further material (documentation, examples) relevant -# to the application definition. -# -# -# -# -# -# -# -# -# -# Datetime of the start of the measurement. -# Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, -# otherwise, the local time zone is assumed per ISO8601. -# -# It is required to enter at least one of both measurement times, either "start_time" or "end_time". -# -# -# -# -# Datetime of the end of the measurement. -# Should be a ISO8601 date/time stamp. It is recommended to add an explicit time zone, -# otherwise the local time zone is assumed per ISO8601. -# -# It is required to enter at least one of both measurement times, either "start_time" or "end_time". -# -# -# -# -# A (globally persistent) unique identifier of the experiment. -# (i) The identifier is usually defined by the facility, laboratory or -# principal investigator. -# (ii) The identifier enables to link experiments to e.g. proposals. -# -# -# -# -# -# Select the range of validity of this identier. -# Local: Setup#1 at Institute building #2 in Room #3 -# Global: Unique identification of with by unique location and unique -# globally persistent time stamp. -# -# -# -# -# -# -# -# -# -# -# An optional free-text description of the experiment. -# -# Users are strongly advised to parameterize the description of their experiment -# by using respective groups and fields and base classes instead of writing prose -# into this field. -# -# The reason is that such a free-text field is difficult to machine-interpret. -# The motivation behind keeping this field for now is to learn how far the -# current base classes need extension based on user feedback. -# -# -# -# -# Specify the type of the optical experiment. -# -# Chose other if none of these methods are suitable. You may specify -# fundamental characteristics or properties in the experimental sub-type. -# -# For Raman spectroscopy or ellipsometry use the respective specializations -# of NXoptical_spectroscopy. -# -# -# -# -# -# -# -# -# -# -# Specify a special property or characteristic of the experiment, which specifies -# the generic experiment type. -# -# -# -# -# -# -# -# -# -# -# If "other" was selected in "experiment_type" and/or in "experiment_sub_type", -# specify the experiment here with a free text name, which is knwon in the -# respective community of interest. -# -# -# -# -# Description of one or more coordinate systems that are specific to the -# experiment. Examples are beam centered, sample-normal centered, -# laboratory-system centered, sample-stage centered, crystal-symmetry centered. -# -# -# -# -# This refers to the coordinate system along the beam path. The origin and -# base is defined at z=0, where the incident beam hits the sample at the surface. -# -# -# -# -# This is the default NeXus coordinate system (McStas), if the transformation -# does not change the coordinate system at all - i.e. it is unity. -# Otherwise, by this a respective transformation of the beam -# reference frame to the default reference frame could be made. i.e. -# exchange of x and z coordinate, rotation of respective coordinates -# towards each other. -# -# -# -# -# -# -# Link to transformations defining the sample-normal base coordinate system, -# which is defined such that the positive z-axis is parallel to the sample normal, -# and the x-y-plane lies inside the sample surface. -# -# -# -# -# Set of transformations, describing the orientation of the sample-normal coordinate system -# with respect to the beam coordinate system (.). -# -# -# -# -# -# -# Contact information and eventually details of at persons who -# performed the measurements. This can be for example the principal -# investigator or student. Examples are: name, affiliation, address, telephone -# number, email, role as well as identifiers such as orcid or similar. -# It is recommended to add multiple users if relevant. -# -# Due to data privacy concerns, there is no minimum requirement. -# If no user with specific name is allowed to be given, it is required to -# assign at least an affiliation -# -# -# -# -# Devices or elements of the optical spectroscopy setup described with its -# properties and general information. -# -# This includes for example: -# - The beam device's or instrument's model, company, serial number, construction year, etc. -# - Used software or code -# - Experiment descriptive parameters as reference frames, resolution, calibration -# - Photon beams with their respective properties such as angles and polarization -# - Various optical beam path devices, which interact, manipulate or measure optical beams -# - Characteristics of the medium surrounding the sample -# - "Beam devices" for a beam path description -# - Stages(NXmanipulator) -# - Sensors and actuators to control or measure sample or beam properties -# -# -# -# This can be used to describe properties of a photon beam. -# A beam is always defined between two beam_devices, via -# "previous_device" and "next_device". -# -# It is required to define at least one incident beam which is incident -# to the sample. You may specify if this beam parameters are acutally measured -# or just nominal. -# If this beam is the output of a source, chose the same -# name appendix as for the NXsource instance (e.g. TYPE=532nm) -# -# -# -# Select the reliability of the respective beam characteristics. Either, -# the parameters are measured via another device or method or just given -# nominally via the properties of a light source properties (532nm, 100mW). -# -# -# -# -# -# -# -# -# -# -# -# -# The path to the device which emitted this beam (light source or frequency doubler). -# -# This parameter is recommended, if the previous optical element is a photon source. -# In this way, the properties of the laser or light souce can be described -# and associated. -# The beam should be named with the same appendix as the source, e.g., -# for TYPE=532nmlaser, there should be both a NXsource named -# "source_532nmlaser" and a NXbeam named "beam_532nmlaser". -# -# Example: /entry/instrument/source_532nmlaser -# -# -# -# -# -# -# -# -# -# -# -# -# -# Angle of the linear polarized light, with respect to a fixed arbitrary -# defined 0° position. This can be used if no definition of respective -# cooridnate systems for beam and sample normal is done. If coordinate systems -# are defined, refer to beam "incident_polarization". -# -# -# -# -# -# -# -# -# -# -# -# -# Description of the detector type. -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# Type of detector, if "other" was selected in "detector_type". -# -# -# -# -# Contains the raw data collected by the detector before calibration. -# The data which is considered raw might change from experiment to experiment -# due to hardware pre-processing of the data. -# This field ideally collects the data with the lowest level of processing -# possible. -# -# -# -# -# -# -# -# -# -# Raw data before calibration. -# -# -# -# -# -# Specify respective hardware which was used for the detector. For -# example special electronics required for time-correlated single photon -# counting (TCSPC). -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# Specification of type, may also go to name. -# -# -# -# -# -# If available, name/ID/norm of the light source standard. -# -# -# -# -# Details about the device information. -# -# -# -# -# The path to a beam emitted by this source. -# Should be named with the same appendix, e.g., -# for TYPE=532nmlaser, there should as well be -# a NXbeam named "beam_532nmlaser" together with this source -# instance named "source_532nmlaser" -# -# Example: /entry/instrument/beam_532nmlaser -# -# -# -# -# -# -# -# -# Defines the reference frame which is used to describe the sample orientation -# with respect to the beam directions. -# -# A beam centered description is the default and uses 4 angles(similar to XRD): -# - Omega (angle between sample surface and incident beam) -# - 2Theta (angle between the transmitted beam and the detection beam) -# - Chi (sample tilt angle, angle between plane#1 and the surface normal, -# plane#1 = spanned by incidence beam and detection -# and detection. If Chi=0°, then plane#1 is the plane of -# incidence in reflection setups) -# - Phi (inplane rotation of sample, rotation axis is the samples -# surface normal) -# -# -# A sample normal centered description is as well possible: -# - angle of incidence (angle between incident beam and sample surface) -# - angle of detection (angle between detection beam and sample surface) -# - angle of incident and detection beam -# - angle of in-plane sample rotation (direction along the sample's surface normal) -# -# An arbitrary reference frame can be defined by "reference_frames" -# and used via "instrument/angle_sample_and_beam_TYPE" -# -# -# -# -# -# -# -# -# Angle between sample incident beam and sample surface. -# -# -# -# -# Angle between incident and detection beam -# -# -# -# -# Sample tilt between sample normal, and the plane spanned by detection and -# incident beam. -# -# -# -# -# Inplane rotation of the sample, with rotation axis along sample normal. -# -# -# -# -# Angle(s) of the incident beam vs. the normal of the bottom reflective -# (substrate) surface in the sample. These two directions span the plane -# of incidence. -# -# -# -# -# Detection angle(s) of the beam reflected or scattered off the sample -# vs. the normal of the bottom reflective (substrate) surface in the -# sample if not equal to the angle(s) of incidence. -# These two directions span the plane of detection. -# -# -# -# -# Angle between the incident and detection beam. -# If angle_of_detection + angle_of_incidence = angle_of_incident_and_detection_beam, -# then the setup is a reflection setup. -# If angle_of_detection + angle_of_incidence != angle_of_incident_and_detection_beam -# then the setup may be a light scattering setup. -# (i.e. 90° + 90° != 90°, i.e. incident and detection beam in the sample surface, but -# the angle source-sample-detector is 90°) -# -# -# -# -# Angle of the inplane orientation of the sample. This might be an arbitrary, -# angle without specific relation to the sample symmetry, -# of the angle to a specific sample property (i.e. crystallographic axis or sample -# shape such as wafer flat) -# -# -# -# -# Set of transformations, describing the relative orientation of different -# parts of the experiment (beams or sample). You may select one of the specified -# angles for incident and detection beam or sample, and then use polar and azimuthal -# angles to define the direction via sperical coordinates. -# This allows consistent defintion between different coordinate system. -# You may refer to self defined coordinate system as well. -# -# -# If "angle_reference_frame = beam centered", then this coordinate system is used: -# McStas system (NeXus default) -# (https://manual.nexusformat.org/design.html#mcstas-and-nxgeometry-system) -# -# i.e. the z-coordinate math:`[0,0,1]` is along the incident beam direction and -# the x-coordinate math:`[1,0,0]` is in the horizontal plane. Hence, usually math:`[0,1,0]` -# is vertically oriented. -# -# If "angle_reference_frame = sample-normal centered", then this coordinate -# system is used -# z - math:`[0,0,1]` along sample surface normal -# x - math:`[1,0,0]` defined by sample surface projected incident beam. -# y - math:`[0,1,0]` in the sample surface, orthogonal to z and x. -# For this case, x may be ill defined, if the incident beam is perpendicular -# to the sample surface. In this case, use the beam centered description. -# -# -# -# -# -# -# -# -# -# -# Rotation about the y axis (polar rotation within the sample plane). -# -# -# -# -# -# -# -# -# -# -# -# -# -# Path to a transformation that places the sample surface -# into the origin of the arpes_geometry coordinate system. -# -# -# -# -# -# Rotation about the z axis (azimuthal rotation within the sample plane). -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# Specify if there is a lateral offset on the sample surface, between the focal -# points of the incident beam and the detection beam. -# -# -# -# -# Describes the order of respective beam devices in the optical beam -# path. -# -# Everything object which interacts or modifies optical beam properties, -# may be an beam device, e.g. Filter, Window, Beamsplitter, Photon Source, -# Detector, etc, -# -# It is intended, to include this functionality later to "older" beam -# components, such as NXsource, NXdetector, NXlens, etc. -# Until this is possbible, auxillary beam devices have to be created, -# for each "older" beam component instead, to allow a beam path description. -# To link the auxillary beam device to the real device properties, the -# attribute \@device should be used. -# -# -# -# Reference to beam device, which is described by a NeXus concept -# (e.g. for NXsource, entry/instrument/source_TYPE). -# -# -# -# -# Reference to the previous beam device, from which the photon beam came -# to reach this beam device. A photon source is related as origin by ".". -# This enables a logical order description of the optical setup. -# -# -# -# -# -# This is the optical element used to focus or collect light. This may -# be a genereic lens or microcope objectives which are used for the -# Raman scattering process. -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# polarization filter to prepare light to be measured or to be incident -# on the sample. -# Genereric polarization filter porperties may be implemented via NXfilter_pol -# at a later stage. -# -# -# -# Physical principle of the polarization filter used to create a -# defined incident or scattered light state. -# -# -# -# -# -# -# -# -# -# -# -# Specific name or type of the polarizer used. -# -# Free text, for example: Glan-Thompson, Glan-Taylor, Rochon Prism, Wollaston -# Polarizer... -# -# -# -# -# -# -# Spectral filter used to modify properties of the scattered or incident light. -# Genereric spectral filter porperties may be implemented via NXfilter_spec -# at a later stage. -# -# -# -# Type of laserline filter used to supress the laser, if measurements -# close to the laserline are performed. -# -# -# -# -# -# -# -# -# -# -# -# -# Type of laserline filter used to supress the laser, if measurements -# close to the laserline are performed. -# -# -# -# -# -# -# -# -# -# -# -# Properties of the spectral filter such as wavelength dependent Transmission -# or reflectivity. -# -# -# -# Which property is used to form the spectral properties of light, -# i.e. transmission or reflection properties. -# -# -# -# -# -# -# -# -# -# -# -# -# Allows description of beam properties via matrices, which relate ingoing with -# outgoing beam properties. -# -# -# -# -# Sample stage (or manipulator) for positioning of the sample. This should -# only contain the spatial orientation of movement. -# -# -# -# Specify the type of the sample stage. -# -# -# -# -# -# -# -# -# -# -# -# -# -# If "other" was chosen in stage_type, enter here a free text description -# of the stage type. -# -# -# -# -# This allows a description of the stages relation or orientation and -# position with respect to the sample or beam, if an laboratory or -# an stage coordinate system is defined. -# -# -# -# -# Description of relation of the beam with the sample. How dit the -# sample hit the beam, e.g. 'center of sample, long edge parallel -# to the plane of incidence'. -# Is redundent, if a full orientation description is done via the -# stages "transformations" entry. -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# Type of control for the sample temperature. Replace TYPE by "cryostat" or -# "heater" to specify it. -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# Hardware used for actuation, i.e. laser, gas lamp, filament, resistive -# -# -# -# -# -# -# -# -# -# General device information of the optical spectroscopy setup, if -# suitable (e.g. for a tabletop spectrometer or other non-custom build setups). -# For custom build setups, this may be limited to the construction year. -# -# -# -# -# -# -# -# -# -# Commercial or otherwise defined given name of the program that was -# used to control any parts of the optical spectroscopy setup. -# The uppercase TYPE should be replaced by a specification name, i.e. -# "software_detector" or "software_stage" to specify the respective -# program or software components. -# -# -# -# Either version with build number, commit hash, or description of a -# (online) repository where the source code of the program and build -# instructions can be found so that the program can be configured in -# such a way that result files can be created ideally in a -# deterministic manner. -# -# -# -# -# Description of the software by persistent resource, where the program, -# code, script etc. can be found. -# -# -# -# -# -# -# Pre-calibration of an arbitrary device of the instrumental setup, which -# has the name DEVICE. You can specify here how, at which time by which method -# the calibration was done. As well the accuracy and a link to the calibration -# dataset. -# -# -# -# Path to the device, which was calibrated. -# Example: entry/instrument/DEVICE -# -# -# -# -# Provide data about the determined accuracy of the device, this may -# may be a single value or a dataset like wavelength error vs. wavelength etc. -# -# -# -# -# Was a calibration performed? If yes, when was it done? If the -# calibration time is provided, it should be specified in -# ENTRY/INSTRUMENT/calibration/calibration_time. -# -# -# -# -# -# -# -# -# -# -# -# If calibtration status is 'calibration time provided', specify the -# ISO8601 date when calibration was last performed before this -# measurement. UTC offset should be specified. -# -# -# -# -# Generic data which does not fit to the 'NX_FLOAT' fields in NXproces. -# This can be for example the instrument response function. -# -# -# -# -# -# The overall resolution of the optical instrument. -# -# -# -# -# -# -# -# -# -# Minimum distinguishable wavelength separation of peaks in spectra. -# -# -# -# -# -# Array of pairs of complex refractive indices n + ik of the medium -# for every measured spectral point/wavelength/energy. -# Only necessary if the measurement was performed not in air, or -# something very well known, e.g. high purity water. -# -# -# -# -# -# -# -# -# -# Properties of the sample, such as sample type, layer structure, -# chemical formula, atom types, its history etc. -# Information about the sample stage and sample environment should be -# described in ENTRY/INSTRUMENT/sample_stage. -# -# -# -# -# Locally unique ID of the sample, used in the reasearch institute or group. -# -# -# -# -# State the form of the sample, examples are: -# thin film, single crystal, poly crystal, amorphous, single layer, -# multi layer, liquid, gas, pellet, powder. -# Generic properties of liquids or gases see NXsample properties. -# -# -# -# -# Free text description of the sample. -# -# -# -# -# Chemical formula of the sample. Use the Hill system (explained here: -# https://en.wikipedia.org/wiki/Chemical_formula#Hill_system) to write -# the chemical formula. In case the sample consists of several layers, -# this should be a list of the chemical formulas of the individual -# layers, where the first entry is the chemical formula of the top -# layer (the one on the front surface, on which the light incident). -# The order must be consistent with layer_structure -# -# -# -# -# List of comma-separated elements from the periodic table that are -# contained in the sample. If the sample substance has multiple -# components, all elements from each component must be included in -# 'atom_types'. -# -# -# -# -# ISO 8601 time code with local time zone offset to UTC information -# when the specimen was prepared. -# -# Ideally, report the end of the preparation, i.e. the last known timestamp when -# the measured specimen surface was actively prepared. -# -# -# -# -# A set of activities that occurred to the sample prior to/during the experiment. -# -# -# -# -# Sample temperature (either controlled or just measured). -# -# -# -# If no sensor was available for the determination of temperature, selected -# a nominal value which represents approximately the situation of sample temperature. -# -# -# -# -# -# -# -# -# -# -# If temperature_nominal is "other", enter here a nominal/assumed/estimated -# sample temperature. -# -# -# -# -# Temperature sensor measuring the sample temperature. -# This should be a link to /entry/instrument/manipulator/temperature_sensor. -# -# -# -# -# Device to heat the sample. -# This should be a link to /entry/instrument/manipulator/sample_heater. -# -# -# -# -# Device for cooling the sample (Cryostat, Airflow cooler, etc.). -# This should be a link to /entry/instrument/manipulator/cryostat. -# -# -# -# -# -# Arbirary sample property which may be varied during the experiment -# and controlled by a device. Examples are pressure, voltage, magnetic field etc. -# Similar to the temperautre description of the sample. -# -# -# -# Medium, in which the sample is placed. -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# -# (Measured) sample thickness. -# -# The information is recorded to qualify if the light used was likely -# able to shine through the sample. -# -# In this case the value should be set to the actual thickness of -# the specimen viewed for an illumination situation where the nominal -# surface normal of the specimen is parallel to the optical axis. -# -# -# -# -# If a thickness if given, please specify how this thickness was estimated or -# determined. -# -# -# -# -# -# Qualitative description of the layer structure for the sample, -# starting with the top layer (i.e. the one on the front surface, on -# which the light incident), e.g. native oxide/bulk substrate, or -# Si/native oxide/thermal oxide/polymer/peptide. -# -# -# -# -# Specify the sample orientation, how is its sample normal oriented -# relative in the laboratory reference frame, incident beam reference -# frame. -# -# -# -# -# If the sample is grown or fixed on a substrate, specify this here by -# a free text description. -# -# -# -# -# -# Here generic types of data may be saved.. This may refer to data derived -# from single or multiple raw measurements (i.e. several intensities are -# evaluated for different parameters: ellipsometry -> psi and delta) - -# i.e. non-raw data. -# As well plotable data may be stored/linked here, which provides the most suitable -# representation of the data (for the respective community). -# -# You may provide multiple instances of NXdata -# -# -# -# Spectrum, i.e. x-axis of the data (e.g. wavelength, energy etc.) -# -# -# -# -# Spectrum, i.e. y-axis of the data (e.g. counts, intensity) -# -# -# -# -# -# -# -# Location to save the calibrated wavelength data. -# -# -# -# -# -# -# -# Parameters that are derived from the measured data. -# -# -# -# Light loss due to depolarization as a value in [0-1]. -# -# -# -# -# -# -# -# -# -# Jones quality factor. -# -# -# -# -# -# -# -# -# -# Reflectivity. -# -# -# -# -# -# -# -# -# -# Transmittance. -# -# -# -# -# -# -# -# -# -# -# Commercial or otherwise defined given name of the program that was -# used to generate or calculate the derived parameters. -# If home written, one can provide the actual steps in the NOTE -# subfield here. -# -# -# -# -# Either version with build number, commit hash, or description of a -# (online) repository where the source code of the program and build -# instructions can be found so that the program can be configured in -# such a way that result files can be created ideally in a -# deterministic manner. -# -# -# -# -# -# diff --git a/contributed_definitions/nyaml/NXpiezo_config_spm.yaml b/contributed_definitions/nyaml/NXpiezo_config_spm.yaml deleted file mode 100644 index 78dd861a6..000000000 --- a/contributed_definitions/nyaml/NXpiezo_config_spm.yaml +++ /dev/null @@ -1,202 +0,0 @@ -category: base -doc: | - A base class describing piezo actuator settings for scanning probe microscopy. - - Piezoelectric actuators work utilizing the inverse-piezoelectric effect, when a voltage - is applied on the material and it deforms proportional to the applied voltage. - Description below shows calibration coefficients and other configuration parameters of open loop piezo actuators (that is actuators without capacitive sensor feedback systems). - -# Discussion: No need to create this base class rather we can define in spm application definition. -type: group -NXpiezo_config_spm(NXobject): - piezo_material(NXpiezoelectric_material): - doc: | - The material description and properties of the piezoelectric scanner materials. - curvature_radius_N(NX_NUMBER): - unit: NX_LENGTH - doc: | - The N (substring) denotes X or Y. There are 2 parameters in X and Y directions. It can be set - approximately to the length of the piezo tube along X and Y axis. - calibration(NXcalibration): - calibration_type(NX_CHAR): - doc: | - The name of the calibration type, sometimes it is called - `active calibration`. - enumeration: [active, passive] - calibration_name: - doc: | - A specific name of the calibration (e.g. active type with name 'LHe'). - calibration_date(NX_DATE_TIME): - doc: | - The date of the calibration. - calibrated_AXIS(NX_NUMBER): - doc: | - The AXIS (substring) denotes X, Y or Z. There are three directions X, Y, and Z for calibration, - along with three available parameters each: Calibration (m/V), Range (m), and HV gain. Only - two of these parameters are required to define the calibration. Consequently, when any - value is changed, one of the other values will be automatically updated. - hv_gain_N(NX_NUMBER): - doc: | - The N (substring) denotes X or Y or Z. In some systems, there is an HV gain readout feature. For - these systems, the HV gain should be automatically adjusted whenever the gain is - changed at the high voltage amplifier. - range_N(NX_NUMBER): - unit: NX_LENGTH - doc: | - The N (substring) denotes X or Y or Z. There are 3 parameters in X, Y and Z directions. The range - is the maximum distance the piezo can move. - calibration_coefficient_N(NX_NUMBER): - unit: NX_ANY - doc: | - The calibration coefficient is the ratio of the actual distance moved by the piezo due to - the voltage applied to the piezo. It is also called first-order correction. - tilt_N(NX_NUMBER): - unit: NX_ANGLE - doc: | - The N (substring) denotes X and Y directions, and for both directions tilt needs to be adjusted according - to the actual surface. - 2nd_order_correction_N(NX_NUMBER): - unit: NX_ANY - doc: | - The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo - characteristics to compensate the error for that axis. - The following equation shows the - interpretation of the 2nd order correction parameters, For the X-piezo: "Ux = 1/cx · X + cxx · X2" - with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" - where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for - such the second-order correction is (V/m^2). - drift_correction_status(NX_BOOLEAN): - doc: | - The drift correction status (true / false) in calibration step of piezo. - drift_N(NX_NUMBER): - unit: NX_ANY - doc: | - The N (substring) denotes X, Y and Z directions. Define the - drift speed [m/s] for all three axes. When the compensation is on, the piezo will start to - move at that speed. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 96e710da01fe879d6ab92e5a15bf41b9f916f75e23b1d254f36999406f0afa60 -# -# -# -# -# -# -# A base class describing piezo actuator settings for scanning probe microscopy. -# -# Piezoelectric actuators work utilizing the inverse-piezoelectric effect, when a voltage -# is applied on the material and it deforms proportional to the applied voltage. -# Description below shows calibration coefficients and other configuration parameters of open loop piezo actuators (that is actuators without capacitive sensor feedback systems). -# -# -# -# The material description and properties of the piezoelectric scanner materials. -# -# -# -# The N (substring) denotes X or Y. There are 2 parameters in X and Y directions. It can be set -# approximately to the length of the piezo tube along X and Y axis. -# -# -# -# -# -# -# The name of the calibration type, sometimes it is called -# `active calibration`. -# -# -# -# -# -# -# -# -# A specific name of the calibration (e.g. active type with name 'LHe'). -# -# -# -# -# The date of the calibration. -# -# -# -# -# The AXIS (substring) denotes X, Y or Z. There are three directions X, Y, and Z for calibration, -# along with three available parameters each: Calibration (m/V), Range (m), and HV gain. Only -# two of these parameters are required to define the calibration. Consequently, when any -# value is changed, one of the other values will be automatically updated. -# -# -# -# -# The N (substring) denotes X or Y or Z. In some systems, there is an HV gain readout feature. For -# these systems, the HV gain should be automatically adjusted whenever the gain is -# changed at the high voltage amplifier. -# -# -# -# -# The N (substring) denotes X or Y or Z. There are 3 parameters in X, Y and Z directions. The range -# is the maximum distance the piezo can move. -# -# -# -# -# The calibration coefficient is the ratio of the actual distance moved by the piezo due to -# the voltage applied to the piezo. It is also called first-order correction. -# -# -# -# -# The N (substring) denotes X and Y directions, and for both directions tilt needs to be adjusted according -# to the actual surface. -# -# -# -# -# The N (substring) denotes X and Y directions. If you know them, you can enter the 2nd order piezo -# characteristics to compensate the error for that axis. -# The following equation shows the -# interpretation of the 2nd order correction parameters, For the X-piezo: "Ux = 1/cx · X + cxx · X2" -# with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" -# where cx is the calibration of the piezo X and cxx is the 2nd order correction. The unit for -# such the second-order correction is (V/m^2). -# -# -# -# -# The drift correction status (true / false) in calibration step of piezo. -# -# -# -# -# The N (substring) denotes X, Y and Z directions. Define the -# drift speed [m/s] for all three axes. When the compensation is on, the piezo will start to -# move at that speed. -# -# -# -# diff --git a/contributed_definitions/nyaml/NXpiezoelectric_material.yaml b/contributed_definitions/nyaml/NXpiezoelectric_material.yaml deleted file mode 100644 index 0960a4033..000000000 --- a/contributed_definitions/nyaml/NXpiezoelectric_material.yaml +++ /dev/null @@ -1,207 +0,0 @@ -category: base -doc: | - Description and properties of the piezoelectric actuator materials. - The piezoelectric actuator is usually composed of polycrystalline solids and - attached at the head of the tip or cantilever. The material deforms when the external electric field is applied. -type: group -NXpiezoelectric_material(NXobject): - - # Online links: - # 1. ttps://www.ulprospector.com/knowledge/2689/pe-piezoelectric-materials/#:~:text=piezoelectric ceramics, such as lithium,as polyvinylidene fluoride (PVDF). - # 2. https://info.piezo.com/hubfs/Data-Sheets/piezo-material-properties-data-sheet-20201112.pdf - # 3. https://application.wiley-vch.de/books/sample/3527345124_c01.pdf - name(NX_CHAR): - doc: | - The name of the material of the piezo scanner such as Lead Zirconate Titanates - (PZTs). - piezo_material_identifier(NXidentifier): - doc: | - The identifier of the piezo material. - identifier(NX_CHAR): - doc: | - The identifier of the piezo material. - chemical_description(NXsubstance): - doc: | - The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. - type(NX_CHAR): - doc: | - The type of the material of the piezo scanner (e.g. piezoelectric ceramics, - polymer-film piezoelectrics). - - # Properties of the piezo material - density(NX_NUMBER): - unit: NX_ANY - doc: | - The density of the piezo material. - relative_permittivity(NX_NUMBER): - unit: NX_ANY - doc: | - The relative permittivity (dielectric constant) of the piezo material. - D_piezoelectric_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The piezoelectric charge coefficients of the material. The coefficients describe the electric - polarization generated by the applied stress in material. Different coefficients correspond to different - relative directions of the polarization and the stress. - G_voltage_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The constants define the electric field produced by the external mechanical strain. Different coefficients - correspond to different relative directions of the electric field and the strain. - K_electromechanical_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The electromechanical constant measures the efficiency of the conversion of mechanical energy - into electrical energy. - P_pyroelectric_constant(NX_NUMBER): - unit: NX_ANY - doc: | - The pyroelectric constant defines the change of the polarization vector of the piezoelectric material - per unit change in temperature. - acoustic_impedance(NX_NUMBER): - unit: NX_ANY - doc: | - The acoustic impedance of the piezo material. - young_modulus(NX_NUMBER): - unit: NX_ANY - doc: | - The Young's modulus of the piezo material. - surface_resistivity(NX_NUMBER): - unit: NX_ANY - doc: | - The surface resistivity of the piezo material. - temperature_range(NX_NUMBER): - unit: NX_TEMPERATURE - doc: | - The temperature range of the piezo material. - glass_transition_temperature(NX_NUMBER): - unit: NX_TEMPERATURE - doc: | - The range of temperature where a piezoelectric hard material transforms into the - viscous state. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 0f228771942f8ad9c37ecfbdd4dc96d0193a3da548a401a92aec2d436caf26c6 -# -# -# -# -# -# Description and properties of the piezoelectric actuator materials. -# The piezoelectric actuator is usually composed of polycrystalline solids and -# attached at the head of the tip or cantilever. The material deforms when the external electric field is applied. -# -# -# -# -# The name of the material of the piezo scanner such as Lead Zirconate Titanates -# (PZTs). -# -# -# -# -# The identifier of the piezo material. -# -# -# -# The identifier of the piezo material. -# -# -# -# -# -# The chemical formula of the material of the piezo scanner such as Pb(Zr,Ti)O3. -# -# -# -# -# The type of the material of the piezo scanner (e.g. piezoelectric ceramics, -# polymer-film piezoelectrics). -# -# -# -# -# -# The density of the piezo material. -# -# -# -# -# The relative permittivity (dielectric constant) of the piezo material. -# -# -# -# -# The piezoelectric charge coefficients of the material. The coefficients describe the electric -# polarization generated by the applied stress in material. Different coefficients correspond to different -# relative directions of the polarization and the stress. -# -# -# -# -# The constants define the electric field produced by the external mechanical strain. Different coefficients -# correspond to different relative directions of the electric field and the strain. -# -# -# -# -# The electromechanical constant measures the efficiency of the conversion of mechanical energy -# into electrical energy. -# -# -# -# -# The pyroelectric constant defines the change of the polarization vector of the piezoelectric material -# per unit change in temperature. -# -# -# -# -# The acoustic impedance of the piezo material. -# -# -# -# -# The Young's modulus of the piezo material. -# -# -# -# -# The surface resistivity of the piezo material. -# -# -# -# -# The temperature range of the piezo material. -# -# -# -# -# The range of temperature where a piezoelectric hard material transforms into the -# viscous state. -# -# -# diff --git a/contributed_definitions/nyaml/NXpositioner_spm.yaml b/contributed_definitions/nyaml/NXpositioner_spm.yaml deleted file mode 100644 index eb9989a12..000000000 --- a/contributed_definitions/nyaml/NXpositioner_spm.yaml +++ /dev/null @@ -1,94 +0,0 @@ -category: base -doc: | - Extending positioner from NXpositioner to maintain a measurement signal through - a feedback loop, specialized for scanning probe microscopy applications. -type: group -NXpositioner_spm(NXpositioner): - z_controller(NXpid): - doc: | - This controller's task is to continuously adjust the Z position of the STM/STS tip in order - to keep the selected control signal as close as possible to the Set Point. Different control - signals lead to different controller's behavior. - - The second PID feedback loop intends to position the tip in the Z direction. - - p_gain (proportional gain) from z_controller is the same as K_p_value from PID controller. - i_gain (integral gain) from z_controller is the same as K_i_value from PID controller. - setpoint from z_controller is the same as setpoint from PID controller. - z_offset(NX_NUMBER): - unit: NX_LENGTH - doc: | - Offset added to the initial averaged position tip on Z-axis before starting to - scan. - tip_position_z(NX_NUMBER): - unit: NX_LENGTH - doc: | - Indicate the tip position Z. The tip position can also be varied when the controller is not running. - This is the final position after the tip reaches an equilibrium state. - controller_name(NX_CHAR): - doc: | - Controller name. This name which will be displayed at places where you can select a - controller. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# a5050064b9d6434b8199aad19b42444df89447c2ffc7e324b0dacecbb0ca4c1c -# -# -# -# -# -# Extending positioner from NXpositioner to maintain a measurement signal through -# a feedback loop, specialized for scanning probe microscopy applications. -# -# -# -# This controller's task is to continuously adjust the Z position of the STM/STS tip in order -# to keep the selected control signal as close as possible to the Set Point. Different control -# signals lead to different controller's behavior. -# -# The second PID feedback loop intends to position the tip in the Z direction. -# -# p_gain (proportional gain) from z_controller is the same as K_p_value from PID controller. -# i_gain (integral gain) from z_controller is the same as K_i_value from PID controller. -# setpoint from z_controller is the same as setpoint from PID controller. -# -# -# -# -# Offset added to the initial averaged position tip on Z-axis before starting to -# scan. -# -# -# -# -# Indicate the tip position Z. The tip position can also be varied when the controller is not running. -# This is the final position after the tip reaches an equilibrium state. -# -# -# -# -# Controller name. This name which will be displayed at places where you can select a -# controller. -# -# -# diff --git a/contributed_definitions/nyaml/NXrcs.yaml b/contributed_definitions/nyaml/NXrcs.yaml deleted file mode 100644 index 72dbc9374..000000000 --- a/contributed_definitions/nyaml/NXrcs.yaml +++ /dev/null @@ -1,101 +0,0 @@ -category: base -doc: | - A base class for the Real Time Control System (RCS). - - A real time control system (RCS) is a reference architecture model - used to design highly task intensive software systems and computing - control systems. -type: group -NXrcs(NXobject): - rcs_name(NX_CHAR): - doc: | - The name of the real-time control system. - rcs_fabrication(NXfabrication): - doc: | - The fabrication information. - rcs_description(NX_CHAR): - doc: | - The description of the real-time control system. - rcs_type(NX_CHAR): - doc: | - The type of the real-time control system. - rcs_manufacturer(NX_CHAR): - doc: | - The manufacturer of the real-time control system. - rcs_serial_number(NX_CHAR): - doc: | - The serial number of the real-time control system. - rcs_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The frequency of the real-time control system. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 0e3f7bfa269c90b6102b23f0c39c4fc5e6fe67bd44a38c647502e94ebf0de5f7 -# -# -# -# -# -# A base class for the Real Time Control System (RCS). -# -# A real time control system (RCS) is a reference architecture model -# used to design highly task intensive software systems and computing -# control systems. -# -# -# -# The name of the real-time control system. -# -# -# -# -# The fabrication information. -# -# -# -# -# The description of the real-time control system. -# -# -# -# -# The type of the real-time control system. -# -# -# -# -# The manufacturer of the real-time control system. -# -# -# -# -# The serial number of the real-time control system. -# -# -# -# -# The frequency of the real-time control system. -# -# -# diff --git a/contributed_definitions/nyaml/NXscan_control.yaml b/contributed_definitions/nyaml/NXscan_control.yaml deleted file mode 100644 index b464b76e3..000000000 --- a/contributed_definitions/nyaml/NXscan_control.yaml +++ /dev/null @@ -1,1068 +0,0 @@ -category: base - -# Correction: region (use: phase space) -doc: | - A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). - - scan_types: - Trajectory: A list of N-dimensional sequential vectors describes the trajectory line for a full scan. - Mesh: For each dimension a range and a direction are chosen. When a scan along a dimension is done, a single step in the next dimension is taken, and then the scan in the previous dimension is repeated. As such we can speak about the fastest and the slowest scan axes. - Snake: Similar to a mesh scan but with the scanning direction reversed after each line. - Spiral: A scan taken along a spiral trajectory. - Tilt: At each step, a proportional movement is done in all dimensions. - Linear: A scan where the scanning will be performed along a single independent axis. - - Scan_control_types: - Stepping: At each step, a movement to the next point is performed; correction (for example backlash) or active regulation (feedback loop) may or may not be applied. After the movement is done, the measurement is performed without the movement. - Continuous: The scanning of each line in an N-dimensional phase space is done without stopping; measurements are done simultaneously with the movement. - Oscillating: Scanning over a scan point continuously and then moving to start scanning at the next position. -type: group -NXscan_control(NXobject): - scan_time_start(NX_DATE_TIME): - unit: NX_TIME - doc: | - The start time of the scan. - scan_time_end(NX_DATE_TIME): - unit: NX_TIME - doc: | - The end time of the scan. - independent_scan_axes: - doc: | - A list of scan axes which are controlled independently of each other. - (e.g. X, Y, Z, or other physical dimensions) - - The list is in the order of axes of the scan from the fastest to the slowest. - scan_resolution_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan resolution along each dimension as the number of steps per unit of the dimension parameters. - - Rename the field according to the name of the independent dimension (e.g. scan_resolution_x, scan_resolution_voltage). - accuracy_N(NX_NUMBER): - unit: NX_LENGTH - doc: | - Define the accuracy of the scan probe. - scan_type: - doc: | - This group specifies how the trajectory of the scan is defined. - enumeration: [trajectory, mesh, snake, spiral] - scan_control_type: - doc: | - This strig describes how the scan was performed. - enumeration: [stepping, continuous, oscillating] - scan_region(NXobject): - doc: | - The scan region is the area of phase space or sub-phase space where the scan is - performed. The region could be N-dimensional and is defined by the minimum and - maximum values of the scan axes. - scan_offset_N(NX_NUMBER): - unit: NX_ANY - doc: | - The offset of center of the scan region from the origin along the specific scan axis. - - 'N' denotes the name of the specific scan axis. (Offset, start and end positions are related) - scan_range_N(NX_NUMBER): - unit: NX_ANY - doc: | - The range of the scan is the length of the scan region along the dimension 'N'. - scan_angle_N(NX_NUMBER): - unit: NX_ANGLE - doc: | - The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough - to define the scan region. This field defines how the spatial space is oriented with respect to - the frame of reference. - - Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). - scan_start_N(NX_NUMBER): - unit: NX_ANY - doc: | - The start of the scan is the starting point of the scan region (phase space or sub-phase space) - for each independent scan axis. - - For N-dimensional, it is a list of N numbers. - scan_end_N(NX_NUMBER): - unit: NX_ANY - doc: | - The end of the scan is the ending point of the scan region (phase space or sub-phase space) - for each independent scan axis. - - Note: The scan_offset and scan_range are equivalent to the scan_start and scan_end. - - For N-dimensional, it is a list of N numbers. - mesh_SCAN(NXobject): - doc: | - For each dimension a range and a direction are chosen. When a scan along a dimension is done, - a single step in the next dimension is taken, and then the scan in the previous dimension is - repeated. As such we can speak about the fastest and the slowest scan axes. - scan_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the forward direction along the axis if forward and backward - speeds below are not specified. - - If the scan goes in the negative direction, the speed should be negative. - - Rename the field, according to the name of the dimension (e.g. scan_speed_x, scan_speed_voltage). - forward_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the forward directions. - Rename the field, according to the name of the dimension. - backward_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the backward directions. - Rename the field, according to the name of the dimension. - channel_NAME_N: - doc: | - Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is - to represent the name of the dimensions. - - Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). - scan_points_N(NX_NUMBER): - doc: | - Define the total number of points in the given axis scan to be performed. - - Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). - stepping_N(NX_NUMBER): - doc: | - The number of steps the probe jumps over the scan steps or points. This describes when not - every point from the scan_points is measured along an axis. - - Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one) - to perform each scan. By default, it is False. - step_size_N(NX_NUMBER): - unit: NX_ANY - doc: | - The length of each step in the scan on each dimension. - - Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). - continuous_N(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points or steps, use True. The default value is True. - Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves - in steps. - - Rename the field, according to the name of the dimension (e.g. continuous_voltage). - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. - The default value is False. - oscillation_frequency(NX_NUMBER): - doc: | - The number of oscillations on each scanning point per second. - SCAN_data(NXdata): - data: - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - - # For spiral scan - spiral_SCAN(NXobject): - doc: | - To define the spiral or circular scan, use this group. - scan_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in forward (clockwise) directions. - - If the scan goes in the negative (anti-clockwise) direction, the speed should be negative. - - Rename the field, according to the circle index. The circle near the center starts with 0. - In case, the speed is the same for all the circles, replace 'N' by 'all'. - \@spiral_direction: - doc: | - Define the direction of the spiral scan. (e.g. clockwise, anticlockwise from looking back - along the surface normal) - enumeration: [clockwise, anticlockwise] - forward_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the forward (clockwise) directions. - Rename the field, according to the circle index. The circle near the center starts with 0. - - In case, the speed is the same for all the circles, replace 'N' by 'all'. - backward_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the backward (anti-clockwise) directions. - Rename the field, according to the circle index. The circle near the center starts with 0. - - In case, the speed is the same for all the circles, replace 'N' by 'all'. - spiral_radius_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the radius of the spiral circle of scanning. - - Rename the field, according to the circle order, the nearest circle to the center is 0. - scan_points_N(NX_NUMBER): - doc: | - Define the total number of points in a given circle scan to be performed. - - Rename the field, according to the circle order, the nearest circle to the center - is 0 (e.g. scan_points_2). - stepping_N(NX_NUMBER): - doc: | - If the scan probe steps over a number of scan points. - - Rename the field, according to the circle index. The circle near the center starts with 0. - In case, the stepping is the same for all the circles, replace 'N' by 'all'. - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one), use True. - The default value is False. - step_size_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the number of points that the scan probe steps over. - - Rename the field, according to the circle index. The circle near the center or lowest value of a - parameter starts with 0. - In case, the step size is the same for all the circles, replace 'N' by 'all'. - continuous_N(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points, use True. The default value is True. - A scan process can run continuously in the spatial dimension but can be discretized in time or - other physical dimensions (e.g. voltage). - - Rename this field according to the dimensions, considering continuous scan in a two-dimensional space - rename the field as continuous_x_y. - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. The default value is - False. - oscillation_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - Number of oscillation on each scanning point per second. - SCAN_data(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - - # This active_trajectory could be explained under the same group - snake_SCAN(NXobject): - doc: | - To define the snake scan, use this group. - scan_speed_N(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed for the type of snake scan. For the same speed along the - positive and negative directions, use a single number - - Rename the field, according to the name of the fast and slow axis e.g. scan_speed_x. - forward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The field defines the scan speed in the positive direction on the fast axis. - - Rename the field, according to the name of the fast axis. - backward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The field defines the scan speed in the negative direction on the fast axis. - - Rename the field, according to the name of the fast axis. - scan_points_N(NX_NUMBER): - doc: | - Define the total number of points in the given axis scan to be performed. - - Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). - stepping_N(NX_NUMBER): - doc: | - The number of steps the probe jumps over the scan steps or points. - - Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one) - to perform each scan. By default, it is False. - - Rename the field, according to the name of the dimension. - step_size_N(NX_NUMBER): - unit: NX_ANY - doc: | - The length of each step in the scan on each dimension. - - Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). - channel_NAME_N: - doc: | - Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is - to represent the name of the dimensions. - - Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). - continuous_N(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points or steps, use True. The default value is True. - Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves - in a stepping manner. - - Rename the field, according to the name of the dimension (e.g. continuous_voltage). - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. - The default value is False. - oscillation_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The number of oscillations on each scanning point per second. - SCAN_data(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - traj_SCAN(NXobject): - doc: | - To define the trajectory scan, use this group. - scan_speed(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed through the trajectory points. - forward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The field defines the scan speed in the forward directions through the - trajectory points. - backward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - The field defines the scan speed in the backward directions (backtracking) - through the trajectory points. - channel_NAME_N: - doc: | - Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is - to represent the name of the dimensions. - - Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). - number_of_trajectory_points(NX_NUMBER): - doc: | - The number of trajectory points in the entire scan. - trajectory_points(NX_NUMBER): - doc: | - The trajectory points are the N-dimensional vectors describing all the scan points sequentially. - - The second rank dataset should contain total number of trajectory points (nTraj) and - a full coordinate (nD) of each trajectory point. - dimensions: - rank: 2 - dim: (nTraj, nD) - scan_points_N(NX_NUMBER): - doc: | - Define the total number of scan points between two trajectory points. - - Rename the field, according to the index of the second trajectory points. - For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. - stepping_N(NX_NUMBER): - doc: | - The number of steps the probe jumps over the scan steps or points along the trajectory line from between two trajectory points. - - Rename the field, according to the index of the second trajectory points. - For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one) - to perform each scan. By default, it is False. - step_size(NX_NUMBER): - unit: NX_ANY - doc: | - The length of each step along the entire trajectory line. - continuous(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points or steps between two - trajectory points, use True. The default value is True. - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. - The default value is False. - oscillation_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The number of oscillations on each scanning point per second. - SCAN_data(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - linear_SCAN(NXobject): - doc: | - Define the scan mode that is performed for a single independent data axis. - scan_speed(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed of the scan disregarding the forward or backward - direction. - forward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the forward directions. - backward_speed(NX_NUMBER): - unit: NX_ANY - doc: | - Define the scan speed in the backward directions. - channel_NAME(NX_CHAR): - doc: | - Name of the channel that records the scan data for the given dimension. - scan_points_N(NX_NUMBER): - doc: | - Define the total number of points in the given axis scan to be performed. - - Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). - stepping_N(NX_NUMBER): - doc: | - The number of steps the probe jumps over the scan steps or points. - - Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). - \@frog_leap_scan: - type: NX_BOOLEAN - doc: | - If the scan probe jumps over a number of scan steps or points (more than one) - to perform each scan. By default, it is False. - step_size_N(NX_NUMBER): - unit: NX_ANY - doc: | - The length of each step in the scan on each dimension. - - Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). - continuous_N(NX_BOOLEAN): - doc: | - If the scan probe moves continuously over the scan points or steps, use True. The default value is True. - Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves - in a stepping manner. - - Rename the field, according to the name of the dimension (e.g. continuous_voltage). - oscillating_N(NX_BOOLEAN): - doc: | - If the scan probe oscillates over the scan point, use True. - The default value is False. - oscillation_frequency(NX_NUMBER): - unit: NX_FREQUENCY - doc: | - The number of oscillations on each scanning point per second. - SCAN_data(NXdata): - doc: | - The scan data is the data collected during the scan. - If the scan has several channels or derivatives from the channel data, please - duplicate this NXdata group for each. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# d18ffd5c1912f2d3afd811c93b192903484a7e805d1db7646eeea5e051c1277c -# -# -# -# -# -# -# A scan is performed inside an N-dimensional phase space, where each dimension can correspond not only to real space coordinates (x,y) but also to any other parameter. This class contains detailed information about controlling the scan in such a phase space (or its subspace). -# -# scan_types: -# Trajectory: A list of N-dimensional sequential vectors describes the trajectory line for a full scan. -# Mesh: For each dimension a range and a direction are chosen. When a scan along a dimension is done, a single step in the next dimension is taken, and then the scan in the previous dimension is repeated. As such we can speak about the fastest and the slowest scan axes. -# Snake: Similar to a mesh scan but with the scanning direction reversed after each line. -# Spiral: A scan taken along a spiral trajectory. -# Tilt: At each step, a proportional movement is done in all dimensions. -# Linear: A scan where the scanning will be performed along a single independent axis. -# -# Scan_control_types: -# Stepping: At each step, a movement to the next point is performed; correction (for example backlash) or active regulation (feedback loop) may or may not be applied. After the movement is done, the measurement is performed without the movement. -# Continuous: The scanning of each line in an N-dimensional phase space is done without stopping; measurements are done simultaneously with the movement. -# Oscillating: Scanning over a scan point continuously and then moving to start scanning at the next position. -# -# -# -# The start time of the scan. -# -# -# -# -# The end time of the scan. -# -# -# -# -# A list of scan axes which are controlled independently of each other. -# (e.g. X, Y, Z, or other physical dimensions) -# -# The list is in the order of axes of the scan from the fastest to the slowest. -# -# -# -# -# Define the scan resolution along each dimension as the number of steps per unit of the dimension parameters. -# -# Rename the field according to the name of the independent dimension (e.g. scan_resolution_x, scan_resolution_voltage). -# -# -# -# -# Define the accuracy of the scan probe. -# -# -# -# -# This group specifies how the trajectory of the scan is defined. -# -# -# -# -# -# -# -# -# -# -# This strig describes how the scan was performed. -# -# -# -# -# -# -# -# -# -# The scan region is the area of phase space or sub-phase space where the scan is -# performed. The region could be N-dimensional and is defined by the minimum and -# maximum values of the scan axes. -# -# -# -# The offset of center of the scan region from the origin along the specific scan axis. -# -# 'N' denotes the name of the specific scan axis. (Offset, start and end positions are related) -# -# -# -# -# The range of the scan is the length of the scan region along the dimension 'N'. -# -# -# -# -# The orientation of the scan region or subspace. Usually, the scan_offset and scan_range are enough -# to define the scan region. This field defines how the spatial space is oriented with respect to -# the frame of reference. -# -# Rename the field describing the angle with an axis of the spatial space (e.g. scan_angle_x). -# -# -# -# -# The start of the scan is the starting point of the scan region (phase space or sub-phase space) -# for each independent scan axis. -# -# For N-dimensional, it is a list of N numbers. -# -# -# -# -# The end of the scan is the ending point of the scan region (phase space or sub-phase space) -# for each independent scan axis. -# -# Note: The scan_offset and scan_range are equivalent to the scan_start and scan_end. -# -# For N-dimensional, it is a list of N numbers. -# -# -# -# -# -# For each dimension a range and a direction are chosen. When a scan along a dimension is done, -# a single step in the next dimension is taken, and then the scan in the previous dimension is -# repeated. As such we can speak about the fastest and the slowest scan axes. -# -# -# -# Define the scan speed in the forward direction along the axis if forward and backward -# speeds below are not specified. -# -# If the scan goes in the negative direction, the speed should be negative. -# -# Rename the field, according to the name of the dimension (e.g. scan_speed_x, scan_speed_voltage). -# -# -# -# -# Define the scan speed in the forward directions. -# Rename the field, according to the name of the dimension. -# -# -# -# -# Define the scan speed in the backward directions. -# Rename the field, according to the name of the dimension. -# -# -# -# -# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is -# to represent the name of the dimensions. -# -# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). -# -# -# -# -# Define the total number of points in the given axis scan to be performed. -# -# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). -# -# -# -# -# The number of steps the probe jumps over the scan steps or points. This describes when not -# every point from the scan_points is measured along an axis. -# -# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one) -# to perform each scan. By default, it is False. -# -# -# -# -# -# The length of each step in the scan on each dimension. -# -# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). -# -# -# -# -# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. -# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves -# in steps. -# -# Rename the field, according to the name of the dimension (e.g. continuous_voltage). -# -# -# -# -# If the scan probe oscillates over the scan point, use True. -# The default value is False. -# -# -# -# -# The number of oscillations on each scanning point per second. -# -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# -# -# -# -# To define the spiral or circular scan, use this group. -# -# -# -# Define the scan speed in forward (clockwise) directions. -# -# If the scan goes in the negative (anti-clockwise) direction, the speed should be negative. -# -# Rename the field, according to the circle index. The circle near the center starts with 0. -# In case, the speed is the same for all the circles, replace 'N' by 'all'. -# -# -# -# Define the direction of the spiral scan. (e.g. clockwise, anticlockwise from looking back -# along the surface normal) -# -# -# -# -# -# -# -# -# -# Define the scan speed in the forward (clockwise) directions. -# Rename the field, according to the circle index. The circle near the center starts with 0. -# -# In case, the speed is the same for all the circles, replace 'N' by 'all'. -# -# -# -# -# Define the scan speed in the backward (anti-clockwise) directions. -# Rename the field, according to the circle index. The circle near the center starts with 0. -# -# In case, the speed is the same for all the circles, replace 'N' by 'all'. -# -# -# -# -# Define the radius of the spiral circle of scanning. -# -# Rename the field, according to the circle order, the nearest circle to the center is 0. -# -# -# -# -# Define the total number of points in a given circle scan to be performed. -# -# Rename the field, according to the circle order, the nearest circle to the center -# is 0 (e.g. scan_points_2). -# -# -# -# -# If the scan probe steps over a number of scan points. -# -# Rename the field, according to the circle index. The circle near the center starts with 0. -# In case, the stepping is the same for all the circles, replace 'N' by 'all'. -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one), use True. -# The default value is False. -# -# -# -# -# -# Define the number of points that the scan probe steps over. -# -# Rename the field, according to the circle index. The circle near the center or lowest value of a -# parameter starts with 0. -# In case, the step size is the same for all the circles, replace 'N' by 'all'. -# -# -# -# -# If the scan probe moves continuously over the scan points, use True. The default value is True. -# A scan process can run continuously in the spatial dimension but can be discretized in time or -# other physical dimensions (e.g. voltage). -# -# Rename this field according to the dimensions, considering continuous scan in a two-dimensional space -# rename the field as continuous_x_y. -# -# -# -# -# If the scan probe oscillates over the scan point, use True. The default value is -# False. -# -# -# -# -# Number of oscillation on each scanning point per second. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# -# -# -# To define the snake scan, use this group. -# -# -# -# Define the scan speed for the type of snake scan. For the same speed along the -# positive and negative directions, use a single number -# -# Rename the field, according to the name of the fast and slow axis e.g. scan_speed_x. -# -# -# -# -# The field defines the scan speed in the positive direction on the fast axis. -# -# Rename the field, according to the name of the fast axis. -# -# -# -# -# The field defines the scan speed in the negative direction on the fast axis. -# -# Rename the field, according to the name of the fast axis. -# -# -# -# -# Define the total number of points in the given axis scan to be performed. -# -# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). -# -# -# -# -# The number of steps the probe jumps over the scan steps or points. -# -# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one) -# to perform each scan. By default, it is False. -# -# Rename the field, according to the name of the dimension. -# -# -# -# -# -# The length of each step in the scan on each dimension. -# -# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). -# -# -# -# -# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is -# to represent the name of the dimensions. -# -# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). -# -# -# -# -# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. -# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves -# in a stepping manner. -# -# Rename the field, according to the name of the dimension (e.g. continuous_voltage). -# -# -# -# -# If the scan probe oscillates over the scan point, use True. -# The default value is False. -# -# -# -# -# The number of oscillations on each scanning point per second. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# -# -# To define the trajectory scan, use this group. -# -# -# -# Define the scan speed through the trajectory points. -# -# -# -# -# The field defines the scan speed in the forward directions through the -# trajectory points. -# -# -# -# -# The field defines the scan speed in the backward directions (backtracking) -# through the trajectory points. -# -# -# -# -# Name of the channel that records the scan data for the given dimension. The ending annotation 'N' is -# to represent the name of the dimensions. -# -# Rename the field, according to the name of the channel and dimension (e.g. piezo_scanner_x). -# -# -# -# -# The number of trajectory points in the entire scan. -# -# -# -# -# The trajectory points are the N-dimensional vectors describing all the scan points sequentially. -# -# The second rank dataset should contain total number of trajectory points (nTraj) and -# a full coordinate (nD) of each trajectory point. -# -# -# -# -# -# -# -# -# Define the total number of scan points between two trajectory points. -# -# Rename the field, according to the index of the second trajectory points. -# For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. -# -# -# -# -# The number of steps the probe jumps over the scan steps or points along the trajectory line from between two trajectory points. -# -# Rename the field, according to the index of the second trajectory points. -# For example, scan_points_1 is the number of points between the starting(zero) and first trajectory points. -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one) -# to perform each scan. By default, it is False. -# -# -# -# -# -# The length of each step along the entire trajectory line. -# -# -# -# -# If the scan probe moves continuously over the scan points or steps between two -# trajectory points, use True. The default value is True. -# -# -# -# -# If the scan probe oscillates over the scan point, use True. -# The default value is False. -# -# -# -# -# The number of oscillations on each scanning point per second. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# -# -# Define the scan mode that is performed for a single independent data axis. -# -# -# -# Define the scan speed of the scan disregarding the forward or backward -# direction. -# -# -# -# -# Define the scan speed in the forward directions. -# -# -# -# -# Define the scan speed in the backward directions. -# -# -# -# -# Name of the channel that records the scan data for the given dimension. -# -# -# -# -# Define the total number of points in the given axis scan to be performed. -# -# Rename the field, according to the name of the dimension (e.g. scan_points_x, scan_points_voltage). -# -# -# -# -# The number of steps the probe jumps over the scan steps or points. -# -# Rename the field, according to the name of the dimension (e.g. stepping_x, stepping_voltage). -# -# -# -# If the scan probe jumps over a number of scan steps or points (more than one) -# to perform each scan. By default, it is False. -# -# -# -# -# -# The length of each step in the scan on each dimension. -# -# Rename the field, according to the name of the dimension (e.g. step_size_x, step_size_voltage). -# -# -# -# -# If the scan probe moves continuously over the scan points or steps, use True. The default value is True. -# Usually, continuous scanning is possible in one dimension. On other dimensions, the scan probe moves -# in a stepping manner. -# -# Rename the field, according to the name of the dimension (e.g. continuous_voltage). -# -# -# -# -# If the scan probe oscillates over the scan point, use True. -# The default value is False. -# -# -# -# -# The number of oscillations on each scanning point per second. -# -# -# -# -# The scan data is the data collected during the scan. -# If the scan has several channels or derivatives from the channel data, please -# duplicate this NXdata group for each. -# -# -# -# diff --git a/contributed_definitions/nyaml/NXsensor_scan.yaml b/contributed_definitions/nyaml/NXsensor_scan.yaml deleted file mode 100644 index 7d5c42490..000000000 --- a/contributed_definitions/nyaml/NXsensor_scan.yaml +++ /dev/null @@ -1,400 +0,0 @@ -category: application -doc: | - Application definition for a generic scan using sensors. - - In this application definition, times should be specified always together - with an UTC offset. -symbols: - doc: | - Variables used to set a common size for collected sensor data. - N_scanpoints: | - The number of scan points measured in this scan. -type: group -NXsensor_scan(NXobject): - (NXentry): - \@default: - exists: recommended - 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 visualised upon entry. - See https://www.nexusformat.org/2014_How_to_find_default_data.html - for a summary of the discussion. - definition(NX_CHAR): - \@version: - enumeration: [NXsensor_scan] - experiment_identifier(NXidentifier): - exists: recommended - doc: | - The unique identifier for the entry. The identifier is mainly lab-defined and - can be a combination of the sample name, date and time, experiment condition - (such as temperature) or instrument-generated unique identifier. - collection_identifier(NXidentifier): - exists: optional - doc: | - The unique identifier for the collection. The identifier is used to group a - number of the experiments run upon the same setup and/or same sample. - experiment_description: - exists: recommended - start_time(NX_NUMBER): - unit: NX_TIME - exists: recommended - end_time(NX_NUMBER): - unit: NX_TIME - exists: recommended - (NXprocess): - doc: | - Define the program that was used to generate the results file(s) - with measured data and metadata. - program(NX_CHAR): - doc: | - Commercial or otherwise defined given name of the program - (or a link to the instrument software). - \@version: - doc: | - Either version with build number, commit hash, or description of an - (online) repository where the source code of the program and build - instructions can be found so that the program can be configured in - such a way that result files can be created ideally in a - deterministic manner. - \@program_url: - doc: | - Website of the software. - (NXuser): - doc: | - Contact information of at least the user of the instrument or the - investigator who performed this experiment. Adding multiple users if - relevant is recommended. - name(NX_CHAR): - doc: | - Name of the user. - affiliation(NX_CHAR): - exists: recommended - doc: | - Name of the affiliation of the user at the point in time when - the experiment was performed. - address(NX_CHAR): - exists: recommended - doc: | - Full address (street, street number, ZIP, city, country) - of the user's affiliation. - email(NX_CHAR): - exists: recommended - doc: | - Email address of the user. - orcid(NX_CHAR): - exists: recommended - doc: | - Author ID defined by https://orcid.org/. - telephone_number(NX_CHAR): - exists: recommended - doc: | - Official telephone number of the user. - (NXnote): - exists: optional - doc: | - Any additional information or notes (e.g. purpose of the experiment) that might - be useful to understand the experiment. - (NXinstrument): - (NXenvironment): - doc: | - Describes an environment setup for the experiment. - - All the setting values of the independently scanned controllers are listed under corresponding - NXsensor groups. Similarly, seperate NXsensor groups are used to store the readings from each - measurement sensor. - - For example, in a temperature-dependent IV measurement, the temperature and voltage must be - present as independently scanned controllers and the current sensor must also be present with - its readings. - (NXsensor): - (NXdata): - exists: recommended - doc: | - Plot of measured signal as a function of the timestamp of when they have been - acquired is also possible. - value(NX_FLOAT): - unit: NX_ANY - doc: | - For each point in the scan space, either the nominal setpoint of an independently scanned controller - or a representative average value of a measurement sensor is registered. - - The length of each sensor's data value array stored in this group should be equal to the number of scan points - probed in this scan. For every scan point [N], the corresponding sensor value can be picked from index [N]. - This allows the scan to be made in any order as the user describes above in the experiment. We get matching - values simply using the index of the scan point. - dimensions: - rank: 1 - dim: (N_scanpoints,) - value_timestamp(NX_DATE_TIME): - exists: recommended - doc: | - Timestamp for when the values provided in the value field were registered. - - Individual readings can be stored with their timestamps under value_log. This is to timestamp - the nominal setpoint or average reading values listed above in the value field. - run_control(NX_CHAR): - exists: recommended - \@description: - doc: | - Free-text describing the data acquisition control: an internal - sweep using the built-in functionality of the controller device, - or a set/wait/read/repeat mechanism. - calibration_time(NX_NUMBER): - unit: NX_TIME - doc: | - ISO8601 datum when calibration was last performed - before this measurement. UTC offset should be specified. - (NXpid): - independent_controllers: - doc: | - A list of names of NXsensor groups used as independently scanned controllers. - measurement_sensors: - doc: | - A list of names of NXsensor groups used as measurement sensors. - (NXsample): - exists: recommended - name(NX_CHAR): - (NXhistory): - exists: optional - (NXdata): - doc: | - A scan specific representation of the measured signals as a function of the independently controlled environment settings. - Plot of every measured signal as a function of the timestamp of when they have been acquired is also possible. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# f3e7b07bd31669f7b0e222c1f9f170699fb12046a5a4879ec5a2cf03f670d0dc -# -# -# -# -# -# -# Variables used to set a common size for collected sensor data. -# -# -# -# The number of scan points measured in this scan. -# -# -# -# -# Application definition for a generic scan using sensors. -# -# In this application definition, times should be specified always together -# with an UTC offset. -# -# -# -# -# .. 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 visualised upon entry. -# See https://www.nexusformat.org/2014_How_to_find_default_data.html -# for a summary of the discussion. -# -# -# -# -# -# -# -# -# -# -# The unique identifier for the entry. The identifier is mainly lab-defined and -# can be a combination of the sample name, date and time, experiment condition -# (such as temperature) or instrument-generated unique identifier. -# -# -# -# -# The unique identifier for the collection. The identifier is used to group a -# number of the experiments run upon the same setup and/or same sample. -# -# -# -# -# -# -# -# Define the program that was used to generate the results file(s) -# with measured data and metadata. -# -# -# -# Commercial or otherwise defined given name of the program -# (or a link to the instrument software). -# -# -# -# Either version with build number, commit hash, or description of an -# (online) repository where the source code of the program and build -# instructions can be found so that the program can be configured in -# such a way that result files can be created ideally in a -# deterministic manner. -# -# -# -# -# Website of the software. -# -# -# -# -# -# -# Contact information of at least the user of the instrument or the -# investigator who performed this experiment. Adding multiple users if -# relevant is recommended. -# -# -# -# Name of the user. -# -# -# -# -# Name of the affiliation of the user at the point in time when -# the experiment was performed. -# -# -# -# -# Full address (street, street number, ZIP, city, country) -# of the user's affiliation. -# -# -# -# -# Email address of the user. -# -# -# -# -# Author ID defined by https://orcid.org/. -# -# -# -# -# Official telephone number of the user. -# -# -# -# -# -# Any additional information or notes (e.g. purpose of the experiment) that might -# be useful to understand the experiment. -# -# -# -# -# -# Describes an environment setup for the experiment. -# -# All the setting values of the independently scanned controllers are listed under corresponding -# NXsensor groups. Similarly, seperate NXsensor groups are used to store the readings from each -# measurement sensor. -# -# For example, in a temperature-dependent IV measurement, the temperature and voltage must be -# present as independently scanned controllers and the current sensor must also be present with -# its readings. -# -# -# -# -# Plot of measured signal as a function of the timestamp of when they have been -# acquired is also possible. -# -# -# -# -# For each point in the scan space, either the nominal setpoint of an independently scanned controller -# or a representative average value of a measurement sensor is registered. -# -# The length of each sensor's data value array stored in this group should be equal to the number of scan points -# probed in this scan. For every scan point [N], the corresponding sensor value can be picked from index [N]. -# This allows the scan to be made in any order as the user describes above in the experiment. We get matching -# values simply using the index of the scan point. -# -# -# -# -# -# -# -# Timestamp for when the values provided in the value field were registered. -# -# Individual readings can be stored with their timestamps under value_log. This is to timestamp -# the nominal setpoint or average reading values listed above in the value field. -# -# -# -# -# -# Free-text describing the data acquisition control: an internal -# sweep using the built-in functionality of the controller device, -# or a set/wait/read/repeat mechanism. -# -# -# -# -# -# ISO8601 datum when calibration was last performed -# before this measurement. UTC offset should be specified. -# -# -# -# -# -# -# A list of names of NXsensor groups used as independently scanned controllers. -# -# -# -# -# A list of names of NXsensor groups used as measurement sensors. -# -# -# -# -# -# -# -# -# -# -# A scan specific representation of the measured signals as a function of the independently controlled environment settings. -# Plot of every measured signal as a function of the timestamp of when they have been acquired is also possible. -# -# -# -# diff --git a/contributed_definitions/nyaml/NXspm.yaml b/contributed_definitions/nyaml/NXspm.yaml deleted file mode 100644 index 16bf6331c..000000000 --- a/contributed_definitions/nyaml/NXspm.yaml +++ /dev/null @@ -1,841 +0,0 @@ -category: application -doc: | - Scanning Probe Microscopy (SPM) is a branch of microscopy that utilizes a physical probe to scan the surface of - sample and image it at the atomic level. - - The application class NXspm is designed as a skeleton and contains common technical concepts - for specific SPM sub-techniques such as STM, STS, AFM etc. -type: group -NXspm(NXsensor_scan): - (NXentry): - definition: - doc: | - Name of the definition that is used for the application. - enumeration: [NXspm] - experiment_technique: - doc: | - The technique of the experiment like STM, STS, AFM, etc. - enumeration: [STM, STS, AFM] - scan_mode: - exists: optional - doc: | - The mode of the scan. The possible options depend on the type of experiment. - For example, in STM, the scan mode could be constant height or constant current, - in AFM, the scan mode could be contact mode, tapping mode or non-contact mode. - scan_type: - exists: optional - doc: | - The type of the scan. It mainly describes how scan probe moves in the scan region, e.g. - forward, backward, or both (if scan is repeated). - experiment_identifier(NXidentifier): - exists: optional - doc: | - The identifiers for the experiment which should be unique at least in lab. - experiment_description: - exists: optional - doc: | - The description of the experiment like comments, ontes from from the experiment. - experiment_instrument(NXinstrument): - doc: | - The instrument information. - hardware(NXfabrication): - doc: | - The hardware description of the core instrument setup of the experiment. - Usually, the entire instrument is supplied by a single manufacturer. - To describe the hardware from any sub-components, use the hardware group of that - sub-component (child group of the NXinstrument group) group. - vendor: - doc: | - Company name of the manufacturer. - model: - doc: | - Version or model of the hardware setup provided by the manufacturer. - \@version: - exists: optional - doc: | - If different versions are possible, the value in this field should be made - specific enough to resolve the version. - software(NXfabrication): - doc: | - The software description of the core instrument setup of the experiment. - Usually, the entire instrument is supplied by a single name/manufacturer/model/etc. - To describe the software from any sub-components, use the software group of that component. - vendor: - doc: | - Company name of the manufacturer. - model: - doc: | - Version or model of the component named by the manufacturer. - \@version: - exists: optional - doc: | - If different versions are possible, the value in this field should be made - specific enough to resolve the version. - real_time_controller(NXrcs): - exists: optional - doc: | - The real-time controller information. - rcs_frequency(NX_NUMBER): - exists: optional - doc: | - The frequency of the real-time controller system which indicated the number of close-loop process - (gathering data, process data and update system) control cycles per second. - lockin_amplifier(NXlockin): - exists: optional - doc: | - The lock-in amplifier information. - scan_environment(NXenvironment): - doc: | - Information of the scan environment. - tip_temp(NX_NUMBER): - exists: optional - unit: NX_TEMPERATURE - doc: | - Temperature of STM head. Note: At least one field from tip_temp, - cryo_bottom_temp and cryo_shield_temp must be provided. - cryo_bottom_temp(NX_NUMBER): - exists: optional - unit: NX_TEMPERATURE - doc: | - Temperature of the cold tail of the cryostat. Note: At least one field from - tip_temp, cryo_bottom_temp and cryo_shield_temp must be provided. - cryo_shield_temp(NX_NUMBER): - exists: optional - unit: NX_TEMPERATURE - doc: | - Temperature of liquid nitrogen shield. Note: At - least one field from tip_temp, cryo_bottom_temp and cryo_shield_temp. - scan_name: - exists: optional - doc: | - The name of the scan, mainly lab defined, that helps to differentiate among different - scans performed in the lab. - current_sensor(NXsensor): - exists: optional - doc: | - This is a link to the current_sensor under the instrument group: - entry/experiment_instrument/current_sensor. - volatage_sensor(NXsensor): - exists: optional - doc: | - This is a link to the voltage_sensor under the instrument group: - entry/experiment_instrument/voltage_sensor. - piezo_sensor(NXsensor): - exists: optional - doc: | - This is a link to the piezo_sensor under the instrument group: - entry/experiment_instrument/piezo_sensor. - (NXscan_control): - doc: | - The scan control information like scan region or phase space, type of scan (e.g. - mesh, spiral, etc.), and scan speed, etc. This group mainly stores the raw scan - data. For processed data or final experimental data would go to NXdata group. - scan_name: - exists: optional - doc: | - The name of the scan, mainly lab defined, that helps to differentiate among different - scans performed in lab. This field is intended for several types of scan control - run under the same environment. - current_sensor(NXsensor): - exists: optional - doc: | - Information for current sensor. - (NXamplifier): - exists: optional - doc: | - An amplifier information for the input signal (e.g. from tip). - voltage_sensor(NXsensor): - exists: optional - doc: | - The sensor information for the voltage device. - (NXamplifier): - exists: optional - piezo_sensor(NXsensor): - doc: | - The piezo sensor refers to the height (or Z) piezo sensor if nothing is - mentioned along the X and Y directions. - x(NX_NUMBER): - unit: NX_LENGTH - doc: | - The x position of the piezo. In STS experiment, the piezo stays fixed at - x,y and z and the the tunneling current is measured with respect to the - bias voltage (sweep voltage). - y(NX_NUMBER): - unit: NX_LENGTH - doc: | - The y position of the piezo. - z(NX_NUMBER): - unit: NX_LENGTH - doc: | - The z position of the piezo. - piezo_configuration(NXpiezo_config_spm): - exists: optional - doc: | - The piezo configuration information like piezoelectric calibration and material - properties. - calibration(NXcalibration): - exists: optional - doc: | - Calibration of the piezo device. - (NXpositioner_spm): - doc: | - The positioner information like the position of the tip, the position of the - sample, PID loop feedback etc. - z_controller(NXpid): - doc: | - The PID controller information for the z-axis. - z(NX_NUMBER): - doc: | - To indicate the relative tip position z between tip and sample. The tip position - can also be varied when the z_controller is not running. - controller_status(NX_BOOLEAN): - doc: | - Status if controller is active. - piezo_material(NXpiezoelectric_material): - exists: optional - doc: | - The material description and properties of the piezoelectric scanner materials. - TEMPERATURE(NXsensor): - exists: optional - doc: | - A group handling the temperature such as cryo, shield and tip. For different - type of temperature sensors repeat this group. - temperature(NX_NUMBER): - exists: optional - unit: NX_TEMPERATURE - doc: | - The temperature of the sample. - CHANNEL_temp(NX_CHAR): - exists: optional - doc: | - The name of the channel to measure the temperature. - temperature_calibration(NXcalibration): - exists: optional - doc: | - Calibration of the temperature measurement. - coefficients(NX_NUMBER): - unit: NX_ANY - doc: | - The coefficients of the calibration. - TEMPERATURE_DATA(NXdata): - exists: optional - doc: | - Data (e.g, record from SPM head temperature) from temperature sensor. - bias_spectroscopy_environment(NXenvironment): - doc: | - To explain bias (sweep measurement) voltage applied to the sample. - (NXbias_spectroscopy): - doc: | - Setup and scan data for continuous measurement of bias-voltage on the subject of experiment - vs tunneling current from probe. - (NXpositioner_spm): - exists: optional - doc: | - The positioner information like the position of the tip, PID loop feedback etc. - z_controller(NXpid): - exists: optional - doc: | - The PID controller information for the z-axis. - z_average_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The average time taken by the z-controller to stabilize the tip. - z_controller_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time taken by the z-controller to measure physical properties. - z_controller_hold(NX_BOOLEAN): - exists: optional - doc: | - The status of the controller to be held on the previous position, before going to the - next scan point or line to measure the physical properties. - record_final_z(NX_BOOLEAN): - exists: optional - doc: | - The status of the controller to record the final z position after the scan. - bias_sweep(NXbias_sweep): - doc: | - The bais voltage sweep is a common technique used on the substance or sample or environment - to study the change in the behavior of the sample or substance or environment due to change - in applied bias voltage. - settling_time(NX_NUMBER): - unit: NX_TIME - doc: | - The time is taken to settle the bias voltage at the desired value. On each sweep usually, the system - takes time to settle the bias voltage at the next value. - scan_region(NXobject): - doc: | - The scan region (phase space or sub-phase space) is the region where the scan is - performed. - scan_offset_bias(NX_NUMBER): - exists: optional - unit: NX_VOLTAGE - doc: | - The offset of the bias voltage for bias sweep. - scan_range_bias(NX_NUMBER): - exists: optional - unit: NX_VOLTAGE - doc: | - The range of the scan is the length of the bias voltage over which the sweep - scan will be performed. - scan_start_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The start of the bias scan voltage. - scan_end_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The end of the bias scan voltage. - linear_sweep(NXobject): - doc: | - The linear sweep is a type of scan where the bias voltage is swept - linearly from the starting voltage to the ending voltage. - scan_points_bias(NX_NUMBER): - doc: | - The number of voltage points the sweep scan to be performed. - step_size_bias(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The step size of the sweep. - The step size is the difference between the two consecutive bias voltage during the sweep. - reset_bias(NX_BOOLEAN): - exists: optional - doc: | - The reset_bias is used to reset the bias voltage to the starting value after a - sweep is completed. - sample_bias_votage(NXsensor): - exists: optional - doc: | - The DC bias voltage that is applied to the sample. - bias_voltage(NX_NUMBER): - unit: NX_VOLTAGE - doc: | - The bias voltage (DC) applied to the sample. - bias_offset(NX_NUMBER): - exists: optional - unit: NX_VOLTAGE - doc: | - Offset value of the bias voltage. - bias_calibration(NXcalibration): - exists: optional - doc: | - Calibration of the bias voltage measurement (V/V). - calibration_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by the calibration to setup to acquire the data for - the calibration. - coefficients(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The coefficients of the calibration. - (NXsample): - exists: optional - doc: | - The sample information. - history(NXhistory): - doc: | - A set of physical processes that occurred to the sample prior/during experiment. - sample_environment(NXenvironment): - exists: optional - doc: | - Information of environment around the sample. - sample_bias_voltage(NXsensor): - doc: | - Link to the sample_bias_voltage sensor under the instrument. - reproducibility_indicators(NXobject): - doc: | - The group of indicators (links to the existing fields in different groups) that measure - the reproducibility of the experiment. - resolution_indicators(NXobject): - exists: optional - doc: | - The group of indicators (links to the existing fields in different groups) that - are used to measure the resolution of the experiment results. - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 024acfe5f7495619bd18650959526d439d77db6e3f1c1c261065366908510744 -# -# -# -# -# -# Scanning Probe Microscopy (SPM) is a branch of microscopy that utilizes a physical probe to scan the surface of -# sample and image it at the atomic level. -# -# The application class NXspm is designed as a skeleton and contains common technical concepts -# for specific SPM sub-techniques such as STM, STS, AFM etc. -# -# -# -# -# Name of the definition that is used for the application. -# -# -# -# -# -# -# -# The technique of the experiment like STM, STS, AFM, etc. -# -# -# -# -# -# -# -# -# -# The mode of the scan. The possible options depend on the type of experiment. -# For example, in STM, the scan mode could be constant height or constant current, -# in AFM, the scan mode could be contact mode, tapping mode or non-contact mode. -# -# -# -# -# The type of the scan. It mainly describes how scan probe moves in the scan region, e.g. -# forward, backward, or both (if scan is repeated). -# -# -# -# -# The identifiers for the experiment which should be unique at least in lab. -# -# -# -# -# The description of the experiment like comments, ontes from from the experiment. -# -# -# -# -# The instrument information. -# -# -# -# The hardware description of the core instrument setup of the experiment. -# Usually, the entire instrument is supplied by a single manufacturer. -# To describe the hardware from any sub-components, use the hardware group of that -# sub-component (child group of the NXinstrument group) group. -# -# -# -# Company name of the manufacturer. -# -# -# -# -# Version or model of the hardware setup provided by the manufacturer. -# -# -# -# If different versions are possible, the value in this field should be made -# specific enough to resolve the version. -# -# -# -# -# -# -# The software description of the core instrument setup of the experiment. -# Usually, the entire instrument is supplied by a single name/manufacturer/model/etc. -# To describe the software from any sub-components, use the software group of that component. -# -# -# -# Company name of the manufacturer. -# -# -# -# -# Version or model of the component named by the manufacturer. -# -# -# -# If different versions are possible, the value in this field should be made -# specific enough to resolve the version. -# -# -# -# -# -# -# The real-time controller information. -# -# -# -# The frequency of the real-time controller system which indicated the number of close-loop process -# (gathering data, process data and update system) control cycles per second. -# -# -# -# -# -# The lock-in amplifier information. -# -# -# -# -# Information of the scan environment. -# -# -# -# Temperature of STM head. Note: At least one field from tip_temp, -# cryo_bottom_temp and cryo_shield_temp must be provided. -# -# -# -# -# Temperature of the cold tail of the cryostat. Note: At least one field from -# tip_temp, cryo_bottom_temp and cryo_shield_temp must be provided. -# -# -# -# -# Temperature of liquid nitrogen shield. Note: At -# least one field from tip_temp, cryo_bottom_temp and cryo_shield_temp. -# -# -# -# -# The name of the scan, mainly lab defined, that helps to differentiate among different -# scans performed in the lab. -# -# -# -# -# This is a link to the current_sensor under the instrument group: -# entry/experiment_instrument/current_sensor. -# -# -# -# -# This is a link to the voltage_sensor under the instrument group: -# entry/experiment_instrument/voltage_sensor. -# -# -# -# -# This is a link to the piezo_sensor under the instrument group: -# entry/experiment_instrument/piezo_sensor. -# -# -# -# -# The scan control information like scan region or phase space, type of scan (e.g. -# mesh, spiral, etc.), and scan speed, etc. This group mainly stores the raw scan -# data. For processed data or final experimental data would go to NXdata group. -# -# -# -# The name of the scan, mainly lab defined, that helps to differentiate among different -# scans performed in lab. This field is intended for several types of scan control -# run under the same environment. -# -# -# -# -# -# -# Information for current sensor. -# -# -# -# An amplifier information for the input signal (e.g. from tip). -# -# -# -# -# -# The sensor information for the voltage device. -# -# -# -# -# -# The piezo sensor refers to the height (or Z) piezo sensor if nothing is -# mentioned along the X and Y directions. -# -# -# -# The x position of the piezo. In STS experiment, the piezo stays fixed at -# x,y and z and the the tunneling current is measured with respect to the -# bias voltage (sweep voltage). -# -# -# -# -# The y position of the piezo. -# -# -# -# -# The z position of the piezo. -# -# -# -# -# The piezo configuration information like piezoelectric calibration and material -# properties. -# -# -# -# Calibration of the piezo device. -# -# -# -# -# -# The positioner information like the position of the tip, the position of the -# sample, PID loop feedback etc. -# -# -# -# The PID controller information for the z-axis. -# -# -# -# To indicate the relative tip position z between tip and sample. The tip position -# can also be varied when the z_controller is not running. -# -# -# -# -# Status if controller is active. -# -# -# -# -# -# -# The material description and properties of the piezoelectric scanner materials. -# -# -# -# -# -# A group handling the temperature such as cryo, shield and tip. For different -# type of temperature sensors repeat this group. -# -# -# -# The temperature of the sample. -# -# -# -# -# The name of the channel to measure the temperature. -# -# -# -# -# Calibration of the temperature measurement. -# -# -# -# The coefficients of the calibration. -# -# -# -# -# -# Data (e.g, record from SPM head temperature) from temperature sensor. -# -# -# -# -# -# To explain bias (sweep measurement) voltage applied to the sample. -# -# -# -# Setup and scan data for continuous measurement of bias-voltage on the subject of experiment -# vs tunneling current from probe. -# -# -# -# The positioner information like the position of the tip, PID loop feedback etc. -# -# -# -# The PID controller information for the z-axis. -# -# -# -# The average time taken by the z-controller to stabilize the tip. -# -# -# -# -# The time taken by the z-controller to measure physical properties. -# -# -# -# -# The status of the controller to be held on the previous position, before going to the -# next scan point or line to measure the physical properties. -# -# -# -# -# The status of the controller to record the final z position after the scan. -# -# -# -# -# -# -# The bais voltage sweep is a common technique used on the substance or sample or environment -# to study the change in the behavior of the sample or substance or environment due to change -# in applied bias voltage. -# -# -# -# The time is taken to settle the bias voltage at the desired value. On each sweep usually, the system -# takes time to settle the bias voltage at the next value. -# -# -# -# -# The scan region (phase space or sub-phase space) is the region where the scan is -# performed. -# -# -# -# The offset of the bias voltage for bias sweep. -# -# -# -# -# The range of the scan is the length of the bias voltage over which the sweep -# scan will be performed. -# -# -# -# -# The start of the bias scan voltage. -# -# -# -# -# The end of the bias scan voltage. -# -# -# -# -# -# The linear sweep is a type of scan where the bias voltage is swept -# linearly from the starting voltage to the ending voltage. -# -# -# -# The number of voltage points the sweep scan to be performed. -# -# -# -# -# The step size of the sweep. -# The step size is the difference between the two consecutive bias voltage during the sweep. -# -# -# -# -# The reset_bias is used to reset the bias voltage to the starting value after a -# sweep is completed. -# -# -# -# -# -# -# -# -# The DC bias voltage that is applied to the sample. -# -# -# -# The bias voltage (DC) applied to the sample. -# -# -# -# -# Offset value of the bias voltage. -# -# -# -# -# Calibration of the bias voltage measurement (V/V). -# -# -# -# The time or period is taken by the calibration to setup to acquire the data for -# the calibration. -# -# -# -# -# The coefficients of the calibration. -# -# -# -# -# -# -# -# The sample information. -# -# -# -# A set of physical processes that occurred to the sample prior/during experiment. -# -# -# -# -# Information of environment around the sample. -# -# -# -# Link to the sample_bias_voltage sensor under the instrument. -# -# -# -# -# -# -# The group of indicators (links to the existing fields in different groups) that measure -# the reproducibility of the experiment. -# -# -# -# -# The group of indicators (links to the existing fields in different groups) that -# are used to measure the resolution of the experiment results. -# -# -# -# diff --git a/contributed_definitions/nyaml/NXstm.yaml b/contributed_definitions/nyaml/NXstm.yaml deleted file mode 100644 index d9ddf7539..000000000 --- a/contributed_definitions/nyaml/NXstm.yaml +++ /dev/null @@ -1,662 +0,0 @@ -category: application -doc: | - An application definition to describe Scanning Tunneling Microscopy (STM). - -# https://thesis.library.caltech.edu/1943/4/03chapter3.pdf -# TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and NXafm -type: group -NXstm(NXspm): - (NXentry): - definition: - doc: | - Name of the definition that is used for the application. - enumeration: [NXstm] - scan_mode: - doc: | - The mode of the scan that is performed. Two commonly used ones are constant - height mode and constant current mode. - enumeration: [constant height, constant current] - experiment_instrument(NXinstrument): - doc: | - The group explains the instrumentation of the STM experiment such - as current sensor, lock-in amplifier etc. - lockin_amplifier(NXlockin): - doc: | - The lock-in amplifier information. The device is being used to extract - the very weak signal buried in noisy signals. - modulation_signal_type: - exists: optional - unit: NX_UNITLESS - doc: | - The type of the signal (voltage or current) subject fo modulation. - modulation_frequency(NX_NUMBER): - exists: optional - doc: | - The frequency of the sine modulation that is used to modulate the signal in - lock-in. - scan_environment(NXenvironment): - doc: | - The environment information for stm or sts experiment. - (NXscan_control): - doc: | - The scan control information like scan region or phase space, type of scan - (e.g. mesh, spiral, etc.), and scan speed, etc. - scan_type: - doc: | - The type of scan like mesh, spiral, etc. For STS experiment, the scan type is - usually a single-point scan (trajectory scan). - enumeration: [mesh, trajectory, snake, spiral] - tip_temp_sensor(NXsensor): - exists: optional - doc: | - This group stands for the same concept as - /ENTRY[entry]/experiment_instrument/tip_temperature - cryo_temp_sensor(NXsensor): - exists: optional - doc: | - This group stands for the same concept as - /ENTRY[entry]/experiment_instrument/cryo_temperature - cryo_shield_temp_sensor(NXsensor): - exists: optional - doc: | - This group stands for the same concept as - /ENTRY[entry]/experiment_instrument/cryo_shield_temperature - tip_temp_sensor(NXsensor): - exists: optional - doc: | - The temperature of the tip one of the tip. - cryo_temp_sensor(NXsensor): - exists: optional - doc: | - The temperature of the cryostat. - cryo_shield_temp_sensor(NXsensor): - exists: optional - doc: | - The temperature of the cryo shield. - current_sensor(NXsensor): - doc: | - The sensor information. - current(NX_NUMBER): - unit: NX_CURRENT - doc: | - The tunneling current between tip and sample after - applying bias voltage. - current_offset(NX_NUMBER): - exists: optional - unit: NX_CURRENT - doc: | - Offset value of the current measurement. - current_calibration(NXcalibration): - exists: optional - doc: | - Calibration of the current measurement. - calibration_time(NX_NUMBER): - exists: optional - unit: NX_TIME - doc: | - The time or period is taken by the calibration to setup to acquire the data for - the calibration. - coefficients(NX_NUMBER): - unit: NX_ANY - doc: | - The coefficients of the calibration. - (NXamplifier): - exists: optional - doc: | - An amplifier information for the input signal (e.g. from tip). - current_gain(NX_NUMBER): - unit: NX_UNITLESS - doc: | - Proportional relationship between the probe output voltage and the actual - tunneling current when measuring the tunneling current. - bias_spectroscopy_environment(NXenvironment): - exists: optional - doc: | - To explain bias (sweep measurement) voltage applied to the sample. - (NXbias_spectroscopy): - exists: optional - doc: | - Setup and scan data for continuous measurement of bias-voltage on the subject of experiment - vs tunneling current from probe. - Data from from this experiment can also be used to calculate the dI/dV spectra. - piezo_sensor(NXsensor): - doc: | - The sensor information for the piezo device. - piezo_configuration(NXpiezo_config_spm): - exists: optional - doc: | - The piezo configuration information like piezoelectric device calibration and - material properties. - calibration(NXcalibration): - exists: optional - doc: | - Calibration of the piezo device. - 2nd_order_correction_N(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The N (substring) denotes X and Y directions. The 2nd order piezo - compensate the error for that axis. The following equation shows the - interpretation of the 2nd order correction parameters, - For the X-piezo: "Ux = 1/cx · X + cxx · X2" - with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" - where cx is the calibration of the piezo X and cxx is the 2nd order - correction. The unit for such the second-order correction is (V/m^2). - calibration_type(NX_CHAR): - exists: optional - doc: | - The name of the calibration type, sometimes it is called - e.g active calibration, passive calibration. - calibration_coefficient_N(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - The calibration coefficient is the ratio of the actual distance moved by the piezo to - the voltage applied to the piezo. It is also called first-order correction. - drift_N(NX_NUMBER): - exists: optional - unit: NX_ANY - doc: | - Set up the settings to enable or disable the drift compensation. - drift_correction_status(NX_BOOLEAN): - exists: optional - doc: | - Whether the drift has been corrected in case there is a deviation in the - drift. - tilt_N(NX_NUMBER): - exists: optional - unit: NX_ANGLE - doc: | - The N (substring) denotes X and Y directions, and for both directions - tilt needs to be adjusted according to the actual surface. - hv_gain_N(NX_NUMBER): - doc: | - The N (substring) denotes X or Y or Z. In some systems, - there is an HV gain readout feature. For these systems, - the HV gain should be automatically adjusted whenever - the gain is changed at the high voltage amplifier. - (NXpositioner_spm): - doc: | - The positioner information like the position of the tip, - PID loop feedback etc. - z_controller(NXpid): - doc: | - The PID controller information for the z-axis. - z(NX_NUMBER): - doc: | - To indicate the relative tip position z between tip and sample. The tip position - can also be varied when the z_controller is not running. - set_point(NX_NUMBER): - unit: NX_ANY - doc: | - The set point for the z-controller to be fixed and the target value could be - height or current. - controller_name: - exists: recommended - doc: | - The name of the controller or channels. - controller_status(NX_BOOLEAN): - exists: recommended - doc: | - The status of the controller to say was PID has been used or not. - tip_lift(NX_NUMBER): - exists: optional - unit: NX_LENGTH - doc: | - If the tip is lifted from the stable point. - switch_off_delay: - exists: optional - unit: NX_TIME - doc: | - The switch-off delay of the controller from its stable point. - reproducibility_indicators(NXobject): - exists: optional - doc: | - The group's concepts hold the link to the related concepts that define the - reproducibility of the STM experiment. - current(NX_NUMBER): - exists: optional - doc: | - The tunneling current between tip and sample after application of bias voltage. - link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current - current_offset(NX_NUMBER): - exists: optional - doc: | - The tunneling current between tip and sample after application of bias voltage. - link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current - current_gain(NX_NUMBER): - exists: optional - doc: | - Proportional relationship between the probe output voltage and the actual - tunneling current when measuring the tunneling current. - link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/amplifier/current_gain - bias_sweep(NXobject): - exists: optional - doc: | - Link to target: - /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] - modulation_signal_type: - exists: optional - doc: | - This is the signal on which the modulation voltage or current will be added. - link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type - modulation_frequency(NX_NUMBER): - exists: optional - doc: | - The frequency of the sine modulation that is used to modulate the signal in lock-in. - link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency - resolution_indicators(NXobject): - exists: optional - doc: | - The group's concepts hold the link to the related concepts that define the - resolution of the STM experiment. - stm_head_temp(NXsensor): - exists: optional - doc: | - Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp - cryo_bottom_temp(NXsensor): - exists: optional - doc: | - Link to target: - /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp - cryo_shield_temp(NXsensor): - exists: optional - doc: | - Link to target: - /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature - bias_sweep(NXobject): - exists: optional - doc: | - Link to target: - /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] - modulation_signal_type: - exists: optional - doc: | - This is the signal on which the modulation voltage or current will be added. - link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type - modulation_signal_type - modulation_frequency(NX_NUMBER): - exists: optional - doc: | - The frequency of the sine modulation that is used to modulate the signal in lock-in. - link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# abfdeef834431bb4df994cabb82c26f62f2cf58095ae7a3497808392064b4157 -# -# -# -# -# -# -# An application definition to describe Scanning Tunneling Microscopy (STM). -# -# -# -# -# Name of the definition that is used for the application. -# -# -# -# -# -# -# -# The mode of the scan that is performed. Two commonly used ones are constant -# height mode and constant current mode. -# -# -# -# -# -# -# -# -# The group explains the instrumentation of the STM experiment such -# as current sensor, lock-in amplifier etc. -# -# -# -# The lock-in amplifier information. The device is being used to extract -# the very weak signal buried in noisy signals. -# -# -# -# The type of the signal (voltage or current) subject fo modulation. -# -# -# -# -# The frequency of the sine modulation that is used to modulate the signal in -# lock-in. -# -# -# -# -# -# The environment information for stm or sts experiment. -# -# -# -# The scan control information like scan region or phase space, type of scan -# (e.g. mesh, spiral, etc.), and scan speed, etc. -# -# -# -# The type of scan like mesh, spiral, etc. For STS experiment, the scan type is -# usually a single-point scan (trajectory scan). -# -# -# -# -# -# -# -# -# -# -# -# This group stands for the same concept as -# /ENTRY[entry]/experiment_instrument/tip_temperature -# -# -# -# -# This group stands for the same concept as -# /ENTRY[entry]/experiment_instrument/cryo_temperature -# -# -# -# -# This group stands for the same concept as -# /ENTRY[entry]/experiment_instrument/cryo_shield_temperature -# -# -# -# -# -# The temperature of the tip one of the tip. -# -# -# -# -# The temperature of the cryostat. -# -# -# -# -# The temperature of the cryo shield. -# -# -# -# -# The sensor information. -# -# -# -# The tunneling current between tip and sample after -# applying bias voltage. -# -# -# -# -# Offset value of the current measurement. -# -# -# -# -# Calibration of the current measurement. -# -# -# -# The time or period is taken by the calibration to setup to acquire the data for -# the calibration. -# -# -# -# -# The coefficients of the calibration. -# -# -# -# -# -# An amplifier information for the input signal (e.g. from tip). -# -# -# -# Proportional relationship between the probe output voltage and the actual -# tunneling current when measuring the tunneling current. -# -# -# -# -# -# -# To explain bias (sweep measurement) voltage applied to the sample. -# -# -# -# Setup and scan data for continuous measurement of bias-voltage on the subject of experiment -# vs tunneling current from probe. -# Data from from this experiment can also be used to calculate the dI/dV spectra. -# -# -# -# -# -# The sensor information for the piezo device. -# -# -# -# The piezo configuration information like piezoelectric device calibration and -# material properties. -# -# -# -# Calibration of the piezo device. -# -# -# -# The N (substring) denotes X and Y directions. The 2nd order piezo -# compensate the error for that axis. The following equation shows the -# interpretation of the 2nd order correction parameters, -# For the X-piezo: "Ux = 1/cx · X + cxx · X2" -# with units: "[V] = [V/m] · [m] + [V/m2] · [m2]" -# where cx is the calibration of the piezo X and cxx is the 2nd order -# correction. The unit for such the second-order correction is (V/m^2). -# -# -# -# -# The name of the calibration type, sometimes it is called -# e.g active calibration, passive calibration. -# -# -# -# -# The calibration coefficient is the ratio of the actual distance moved by the piezo to -# the voltage applied to the piezo. It is also called first-order correction. -# -# -# -# -# Set up the settings to enable or disable the drift compensation. -# -# -# -# -# Whether the drift has been corrected in case there is a deviation in the -# drift. -# -# -# -# -# The N (substring) denotes X and Y directions, and for both directions -# tilt needs to be adjusted according to the actual surface. -# -# -# -# -# The N (substring) denotes X or Y or Z. In some systems, -# there is an HV gain readout feature. For these systems, -# the HV gain should be automatically adjusted whenever -# the gain is changed at the high voltage amplifier. -# -# -# -# -# -# -# The positioner information like the position of the tip, -# PID loop feedback etc. -# -# -# -# The PID controller information for the z-axis. -# -# -# -# To indicate the relative tip position z between tip and sample. The tip position -# can also be varied when the z_controller is not running. -# -# -# -# -# The set point for the z-controller to be fixed and the target value could be -# height or current. -# -# -# -# -# The name of the controller or channels. -# -# -# -# -# The status of the controller to say was PID has been used or not. -# -# -# -# -# If the tip is lifted from the stable point. -# -# -# -# -# The switch-off delay of the controller from its stable point. -# -# -# -# -# -# -# -# -# The group's concepts hold the link to the related concepts that define the -# reproducibility of the STM experiment. -# -# -# -# The tunneling current between tip and sample after application of bias voltage. -# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current -# -# -# -# -# The tunneling current between tip and sample after application of bias voltage. -# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/current -# -# -# -# -# Proportional relationship between the probe output voltage and the actual -# tunneling current when measuring the tunneling current. -# link to the target: /ENTRY[entry]/experiment_instrument/current_sensor/amplifier/current_gain -# -# -# -# -# Link to target: -# /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] -# -# -# -# -# This is the signal on which the modulation voltage or current will be added. -# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type -# -# -# -# -# The frequency of the sine modulation that is used to modulate the signal in lock-in. -# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency -# -# -# -# -# -# The group's concepts hold the link to the related concepts that define the -# resolution of the STM experiment. -# -# -# -# Link to target: /ENTRY[entry]/experiment_instrument/scan_environment/tip_temp -# -# -# -# -# Link to target: -# /ENTRY[entry]/experiment_instrument/scan_environment/cryo_bottom_temp -# -# -# -# -# Link to target: -# /ENTRY[entry]/experiment_instrument/scan_environment/cryo_shield_temperature -# -# -# -# -# Link to target: -# /ENTRY[entry]/experiment_instrument/bias_spectroscopy_environment/BIAS_SPECTROSCOPY[bias_spectroscopy]/BIAS_SWEEP[bias_sweep] -# -# -# -# -# This is the signal on which the modulation voltage or current will be added. -# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_signal_type -# modulation_signal_type -# -# -# -# -# The frequency of the sine modulation that is used to modulate the signal in lock-in. -# link to the target: /ENTRY[entry]/experiment_instrument/lockin_amplifier/modulation_frequency -# -# -# -# -# diff --git a/contributed_definitions/nyaml/NXsts.yaml b/contributed_definitions/nyaml/NXsts.yaml deleted file mode 100644 index 7c6cafadc..000000000 --- a/contributed_definitions/nyaml/NXsts.yaml +++ /dev/null @@ -1,63 +0,0 @@ -category: application -doc: | - An application definition to describe Scanning Tunneling Spectroscopy (STS). - - The NXsts is duplication of NXspm and is considered as a proxy application definition - for Scanning Tunneling Spectroscopy (STS) technique. - -# https://thesis.library.caltech.edu/1943/4/03chapter3.pdf -# TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and NXafm -type: group -NXsts(NXspm): - (NXentry): - definition: - doc: | - Name of the definition that is used for the application. - enumeration: [NXsts] - -# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++ -# 3c249fd275af32b4b2747ed7356a3175a5edca21b88516b1662e38723d33d052 -# -# -# -# -# -# -# An application definition to describe Scanning Tunneling Spectroscopy (STS). -# -# The NXsts is duplication of NXspm and is considered as a proxy application definition -# for Scanning Tunneling Spectroscopy (STS) technique. -# -# -# -# -# Name of the definition that is used for the application. -# -# -# -# -# -# -# From bfa2465ef19c362da975d3db8d109c08a9222ee5 Mon Sep 17 00:00:00 2001 From: Rubel Date: Fri, 6 Dec 2024 11:21:47 +0100 Subject: [PATCH 7/8] Remove default from NXpositioner. --- base_classes/NXpositioner.nxdl.xml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/base_classes/NXpositioner.nxdl.xml b/base_classes/NXpositioner.nxdl.xml index 1667c803a..cc1b05794 100644 --- a/base_classes/NXpositioner.nxdl.xml +++ b/base_classes/NXpositioner.nxdl.xml @@ -25,19 +25,6 @@ A generic positioner such as a motor or piezo-electric transducer. - - - .. 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. - - symbolic or mnemonic name (one word) From 930e3d3e42e7854538170597e3515decfd530b37 Mon Sep 17 00:00:00 2001 From: Rubel Date: Fri, 13 Dec 2024 14:04:51 +0100 Subject: [PATCH 8/8] fix calibration_time in nxdl.xml. --- contributed_definitions/NXbias_spectroscopy.nxdl.xml | 2 +- contributed_definitions/NXcalibration.nxdl.xml | 4 ++-- contributed_definitions/NXsensor_scan.nxdl.xml | 2 +- contributed_definitions/NXspm.nxdl.xml | 6 ------ contributed_definitions/NXstm.nxdl.xml | 6 ------ 5 files changed, 4 insertions(+), 16 deletions(-) diff --git a/contributed_definitions/NXbias_spectroscopy.nxdl.xml b/contributed_definitions/NXbias_spectroscopy.nxdl.xml index c67fcb6d6..af24960e0 100644 --- a/contributed_definitions/NXbias_spectroscopy.nxdl.xml +++ b/contributed_definitions/NXbias_spectroscopy.nxdl.xml @@ -80,7 +80,7 @@ scan_time?--> - + The time or period is taken by the circuit to indicate the bias sweep voltage after measuring the voltage. diff --git a/contributed_definitions/NXcalibration.nxdl.xml b/contributed_definitions/NXcalibration.nxdl.xml index 782a3e457..a0284e350 100644 --- a/contributed_definitions/NXcalibration.nxdl.xml +++ b/contributed_definitions/NXcalibration.nxdl.xml @@ -50,12 +50,12 @@ A description of the procedures employed. - + The start time of the calibration. - + The end time of the calibration. diff --git a/contributed_definitions/NXsensor_scan.nxdl.xml b/contributed_definitions/NXsensor_scan.nxdl.xml index 472d047e8..baf155d7b 100644 --- a/contributed_definitions/NXsensor_scan.nxdl.xml +++ b/contributed_definitions/NXsensor_scan.nxdl.xml @@ -196,7 +196,7 @@ - + ISO8601 datum when calibration was last performed before this measurement. UTC offset should be specified. diff --git a/contributed_definitions/NXspm.nxdl.xml b/contributed_definitions/NXspm.nxdl.xml index 079df9929..c13d67a07 100644 --- a/contributed_definitions/NXspm.nxdl.xml +++ b/contributed_definitions/NXspm.nxdl.xml @@ -430,12 +430,6 @@ Calibration of the bias voltage measurement (V/V). - - - The time or period is taken by the calibration to setup to acquire the data for - the calibration. - - The coefficients of the calibration. diff --git a/contributed_definitions/NXstm.nxdl.xml b/contributed_definitions/NXstm.nxdl.xml index eb8bbb85d..3b91f43ab 100644 --- a/contributed_definitions/NXstm.nxdl.xml +++ b/contributed_definitions/NXstm.nxdl.xml @@ -144,12 +144,6 @@ TODO: Replace rename NXenvironment to experiment_environment in NXstm, NXspm and Calibration of the current measurement. - - - The time or period is taken by the calibration to setup to acquire the data for - the calibration. - - The coefficients of the calibration.