Tomography tasks#

How to use

These tasks come from ewokstomo tomwer. It can be installed with

pip install ewokstomo tomwer

ℹ️ These tasks are used at the following ESRF beamlines: BM05, ID11, ID15A, ID16B, BM18, ID19

H5ToNx#

Identifier:

ewokstomo.tasks.nxtomomill.H5ToNx

Task type:

class

Required inputs:

bliss_hdf5_path, output_dir

Optional inputs:

Outputs:

result

SumTask#

Add two numbers

Identifier:

ewokstomo.tasks.sumtask.SumTask

Task type:

class

Required inputs:

a

Optional inputs:

b, delay

Outputs:

result

SumTask1#

Add two numbers

Identifier:

ewokstomo.tasks.sumtask.SumTask1

Task type:

class

Required inputs:

a

Optional inputs:

b, delay

Outputs:

result

SumTask2#

Add two numbers

Identifier:

ewokstomo.tasks.sumtask.SumTask2

Task type:

class

Required inputs:

a

Optional inputs:

b, delay

Outputs:

result

FutureSupervisorTask#

Task used to wait for a ‘FutureTomwerObject’ and convert it to original instance of:

  • TomwerScanBase (data): if the FutureTomwerObject is based on a scan instance

  • TomwerVolumeBase (volume): if the FutureTomwerObject is based on a volume instance

  • tuple of IcatReconstructedVolumeDataset (data_portal_processed_datasets): if the FutureTomwerObject is based on a volume instance

Identifier:

tomwer.core.process.cluster.supervisor.FutureSupervisorTask

Task type:

class

Required inputs:

future_tomo_obj

Optional inputs:

Outputs:

data, data_portal_processed_datasets, volume

FileNameFilterTask#

Task to filter a scan according to his name and a ‘unix file name pattern’ or a ‘regular expression’

Identifier:

tomwer.core.process.conditions.filters.FileNameFilterTask

Task type:

class

Required inputs:

data, pattern

Optional inputs:

serialize_output_data

Outputs:

data

FileNameFilter#

Identifier:

tomwer.core.process.conditions.filters.FileNameFilter

Task type:

class

Required inputs:

data, pattern

Optional inputs:

serialize_output_data

Outputs:

data

DataWatcherEwoksTask#

For now the data watcher is a ‘special case’. Because it will trigger downstream workflows / prcessing each time it discover a new scan. To move to ‘default’ ewoks workflows. Like launching it from the command line the simpler for now is to simply pass the data input that user can fill manually.

Identifier:

tomwer.core.process.control.datawatcher.datawatcher.DataWatcherEwoksTask

Task type:

class

Required inputs:

data

Optional inputs:

Outputs:

data

TomoEmailTask#

Dedicated task for tomography and gui approach

Identifier:

tomwer.core.process.control.emailnotifier.TomoEmailTask

Task type:

class

Required inputs:

configuration, tomo_obj

Optional inputs:

Outputs:

tomo_obj

ConcatenateNXtomoTask#

Task used to concatenate a list of NXtomo (NXtomoScan) into a single NXtomo

Identifier:

tomwer.core.process.control.nxtomoconcatenate.ConcatenateNXtomoTask

Task type:

class

Required inputs:

output_entry, output_file, overwrite, series

Optional inputs:

progress, serialize_output_data

Outputs:

data

H5ToNxProcess#

Task to convert from a bliss dataset to a nexus compliant dataset

Identifier:

tomwer.core.process.control.nxtomomill.H5ToNxProcess

Task type:

class

Required inputs:

h5_to_nx_configuration

Optional inputs:

bliss_scan, progress, serialize_output_data

Outputs:

data, series

EDFToNxProcess#

Task calling edf2nx in order to insure conversion from .edf to .nx (create one NXtomo to be used elsewhere)

Identifier:

tomwer.core.process.control.nxtomomill.EDFToNxProcess

Task type:

class

Required inputs:

edf_to_nx_configuration

Optional inputs:

edf_scan, progress, serialize_output_data

Outputs:

data

ScanTransferTask#

Manage the copy of scan.

.. warning : the destination directory is find out from the file system if /lbsramxxx exists for example… In the case we couldn’t found the output directory then we will ask for the user to set it.

Identifier:

tomwer.core.process.control.scantransfer.ScanTransferTask

Task type:

class

Required inputs:

data

Optional inputs:

block, copying, dest_dir, move, noRsync, overwrite, serialize_output_data, turn_off_print

Outputs:

data

ScanTransfer#

Identifier:

tomwer.core.process.control.scantransfer.ScanTransfer

Task type:

class

Required inputs:

data

Optional inputs:

block, copying, dest_dir, move, noRsync, overwrite, serialize_output_data, turn_off_print

Outputs:

data

SingleTomoObjProcess#

For now data can only be a single element and not a list. This must be looked at. Also when part of an ewoks graph ‘data’ is mandatory which is not the class when part of a orange workflow. Those can be added interactively

Identifier:

tomwer.core.process.control.singletomoobj.SingleTomoObjProcess

Task type:

class

Required inputs:

Optional inputs:

tomo_obj

Outputs:

tomo_obj

TimerTask#

Simple timer / time out - function

Identifier:

tomwer.core.process.control.timer.TimerTask

Task type:

class

Required inputs:

data, wait

Optional inputs:

serialize_output_data

Outputs:

data

Timer#

Identifier:

tomwer.core.process.control.timer.Timer

Task type:

class

Required inputs:

data, wait

Optional inputs:

