Supported libraries#

HTTomo currently supports several software packages that are used as backends to perform data processing and reconstruction. The list of the external packages will be growing in future to meet users’ needs.

If the package has a modular structure with an easy access to every method, for example as in the TomoPy software or in the scikit library, then the integration process is straightforward.

A YAML template can be generated by using YAML generator, or manually. More complicated in structure packages would need an additional wrapping, see Method Wrappers.

Please see the provided list of Methods YAML Templates.

TomoPy software (CPU)#

TomoPy is an open-source Python package for tomographic data processing and image reconstruction developed at The Advanced Photon Source in Illinois, USA. The project is active since 2013 and it gained a large audience of users and contributors across tomographic imaging community.

  • TomoPy is an open-source package in Python and C for data processing and reconstruction. TomoPy is mostly a CPU processing library and in HTTomo we expose the CPU modules only.

  • It is a CPU-multithreaded package. HTTomo controls parallelisation through MPI on a higher level and also supports local CPU multithreading from TomoPy, for every MPI process.

  • TomoPy is a library of stand-alone methods which can be easily integrated into HTTomo. Notably not all TomoPy methods are integrated in HTTomo because of the I/O nature of some modules. Please see the list of available TomoPy Methods YAML Templates.

HTTomolibgpu library (GPU)#

HTTomolibgpu library is developed at Diamond Light source by Data Analysis Group to work together with the HTTomo software.

  • HTTomolibgpu is a Python library of GPU accelerated methods written using CuPy API and CUDA language.

  • Most of the original methods have been taken from TomoPy or Savu software and then re-optimised and GPU-accelerated.

  • It is a fully modular library and methods can be used stand-alone, however the GPU memory distribution feature of HTTomo will not be available. This means that the methods can silently fail if the GPU memory is overflowed.

HTTomolib library (CPU)#

HTTomolib library is similar to HTTomolibgpu, but contains mostly CPU modules.