adjtomo/pyatoa

subroutine to balance uneven distribution of sources and receivers

Closed this issue · 2 comments

bch0w commented

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

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

This is addressed in PySEP's Declust class