def Envelope(syn, obs, nt, dt, eps=0.05): # envelope difference # (Yuan et al 2015, eq 9) esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) ersd = esyn - eobs return _np.sqrt(_np.sum(ersd * ersd * dt))
def Envelope(syn, obs, nt, dt, eps=0.05): # envelope difference # (Yuan et al 2015, eq 9) esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) ersd = esyn-eobs return np.sqrt(np.sum(ersd*ersd*dt))
def Envelope(syn, obs, nt, dt, eps=0.05): # envelope difference # (Yuan et al 2015, eq 16) esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) etmp = (esyn - eobs)/(esyn + eps*esyn.max()) wadj = etmp*syn - _np.imag(_analytic(etmp*_np.imag(_analytic(syn)))) return wadj
def Envelope(syn, obs, nt, dt, eps=0.05): # envelope difference # (Yuan et al 2015, eq 16) esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) etmp = (esyn - eobs) / (esyn + eps * esyn.max()) wadj = etmp * syn - _np.imag(_analytic(etmp * _np.imag(_analytic(syn)))) return wadj
def InstantaneousPhase2(syn, obs, nt, dt, eps=0.): esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) esyn1 = esyn + eps * max(esyn) eobs1 = eobs + eps * max(eobs) diff = syn / esyn1 - obs / eobs1 return _np.sqrt(_np.sum(diff * diff * dt))
def AnalyticSignal(syn, obs, nt, dt, eps=0.): esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) esyn1 = esyn + eps * max(esyn) eobs1 = eobs + eps * max(eobs) diff = syn / esyn1 - obs / eobs1 return _np.sqrt(_np.sum(diff * diff * dt))
def InstantaneousPhase2(syn, obs, nt, dt, eps=0.): esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) esyn1 = esyn + eps*max(esyn) eobs1 = eobs + eps*max(eobs) diff = syn/esyn1 - obs/eobs1 return np.sqrt(np.sum(diff*diff*dt))
def AnalyticSignal(syn, obs, nt, dt, eps=0.): esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) esyn1 = esyn + eps*max(esyn) eobs1 = eobs + eps*max(eobs) diff = syn/esyn1 - obs/eobs1 return _np.sqrt(_np.sum(diff*diff*dt))
def Envelope3(syn, obs, nt, dt, eps=0.): # envelope lag # (Yuan et al 2015, eqs B-2, B-5) esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) erat = _np.zeros(nt) erat[1:-1] = (esyn[2:] - esyn[0:-2])/(2.*dt) erat[1:-1] /= esyn[1:-1] erat *= misfit.Envelope3(syn, obs, nt, dt) wadj = -erat*syn + _hilbert(erat*_hilbert(esyn)) return wadj
def Envelope3(syn, obs, nt, dt, eps=0.): # envelope lag # (Yuan et al 2015, eqs B-2, B-5) esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) erat = _np.zeros(nt) erat[1:-1] = (esyn[2:] - esyn[0:-2]) / (2. * dt) erat[1:-1] /= esyn[1:-1] erat *= misfit.Envelope3(syn, obs, nt, dt) wadj = -erat * syn + _hilbert(erat * _hilbert(esyn)) return wadj
def InstantaneousPhase(syn, obs, nt, dt, eps=0.05): """ Instantaneous phase from Bozdag et al. 2011 """ r = np.real(_analytic(syn)) i = np.imag(_analytic(syn)) phi_syn = np.arctan2(i, r) r = np.real(_analytic(obs)) i = np.imag(_analytic(obs)) phi_obs = np.arctan2(i, r) phi_rsd = phi_syn - phi_obs return np.sqrt(np.sum(phi_rsd * phi_rsd * dt))
def InstantaneousPhase(syn, obs, nt, dt, eps=0.05): # instantaneous phase # from Bozdag et al. 2011 r = _np.real(_analytic(syn)) i = _np.imag(_analytic(syn)) phi_syn = _np.arctan2(i, r) r = _np.real(_analytic(obs)) i = _np.imag(_analytic(obs)) phi_obs = _np.arctan2(i, r) phi_rsd = phi_syn - phi_obs return _np.sqrt(_np.sum(phi_rsd * phi_rsd * dt))
def InstantaneousPhase(syn, obs, nt, dt, eps=0.05): # instantaneous phase # from Bozdag et al. 2011 r = np.real(_analytic(syn)) i = np.imag(_analytic(syn)) phi_syn = np.arctan2(i,r) r = np.real(_analytic(obs)) i = np.imag(_analytic(obs)) phi_obs = np.arctan2(i,r) phi_rsd = phi_syn - phi_obs return np.sqrt(np.sum(phi_rsd*phi_rsd*dt))
def InstantaneousPhase2(syn, obs, nt, dt, eps=0.): esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) esyn1 = esyn + eps*max(esyn) eobs1 = eobs + eps*max(eobs) esyn3 = esyn**3 + eps*max(esyn**3) diff1 = syn/(esyn1) - obs/(eobs1) diff2 = _hilbert(syn)/esyn1 - _hilbert(obs)/eobs1 part1 = diff1*_hilbert(syn)**2/esyn3 - diff2*syn*_hilbert(syn)/esyn3 part2 = diff1*syn*_hilbert(syn)/esyn3 - diff2*syn**2/esyn3 wadj = part1 + _hilbert(part2) return wadj
def InstantaneousPhase2(syn, obs, nt, dt, eps=0.): esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) esyn1 = esyn + eps*max(esyn) eobs1 = eobs + eps*max(eobs) esyn3 = esyn**3 + eps*max(esyn**3) diff1 = syn/(esyn1) - obs/(eobs1) diff2 = _hilbert(syn)/esyn1 - _hilbert(obs)/eobs1 part1 = diff1*_hilbert(syn)**2/esyn3 - diff2*syn*_hilbert(syn)/esyn3 part2 = diff1*syn*_hilbert(syn)/esyn3 - diff2*syn**2/esyn3 wadj = part1 + _hilbert(part2) return wadj
def Envelope(syn, obs, nt, dt, eps=0.05): # envelope difference # (Yuan et al 2015, eq 16) esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) #######original######## #etmp = (esyn - eobs)/(esyn + eps*esyn.max()) #######original######## #######jiang change start######## # avoid divide zero when mute near-offset data if esyn.max() == 0.0: etmp = (esyn - eobs) / (esyn + eps * esyn.max() + eps) else: etmp = (esyn - eobs) / (esyn + eps * esyn.max()) #######jiang change end######## wadj = etmp * syn - _np.imag(_analytic(etmp * _np.imag(_analytic(syn)))) return wadj
def InstantaneousPhase(syn, obs, nt, dt, eps=0.05): # instantaneous phase # (Bozdag et al 2011, eq 27) r = _np.real(_analytic(syn)) i = _np.imag(_analytic(syn)) phi_syn = _np.arctan2(i, r) r = _np.real(_analytic(obs)) i = _np.imag(_analytic(obs)) phi_obs = _np.arctan2(i, r) phi_rsd = phi_syn - phi_obs esyn = abs(_analytic(syn)) emax = max(esyn**2.) wadj = phi_rsd*_np.imag(_analytic(syn))/(esyn**2. + eps*emax) + \ _np.imag(_analytic(phi_rsd * syn/(esyn**2. + eps*emax))) return wadj
def InstantaneousPhase(syn, obs, nt, dt, eps=0.05): # instantaneous phase # (Bozdag et al 2011, eq 27) r = _np.real(_analytic(syn)) i = _np.imag(_analytic(syn)) phi_syn = _np.arctan2(i,r) r = _np.real(_analytic(obs)) i = _np.imag(_analytic(obs)) phi_obs = _np.arctan2(i,r) phi_rsd = phi_syn - phi_obs esyn = abs(_analytic(syn)) emax = max(esyn**2.) wadj = phi_rsd*_np.imag(_analytic(syn))/(esyn**2. + eps*emax) + \ _np.imag(_analytic(phi_rsd * syn/(esyn**2. + eps*emax))) return wadj
def Envelope3(syn, obs, nt, dt, eps=0.): # envelope cross-correlation lag # (Yuan et al 2015, eqs B-4) esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) return Traveltime(esyn, eobs, nt, dt)
def Envelope3(syn, obs, nt, dt, eps=0.): # envelope cross-correlation lag # (Yuan et al 2015, eqs B-4) esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) return Traveltime(esyn, eobs, nt, dt)
def Envelope2(syn, obs, nt, dt, eps=0.): # envelope amplitude ratio # (Yuan et al 2015, eq B-1) esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) raise NotImplementedError
def Envelope2(syn, obs, nt, dt, eps=0.): # envelope amplitude ratio # (Yuan et al 2015, eq B-1) esyn = abs(_analytic(syn)) eobs = abs(_analytic(obs)) raise NotImplementedError