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.", )