/flexCALC

CT data pre- and post-processing tools, simulation of spectral data, and batch-processing of large number of datasets

Primary LanguagePythonOtherNOASSERTION

flexCALC

This project is a part of the larger X-ray tomographic reconstruction toolbox comprised of flexDATA, flexTOMO and flexCALC. flexCALC contains various routines useful with tomographic reconstructions but not directly reconstruction algorithms. These routines include data pre- and post-processing tools, simulation of spectral data, and batch-processing of large number of datasets.

Getting Started

We recommend that the user installs conda package manager for Python 3.

Installing with conda

conda install flexcalc -c cicwi -c astra-toolbox -c nvidia

Installing with pip

pip install flexcalc

Installing from source

git clone https://github.com/cicwi/flexcalc.git
cd flexcalc
pip install -e .

Running the examples

To learn about the functionality of the package check out our examples/ folder. Examples are separated into blocks that are best to run in VS Code / Spyder environment step-by-step.

Modules

flexCALC is comprised of several modules:

  • flexcalc.process: Pre- and post-processing routines. For instance: volume registration, rings removal etc.
  • flexcalc.analyze: Utilities for data analysis.
  • flexcalc.batch: Define a batch processing pipeline and push multiple datasets through it.

Typical usage:

# Import:
from flextomo import project
from flexcalc import process

# Read data and apply beam-hardening:
proj, geom = process.process_flex(path)
proj = process.equivalent_density(proj, geom, energy, spec, compound = 'Al', density = 2.7)

# Align the rotation centre:
process.optimize_rotation_center(proj, geom, subscale = 2)

# Reconstruct:
vol = project.init_volume(proj)
project.FDK(proj, vol, meta['geometry'])

Authors and contributors

  • Alexander Kostenko - Initial work
  • Willem Jan Palenstijn - Packaging, installation and maintenance
  • Alexander Skorikov - Packaging, installation and maintenance

How to contribute

Contributions are always welcome. If you have any issues, questions, or remarks, then please open an issue on GitHub.

License

This project is licensed under the GNU GENERAL PUBLIC License - see the LICENSE.md file for details