||
如果波形数据都存在st中,st为obspy.Stream对象,距离保存在st[i].stats.distance,那么绘制脚本为
for tr in st:
t = tr.times() + tr.stats.sac.b
x = tr.data
plt.plot(t, x + tr.stats.distance)
如果距离保存在一个数组dist中,且dist与st一一对应,即dist[i]和st[i]同属一个台站,那么绘制脚本为
for d, tr in zip(dist, st):
t = tr.times() + tr.stats.sac.b
x = tr.data
plt.plot(t, x + d)
在绘制这种地震图中,地震波形可能存在互相重叠(振幅太大)或者振幅太弱看不清的情况。这种情况,可对地震数据进行归一化,脚本为
scale = 1.0
for d, tr in zip(dist, st):
t = tr.times() + tr.stats.sac.b
x = tr.data
maxamp = np.abs(x).max()
if maxamp > 0:
x /= maxamp
plt.plot(t, x * scale + d)
归一化后的地震波形最大振幅对应单位距离。利用scale可以进一步增大或减弱振幅。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-12-6 04:09
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社