Compute dt/t from MWCS measurements

Compute dt/t from MWCS measurements using weighted linear regression.

Reads the per-pair MWCS NetCDF files written by msnoise.s05_compute_mwcs and, for each time step, fits a weighted linear regression of the measured delay the measured delay delta_t against lag time t, where delta_t(t) = -(dv/v) * t + a:

Two fits are produced at each time step:

  • Origin-forced (m0 / em0): intercept fixed to zero, giving the purest estimate of \(-dv/v\).

  • With intercept (m / em / a / ea): free intercept accounts for a constant clock drift or instrumental offset.

Before fitting, lag windows outside [minlag, minlag + width] are masked, values with coherence below |mwcs_dtt.dtt_mincoh| or error above |mwcs_dtt.dtt_maxerr| are excluded, and values where |delta_t / t| > |mwcs_dtt.dtt_maxdtt| are removed.

The lag window is either static (|mwcs_dtt.dtt_lag| = "static", using |mwcs_dtt.dtt_minlag|) or dynamic (lag derived from interstation distance and a surface-wave velocity |mwcs_dtt.dtt_v|).

Output columns in the DTT NetCDF file: m, em, a, ea, m0, em0, mcoh (slope, error, intercept, intercept error, origin-forced slope, origin-forced error, mean coherence).

To run this step:

$ msnoise cc dtt compute_mwcs_dtt

Parallel processing:

$ msnoise -t 4 cc dtt compute_mwcs_dtt

Configuration Parameters

  • mwcs_dtt.dtt_minlag : Minimum lag time (default=5.0)

  • mwcs_dtt.dtt_width : Width of the time lag window (default=30.0)

  • mwcs_dtt.dtt_lag : How is the lag window defined for MWCS (default=static)

  • mwcs_dtt.dtt_v : What velocity to use to avoid ballistic waves (default=1.0)

  • mwcs_dtt.dtt_sides : Which sides to use (default=both)

  • mwcs_dtt.dtt_mincoh : Minimum coherence on dt measurement (default=0.5)

  • mwcs_dtt.dtt_maxerr : Maximum error on dt measurement (default=1.0)

  • mwcs_dtt.dtt_maxdtt : Maximum dt/t value (default=1.0)

  • stack.mov_stack : A list of two parameters: the time to “roll” over (default 1 day) and the granularity (step) of the resulting stacked CCFs (default 1 day) to stack for the Moving-window stacks. This can be a list of tuples, e.g. ((‘1d’,’1d’),(‘2d’,’1d’)) corresponds to the MSNoise 1.6 “1,2” before. Time deltas can be anything pandas can interpret (“d”, “min”, “sec”, etc). (default=((‘1D’,’1D’)))

  • cc.components_to_compute : List (comma separated) of components to compute between two different stations (default=ZZ)

  • cc.components_to_compute_single_station : List (comma separated) of components within a single station. ZZ would be the autocorrelation of Z component, while ZE or ZN are the cross-components. Defaults to [], no single-station computations are done. (default=)

  • global.hpc : Is MSNoise going to run on an HPC? (default=N)

See also

Reading these results in Python — use MSNoiseResult:

from msnoise.results import MSNoiseResult
from msnoise.core.db import connect
db = connect()
r = MSNoiseResult.from_ids(db, ...)  # include the steps you need
# then call r.get_mwcs_dtt(...)

See Reading outputs with MSNoiseResult for the full guide and all available methods.