Per-projection geometry cone3D_Flex - #2039
Merged
gfardell merged 55 commits intoAug 7, 2025
Merged
Conversation
gfardell
force-pushed
the
non_standard_geometry_v2
branch
2 times, most recently
from
February 17, 2025 14:51
1427378 to
b2d91af
Compare
… a new AcquisitionGeometry called CONE_SOUV = 'cone_souv'. It is impossible to set_angles on this new geometry.
…metry of the first projection is used.
…e position, ii) the imager centre, iii) the imager x-direction, and iv) the imager y-direction for each projection.
…c strings and ag souv aware default behaviour.
gfardell
force-pushed
the
non_standard_geometry_v2
branch
from
June 24, 2025 12:45
3d7a0dd to
1138d2f
Compare
paskino
reviewed
Aug 4, 2025
paskino
reviewed
Aug 4, 2025
paskino
reviewed
Aug 4, 2025
paskino
reviewed
Aug 4, 2025
Co-authored-by: Hannah Robarts <[email protected]> Co-authored-by: Edoardo Pasca <[email protected]> Signed-off-by: Gemma Fardell <[email protected]>
paskino
reviewed
Aug 4, 2025
paskino
reviewed
Aug 4, 2025
paskino
reviewed
Aug 4, 2025
paskino
reviewed
Aug 4, 2025
…to non_standard_geometry_v2
Signed-off-by: Gemma Fardell <[email protected]>
Co-authored-by: Edoardo Pasca <[email protected]> Signed-off-by: Gemma Fardell <[email protected]>
Member
Author
hrobarts
reviewed
Aug 6, 2025
paskino
approved these changes
Aug 7, 2025
paskino
left a comment
Contributor
There was a problem hiding this comment.
After long review it's looking great!
hrobarts
approved these changes
Aug 7, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Changes
This is adding per-projection geometry.
Building on @effepivi's work in #1850
There are many CIL features that aren't implemented for this geometry in this PR, but will be in the future. The main change is a new geometry typle Cone3D_Flex with dimension labels 'channel' 'projection' 'vertical' 'horizontal'. This PR adds the CIL API for Cone3D_Flex and enables the astra projectors and FDK to run on this geometry type.
Tigre support will be added as a followup PR.
The main changes are:
Wrappers/Python/cil/framework/acquisition_geometry.py
create_Cone3D_Flexmethod to create datatypeget_slicefor either set of dimension labelsWrappers/Python/cil/framework/labels.py
projectionas the dimension label for ConeFlex in place ofangleWrappers/Python/cil/plugins/astra/utilities/convert_geometry_to_astra_vec_3D.py
Wrappers/Python/cil/io
Wrappers/Python/cil/utilities/display.py
show_system_positionsWrappers/Python/cil/processors
projectiondirection onlyTesting you performed
Notebook here demonstrates use:
https://github.com/TomographicImaging/CIL-Demos/blob/flex_geometry/demos/4_Deep_Dives/07_flexible_geometry.ipynb
Small data set can be emailed on request.
Unit tests added for CIL api, and astra PO and FBP with circular geometry described as flex.
Related issues/links
closes #1848
closes #1849
Checklist
Contribution Notes
Please read and adhere to the developer guide and local patterns and conventions.