Compute MWCS

Warning

if using only mov_stack = 1, no MWCS jobs is inserted in the database and consequently, no MWCS calculation will be done! FIX!

Following Clarke et al (2011), we apply the Moving-Window Cross-Spectral method to study the relative dephasing between Moving-Window stacks (“Current”) and a Reference using Moving-Window Cross-Spectral analysis. The jobs “T”o do have been inserted in the datavase during the stack procedure.

Filter Configuration Parameters

  • mwcs_low: The lower frequency bound of the linear regression done in MWCS (in Hz)
  • mwcs_high: The upper frequency bound of the linear regression done in MWCS (in Hz)
  • mwcs_wlen: Window length (in seconds) to perform MWCS
  • mwcs_step: Step (in seconds) of the windowing procedure in MWCS
  • hpc: Is MSNoise going to run on an HPC? Y/[N] (default=N) | new in 1.6

In short, both time series are sliced in several overlapping windows and preprocessed. The similarity of the two time-series is assessed using the cross-coherence between energy densities in the frequency domain. The time delay between the two cross correlations is found in the unwrapped phase of the cross spectrum and is linearly proportional to frequency. This “Delay” for each window between two signals is the slope of a weighted linear regression (WLS) of the samples within the frequency band of interest.

For each filter, the frequency band can be configured using mwcs_low and mwcs_high, and the window and overlap lengths using mwcs_wlen and mwcs_overlap.

The output of this process is a table of delays measured at each window in the functions. The following is an example for lag times between -115 and -90. In this case, the window length was 10 seconds with an overlap of 5 seconds.

      LAG_TIME          DELAY           ERROR         MEAN COHERENCE
-1.1500000000e+02 -1.4781146383e-01 5.3727119135e-02 2.7585243911e-01
-1.1000000000e+02 -6.8207526992e-02 2.0546644311e-02 3.1620999352e-01
-1.0500000000e+02 -1.0337029577e-01 8.6645155402e-03 4.2439269880e-01
-1.0000000000e+02 -2.8668775696e-02 6.2522215988e-03 5.7159849528e-01
-9.5000000000e+01  4.1803941008e-02 1.5102285789e-02 4.1238557789e-01
-9.0000000000e+01  4.8139400233e-02 3.2700657018e-02 3.0586187792e-01

This process is job-based, so it is possible to run several instances in parallel.

Once done, each job is marked “D”one in the database and, unless hpc is Y, DTT jobs are inserted/updated in the database.

To run this step:

$ msnoise compute_mwcs

This step also supports parallel processing/threading:

$ msnoise -t 4 compute_mwcs

will start 4 instances of the code (after 1 second delay to avoid database conflicts). This works both with SQLite and MySQL but be aware problems could occur with SQLite.

New in version 1.4: Parallel Processing