nabu.stitching.config module

nabu.stitching.config.str_to_shifts(my_str: str | None) str | tuple[source]
class nabu.stitching.config.NormalizationBySample[source]

Bases: object

is_active()[source]
set_is_active(active: bool)[source]
property method: Method
property margin: int
property side: SampleSide
property width: int
static from_dict(my_dict: dict)[source]
to_dict() dict[source]
class nabu.stitching.config.SlurmConfig(partition: str = '', mem: str = '128', n_jobs: int = 1, other_options: str = '', preprocessing_command: str = '', modules_to_load: tuple = (), clean_script: bool = '', n_tasks: int = 1, n_cpu_per_task: int = 4)[source]

Bases: object

configuration for slurm jobs

partition: str = ''
mem: str = '128'
n_jobs: int = 1
other_options: str = ''
preprocessing_command: str = ''
modules_to_load: tuple = ()
clean_script: bool = ''
n_tasks: int = 1
n_cpu_per_task: int = 4
to_dict() dict[source]

dump configuration to dict

static from_dict(config: dict)[source]
class nabu.stitching.config.StitchingConfiguration(axis_0_pos_px: tuple | str | None, axis_1_pos_px: tuple | str | None, axis_2_pos_px: tuple | str | None, axis_0_pos_mm: tuple | str | None = None, axis_1_pos_mm: tuple | str | None = None, axis_2_pos_mm: tuple | str | None = None, axis_0_params: dict = None, axis_1_params: dict = None, axis_2_params: dict = None, slurm_config: SlurmConfig = None, flip_lr: tuple | bool = False, flip_ud: tuple | bool = False, overwrite_results: bool = False, stitching_strategy: OverlapStitchingStrategy = OverlapStitchingStrategy.COSINUS_WEIGHTS, stitching_kernels_extra_params: dict = None, slice_for_cross_correlation: str | int = 'middle', rescale_frames: bool = False, rescale_params: dict = None, normalization_by_sample: NormalizationBySample = None, duplicate_data: bool = True)[source]

Bases: object

bass class to define stitching configuration

axis_0_pos_px: tuple | str | None

px

Type:

position along axis 0 in absolute. unit

axis_1_pos_px: tuple | str | None

px

Type:

position along axis 1 in absolute. unit

axis_2_pos_px: tuple | str | None

px

Type:

position along axis 2 in absolute. unit

axis_0_pos_mm: tuple | str | None = None

mm

Type:

position along axis 0 in absolute. unit

axis_1_pos_mm: tuple | str | None = None

mm

Type:

position along axis 0 in absolute. unit

axis_2_pos_mm: tuple | str | None = None

mm

Type:

position along axis 0 in absolute. unit

axis_0_params: dict = None
axis_1_params: dict = None
axis_2_params: dict = None
slurm_config: SlurmConfig = None
flip_lr: tuple | bool = False

flip frame left-right. For scan this will be append to the NXtransformations of the detector

flip_ud: tuple | bool = False

flip frame up-down. For scan this will be append to the NXtransformations of the detector

overwrite_results: bool = False
stitching_strategy: OverlapStitchingStrategy = 'cosinus weights'
stitching_kernels_extra_params: dict = None
slice_for_cross_correlation: str | int = 'middle'
rescale_frames: bool = False
rescale_params: dict = None
normalization_by_sample: NormalizationBySample = None
duplicate_data: bool = True

when possible (for HDF5) avoid duplicating data as-much-much-as-possible. Overlaping region between two frames will be duplicated. Remaining will be ‘raw_data’ for volume. For projection flat field will be applied

property stitching_type
static get_description_dict() dict[source]
to_dict()[source]

dump configuration to a dict. Must be serializable because might be dump to HDF5 file

class nabu.stitching.config.SingleAxisConfigMetaClass(name, bases, attrs, axis=None)[source]

Bases: type

Metaclass for single axis stitcher in order to aggregate dumper class and axis

warning: this class is used by tomwer as well

class nabu.stitching.config.SingleAxisStitchingConfiguration(axis_0_pos_px: tuple | str | None, axis_1_pos_px: tuple | str | None, axis_2_pos_px: tuple | str | None, axis_0_pos_mm: tuple | str | None = None, axis_1_pos_mm: tuple | str | None = None, axis_2_pos_mm: tuple | str | None = None, axis_0_params: dict = None, axis_1_params: dict = None, axis_2_params: dict = None, slurm_config: SlurmConfig = None, flip_lr: tuple | bool = False, flip_ud: tuple | bool = False, overwrite_results: bool = False, stitching_strategy: OverlapStitchingStrategy = OverlapStitchingStrategy.COSINUS_WEIGHTS, stitching_kernels_extra_params: dict = None, slice_for_cross_correlation: str | int = 'middle', rescale_frames: bool = False, rescale_params: dict = None, normalization_by_sample: NormalizationBySample = None, duplicate_data: bool = True, slices: slice | tuple | None = None, alignment_axis_2: AlignmentAxis2 = AlignmentAxis2.CENTER, pad_mode: str = 'constant')[source]

