Source code for nabu.stitching.z_stitching

from typing import Union

from tomoscan.identifier import BaseIdentifier
from nabu.stitching.stitcher.z_stitcher import PreProcessingZStitcher as PreProcessZStitcher
from nabu.stitching.stitcher.z_stitcher import (
    PostProcessingZStitcher as PostProcessZStitcher,
    PostProcessingZStitcherNoDD as PostProcessZStitcherNoDD,
)
from nabu.stitching.config import (
    PreProcessedZStitchingConfiguration,
    PostProcessedZStitchingConfiguration,
)


[docs] def z_stitching( configuration: Union[PreProcessedZStitchingConfiguration, PostProcessedZStitchingConfiguration], progress=None ) -> BaseIdentifier: """ Apply stitching from provided configuration. Along axis 0 (aka z) Return a DataUrl with the created NXtomo or Volume like: axis 0 ^ | x-ray | --------> ------> axis 2 / / axis 1 """ stitcher = None assert configuration.axis is not None if isinstance(configuration, PreProcessedZStitchingConfiguration): if configuration.axis == 0: stitcher = PreProcessZStitcher(configuration=configuration, progress=progress) elif isinstance(configuration, PostProcessedZStitchingConfiguration): assert configuration.axis == 0 if configuration.duplicate_data: stitcher = PostProcessZStitcher(configuration=configuration, progress=progress) else: stitcher = PostProcessZStitcherNoDD(configuration=configuration, progress=progress) if stitcher is None: raise TypeError( f"configuration is expected to be in {(PreProcessedZStitchingConfiguration, PostProcessedZStitchingConfiguration)}. {type(configuration)} provided" ) return stitcher.stitch()