daniel-koehn / DENISE-Black-Edition

2D time-domain isotropic (visco)elastic FD modeling and full waveform inversion (FWI) code for P/SV-waves
GNU General Public License v2.0
121 stars 66 forks source link

Case INV_STF==1 is not seen in stf.c #24

Closed RAYLHU closed 4 years ago

RAYLHU commented 4 years ago

Hi, Daniel, I noticed that INV_STF==1 doesn't appear in your code of source wavelet inversion, stf.c. Does it mean that when INV_STF ==1, the time traces picked is controlled by the time damping? image

Regards,

Ray

daniel-koehn commented 4 years ago

Hi Ray,

INV_STF!=0 acitivates the source wavelet inversion in line #127 of grad_obj_psv.c

https://github.com/daniel-koehn/DENISE-Black-Edition/blob/master/src/PSV/grad_obj_psv.c#L127

If INV_STF = 1 and time damping is activated, the time damping will currently not be applied to the field and synthetic data used for source wavelet inversion:

https://github.com/daniel-koehn/DENISE-Black-Edition/blob/master/src/stf.c

You can only apply trace muting and offset windowing. INV_STF=2 used an experimental STA/LTA picker to estimate the first arrivals of the synthetic data and apply time damping to the observed data. However, this feature is highly experimental, meaning it does not work, and should therefore not be used.

Best regards,

Daniel

RAYLHU commented 4 years ago

Hi, Daniel,

Thanks for your reply. It means that so far what I can do is to choose INV_STF =1, and expect no time damping on the synthetic and field traces then.

Ray

daniel-koehn commented 4 years ago

Hi Ray,

Right, perhaps a short comment why no time-damping is implemented in the DENISE source wavelet inversion module, yet.

For the modelling of the synthetic data, a band limited spike is used, so a bandlimited Greens function is computed. The bandlimited spike source wavelet starts with no time-delay at time t = 0 s. However, in the field data application, the source wavelet often has a certain time delay, which you want to invert into the source wavelet.

Therefore, the problem is that the picked first arrival times from the field data can only be used to define time damping of the field data. For the synthetic data you have to define different first arrival times, not only due to time shifts of the source wavelet, but also because the velocity models used for the forward modelling do not coincide with the "true" subsurface model.

After each model update you also have to update the first arrival picks of the synthetic data. This was the basic idea why to include automatic first arrival picking using the STA/LTA picker.

Even if you have first arrival picks for the synthetic data and field data, you might have to damp the synthetic and field data differently. In conclusion, time damping can also be implemented in the source wavelet inversion module, but requires some additional steps in order to do this correctly.

Best regards,

Daniel

RAYLHU commented 4 years ago

Ok, Noted. Thank you very much for the detailed explanation, Daniel.