-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RCv0.3 #44
Conversation
…before computing intersection. Also adding distance function to Beam because it is different than Line.
…circ now required knowledge of what a Beam is which would make geometry no longer selfcontained.
…n the same Beam every time instead of making copies.
…as incorrect after they were moved from the geometry to the acquisition module.
…m` classes. Initial benchmarch shows it cuts sinogram time in half because the half_space is transformed instead if being resolved after each transformation.
Realized that there was no test already in existance to make sure that a sinogram is computed consistently. This test is important to make sure that changes to the underlying computational geometry does not alter the higher level behavior.
The contains functions for Circle and Polygon were incomplete because they only worked for points. This adds the ability to provide Circle, Polygons, and Meshes as input for this function. As a side effect, the edges property is added to the Polygon class.
Making hierarchical structures and organizing Features into groups was impossible or difficult. By combining Feature and Phantom into one class and allowing child parent tree-like relationships the construction of complex phantoms should be easier.
Previously polygons were not self-containting. e.g. A.contains(A) would be false, but this is inconsistent with Point behavior.
Default Phantom needs to have deep copyies of vertices otherwise rotation moves vertices multiple times.
The save and load functions were broken by the tranisition to hierarchical phantoms. This update moves the save and load functions outside of the `Phantom` class definition and uses the `repr` function to store a `Phantom` as a string.
Conflicts: xdesign/geometry.py
Rename multiple mtf functions to include authors initials. Remove phase probability computation function.
beamintersect functions were defined twice: once in geometry and once in acquistion. Removed redundant copy in geometry. Also removed text references to Feature and fixed up WetCircles.
Conflicts: xdesign/acquisition.py
It's recommended by numpy.
sinogram and angleogram didn't return the probe which made them unfit for use by art, sirt, and mlem.
I forgot that this is going to fail because it requires a version of |
Changes Unknown when pulling 9254d8f on RCv0.3 into ** on master**. |
Moved module doc strings to top so they are picked out by sphinx. Replaced Mock module with unittest.mock. Add pages for formats and constants.
Added nbsphinx extension to allow demo notebooks to be directly converted to the webpage.
Changes Unknown when pulling ff28b81 on RCv0.3 into ** on master**. |
1 similar comment
Changes Unknown when pulling ff28b81 on RCv0.3 into ** on master**. |
Changes Unknown when pulling 7597008 on RCv0.3 into ** on master**. |
@@ -67,8 +67,6 @@ | |||
__docformat__ = 'restructuredtext en' | |||
__all__ = ['Entity', | |||
'Point', | |||
# 'Superellipse', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello, I wonder why you deleted the ellipse here. Sometimes I need to add an ellipse phantom.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @huyuhuster, there is no algorithm implemented to compute the area of intersection between a rectangle and a superellipse. Therefore, these entities cannot be used in phantoms for data acquisition simulation. If you want to try to use these entities anyways, they are still there, just removed from __all__
; you can import then directly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @carterbox , thanks for your reply. Do you plan to implement the algorithm? By the way, when I simulating the acquisition, it will be very slow if the size of the probe is small, such as 1/1000. Do you have any method to speed it? Often I need to cost several hours to simulate one phantom.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have no such plans because I'm working on other things. PRs are welcome though. 😁
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK,do you have any suggestion of speed the acquisition simulation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No. I haven't looked at this codebase in more than a year.
Introduces
polytope
for approximate beam / polygon intersections #30Implements
__repr__
for saving and loading phantoms #40Restructures phantoms as hierarchical structures. Removes the
Feature
class. #43.Uses
sphinxnb
to automatically integrate demo notebooks into documentation.