Bases: StitchingConfiguration

base class to define z-stitching parameters

slices: slice | tuple | None = None
alignment_axis_2: AlignmentAxis2 = 'center'
pad_mode: str = 'constant'
property axis: int
settle_inputs() None[source]
settle_slices() tuple[source]
get_output_object()[source]
to_dict()[source]

dump configuration to a dict. Must be serializable because might be dump to HDF5 file

class nabu.stitching.config.PreProcessedSingleAxisStitchingConfiguration(axis_0_pos_px: tuple | str | None, axis_1_pos_px: tuple | str | None, axis_2_pos_px: tuple | str | None, axis_0_pos_mm: tuple | str | None = None, axis_1_pos_mm: tuple | str | None = None, axis_2_pos_mm: tuple | str | None = None, axis_0_params: dict = None, axis_1_params: dict = None, axis_2_params: dict = None, slurm_config: SlurmConfig = None, flip_lr: tuple | bool = False, flip_ud: tuple | bool = False, overwrite_results: bool = False, stitching_strategy: OverlapStitchingStrategy = OverlapStitchingStrategy.COSINUS_WEIGHTS, stitching_kernels_extra_params: dict = None, slice_for_cross_correlation: str | int = 'middle', rescale_frames: bool = False, rescale_params: dict = None, normalization_by_sample: NormalizationBySample = None, duplicate_data: bool = True, slices: slice | tuple | None = None, alignment_axis_2: AlignmentAxis2 = AlignmentAxis2.CENTER, pad_mode: str = 'constant', input_scans: tuple = (), output_file_path: str = '', output_data_path: str = '', output_nexus_version: float | None = None, pixel_size: float | None = None)[source]

Bases: SingleAxisStitchingConfiguration

base class to define z-stitching parameters

input_scans: tuple = ()
output_file_path: str = ''
output_data_path: str = ''
output_nexus_version: float | None = None
pixel_size: float | None = None
property stitching_type: StitchingType
get_output_object()[source]
settle_inputs() None[source]
settle_input_scans()[source]
slice_idx_from_str_to_int(index)[source]
settle_slices() tuple[source]

interpret the slices to be stitched if needed

Nore: if slices is an instance of slice will redefine start and stop to avoid having negative indexes

Returns:

(slices:[slice,Iterable], n_proj:int)

Return type:

tuple

to_dict()[source]

dump configuration to a dict. Must be serializable because might be dump to HDF5 file

static get_description_dict() dict[source]
classmethod from_dict(config: dict)[source]
class nabu.stitching.config.PostProcessedSingleAxisStitchingConfiguration(axis_0_pos_px: tuple | str | None, axis_1_pos_px: tuple | str | None, axis_2_pos_px: tuple | str | None, axis_0_pos_mm: tuple | str | None = None, axis_1_pos_mm: tuple | str | None = None, axis_2_pos_mm: tuple | str | None = None, axis_0_params: dict = None, axis_1_params: dict = None, axis_2_params: dict = None, slurm_config: SlurmConfig = None, flip_lr: tuple | bool = False, flip_ud: tuple | bool = False, overwrite_results: bool = False, stitching_strategy: OverlapStitchingStrategy = OverlapStitchingStrategy.COSINUS_WEIGHTS, stitching_kernels_extra_params: dict = None, slice_for_cross_correlation: str | int = 'middle', rescale_frames: bool = False, rescale_params: dict = None, normalization_by_sample: NormalizationBySample = None, duplicate_data: bool = True, slices: slice | tuple | None = None, alignment_axis_2: AlignmentAxis2 = AlignmentAxis2.CENTER, pad_mode: str = 'constant', input_volumes: tuple = (), output_volume: VolumeIdentifier | None = None, voxel_size: float | None = None, alignment_axis_1: AlignmentAxis1 = AlignmentAxis1.CENTER)[source]

Bases: SingleAxisStitchingConfiguration

base class to define z-stitching parameters

input_volumes: tuple = ()
output_volume: VolumeIdentifier | None = None
voxel_size: float | None = None
alignment_axis_1: AlignmentAxis1 = 'center'
property stitching_type: StitchingType
get_output_object()[source]
settle_inputs() None[source]
settle_input_volumes()[source]
slice_idx_from_str_to_int(index)[source]
settle_slices() tuple[source]

interpret the slices to be stitched if needed

Nore: if slices is an instance of slice will redefine start and stop to avoid having negative indexes

Returns:

(slices:[slice,Iterable], n_proj:int)

Return type:

tuple

classmethod from_dict(config: dict)[source]
to_dict()[source]

dump configuration to a dict. Must be serializable because might be dump to HDF5 file

static get_description_dict() dict[source]
nabu.stitching.config.identifiers_as_str_to_instances(list_identifiers_as_str: str) tuple[source]
nabu.stitching.config.dict_to_config_obj(config: dict)[source]
nabu.stitching.config.get_default_stitching_config(stitching_type: StitchingType | str | None) tuple[source]

Return a default configuration for doing stitching.

Parameters:

