-
Notifications
You must be signed in to change notification settings - Fork 104
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
FourierRadon2D and FourierRadon3D #611
Conversation
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.
Left some comments and made a few changes. Unfortunately I'm having an error with the numba engine (if I remove the @jit it works) though. Will try to dig a little deeper, but for now, after the changes, will be good to go.
@cako thanks! I replied to some of your comments, and I am going to act immediately on others. I am a bit confused about two things:
|
@mrava87 Sorry, you can revert the order of imports back to the original. My stupid ruff reorders the imports automatically and I didnt catch it in the commit. My bad! I'm not sure what the issue is, I tried different versions of Numba as well. All CPU. If it works on yours, I'm not keen on holding back the PR unless I know what the problem is. I can file a bug if it still doesn't work later. |
This PR introduces 2 new operators, namely
FourierRadon2D
andFourierRadon3D
that perform linear/parabolic Radon transform in the frequency domain.Both of them have 3 backends:
numpy
: can run with both numpy and cupy arrays, suboptimal performancenumba
: optimal performance for numpy arrayscuda
: optimal performance for cupy arrays (uses a numba-cuda custom kernel for part of the operations in matvec/rmatvecTo test the parabolic transform in 3D, a new utility function
pylops.utils.seismicevents.parabolic3d
is also added.The new operators are showcased in
plot_fourierradon.py
. Moreover, two notebook have been added at https://github.com/PyLops/pylops_notebooks/blob/master/developement/Radon-Fourier.ipynb and https://github.com/PyLops/pylops_notebooks/blob/master/developement-cupy/Radon-Fourier.ipynb