adjtomo / pyatoa

Python's Adjoint Tomography Operations Assistant (Pyatoa): a misfit assessment toolbox for full waveform tomography
GNU General Public License v3.0
20 stars 8 forks source link

subroutine to balance uneven distribution of sources and receivers #25

Closed bch0w closed 1 year ago

bch0w commented 1 year ago

Based on this paper by Ruan et al. (2019)

From their abstract:

The uneven distribution of earthquakes and stations in seismic tomography leads to slower convergence of nonlinear inversions and spatial bias in inversion results... To save computational cost and reduce model bias, we propose a new strategy based on a geographical weighting of sources and receivers... [T]he new weighting scheme leads to a nearly twofold reduction in model error and much faster convergence relative to a conventionally pre-conditioned inversion.

Pyatoa (and potentially also SeisFlows) should include a routine to calculate such source-receiver weights. The linked paper contains the necessary algorithm, Pyatoa would only need to know information about all sources and receivers in an inversion. This could be a subroutine called by SeisFlows, and weights could be written out to a text file to then be consulted during adjoint source generation.

bch0w commented 1 year ago

Note that Wenjie Lei has already coded this up here, although I'm not sure we need all the functionality of that package: https://github.com/wjlei1990/spaceweight

bch0w commented 1 year ago

This is addressed in PySEP's Declust class