-
Notifications
You must be signed in to change notification settings - Fork 66
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
Adaptive Forward Modelling #208
Comments
👋 Thanks for opening your first issue here! Please make sure you filled out the template with as much detail as possible. You might also want to take a look at our Contributing Guide and Code of Conduct. |
Hi @JonasLiebsch ! This is a very interesting algorithm, and we would love to have some way to reduce the computation time of terrain corrections and prisms layers forward modelling in Harmonica. Since yesterday we have a new function to create prisms layers as I think a method like the one you developed should be accessible though that
We decided not to include a function or class to specifically compute terrain corrections. Trying to design a piece of code that could be generally applied would be almost impossible, but we will encourage users to use prisms layers to define their own terrain models and use them to compute their gravitational fields, something like this: https://www.fatiando.org/harmonica/dev/gallery/forward/prisms_topo_gravity.html#sphx-glr-gallery-forward-prisms-topo-gravity-py Regarding your algorithm, I have a question: Here's my own though: what if instead of considering reducing the resolution of the whole layer of prisms, we reduce the resolution only on areas far from the computation point, and keep high resolution prisms near it? What do you think? |
During my bachelor thesis I worked on gravity forward modelling using prisms. Since I focused on a terrain correction, the datasets used are very massive and caused long computation times. To accelerate the modelling, I decided to use an adaptive approach for the forward modelling of a regular spaced grid.
The idea is to use a high resolution only where it is needed.
To achieve that goal the algorithm performs the following steps:
In my tests the algorithm was able to cut the runtime of a Terrain-/ Bouguer Correction on the Svalbard archipelago by a factor of 100 to 200, while creating errors smaller than 0.01 mgal (of course lower/higher thresholds could lead to more/less accurate results).
The algorithm was also useful to perform a simple isostatic correction, assuming airy isostasy.
Would such a feature be of interest for Harmonica?
How could this feature fit in the current structure of Harmonica? Perhaps a separate function besides the existing prism function and maybe a separate function for Bouger-/Terrain Correction which consider lakes and ice?
Of course the algorithm could be implemented similarly for Teseroids.
I am completely new to the Harmonica project and Git, so I am happy for any advice.
Are you willing to help implement and maintain this feature? Yes
The text was updated successfully, but these errors were encountered: