Recent Releases of cil

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: https://github.com/TomographicImaging/CIL/compare/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 Cone3DFlex 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 showgeometry 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

- Python
Published by gfardell 7 months ago

cil - 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: https://github.com/TomographicImaging/CIL/compare/v24.2.0...v24.3.0

- Python
Published by hrobarts about 1 year ago

cil - 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: https://github.com/TomographicImaging/CIL/compare/v24.1.0...v24.2.0

- Python
Published by MargaretDuff over 1 year ago

cil - 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 https://github.com/TomographicImaging/CIL/pull/1615 adding WaveletOperator and WavletNorm - @epapoutsellis and @KrisThielemans for their contributions to the stochastic framework included in https://github.com/TomographicImaging/CIL/pull/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: https://github.com/TomographicImaging/CIL/compare/v24.0.0...v24.1.0

- Python
Published by gfardell over 1 year ago

cil - 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: - TIGRE v2.6 - ASTRA-TOOLBOX v2.1.0 - CCPI-Regularisation-Toolkit v24.0.0

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: https://github.com/TomographicImaging/CIL/compare/v23.1.0...v24.0.0

- Python
Published by gfardell almost 2 years ago

cil - 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.

- Python
Published by gfardell over 2 years ago

cil - 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.

- Python
Published by lauramurgatroyd almost 3 years ago

cil - 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 maxiterationstopcryterion method in the Algorithm class to maxiterationstopcriterion - 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.

- Python
Published by gfardell almost 3 years ago

cil - 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 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

- Python
Published by gfardell about 3 years ago

cil - Version 22.1.0

Main changes:

  • use assertallclose in testDataContainer
  • 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

- Python
Published by paskino about 3 years ago

cil - Version 22.0.0

Install using files from https://anaconda.org/ccpi/cil/files?version=22.0.0&channel=main

This is a major release and there may be some backward incompatibilities. See the full list of changes for details.

Significantly the CIL-ASTRA repository and package has now been deprecated. All relevant code has been relicensed and absorbed in to the CIL package. There is no change in functionality.

V22.0.0 change log: - Strongly convex functionality in TotalVariation and FGPTV Functions - Refactored KullbackLeibler function class. Fix bug on gradient method for SIRF objects - Numba added as a CIL requirement - Simplify initialisation of CentreOfRotation.ImageSharpness with new parameter backend - Added ISTA algorithm. Improve inheritance of proximal gradient algorithms - Updated interface to plugins.tigre/plugins.astra FBP and ProjectionOperator classes - Update NikonDataReader to parse and set up geometry with: ObjectTilt CentreOfRotationTop and CentreOfRotationBottom - Cleaned up unit test structure and output - Removal of deprecated code: - AcquisitionGeometry `initno longer returns a configured geometry, use factorycreatemethods instead -subsetmethod removed, usegetsliceorreordermethods - NikonDataReadernormalizekwarg removed, usenormalise - Algorithms initialisationxinitkwarg removed, useinitial` - Removed deprecated numpy calls - DataProcessors use weak-reference to input data - Merged CIL-ASTRA code in to CIL repository simplifying test, build and install procedures - Modules not moved should be considered deprecated - CIL remains licensed as APACHE-2.0 - Minor bug fixes to the CPU 2D Parallel-beam FBP - Add ndim property for DataContainer class - Fixes showgeometry compatibility issue with matplotlib 3.5 - Added ZEISSDataReader with cone/parallel beam, slicing, TXM Functionality - Raise exception if filename or data haven't been set in NexusDataWriter - Fixes error when updateobjectiveinterval is set to 0 in an algorithm run - Deprecated: - TXRMDataReader is deprecated in favour of ZEISSDataReader - GitHub Actions: - Update to version 0.1.1 of lauramurgatroyd/build-sphinx-action for building the documentation - ensures docs are always built from cil master

- Python
Published by gfardell over 3 years ago

cil - Version 21.4.1

Install using files from https://anaconda.org/ccpi/cil/files?version=21.4.1&channel=main

