uafgeotools / mtuq

moment tensor uncertainty quantification
BSD 2-Clause "Simplified" License
65 stars 22 forks source link

incorporate static time shifts into the values displayed in the waveform fits plots #241

Closed carltape closed 5 months ago

carltape commented 7 months ago

To reduce the effects of cycle skipping, it has been useful to apply station-specific surface-wave static time shifts. Here are two example stations (IU.MAJO and G.INU) from Alvizuri and Tape (2018), Figure S2: image For this inversion, the weights file (available here) looks like this: 20170903033001760.IU.MAJO.00.BH 956 0 0 1 1 1 0.00000 0 0 0 -33.4 -14.75 20170903033001760.G.INU.00.BH 964 0 0 1 1 1 0.00000 0 0 0 -35.15 8.05 The last two columns are the static time shifts for Rayleigh and Love. In this case the cross-correlations measured in the legacy capuaf code would be less than 1 s or so. Currently the MTUQ waveform fits are displaying the measured cross-correlation, but not accounting for the specified static time shift. My understanding that the inversion is doing what we expect, but I think we would benefit from displaying the "net" cross-correlation rather than the measured one. Thanks.

rmodrak commented 7 months ago

Agreed, the proposed change would be a helpful improvement. Also, the above description matches my understanding of the current mtuq implementation.

The reason for the current implementation I think is that user-supplied static time shifts get applied to the Green's functions during data processing and become less accessible thereafter.

Applying the static time shifts during data processing has an advantage in that the static time shifts get applied once and for all, and the data and synthetic windows are well centered prior to cut-and-paste misfit function evaluation. A side effect, however, is that the user-supplied static time shifts are not immediately accessible to the misfit function, which writes out all the attributes used for plotting.

My first thought is that it should easily doable to include these static time shifts by default in the waveform annotations. Also, we would want them to be written out in some way in the json files used for time shift spider plots. Adding this the high priority list...

rmodrak commented 5 months ago

Addressed in new pull request #248

For more information see here

https://github.com/rmodrak/mtuq/blob/master/tests/test_time_shifts.py

In particular

    #
    # MTUQ distinguishes between the following different types of 
    # time-shift corrections
    # 
    # - "static_shift" is an initial user-supplied time shift applied during
    #   data processing
    #
    # - "time_shift" is a subsequent cross-correlation time shift applied during 
    #   misfit evaluation
    #
    # - "total_shift" is the total correction, or in other words the sum of
    #   static and cross-correlation time shifts
    #

time_shifts

rmodrak commented 5 months ago

Please feel free to reopen if necessary