Software for Neutron Imaging (and others)
(by Jean Bilheux)
Neutron imaging is a very versatile capability that requires different software tools. Moreover, the advances of novel imaging techniques are quickly followed with the development of new software tools, or even the improvement of current ones. Below is a non-exhaustive list of current software development efforts, as well as the main tools used by the neutron imagingcommunity.
Computed tomography: available reconstruction software
MuhRec - PSI - https://github.com/neutronimaging/muhrec
Contact: Anders Kaestner
Main languages: C++ and Python
MuhRec is a software that is optimized to perform computed tomography (CT) reconstruction. The software is well maintained with updates and improvements. A python binding is under development to run the C++ methods called by the user interface. Full documentation can be found in the github wiki page at https://github.com/neutronimaging/imagingsuite/wiki/Usermanual-MuhRec
Display of the MuhRec user interface showing the input tab.
Mantid - ISIS - https://mantidproject.github.io/mantidimaging/
Contact: Sam Tygier
Main languages: C++ and Python
Mantid Imaging is a user-friendly graphical tool for neutron radiography and CT. It is built on top of several open-source libraries tand provides tools for pre-processing and advanced iterative
reconstruction. The next effort focuses on providing an API (Application Programming Interface, or in other words, the way the program is called from the command line) capability to the methods used in the user interface.
Overview of Mantid Imaging displaying result of reconstruction.
iMars3d - ORNL - https://github.com/ornlneutronimaging/iMars3D
Contact: Jean Bilheux
Main languages: Python
iMars3d has been fully rewritten and modernized and is based on calls to Tomopy (https://tomopy.readthedocs.io/en/stable/). Furthermore, in-house algorithms have been developed such as the tilt correction calculation. The first version of the upgraded iMARS3D software aims at providing a command-line version of the library. A notebook has also been implemented to provide a user-friendly interface to the library. A full step-by-step tutorial of this notebook can be found at https://neutronimaging.ornl.gov/ct-reconstruction/.
Preview of the iMars3D tutorial documentation available at https://neutronimaging.ornl.gov/ctreconstruction/.
pyMBIR - ORNL - https://github.com/svvenkatakrishnan/pyMBIR
Contacts: Singanallur, (Venkat) Venkatakhrisnan, Shimin Tang
Main languages: Python
Developed in collaboration with Purdue University, pyMBIR is an iterative reconstruction method based on the ASTRA toolbox (https://www.astra-toolbox.com/). Fundamentally, pyMBIR implements model-based computed tomography reconstruction algorithms based on a Markov random field (MRF) prior and requires computers with GPU. A user interface has been developed to improve the usability of the library
(https://github.com/ornlneutronimaging/pyMBIR_UI)
Screenshots of pyMBIR_UI showing the result of the reconstruction (left), cropping interface (middle) and configuration interface (right).
algotom - BNL - https://github.com/algotom/algotom
Contact: Nghia T. Vo
Main languages: Python
This data processing algorithm for tomography brings a lot of pre-processing tools needed when running a CT reconstruction. The repository is still very active.
Savu - BNL - https://github.com/DiamondLightSource/Savu
Contact: Nicola Wadeson
Main languages: Python
Savu is a Python package to assist with the processing and reconstruction of parallel-beam tomography data. The last commit to Savu was around August of 2022.
X-ACT - commercial - https://www.rx-solutions.com/en/news/x-act-software-release-29
Visualization, reconstruction, and analysis tool.
cost: $
Bragg Edge Radiography: Edge Fitting and Strain Mapping
ToFImaging - PSI / ORNL - https://github.com/neutronimaging/ToFImaging
Contacts: Matteo Busi, Jean Bilheux
Main Languages: Jupyter notebook, Python and PyQt
Set of modules for data reduction and analysis of TOF data sets, such as Bragg edge fitting. A user interface via a notebook is under development.
Screenshots of some of the views offered by the notebook showing the main notebook entry (top left view) then profile view (next on the right), normalization and configuration view (top right) and fitting window (bottom right).
iBeatles - ORNL - https://github.com/ornlneutronimaging/iBeatles
Contact: Jean Bilheux
Main languages: Python and PyQt
iBeatles (Imaging Bragg Edge Analysis Tools for Engineering Structure) is currently under beta testing. the software is a standalone application, that normalizes, fits Bragg edges using an analytical method called Kropff, calculates strain and visualizes a strain map superimposed with the sample geometry.
iBeatles has 6 steps (loading, normalization, view, binning, fitting and strain mapping). Here is a view of the fitting interface.
Grating Interferometry
Angel - FRM-II / PSI / ORNL – Not available as open source
Contacts: Tobias Neuwirth, Simon Sebold, Jean Bilheux
Main languages: Python and PyQt
Angel 2.0 is the new interface to Angel (Antares nGi Evaluation), a UI developed mostly for the Antares (FRM-II) beam line. The new version will support any neutron beam line thanks to the development of new python libraries such as i/o, normalization and visualization.
Preview of Angel 2.0 user interface. Left view displays some basic side by side comparisons of sample and flat field data. Top view, filter window and bottom right view displays the parameters to set up before running the normalization.
nGITool - PSI - https://github.com/neutronimaging/nGITool
Contact: Anders Kaestner
Main language: C++
nGITool reduces the phase stepping scans to the three ngi quantities TI, DP, and DF. This can be done on single scans as well as multiple scans. The indexing of the images can be adjusted to handle two different scanning strategies, (1) phase scans grouped together or (2) for the case of tomography scans it is also possible to reduce sequences where a full tomography scan is acquired before moving to the next phase step. The tool also provides filtering options to remove outliers. The a collection of fitting algorithms are provided, all based on a least square principle. The tool is implemented in C++ and has a GUI to make the parameterization more convenient.
Preview of the nGITool interface.
General Tools
Jupyter Notebooks - ORNL - https://github.com/neutronimaging/python_notebooks
Contact: Jean Bilheux
Main languages: Python, Jupyter notebooks and PyQt
40+ notebooks have been developed for various pre-processing steps, reduction, analysis, visualization, etc. Each notebook is fully documented on the ORNL neutron imaging web site at https://neutronimaging.ornl.gov/tutorials/imaging-notebooks/. Users accessed the notebooks via a simple browser connecting to the ORNL servers and can work on their data during or after their beam time.
Screenshot of some of the numerous notebooks provided as part of the suite of tools.
Spam - ILL - https://ttk.gricad-pages.univ-grenoble-alpes.fr/spam/
Contact: Edward Ando, Emmanuel Roubin, et al.
Main languages: Python and C++
Spam is a software aimed at the analysis and manipulation of 2D and 3D data sets in material science.
Visualization
ones.
AMIRA - commercial - https://www.thermofisher.com/us/en/home/electronmicroscopy/products/software-em-3d-vis/avizo-software.html
cost: $$
pros: python scripting, very powerful, very good tutorials
AMIRA/AVIZO is a software that aims at the visualization and analysis of scientific data in 2 and 3 D. Many tutorials can be found on their YouTube channel (https://www.youtube.com/@ThermoSciEMSpec)
VG Studio (Volume Graphics) - commercial -
https://www.volumegraphics.com/en/products/vgsm.html
cost: $$$
pros: powerful set of toolboxes, excellent fly-though tool.
VG Studio is a software that provides capabilities such as visualization, CT reconstruction, analysis, etc.
Volview - commercial - https://volview.kitware.com/
cost: free
pros: free, easy to jump in
Dragonfly - commercial - https://info.dragonfly-pro.com/home.html
cost: free
pros: free for non-commercial use, python scripting
ImageJ - commercial - https://imagej.nih.gov/ij/
cost: free
pros: popular tool to visualize and perform basic analysis of 2D data. 3d visualization is also available in ImageJ