def shift_waveform(tr, dtshift):
"""
tr_shift = shift_waveform(tr, dtshift):
Shift data in trace tr by dtshift seconds backwards.
Parameters
----------
tr : obspy.Trace
Trace that contains the data to shift
dtshift : float
Time shift in seconds
Returns
-------
tr_shift : obspy.Trace
Copy of tr, but with data shifted dtshift seconds backwards.
"""
data_pad = np.r_[tr.data, np.zeros_like(tr.data)]
freq = fft.fftfreq(len(data_pad), tr.stats.delta)
shiftvec = np.exp(- 2 * np.pi * complex(0., 1.) * freq * dtshift)
data_fd = shiftvec * fft.fft(data_pad *
signal.tukey(len(data_pad),
alpha=0.2))
tr.data = np.real(fft.ifft(data_fd))[0:tr.stats.npts]
评论列表
文章目录