Details
-
Type:
Story
-
Status: Done
-
Resolution: Done
-
Fix Version/s: None
-
Labels:None
-
Story Points:4
-
Epic Link:
-
Team:Data Release Production
-
Urgent?:No
Description
maskVignettedRegion is doing a loop over pixels in a detector to check inclusion in a polygon. This is causing a large number of allocations, and a large runtime due to the nature of python loops.
This ticket adds a contains c++ method overload for supplying x,y pairs instead of Point objects (it creates one internally). The python c++ binds make use of this and auto vectorization to allow arrays to be passed as arguments. The arrays can then be looped over in c++ instead of python making things much more efficient.
Finally the ticket updates ip_isr to make use of this functionality.
This results in a speed up of approximately 8x for isr task where the maskVignettedRegion is used.