Hi Dennis, You can calculate cylindrical coordinates by utilizing vtkCylindricalTransform within the python programmable filter. It is something like below and faster than numpy.
--- import vtk input = self.GetInput() output = self.GetOutput() transform = vtk.vtkCylindricalTransform() transformFilter = vtk.vtkTransformFilter() transformFilter.SetInputData(input) transformFilter.SetTransform(transform.GetInverse()) transformFilter.Update() output.ShallowCopy(transformFilter.GetOutput()) --- This converts (x,y,z) coordinates to (r,theta,z) coordinates by GetInverse method, where the angles are calculated by the following equation to change range to [0, 2*pi]: theta = pi + atan2(-y, -x). Regards 2018-04-28 5:25 GMT+09:00 Dennis Conklin <[email protected]>: > Alan, > > > > Yes, I am calling it many times at the same angular location, but it’s > tough to know you’re at the same angular location without calculating the > angle. > > > > Also, C++ is definitely orders of magnitude quicker, but once I have to > compile routines into Paravew life gets very complicated. We barely > survived compiling for cluster use and I haven’t written C++ for at least > 20 years. > > > > So, if possible, I would like a clever external add-on that wouldn’t > require us to re-compile PV everytime we update our version. I have > visions of library errors in my nightmares! > > > > Dennis > > > > *From:* Scott, W Alan [mailto:[email protected]] > *Sent:* Friday, April 27, 2018 4:00 PM > *To:* Dennis Conklin <[email protected]>; Paraview ( > [email protected]) <[email protected]> > *Subject:* [EXT] RE: [EXTERNAL] [Paraview] Calculating cylindrical > coordinates > > > > *CAUTION: *EXTERNAL email. Please think before clicking on any links or > attachments. > > > > Are there places on the cylinder you are calling atan2 with the same > inputs, returning the same data, lots of times? Alternatively, could you > calculate this in the simulation, and just add it to the simulation > output? I am speculating that a C++ call to atan2 may be faster than numpy? > > > > Alan > > > > *From:* ParaView [mailto:[email protected] > <[email protected]>] *On Behalf Of *Dennis Conklin > *Sent:* Friday, April 27, 2018 1:39 PM > *To:* Paraview ([email protected]) <[email protected]> > *Subject:* [EXTERNAL] [Paraview] Calculating cylindrical coordinates > > > > All, > > > > If I wanted to run atan2(X,Y) on millions and millions of nodes to > calculate cylindrical coordinates, but found that numpy.atan2 in a > Programmable Filter was taking 45 minutes to run, what should I do to > make it much faster? > > > > Thanks for any hints > > > > Dennis > > _______________________________________________ > Powered by www.kitware.com > > Visit other Kitware open-source projects at http://www.kitware.com/ > opensource/opensource.html > > Please keep messages on-topic and check the ParaView Wiki at: > http://paraview.org/Wiki/ParaView > > Search the list archives at: http://markmail.org/search/?q=ParaView > > Follow this link to subscribe/unsubscribe: > https://public.kitware.com/mailman/listinfo/paraview > >
_______________________________________________ Powered by www.kitware.com Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Please keep messages on-topic and check the ParaView Wiki at: http://paraview.org/Wiki/ParaView Search the list archives at: http://markmail.org/search/?q=ParaView Follow this link to subscribe/unsubscribe: https://public.kitware.com/mailman/listinfo/paraview
