
Tomography Reconstruction and Processing Pipeline¶
Savu is a Python package to assist with the processing and reconstruction of parallel-beam tomography data. The project originated in the Data Analysis Group at the Diamond Light Source (UK synchrotron) to address the growing, and increasingly complex, needs of the tomography community.
Designed to allow greater flexibility in tomography data processing, Savu is capable of processing N-dimensional full-field tomography and mapping tomography data, along with concurrent processing of multiple datasets such as those collected as part of a multi-modal setup. Savu process lists, tailored to a specific experiment and passed to the framework at runtime along with the data, detail the processing steps that are required.
A Savu process list is created using the Savu configurator tool, which stacks together plugins chosen from a repository. Each plugin performs a specific independent task, such as correction, filtering, reconstruction. For a list of available plugins see plugin API.
Savu is currently in use across the tomography beamlines at Diamond to reconstruct both full-field tomography data and multi-modal, mapping tomography data.
Features¶
Full-field and mapping tomography data processing
multi-modal data processing
Absorption, fluorescence, diffraction and ptychography data processing
Handles N-dimensional data and multiple datasets
Supports multiple data formats
Runs in serial or parallel on your local machine
Runs in parallel across a cluster
Supports very large data processing with parallel HDF5 (not limited by RAM)
Allows flexible data slicing (e.g. alternate between projection and sinogram processing)
Plugin architecture with CPU and GPU plugins
Processing tailored to a specific experimental setup
Easy integration of new functionality
Documentation¶
The full documentation is available at https://savu.readthedocs.org/en/latest/
License¶
Table of Contents¶
Introduction
Reference
- Savu Commands
- Savu Config Commands
- Plugin Documentation
- Framework API
- Statistics Documentation
- Iterative plugins API
- Iterative functionality - developer documentation
- How it works - high level overview
- A class that is separate from plugin classes:
IteratePluginGroup
- Re-using plugin objects for subsequent iterations
- Swapping the input/output datasets of plugins
- High-level flowchart of execution order of things when an iterative loop is in a process list
- How are iterative loops defined in process lists?
- When Savu is run with a process list that has one or more iterative loops, how are the dicts in
PluginList.iterate_plugin_groups
used to initiate the iterative behaviour? - Why has the information about iterative loops been put in the experimental metadata?
- Savu pre-run
Tutorials
Citations