serialize_output_data

Outputs:

data

PublishICatDatasetTask#

publish a list of ‘IcatDataBase’ instances.

IcatDataBase provide API to retrieve data and metadata to be publish

input field:

  • data_portal_processed_datasets: list of ‘DracDatasetBase’ instances.

  • beamline: name of the beamline (bm05, id19…)

  • proposal: proposal name

Identifier:

tomwer.core.process.drac.publish.PublishICatDatasetTask

Task type:

class

Required inputs:

beamline, data_portal_processed_datasets, dataset, proposal

Optional inputs:

__process__, dry_run

Outputs:

DarkFlatPatchTask#

Patch an existing NXtomo calling nxtomomill

Identifier:

tomwer.core.process.edit.darkflatpatch.DarkFlatPatchTask

Task type:

class

Required inputs:

configuration, data

Optional inputs:

serialize_output_data

Outputs:

data

DarkFlatPatch#

Identifier:

tomwer.core.process.edit.darkflatpatch.DarkFlatPatch

Task type:

class

Required inputs:

configuration, data

Optional inputs:

serialize_output_data

Outputs:

data

ImageKeyEditorTask#

task to edit image_key field of a NXtomo (‘data’ input)

Identifier:

tomwer.core.process.edit.imagekeyeditor.ImageKeyEditorTask

Task type:

class

Required inputs:

configuration, data

Optional inputs:

serialize_output_data

Outputs:

data

ImageKeyUpgraderTask#

close to ImageKeyEditor but convert a full “family” of frame type to another like all projections to dark field

Identifier:

tomwer.core.process.edit.imagekeyeditor.ImageKeyUpgraderTask

Task type:

class

Required inputs:

data, operations

Optional inputs:

serialize_output_data

Outputs:

data

ImageKeyUpgrader#

Identifier:

tomwer.core.process.edit.imagekeyeditor.ImageKeyUpgrader

Task type:

class

Required inputs:

data, operations

Optional inputs:

serialize_output_data

Outputs:

data

NXtomoEditorTask#

task to edit a couple of field of a NXtomo

Identifier:

tomwer.core.process.edit.nxtomoeditor.NXtomoEditorTask

Task type:

class

Required inputs:

configuration, data

Optional inputs:

Outputs:

data

AxisTask#

Process used to compute the center of rotation of a scan

Identifier:

tomwer.core.process.reconstruction.axis.axis.AxisTask

Task type:

class

Required inputs:

data

Optional inputs:

serialize_output_data

Outputs:

data

NabuSlicesTask#

Definition of the nabu reconstruction volume reconstruction process

Identifier:

tomwer.core.process.reconstruction.nabu.nabuslices.NabuSlicesTask

Task type:

class

Required inputs:

data, nabu_params

Optional inputs:

dry_run, serialize_output_data

Outputs:

data, future_tomo_obj, nabu_params

NabuSlices#

Identifier:

tomwer.core.process.reconstruction.nabu.nabuslices.NabuSlices

Task type:

class

Required inputs:

data, nabu_params

Optional inputs:

dry_run, serialize_output_data

Outputs:

data, future_tomo_obj, nabu_params

SinoNormalizationTask#

Task to define the normalization to apply to a sinogram before reconstructing it with nabu

Identifier:

tomwer.core.process.reconstruction.normalization.normalization.SinoNormalizationTask

Task type:

class

Required inputs:

data

Optional inputs:

serialize_output_data

Outputs:

data

SAAxisTask#

Main process to launch several reconstruction of a single slice with several Center Of Rotation (cor) values

As the saaxis is integrating the score calculation we will never get a future_tomo_scan as output

Identifier:

tomwer.core.process.reconstruction.saaxis.saaxis.SAAxisTask

Task type:

class

Required inputs:

data, sa_axis_params

Optional inputs:

compute_scores, dry_run, dump_process, dump_roi, pool_size, serialize_output_data

Outputs:

best_cor, data

SAAxisProcess#

Identifier:

tomwer.core.process.reconstruction.saaxis.saaxis.SAAxisProcess

Task type:

class

Required inputs:

data, sa_axis_params

Optional inputs:

compute_scores, dry_run, dump_process, dump_roi, pool_size, serialize_output_data

Outputs:

best_cor, data

SADeltaBetaTask#

Main process to launch several reconstruction of a single slice with several Center Of Rotation (cor) values

Identifier:

tomwer.core.process.reconstruction.sadeltabeta.sadeltabeta.SADeltaBetaTask

Task type:

class

Required inputs:

data, sa_delta_beta_params

Optional inputs:

compute_scores, dry_run, dump_process, dump_roi, pool_size, serialize_output_data

Outputs:

best_db, data

SADeltaBetaProcess#

Identifier:

tomwer.core.process.reconstruction.sadeltabeta.sadeltabeta.SADeltaBetaProcess

Task type:

class

Required inputs:

data, sa_delta_beta_params

Optional inputs:

compute_scores, dry_run, dump_process, dump_roi, pool_size, serialize_output_data

Outputs:

best_db, data

PythonScript#

Identifier:

tomwer.core.process.script.python.PythonScript

Task type:

class

Required inputs:

Optional inputs:

data, serialize_output_data, volume

Outputs:

data, volume

StitcherTask#

Identifier:

tomwer.core.process.stitching.nabustitcher.StitcherTask

Task type:

class

Required inputs:

stitching_config

Optional inputs:

cluster_config, progress, serialize_output_data

Outputs:

data, future_tomo_obj, volume