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
Incorporate polar onion peeling algorithm into PyAbel #30
Comments
That would be great! It would be interesting to see how different implementations behave with noisy data. |
Now that #270 has added rBasex, there is probably little motivation to also add pBasex. |
Okay, this is interesting stuff. Is your conclusion is the same as mine: incorporating POP might be interesting, but it's a fairly low priority to incorporate it? |
Yes, maybe label this issue as low-priority, but I wouldn't close it. |
Just to add that unlike the paper mentioned, the error that is accumulated closer to the origin at small radii is dealt in the matlab code by restricting the leading beta order that can be used, which created an effective filter for the angle resolution, as well as attenuate the signal the closer it gets to the origin. In addition, this behavior is negligible for radius ~ >100 pixels, so it can be easily circumvented by resampling the domain needed such that the error is restricted to an unimportant neighborhood around the origin. |
I guess, if this is ever implemented, it would be nice to have the reference implementation and add any possible improvements as options (maybe enabled by default). In any case, examining results from existing implementations beforehand should help in judging what to do and how. Maybe these deviations are negligible in practice. |
It would be nice to implement one of the inverse Abel transform methods that uses a polar basis set to allow for smooth transforms of noisy data. Polar onion peeling (POP) is one of the most popular methods for this.
There is a nice Matlab implementation of the POP algorithm here. Adi Natan, the author of that code, said that it would be fine if we ported it to python and incorporate it in to PyAbel. He also has the matlab code that generates the basis sets, so we would not be limited to the 1024x1024 basis set that comes with the program.
EDIT: Adi added the code for the basis set generation to the MATLAB site: http://www.mathworks.com/matlabcentral/fileexchange/41064-polar-onion-peeling/content/bld_lut.m
The text was updated successfully, but these errors were encountered: