Source code for blissoda.fluo.parameters.offline

import os
from typing import Dict
from typing import List
from typing import Optional
from typing import Sequence
from typing import Tuple
from typing import Union

from .fluoxas import fluoxas_paths
from .fluoxas import fluoxas_workflow_inputs
from .mosaic_fluoxas import mosaic_fluoxas_paths
from .mosaic_fluoxas import mosaic_fluoxas_workflow_inputs
from .mosaic_xrfmap import mosaic_xrfmap_paths
from .mosaic_xrfmap import mosaic_xrfmap_workflow_inputs
from .utils.execute import execute_graph
from .xrfmap import xrfmap_paths
from .xrfmap import xrfmap_workflow_inputs


[docs] def xrfmap(*args, **kargs): workflow_filename, inputs, convert_destination = xrfmap_parameters(*args, **kargs) execute_graph( workflow_filename, inputs=inputs, convert_destination=convert_destination )
[docs] def mosaic_xrfmap(*args, **kargs): workflow_filename, inputs, convert_destination = mosaic_xrfmap_parameters( *args, **kargs ) execute_graph( workflow_filename, inputs=inputs, convert_destination=convert_destination )
[docs] def fluoxas(*args, **kargs): workflow_filename, inputs, convert_destination = fluoxas_parameters(*args, **kargs) execute_graph( workflow_filename, inputs=inputs, convert_destination=convert_destination )
[docs] def mosaic_fluoxas(*args, **kargs): workflow_filename, inputs, convert_destination = mosaic_fluoxas_parameters( *args, **kargs ) execute_graph( workflow_filename, inputs=inputs, convert_destination=convert_destination )
[docs] def xrfmap_parameters( session: str, sample: str, dataset: str, scan_number: int, config_filenames: Sequence[str], detectors: Optional[Sequence[Union[int, str]]] = None, detector_numbers: Optional[Sequence[int]] = None, instrument_name: Optional[str] = None, fast_fitting: bool = True, quantification: bool = True, diagnostics: bool = True, livetime_ref_value: Union[str, int, float, None] = None, counter_ref_value: Union[str, int, float, None] = None, counter_name: Optional[str] = None, energy_name: Optional[str] = None, energy_multiplier: Optional[float] = None, dirname: Optional[str] = None, real_axes: Optional[List[str]] = None, resolution: Optional[Dict[str, Tuple[Union[int, float], str]]] = None, demo: bool = False, ) -> Tuple[str, List[dict], str]: paths = xrfmap_paths( session, sample, dataset, scan_number, config_filenames, dirname=dirname, demo=demo, ) workflow, inputs = xrfmap_workflow_inputs( paths.filename, paths.output_root_uri, scan_number, paths.config_filenames, instrument_name=instrument_name, detectors=detectors, detector_numbers=detector_numbers, detector_names=None, fast_fitting=fast_fitting, quantification=quantification, diagnostics=diagnostics, livetime_ref_value=livetime_ref_value, counter_ref_value=counter_ref_value, counter_name=counter_name, energy_name=energy_name, energy_multiplier=energy_multiplier, resolution=resolution, real_axes=real_axes, ) workflow_filename = os.path.join(paths.workflow_path, workflow + ".json") return workflow_filename, inputs, paths.convert_destination
[docs] def mosaic_xrfmap_parameters( session: str, sample: str, datasets: Sequence[str], scan_ranges: Sequence[Tuple[int, int]], config_filenames: Sequence[str], detectors: Optional[Sequence[Union[int, str]]] = None, detector_numbers: Optional[Sequence[int]] = None, instrument_name: Optional[str] = None, fast_fitting: bool = True, quantification: bool = True, diagnostics: bool = True, livetime_ref_value: Union[str, int, float, None] = None, counter_ref_value: Union[str, int, float, None] = None, counter_name: Optional[str] = None, energy_name: Optional[str] = None, energy_multiplier: Optional[float] = None, dirname: Optional[str] = None, exclude_scans: Optional[Sequence[Sequence[int]]] = None, real_axes: Optional[List[str]] = None, resolution: Optional[Dict[str, Tuple[Union[int, float], str]]] = None, demo: bool = False, ): paths = mosaic_xrfmap_paths( session, sample, datasets, scan_ranges, config_filenames, dirname=dirname, demo=demo, ) workflow, inputs = mosaic_xrfmap_workflow_inputs( paths.filenames, paths.output_root_uri, paths.concat_bliss_scan_uri, scan_ranges, paths.config_filenames, instrument_name=instrument_name, detectors=detectors, detector_numbers=detector_numbers, detector_names=None, fast_fitting=fast_fitting, quantification=quantification, diagnostics=diagnostics, livetime_ref_value=livetime_ref_value, counter_ref_value=counter_ref_value, counter_name=counter_name, energy_name=energy_name, energy_multiplier=energy_multiplier, exclude_scans=exclude_scans, resolution=resolution, real_axes=real_axes, ) workflow_filename = os.path.join(paths.workflow_path, workflow + ".json") return workflow_filename, inputs, paths.convert_destination
[docs] def fluoxas_parameters( session: str, sample: str, datasets: Sequence[str], scan_ranges: Sequence[Tuple[int, int]], config_filenames: Sequence[str], detectors: Optional[Sequence[Union[int, str]]] = None, detector_numbers: Optional[Sequence[int]] = None, instrument_name: Optional[str] = None, fast_fitting: bool = True, quantification: bool = True, diagnostics: bool = True, livetime_ref_value: Union[str, int, float, None] = None, counter_ref_value: Union[str, int, float, None] = None, counter_name: Optional[str] = None, energy_name: Optional[str] = None, energy_multiplier: Optional[float] = 2, dirname: Optional[str] = None, exclude_scans: Optional[Sequence[Sequence[int]]] = None, stack_axis: Optional[str] = None, real_axes: Optional[List[str]] = None, resolution: Optional[Dict[str, Tuple[Union[int, float], str]]] = None, do_align: bool = True, align_counter: Optional[str] = None, align_crop: Optional[bool] = True, fast_align_counter_selection: Optional[bool] = False, demo: bool = False, ): paths = fluoxas_paths( session, sample, datasets, scan_ranges, config_filenames, dirname=dirname, demo=demo, ) workflow, inputs = fluoxas_workflow_inputs( paths.filenames, paths.output_root_uri, scan_ranges, paths.config_filenames, instrument_name=instrument_name, detectors=detectors, detector_numbers=detector_numbers, detector_names=None, fast_fitting=fast_fitting, quantification=quantification, diagnostics=diagnostics, livetime_ref_value=livetime_ref_value, counter_ref_value=counter_ref_value, counter_name=counter_name, energy_name=energy_name, energy_multiplier=energy_multiplier, exclude_scans=exclude_scans, resolution=resolution, real_axes=real_axes, do_align=do_align, align_counter=align_counter, align_crop=align_crop, fast_align_counter_selection=fast_align_counter_selection, ) workflow_filename = os.path.join(paths.workflow_path, workflow + ".json") return workflow_filename, inputs, paths.convert_destination
[docs] def mosaic_fluoxas_parameters( session: str, sample: str, datasets: Sequence[Sequence[str]], scan_ranges: Sequence[Sequence[Tuple[int, int]]], config_filenames: Sequence[str], detectors: Optional[Sequence[Union[int, str]]] = None, detector_numbers: Optional[Sequence[int]] = None, instrument_name: Optional[str] = None, fast_fitting: bool = True, quantification: bool = True, diagnostics: bool = True, livetime_ref_value: Union[str, int, float, None] = None, counter_ref_value: Union[str, int, float, None] = None, counter_name: Optional[str] = None, energy_name: Optional[str] = None, energy_multiplier: Optional[float] = 2, dirname: Optional[str] = None, exclude_scans: Optional[Sequence[Sequence[Sequence[int]]]] = None, stack_axis: Optional[str] = None, real_axes: Optional[List[str]] = None, resolution: Optional[Dict[str, Tuple[Union[int, float], str]]] = None, do_align: bool = True, align_counter: Optional[str] = None, align_crop: Optional[bool] = True, fast_align_counter_selection: Optional[bool] = False, group_by_index: bool = False, demo: bool = False, ): paths = mosaic_fluoxas_paths( session, sample, datasets, scan_ranges, config_filenames, dirname=dirname, demo=demo, ) workflow, inputs = mosaic_fluoxas_workflow_inputs( paths.filenames, paths.output_root_uri, paths.concat_output_root_uri, scan_ranges, paths.config_filenames, instrument_name=instrument_name, detectors=detectors, detector_numbers=detector_numbers, detector_names=None, fast_fitting=fast_fitting, quantification=quantification, diagnostics=diagnostics, livetime_ref_value=livetime_ref_value, counter_ref_value=counter_ref_value, counter_name=counter_name, energy_name=energy_name, energy_multiplier=energy_multiplier, exclude_scans=exclude_scans, resolution=resolution, real_axes=real_axes, do_align=do_align, align_counter=align_counter, align_crop=align_crop, fast_align_counter_selection=fast_align_counter_selection, group_by_index=group_by_index, ) workflow_filename = os.path.join(paths.workflow_path, workflow + ".json") return workflow_filename, inputs, paths.convert_destination