stitching_type – if None then return a configuration were use can provide inputs for any of the stitching. Else return config dict dedicated to a particular stitching

Returns:

(config, section comments)

class nabu.stitching.config.PreProcessedYStitchingConfiguration(axis_0_pos_px: tuple | str | None, axis_1_pos_px: tuple | str | None, axis_2_pos_px: tuple | str | None, axis_0_pos_mm: tuple | str | None = None, axis_1_pos_mm: tuple | str | None = None, axis_2_pos_mm: tuple | str | None = None, axis_0_params: dict = None, axis_1_params: dict = None, axis_2_params: dict = None, slurm_config: SlurmConfig = None, flip_lr: tuple | bool = False, flip_ud: tuple | bool = False, overwrite_results: bool = False, stitching_strategy: OverlapStitchingStrategy = OverlapStitchingStrategy.COSINUS_WEIGHTS, stitching_kernels_extra_params: dict = None, slice_for_cross_correlation: str | int = 'middle', rescale_frames: bool = False, rescale_params: dict = None, normalization_by_sample: NormalizationBySample = None, duplicate_data: bool = True, slices: slice | tuple | None = None, alignment_axis_2: AlignmentAxis2 = AlignmentAxis2.CENTER, pad_mode: str = 'constant', input_scans: tuple = (), output_file_path: str = '', output_data_path: str = '', output_nexus_version: float | None = None, pixel_size: float | None = None)[source]

Bases: PreProcessedSingleAxisStitchingConfiguration

axis_0_pos_px: tuple | str | None

px

Type:

position along axis 0 in absolute. unit

axis_1_pos_px: tuple | str | None

px

Type:

position along axis 1 in absolute. unit

axis_2_pos_px: tuple | str | None

px

Type:

position along axis 2 in absolute. unit

class nabu.stitching.config.PreProcessedZStitchingConfiguration(axis_0_pos_px: tuple | str | None, axis_1_pos_px: tuple | str | None, axis_2_pos_px: tuple | str | None, axis_0_pos_mm: tuple | str | None = None, axis_1_pos_mm: tuple | str | None = None, axis_2_pos_mm: tuple | str | None = None, axis_0_params: dict = None, axis_1_params: dict = None, axis_2_params: dict = None, slurm_config: SlurmConfig = None, flip_lr: tuple | bool = False, flip_ud: tuple | bool = False, overwrite_results: bool = False, stitching_strategy: OverlapStitchingStrategy = OverlapStitchingStrategy.COSINUS_WEIGHTS, stitching_kernels_extra_params: dict = None, slice_for_cross_correlation: str | int = 'middle', rescale_frames: bool = False, rescale_params: dict = None, normalization_by_sample: NormalizationBySample = None, duplicate_data: bool = True, slices: slice | tuple | None = None, alignment_axis_2: AlignmentAxis2 = AlignmentAxis2.CENTER, pad_mode: str = 'constant', input_scans: tuple = (), output_file_path: str = '', output_data_path: str = '', output_nexus_version: float | None = None, pixel_size: float | None = None)[source]

Bases: PreProcessedSingleAxisStitchingConfiguration

axis_0_pos_px: tuple | str | None

px

Type:

position along axis 0 in absolute. unit

axis_1_pos_px: tuple | str | None

px

Type:

position along axis 1 in absolute. unit

axis_2_pos_px: tuple | str | None

px

Type:

position along axis 2 in absolute. unit

class nabu.stitching.config.PostProcessedZStitchingConfiguration(axis_0_pos_px: tuple | str | None, axis_1_pos_px: tuple | str | None, axis_2_pos_px: tuple | str | None, axis_0_pos_mm: tuple | str | None = None, axis_1_pos_mm: tuple | str | None = None, axis_2_pos_mm: tuple | str | None = None, axis_0_params: dict = None, axis_1_params: dict = None, axis_2_params: dict = None, slurm_config: SlurmConfig = None, flip_lr: tuple | bool = False, flip_ud: tuple | bool = False, overwrite_results: bool = False, stitching_strategy: OverlapStitchingStrategy = OverlapStitchingStrategy.COSINUS_WEIGHTS, stitching_kernels_extra_params: dict = None, slice_for_cross_correlation: str | int = 'middle', rescale_frames: bool = False, rescale_params: dict = None, normalization_by_sample: NormalizationBySample = None, duplicate_data: bool = True, slices: slice | tuple | None = None, alignment_axis_2: AlignmentAxis2 = AlignmentAxis2.CENTER, pad_mode: str = 'constant', input_volumes: tuple = (), output_volume: VolumeIdentifier | None = None, voxel_size: float | None = None, alignment_axis_1: AlignmentAxis1 = AlignmentAxis1.CENTER)[source]

Bases: PostProcessedSingleAxisStitchingConfiguration

axis_0_pos_px: tuple | str | None

px

Type:

position along axis 0 in absolute. unit

axis_1_pos_px: tuple | str | None

px

Type:

position along axis 1 in absolute. unit

axis_2_pos_px: tuple | str | None

px

Type:

position along axis 2 in absolute. unit