徐逸鹤
Python绘制以距离排序的地震图
2025-10-27 15:15
阅读:1179

如果波形数据都存在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可以进一步增大或减弱振幅。

转载本文请联系原作者获取授权,同时请注明本文来自徐逸鹤科学网博客。

链接地址:https://wap.sciencenet.cn/blog-725052-1507662.html?mobile=1

收藏

当前推荐数:1
推荐人:
推荐到博客首页
网友评论0 条评论
确定删除指定的回复吗?
确定删除本博文吗?