Source code for ewoksxrdct.tasks.utils.read_models
import numpy as np
from ewokscore.model import BaseInputModel
from ewokscore.model import BaseOutputModel
from pydantic import Field
[docs]
class ReadInputModel(BaseInputModel, validate_assignment=True):
bliss_master_path: str = Field(
...,
description="Full path to the bliss master file.",
)
scan_number: int = Field(
default=1,
description="Scan number.",
)
rotation_motor_name: str = Field(
...,
description=(
"Name of the rotation motor in the measurement group. The default, "
"if any, depends on the scan type."
),
)
translation_motor_name: str = Field(
...,
description=(
"Name of the translation motor in the measurement group. The "
"default, if any, depends on the scan type."
),
)
integration_output_path: str = Field(
...,
description="Full path to the azimuthally integrated data file for a scan.",
)
integration_intensity_path: str = Field(
default="/azim_01/intensities",
description="HDF5 path to the azimuthally integrated intensity values.",
)
integration_radial_axis_path: str = Field(
default="/2th_deg",
description="HDF5 path to the radial axis edge values.",
)
[docs]
class ReadOutputModel(BaseOutputModel):
translation_values: np.ndarray = Field(
...,
description="Numpy array of translation values, as recorded (unreshaped).",
)
translation_grid_params: tuple = Field(
...,
description=(
"Regular grid definition for translation as (start, end, count): "
"start/end are the first/last translation positions and count is "
"the number of grid points."
),
)
rotation_angles: np.ndarray = Field(
...,
description="Numpy array of rotation angles, as recorded (unreshaped).",
)
rotation_grid_params: tuple = Field(
...,
description=(
"Regular grid definition for rotation as (start, end, count): "
"start/end are the first/last rotation positions and count is "
"the number of grid points."
),
)
integration_intensity_values: np.ndarray = Field(
...,
description="Numpy array of azimuthal integration intensity values.",
)
integration_radial_axis: str = Field(
default="2theta",
description=(
"Name of the radial axis parameter used for the azimuthal integration."
),
)
integration_radial_axis_values: np.ndarray = Field(
...,
description="Radial values used for the azimuthal integration.",
)