_from_msnoise.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:yam 作者: trichter 项目源码 文件源码
def check_and_phase_shift(trace):
    if trace.stats.npts < 10 * trace.stats.sampling_rate:
        trace.data = np.zeros(trace.stats.npts)
        return
    dt = np.mod(trace.stats.starttime.datetime.microsecond * 1.0e-6,
                trace.stats.delta)
    if (trace.stats.delta - dt) <= np.finfo(float).eps:
        dt = 0.
    if dt != 0.:
        if dt <= (trace.stats.delta / 2.):
            dt = -dt
#            direction = "left"
        else:
            dt = (trace.stats.delta - dt)
#            direction = "right"
#        log.debug("correcting time by %.6fs"%dt)
        trace.detrend(type="demean")
        trace.detrend(type="simple")
        trace.taper(max_percentage=None, max_length=1.0)

        n = next_fast_len(int(trace.stats.npts))
        FFTdata = fft(trace.data, n=n)
        freq = fftfreq(n, d=trace.stats.delta)
        FFTdata = FFTdata * np.exp(1j * 2. * np.pi * freq * dt)
        FFTdata = FFTdata.astype(np.complex64)
        ifft(FFTdata, n=n, overwrite_x=True)
        trace.data = np.real(FFTdata[:len(trace.data)]).astype(np.float)
        trace.stats.starttime += dt
#        clean_scipy_cache()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号