Nabu integration in Tomwer
See tomwer/369.
How will Tomwer call Nabu ?
Tomwer will use nabu for tomography processing. Nabu can be called by several ways:
- Through a
.conf
file (like pyhst2) - Via
ProcessConfig
Tomwer should not use the following:
- Direct use of nabu API: it is of course not recommended, as it would delegate all the processing programming to Tomwer.
- The structures output of
build_processing_steps()
, because no checks are done, and because these structures serve as a compatibility layer betweenProcessConfig
and the API.
Tomwer will import Nabu as a library, and call high-level processing definition structures like ProcessConfig
.
How will the widget be displayed in Tomwer GUI ?
From of a discussion with HP, there are several options:
- "Monolith widget": Nabu is exposed by a "big widget", where the processing steps can nevertheless be finely configured.
- "Modular widgets": Nabu is exposed by a series of widgets, each standing for a main processing step.
In a first stage, the "monolith widget" approach will be taken.
Things to anticipate in the workflow
The Nabu processing pipeline is designed for being "linear" and interaction-free. However, a user often makes several reconstructions with different sets of parameters:
initial parameters -> reconstruction -> visualization -> edit parameters -> run a subset of processing steps with new parameters -> ...
It is not clear whether Nabu should anticipate further processings, for example output intermediate results.
Example: estimate the center of rotation
It the user blindly trusts Nabu, then no interaction is needed, and the CoR estimation can be integrated in the regular pipeline (ex. rotation_axis_position = "auto"
in the .conf
file).
Otherwise, a user validation is necessary (by inspection of a reconstructed slice). For the record, estimation can be done mainly by two methods:
- From radios: only several radios have to be read
- From sinograms: A part of the processing has to be done: flat-field, CCD corrections, phase retrieval.
If a user interaction is required, it would be good to output the sinograms and to restart from them when a new estimation has to be done.