Add automatic laminography alignment tool#2259
Conversation
hrobarts
left a comment
There was a problem hiding this comment.
Comments from code review meeting
|
@gfardell I think I've addressed all the comments from the code review meeting and also added a test with the simulated data |
gfardell
left a comment
There was a problem hiding this comment.
This will be a great tool.
My major comments are:
-
Backend selection and compatibility
- Consistency with FDK and CoR would be to accept a
backendparameter - I know it's only astra for now but could it be written in a way that would extend it to tigre for free once #2238 is in?
- A concern is that as ASTRA is GPL2, so we keep it as an optional import at runtime so the user is in control. This means code shouldn't silently depend on astra and it should be a user choice.
- Consistency with FDK and CoR would be to accept a
-
Documentation and doc strings
- Add a section in the documentation explaining the geometry and tested cases. Not everyone will have the same definition of the angle as "tilt" for example.
- Internal methods should start with
_and need docstrings and clear parameter names.
-
Memory use
- We need to think about reducing and reusing buffers where we can, both in terms of peak RAM and not reallocating memory each iteration where we could reuse it.
- For the acquisition and image data especially we need to be clear how many copies are used, this could be part of the documentation.
- We need to balance the cost of storing results with recomputing i.e. when we filter, or for the reference volume.
Overall it looks solid and well structured. Let me know when you need me to look again/talk it through.
I have not looked at tests yet.
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
lauramurgatroyd
left a comment
There was a problem hiding this comment.
Hi @hrobarts, this is an awesome addition to CIL, I just suggested some changes to prints and docs really and messed around inputting some silly parameters!
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Co-authored-by: Laura Murgatroyd <60604372+lauramurgatroyd@users.noreply.github.com> Signed-off-by: Hannah Robarts <77114597+hrobarts@users.noreply.github.com>
gfardell
left a comment
There was a problem hiding this comment.
This looks great! Thanks for getting it in.
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Wrappers/Python/cil/processors/LaminographyGeometryCorrector.py
Outdated
Show resolved
Hide resolved
Co-authored-by: Hannah Robarts <77114597+hrobarts@users.noreply.github.com> Signed-off-by: Hannah Robarts <77114597+hrobarts@users.noreply.github.com>
Changes
Add automatic laminography alignment tool.
Projection matching method to optimise laminography reconstruction by searching tilt and centre of rotation offset
coarse_binningandfinal_binningangle_binningparameter_boundsstarting with an initial guessinitial_parameters.reduced_volumeTesting you performed
New demo script: TomographicImaging/CIL-Demos#280
Test data for this tool is available on the tomography shared drive /mnt/share/ALC_laminography/folder/
Related issues/links
Checklist