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.