def test_util_mocorr(self): model = Iasp91() phc = util.phase_dict['Ps'] #self.Z = np.sin(np.linspace(0, 10*np.pi, 500)) #import psmout #y=psmout.psmout([self.Z], [8.5], 0., 5.0, 0.01, 1) # much slower becasue of io of modell data = util.mocorr(self.Z, model.z, model.vp, model.vs, 8.5, 6.4, 100, phc) #print(sum(self.Z), sum(model.z), phc, sum(model.vp), sum(model.vs)) #print(sum(data[:len(data)*4//5]), len(data)) self.assertEqual(abs(sum(data[:len(data) * 4 // 5]) + 2.33691887) < 1e-5, True) # very, very strange anomalies
def moveout(self, model='iasp91', phase='Ps', p0=6.4): """ In-place moveout correction. :param p0: reference slowness """ if model == 'iasp91': model = util.Iasp91() phc = util.phase_dict[phase] st = self.stats i0 = int((st.ponset - st.starttime) * st.sampling_rate) self.data[i0:] = util.mocorr(self.data[i0:], model.z, model.vp, model.vs, st.slowness, p0, st.sampling_rate, phc).astype(self.data.dtype) # trc.data[i0:] = util.mocorr(trc.data[i0:], # model.z, model.vp, model.vs, # p, p0, fs, phc).astype(trc.data.dtype) # i0 = -int(float(trc.time)*trc.fsamp) st.filter += 'MC%s,%s' % (phase, p0)