Inspired by https://geophydog.cool/post/masw_phase_shift/.
Dims/Units of the output are forced to be ‘frequency’ (‘Hz’) and ‘velocity’ (‘m/s’).
The patch’s distance coordinates are assumed to be ordered by distance from the source, and not “fiber distance”. In other words, data are effectively mapped along a 2-D line.
The input shot gather must be right-sided meaning the wavefield propagates from lower to higher channel numbers. Always plot the patch first to verify its orientation. If the gather is left-sided, simply mirror the patch along the distance axis (see Example 2 below).
Examples
import dascore as dcimport numpy as np# Example 1 - Right-sided wavefieldpatch = ( dc.get_example_patch('dispersion_event'))disp_patch = patch.dispersion_phase_shift(np.arange(100,1500,1), approx_resolution=0.1,approx_freq=[5,70])ax = disp_patch.viz.waterfall(show=False,cmap=None)ax.set_xlim(5, 70)ax.set_ylim(1500, 100)disp_patch.viz.waterfall(show=True, ax=ax)# Example 2 - Left-sided wavefieldpatch = ( dc.get_example_patch('dispersion_event'))mirrored_patch = patch.flip("distance")disp_patch = mirrored_patch.dispersion_phase_shift(np.arange(100,1500,1), approx_resolution=0.1,approx_freq=[5,70])
```
References
Park, Choon Byong, Richard D Miller, and Jianghai Xia. 1998. “Imaging Dispersion Curves of Surface Waves on Multi-Channel Record.” In SEG Technical Program Expanded Abstracts 1998, 1377–80. Society of Exploration Geophysicists.