Convolution Misfit

Very similar to the Waveform Misfit misfit, the convolution misfit is defined as the convolution between data and synthetics. The misfit, \(\chi(\mathbf{m})\), for a given Earth model \(\mathbf{m}\), and a single receiver and component is given by

\[\chi (\mathbf{m}) = \frac{1}{2} \int_0^T ( \mathbf{d}(t) * \mathbf{s}(t, \mathbf{m}) ) ^ 2 dt,\]

where \(\mathbf{d}(t)\) is the observed data and \(\mathbf{s}(t, \mathbf{m})\) the synthetic data.

The corresponding convolution misfit adjoint source for the same receiver and component is given by

\[f^{\dagger}(t) = \left[ \mathbf{d}(T - t) * \mathbf{s}(T - t, \mathbf{m}) \right]\]

Usage

adjsrc_type = "convolution"

The following code snippet illustrates the basic usage of the convolution misfit function. See the corresponding Config object for additional configuration parameters.

Note

The convolution misfit code piggybacks on the waveform misfit and consequently shares the same Config object.

import pyadjoint

obs, syn = pyadjoint.get_example_data()
obs = obs.select(component="Z")[0]
syn = syn.select(component="Z")[0]

config = pyadjoint.get_config(adjsrc_type="convolution", min_period=20.,
                              max_period=100.)

adj_src = pyadjoint.calculate_adjoint_source(config=config,
                                             observed=obs, synthetic=syn,
                                             windows=[(800., 900.)]
                                             )