softwareunderground / repro-zoo

Open & executable reproductions of figures and other results from papers in earth science & engineering.
Apache License 2.0
10 stars 8 forks source link

Open-source software for two-dimensional Fourier processing of gridded magnetic data #30

Open kwinkunks opened 10 months ago

kwinkunks commented 10 months ago

[not open and reproducible at the same time? Not really possible, but welcome to the contradictions of computational geophysics :P ]

Open-source software for two-dimensional Fourier processing of gridded magnetic data

Richard S. Smith, Eric A. Roots, and Desmond Rainsford

https://doi.org/10.1190/tle41070454.1

Magnetic data are widely available and useful in many exploration and applied-geophysics projects. The magnetic data are usually processed, imaged, and interpreted in commercial software packages. The algorithms used in these packages are sometimes difficult to check or tune, and the code is not available for review. However, these packages often have an application programming interface (API) for people to access data and undertake their own processing and data enhancement. In many cases, these APIs use the Python programming language. In the course of developing a new method for transforming magnetic data called reduction to pole and vertical dip (RTPVD), the initial test code was written in Python. This initial code was then rewritten and incorporated into GAMS, an open-source software package capable of using a Python API to read from and then write transformed (or enhanced) data to a commercial database. In addition to RTPVD, the other enhancements GAMS can generate are the zeroth-order analytic-signal amplitude (ASA0), tilt, spatial derivatives of ASA0, the zeroth-order local wavenumber, the first-order analytic-signal amplitude, and the apparent susceptibility. These transformations require that the data be transformed to the wavenumber domain using a fast Fourier transform (FFT), operated on, and then transformed back to the space domain. The FFT and some of the preprocessing steps can be done with a number of built-in Python tools. For the preprocessing steps, some of the available Python options are fast, but they can occasionally introduce unwanted artifacts. Our open-source tool allows users to test the different options and check the intermediate steps to ensure the result is appropriate.