Core concepts#

Task-oriented processing#

Each processing step is implemented as an Ewoks task class in ewoksscxrd.tasks. Tasks consume named inputs and produce named outputs, so they can be composed in JSON workflow graphs.

Main task families in ewoksscxrd:

  • Conversion: Eiger2Crysalis, Lima2Thresholding

  • CrysAlis file generation: CreateIniFiles, CreateSetCcdFiles, CreateParFiles, CreateRunFiles

  • Data products: AverageFrames, TiffFiles, DataPortal

Workflow execution model#

Workflows are JSON directed graphs where each node identifies a task class and links map outputs to downstream inputs. You can execute these workflows with ewoks execute, or from Python via the Ewoks API. Refer to https://ewoks.esrf.fr documentation.

ESRF specific data layout assumptions#

For now Eiger2crysalis assume ESRF-style HDF5 image dataset path: /entry_0000/measurement/data, while TiffFiles assumes processed output conventions based on PROCESSED_DATA/.... You may need to reimplement those to get your workflow going if you have non-ESRF data.