Convolution Double Difference Misfit

For two stations, i and j, the convolution double difference misfit is defined as the squared difference of convolution of observed and synthetic data. The misfit \(\chi(\mathbf{m})\) for a given Earth model \(\mathbf{m}\) at a given component is

\[\chi (\mathbf{m}) = \frac{1}{2} \int_0^T \left| {s}_i(t, \mathbf{m}) * d_j(t) - {d}_j(t) * s_i(t, \mathbf{m}) \right| ^ 2 dt.\]

Double difference misfit functions result in two adjoint sources, one for each station in the pair i, j. The corresponding adjoint sources for the misfit function \(\chi(\mathbf{m})\) is defined as the difference of the differential waveform misfits:

\[ \begin{align}\begin{aligned}f_{i}^{\dagger}(t) = + ( {s}_i(t, \mathbf{m}) * d_j(t) - {d}_j(t) * s_i(t, \mathbf{m}))\\f_{j}^{\dagger}(t) = - ({s}_i(t, \mathbf{m}) * d_j(t) - {d}_j(t) * s_i(t, \mathbf{m}))\end{aligned}\end{align} \]

Note

For the sake of simplicity we omit the spatial Kronecker delta and define the adjoint source as acting solely at the receiver’s location. For more details, please see [Tromp2005] and [Yuan2016].

Note

This particular implementation uses Simpson’s rule to evaluate the definite integral.

Usage

adjsrc_type = "convolution_dd"

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

import pyadjoint

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

obs_2, syn_2 = pyadjoint.get_example_data()
obs_2 = obs_2.select(component="R")[0]
syn_2 = syn_2.select(component="R")[0]

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

# Calculating double-difference adjoint source returns two adjoint sources
adj_src, adj_src_2 = pyadjoint.calculate_adjoint_source(
    config=config, observed=obs, synthetic=syn, windows=[(800., 900.)],
    observed_2=obs_2, synthetic_2=syn_2, windows_2=[(800., 900.)]
    )