Workflow example#

Here is an example of a typical ewokstomo workflow:

Typical workflow showing ReduceDarkFlat feeding ReconstructSlice

The diagram shows a minimal “slice-from-NXtomo” chain:

  • External inputs (blue) are dashed into the tasks: the NXtomo file (nx_path) feeds both tasks, while config_dict and slice_index go directly to ReconstructSlice.

  • ReduceDarkFlat reads the NXtomo file and saves reduced dark and flat references (<scan>_darks.hdf5 / <scan>_flats.hdf5) under references/.

  • ReconstructSlice consumes the NXtomo file plus the reduced darks/flats and reconstructs a single slice (configurable index) into slices/<scan>_* under the scan root (see tasks for the exact naming pattern).

Outputs:

  • Reduced reference files in references/.

  • A reconstructed slice file in slices/, along with the Nabu configuration and processing options returned by the task.

Each node has a set of parameters that you can find in tasks.

An ewoks workflow can be represented as a json file:

{
  "directed": true,
  "multigraph": false,
  "graph": {
    "id": "reconstruct_from_nx",
    "label": "Ewoks workflow 'reconstruct_from_nx'",
    "schema_version": "1.1"
  },
  "nodes": [
    {
      "id": "reduce_task",
      "task_type": "class",
      "task_identifier": "ewokstomo.tasks.reducedarkflat.ReduceDarkFlat"
    },
    {
      "id": "slice_reconstruction_task",
      "task_type": "class",
      "task_identifier": "ewokstomo.tasks.reconstruct_slice.ReconstructSlice"
    }
  ],
  "links": [
    {
      "source": "reduce_task",
      "target": "slice_reconstruction_task",
      "data_mapping": []
    }
  ]
}