ELN section for inputting XRD data
We need an XRD section for data in which we can collect 1D patterns. This section will inherit from ../eln.Measurement
. At the moment this is needed for #1296 and beyond.
The normalizer should take care of converting from 2_theta
to q
and vice-versa.
-
Create a folder structure for Activities in the eln folder with Processes and Measurements subfolders -
Create XRD measurement base class, for 1D patterns -
Create normalizers to convert from 2_the to q and vice-versa -
Write tests for the normalizer
Quantities would initially be:
n_values = Quantity(type=int, derived=derive_n_values)
two_theta = Quantity(
type=np.dtype(np.float64), shape=['n_values'],
unit='radian',
description='The 2-theta range of the diffractogram,
a_plot={
'x': 'two_theta', 'y': 'intensity'
})
q_vector = Quantity(
type=np.dtype(np.float64), shape=['n_values'],
unit='meter**(-1)',
description='The scattering vector *Q* of the difractogram',
a_plot={
'x': 'q_vector', 'y': 'intensity'
})
intensity = Quantity(
type=np.dtype(np.float64), shape=['n_values'],
description='The count at each 2-theta value, dimensionless',
a_plot={
'x': 'two_theta', 'y': 'intensity'
})
omega = Quantity(
type=np.dtype(np.float64), shape=['n_values'],
unit='radian',
description='The omega range of the diffractogram)
xray_tube_current = Quantity(
type=np.dtype(np.float64),
unit='A',
description='Current of the X-ray tube',
a_eln=dict(
component='NumberEditQuantity',
label='Current of the X-ray tube',
props=dict(minValue=1e4, maxValue=4e4)))
xray_tube_voltage = Quantity(
type=np.dtype(np.float64),
unit='V',
description='Voltage of the X-ray tube',
a_eln=dict(
component='NumberEditQuantity',
label='Voltage of the X-ray tube',
props=dict(minValue=1e4, maxValue=4e4)))
kalpha_one = Quantity(
type=np.dtype(np.float64),
unit='angstrom',
description='Wavelength of the Kα1 line')
kalpha_two = Quantity(
type=np.dtype(np.float64),
unit='angstrom',
description='Wavelength of the Kα2 line')
ratio_kalphatwo_kalphaone = Quantity(
type=np.dtype(np.float64),
description='Kα2/Kα1 intensity ratio')
kbeta = Quantity(
type=np.dtype(np.float64),
unit='angstrom',
description='Wavelength of the Kβ line')
scan_axis = Quantity(
type=str,
description='Axis scanned')
integration_time = Quantity(
type=np.dtype(np.float64),
shape=['*'],
description='Integration time per channel')