Releases: TomographicImaging/CIL
Release list
v26.0.0
CIL v26.0.0
Binaries available from https://anaconda.org/ccpi/cil and https://tomography.stfc.ac.uk/conda
Summary
- This release updates CIL to support numpy 2.0 and above (whilst keeping compatibility for numpy>=1.23)
More details on other dependency updates can be found at: https://tomographicimaging.github.io/CIL/nightly/dependencies/ - The LSQR Algorithm (Paige and Saunders, 1982, ACM TOMS) has been added, which is a more stable alternative to CGLS, and has optional argument to apply Tikhonov regularisation.
- A new 'VolumeShrinker' tool to automatically shrink reconstruction volume around the sample.
- A 'LaminographyGeometryCorrector' tool for parallel beam geometries. This is a projection matching method to optimise laminography reconstruction by searching tilt and centre of rotation offset
- Removes code which had been deprecated since v24.3.0
- Brings CIL and ASTRA closer with an overhaul of the ASTRA wrappers that reduces the RAM use for ProjectionOperators
- Paganin processor updated to correctly apply to cone-beam geometry.
Build
- Developer build instructions have been simplified and can be found at: https://tomographicimaging.github.io/CIL/nightly/developer_guide/#building-cil-from-source-code
- Migrated from conda-build to rattler-build
Documentation
- The user showcase notebooks are now rendered in the documentation: https://tomographicimaging.github.io/CIL/nightly/usershowcase/
All Changes
Change log: https://github.com/TomographicImaging/CIL/blob/v26.0.0/CHANGELOG.md
Code comparison: v25.0.0...v26.0.0
Contributors
Thank you to everyone who contributed to the v26.0.0 release!
With special thanks to our new contributors 🥳
- @adamdoc contributed bug fixes to the Paganin Processor and Masker (#2232, #2225)
- @MaikeMM contributed the LSQR algorithm (#1975)
- @E-Kiely-WMG added a file prefix argument to TIFFStackReader (#2239)
- @JeppeKlitgaard fixed tagless installation, added the ability to do editable installations of CIL, and constrained dxchange to fix issues with ZeissDataReader. Additionally modernised the build of TIGRE and provided ongoing support and debugging of it (#2268, #2269, #2257, #2271, TomographicImaging/TIGRE-conda#16)
- @wjp updated the ASTRA interface to
direct_FP3D/BP3Dremoving copies for GPUProjectionOperatorcalls - resulting in reduced RAM use(#2134) - @Simon99 enhanced error message in CoR corrector (#2296)
- @Neonbluestoplight contributed to updating the build instructions in the CIL developer guide (#2286)
Thanks also to:
- @manchester-jhellier for improving the PDHG documentation (#2220)
- @epapoutsellis for improving the AdjointOperator documentation (#2278)
And of course the CIL development team:
@MargaretDuff, @casperdcl, @gfardell, @hrobarts, @jakobsj, @lauramurgatroyd, @paskino
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
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
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
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
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