Releases: TomographicImaging/CIL
CIL v25.0.0
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
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
- @samdporter for improvements to the BlockDataContainer sapyb method (#2008) and BlockOperator direct and adjoint methods (#1926)
- @mehrhardt for corrections to the SPDHG gamma parameter (#1644)
- @epapoutsellis and @KrisThielemans for their contributions to the stochastic framework
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
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
- @RasmiaKulan for their first contribution to CIL as part of a successful graduate project rotation
- @epapoutsellis and @KrisThielemans for their contributions to the stochastic framework included in #1624 and #1625 and to @gschramm, @BillyTang, @Imraj-Singh @zeljkozeljko (and many more) for all their discussions on this ongoing project
- @epapoutsellis for contributing the new algorithm PD3O in #1834
- @manchester-jhellier and @RedProkofiev for their help refactoring CIL framework classes #1692.
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
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
- @tommheik for his first contribution to CIL in #1615 adding
WaveletOperatorandWavletNorm - @epapoutsellis and @KrisThielemans for their contributions to the stochastic framework included in #1768
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
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:
-
@ashgillman @epapoutsellis @evgueni-ovtchinnikov @gschramm @KrisThielemans @zeljkozeljko for their contribution in
ApproximateGradientSumFunction class and example SGFunction for Stochastic Gradient Descent -
@hrobarts made their first contribution in Data container reductions
-
And the @TomographicImaging/cil-developers including: @casperdcl, @DanicaSTFC, @gfardell, @hrobarts, @lauramurgatroyd, @MargaretDuff, @paskino
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
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
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
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
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
partitiontoAcquisitionDatato partition the data with 3 methods:sequential,staggeredandrandom_permutation - Added convenience centre of rotation methods to
AcquisitionGeometryclass.get_centre_of_rotation()calculates the centre of rotation of the systemset_centre_of_rotation()sets the system centre of rotation with an offset and angleset_centre_of_rotation_by_slice()sets the system centre of rotation with offsets from two slices
- Added
ImageData.apply_circular_maskmethod 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
ProjectionOperatornow supportBlockGeometryasacquisition_geometryparameter, returning aBlockOperator
Functions
- Extended
IndicatorBoxto behave asIndicatorBoxPixelwiseby passing masks in lower and upper bounds
Version 22.1.0
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