Minor release

  • Removed prints from unittests and cleanup of unittest code.
  • CMake: install script re-allows selection of non default install directory (https://github.com/TomographicImaging/CIL/issues/1246)
  • TIFF writer uses logging
  • Added unittests for TIFF functionality

- Python
Published by paskino over 3 years ago

cil - Version 21.4.0

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

Main changes for 21.4.0:

  • PEP 440 compliant version
  • CMake fix due to use of pip install.
  • Recon.FBP allows 'astra' backend
  • Fixed PowerMethod for square/non-square, complex/float matrices with stopping criterion.
  • CofR image_sharpness improved for large datasets
  • Geometry alignmentment fix for 2D datasets
  • CGLS update for sapyb to enable complex data, bugfix in use of initial
  • added sapyb and deprecated axpby. All algorithm updated to use sapyb.
  • Allow use of square brackets in file paths to TIFF and Nikon datasets

- Python
Published by paskino almost 4 years ago

cil - Version 21.3.1

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

21.3.1 - Added matplotlib version dependency to conda recipe - Fixed TIGRE wrappers for geometry with a virtual detector - Fixed TIGRE wrappers for cone-beam geometry with tilted rotation axis

- Python
Published by gfardell about 4 years ago

cil - Version 21.3.0

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

v21.3.0 - Accelerated PDHG which handles strong convexity of functions - TotalVariation Function handles SIRF ImageData - Simulated datasets and volume added to DataExamples - TIGRE wrappers for parallel-beam geometry added - NEXUSWriter and NEXUSReader offer (8bit and 16bit) compression of data - show2D showgeom now return an object that can be saved with a save method - GradientOperator can be now used with SIRF DataContainers, both PET and MR - Add anisotropy in TotalVariation function - CCPi Regularisation plugin is refactored, only FGPTV, FGP_dTV, TGV and TNV are exposed. Docstrings and functionality unit tests are added. Tests of the functions are meant to be in the CCPi-Regularisation toolkit itself. - Add dtype for ImageGeometry, AcquisitionGeometry, VectorGeometry, BlockGeometry - Fix GradientOperator to handle pseudo 2D CIL geometries - Created recon module with FBP and FDK using fast filtering library and TIGRE backprojectors - Added Intel IPP based library for filtering step of FBP - PDHG memory optimisation - ScaledFunction memory Optimisation - The github actions are merged into one action with multiple jobs - The conda build job uploads an artifact of the build tar.bz file which is later used by the documentation build job - which installs the package into a miniconda environment. - Documentation pages for recon, astra and cil-plugins are published.

- Python
Published by gfardell about 4 years ago

cil - Version 21.2.0

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

  • add version string from git describe
  • add CCPi-Regularisation toolkit in unittests
  • show_geometry implemented to display AcquisitionGeometry objects, can be imported from utilities.display
  • CentreOfRotationCorrector.image_sharpness implemented which finds the rotation axis offset by maximising sharpness of a single slice reconstruction
  • Renamed CentreOfRotationCorrector.xcorr to CentreOfRotationCorrector.xcorrelation
  • Implemented Padder processor

- Python
Published by gfardell over 4 years ago

cil - Version 21.0.0 RSTA Papers

v21.0.0 as https://github.com/TomographicImaging/CIL/releases/tag/v21.0.0

- Python
Published by paskino almost 5 years ago

cil - Version 21.1.0

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

  • Added TomoPhantom plugin to create 2D/3D + channel ImageData phantoms based on the TomoPhantom model library
  • Fixed bug in Zeiss reader geometry direction of rotation

- Python
Published by gfardell almost 5 years ago

cil - Version 21.0.0

Install using conda from https://anaconda.org/ccpi/cil/files?version=21.0.0 conda install cil=21.0.0 -c ccpi

v21.0.0 - Show2D now takes 4D datasets and slice infomation as input - TIGRE reconstruction package wrapped for cone-beam tomography - Datacontainers have get_slice method which returns a dataset with a single slice of the data - Datacontainers have reorder method which reorders the data in memory as requested, or for use with 'astra' or 'tigre' - Subset method has been deprecated - AcquisitionData and ImageData enforce requirement for a geometry on creation - New processors AbsorptionTransmissionConverter and TransmissionAbsorptionConverter to convert between Absorption and Transmission - Implemented Binner and Slicer processors - Implemented MaskGenerator and Masker processors

- Python
Published by gfardell almost 5 years ago

cil - Version 20.11.2

20.11.2

  • fixed windows build
  • NikonDataReader converts Nikon geometry to CIL geometry from xtekct file including detector and centre-or-rotation offsets
  • NexusdataReader supports files written with old versions of NexusDataWriter

- Python
Published by paskino about 5 years ago

cil - Version 19.10

- Python
Published by paskino about 6 years ago

cil - Version 19.10.1

- Python
Published by paskino about 6 years ago

cil -

- Python
Published by paskino over 6 years ago

cil -

- Python
Published by paskino almost 7 years ago