Skip to content

Releases: TomographicImaging/CIL

CIL v25.0.0

14 Aug 15:10
51012fc

Choose a tag to compare

CIL v25.0.0

Binaries available from https://anaconda.org/ccpi/cil and https://tomography.stfc.ac.uk/conda

Summary

Cone3D_Flex Geometry

This release adds Cone3D_Flex, a flexible 3D cone-beam geometry that supports non-circular trajectories. Cone3D_Flex is fully supported in the ASTRA toolbox CIL backend via ProjectionOperator and FBP. Support for the TIGRE backend will be added in a future release.

Build System Improvements

The build and installation process has been significantly simplified. Optional dependencies are now clearly separated, and the project supports installation via pip.

More details on binary packages and dependencies:
https://github.com/TomographicImaging/CIL?tab=readme-ov-file#binary-packages-and-dependencies

Documentation & Testing

Expanded tutorials and examples in the documentation
New unit tests and CI matrix coverage, including windows CI

All Changes

Changelog: https://github.com/TomographicImaging/CIL/blob/v25.0.0/CHANGELOG.md
Code comparison: v24.3.0...v25.0.0

Contributors

Thank you to everyone who contributed to the v25.0.0 release!

Special thanks to our new contributors 🎉
@effepivi – key work on the new Cone3D_Flex geometry and ASTRA integration (#2039)
@emmanuel-ferdman – fixed deprecation warnings for rtol and atol in GD (#2056)
@M-A-Demir – made ProjectionOperator device input case-insensitive (#2065)
@hsw43 – added dual variable initialisation for PDHG (#2169)
@hussam-stfc – added a flag to show_geometry to disable plt.show() (#2195)
@fmwatson – added AbsFunctions class (#1976)
@purepani – contributed to the build system overhaul, including PyPI packaging and environment setup (multiple PRs, e.g. #2097)

Thanks also to:
@epapoutsellis – split FISTA and APGD to provide more momentum options (#2061)
@samtygier-stfc – fixed argument order for subtraction and division between different container types (#2133)

And of course the CIL development team:
@DanicaSTFC, @MargaretDuff, @casperdcl, @gfardell, @hrobarts, @jakobsj, @lauramurgatroyd, @paskino

v24.3.0

28 Jan 15:46
a14ac33

Choose a tag to compare

v24.3.0

https://anaconda.org/ccpi/cil and https://tomography.stfc.ac.uk/conda

Dependencies

This version supports:

Python 3.10 - 3.12
Numpy 1.23 - 1.26

With the optional CIL plugins versions:
TIGRE v2.6
ASTRA-TOOLBOX v2.1.0
CCPI-Regularisation-Toolkit v24.0.1

Contributors

Thank you to all our CIL contributors

Especially

And the rest of the CIL developers:
@DanicaSTFC, @MargaretDuff, @casperdcl , @gfardell, @hrobarts, @jakobsj, @lauramurgatroyd, @paskino, @effepivi

What's Changed

Changelog: https://github.com/TomographicImaging/CIL/blob/v24.3.0/CHANGELOG.md

Code comparison: v24.2.0...v24.3.0

v24.2.0

11 Oct 10:11
f613a55

Choose a tag to compare

v24.2.0

https://anaconda.org/ccpi/cil and https://tomography.stfc.ac.uk/conda

Dependencies

This version supports:

Python 3.10 - 3.12
Numpy 1.23 - 1.26

With the optional CIL plugins versions:
TIGRE v2.6
ASTRA-TOOLBOX v2.1.0
CCPI-Regularisation-Toolkit v24.0.1

Contributors

Thank you to all our CIL contributors

Especially

And the rest of the CIL developers:
@DanicaSTFC, @MargaretDuff, @casperdcl , @gfardell, @hrobarts, @jakobsj, @lauramurgatroyd, @paskino, @effepivi

What's Changed

Changelog: https://github.com/TomographicImaging/CIL/blob/v24.2.0/CHANGELOG.md

Code comparison: v24.1.0...v24.2.0

Version 24.1.0

16 Jul 14:59
3a164f1

Choose a tag to compare

v24.1.0

Install the tested binaries from https://anaconda.org/ccpi/cil/files?version=24.1.0

Dependencies

This version supports:

Python 3.10 - 3.12
Numpy 1.23 - 1.26

With the optional CIL plugins versions:
TIGRE v2.6
ASTRA-TOOLBOX v2.1.0
CCPI-Regularisation-Toolkit v24.0.1

Contributors

Thank you to all our CIL contributors

Especially

And the rest of the CIL developers:
@DanicaSTFC, @MargaretDuff, @casperdcl , @gfardell, @hrobarts, @jakobsj, @lauramurgatroyd, @paskino

What's Changed

Changelog: https://github.com/TomographicImaging/CIL/blob/v24.1.0/CHANGELOG.md

Code comparison: v24.0.0...v24.1.0

Version 24.0.0

25 Apr 09:17
ae94a9c

Choose a tag to compare

v24.0.0

Install the tested binaries from https://anaconda.org/ccpi/cil/files?version=24.0.0

Dependencies

This version supports:

  • Python 3.10 - 3.12
  • Numpy 1.23 - 1.26

With the optional CIL plugins updated to:

Contributors

Thank you to all our CIL contributors

Especially:

What's Changed

Changelog: https://github.com/TomographicImaging/CIL/blob/v24.0.0/CHANGELOG.md

Code comparison: v23.1.0...v24.0.0

Version 23.1.0

02 Oct 08:17
fb95d17

Choose a tag to compare

Install using files from https://anaconda.org/ccpi/cil/files?version=23.1.0

v23.1.0

The full changelog can be found here.

This version extends the TotalVariation class to store its state via a warm_start flag and changes the default behaviour to use this.
This means that calls to TotalVariation::proximal() are initiated by the final value from the previous iteration which allows the max_iteration value to be reduced significantly. When used within an algorithm such as PDHG the total memory use will increase by the number of dimensions times the image size, however the TotalVariation step will need only 5-10 iterations, significantly decreasing overall compute time until convergence. The previous behaviour can be recreated by setting warm_start=False.

Version 23.0.1

31 Mar 15:23
bc5608d

Choose a tag to compare

Install using files from https://anaconda.org/ccpi/cil/files?version=23.0.1

v23.0.1
Fix bug with NikonReader requiring ROI to be set in constructor.

Version 23.0.0

17 Mar 13:56
e37dd95

Choose a tag to compare

Install using files from https://anaconda.org/ccpi/cil/files?version=23.0.0

v23.0.0
This is mostly a release cleaning up deprecated code and improving documentation of readers.

  • Partitioner is now able to create batches even if angle is not the outer dimension
  • Renamed max_iteration_stop_cryterion method in the Algorithm class to max_iteration_stop_criterion
  • Removed (previously deprecated) very_verbose parameter in Algorithm's run method.
  • Removed (previously deprecated) axpby method in DataContainer.
  • Deprecate use of integer compression in NEXUSDataWriter.
  • Improved and tidied up documentation for all readers and writers, including hiding special members.
  • Use arguments instead of kwargs in all readers and writers with multiple kwargs, making documentation easier.
  • Update Apache2 License Headers.

Version 22.2.0

22 Feb 13:25
096401c

Choose a tag to compare

Install using files from https://anaconda.org/ccpi/cil/files?version=22.2.0

v22.2.0 main changes
see CHANGELOG.md for full release notes

Recon class FBP/FDK

  • Added pre-set filters: ram-lak, hamming, hann, cosine, shepp-logan.

IO

  • Added RAWFileWriter to export data containers to raw files
  • Add compression to 8bit and 16bit to TIFFWriter

Visualisation

  • iSlicer enhanced with ROI selection, and play widget
  • Added show1D display utility for line profiles

AcquisitionGeometry class methods

  • Added partition to AcquisitionData to partition the data with 3 methods: sequential, staggered and random_permutation
  • Added convenience centre of rotation methods to AcquisitionGeometry class.
    • get_centre_of_rotation() calculates the centre of rotation of the system
    • set_centre_of_rotation() sets the system centre of rotation with an offset and angle
    • set_centre_of_rotation_by_slice() sets the system centre of rotation with offsets from two slices
  • Added ImageData.apply_circular_mask method to mask out detector edge artefacts on reconstructed volumes

Processors

  • Binner processor speed increase available via a C++ backend
  • Binner, Slicer, Padder correctly return offset panels with asymmetric inputs

Operators

  • TIGRE and ASTRA ProjectionOperator now support BlockGeometry as acquisition_geometry parameter, returning a BlockOperator

Functions

  • Extended IndicatorBox to behave as IndicatorBoxPixelwise by passing masks in lower and upper bounds

Version 22.1.0

23 Jan 08:18

Choose a tag to compare

Main changes:

  • use assert_allclose in test_DataContainer
  • added multiple colormaps to show2D
  • Fix segfault in GradientOperator due to parameter overflows on windows systems
  • Fix angle display precision and matplotlib warning for sinograms with show2D