ObsPy提供了多个滤波功能,这里我先从高通滤波开始:
一,滤波过程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| import obspy import obspy.signal.filter
import numpy as np import matplotlib.pyplot as plt
wc=obspy.read("II.ESK.00.BHZ_2008-05-12T06_38_34.716_2008-05-12T06_49_34.716.sac") tr=wc[0]
tr_filt=tr.copy() tr_filt.filter('highpass',freq=1.0,corners=1,zerophase=True)
tr_enve=tr_filt.copy() data=tr_enve.data data_enve=obspy.signal.filter.envelope(data)
tr_inte=tr_enve.copy()
t = np.arange(0, tr.stats.npts / tr.stats.sampling_rate, tr.stats.delta) plt.subplot(311) plt.plot(t, tr.data, 'k') plt.ylabel('Original record')
plt.subplot(312) plt.plot(t, tr_filt.data, 'k') plt.ylabel('1Hz_Highpassed Data')
plt.subplot(313) plt.plot(t,data,'k') plt.plot(t,data_enve,'r') plt.ylabel('Kinetic energy density')
plt.xlabel('Time [s]') plt.suptitle(tr.stats.starttime) plt.show()
|
二,结果

注意:这里的包络线是错误的