1. 接收函数到底是什么?一个地震学家的“听诊器”
想象一下,你是一名医生,手里拿着一个听诊器,想要听听病人身体内部的情况。你听到的声音,其实是心脏跳动、肺部呼吸的声音,经过身体组织传导和“加工”后的结果。接收函数(Receiver Function, RF)在地震学里扮演的角色,就非常像这个听诊器。我们在地表放置一个地震台站,就像把听诊器放在病人的胸口。当地球深处发生地震,地震波(主要是P波和S波)会穿过复杂的地下结构,最终被我们的台站“听到”。接收函数这个技术,核心目的就是剥离掉地震源头本身那个“巨响”的特性,只留下地震波在台站下方特定结构(比如地壳和地幔的界面)上“加工”过的痕迹。
这么说可能还有点抽象,我打个更生活化的比方。你在一间空荡的大房间里喊了一声“啊!”,你听到的回声,不仅取决于你喊的声音有多大(震源),更取决于房间的大小、墙壁的材料(地下结构)。接收函数要做的,就是想办法把你最初那声“啊”的影响给去掉,只分析回声的特性,从而推断出房间的构造。在地震学里,这个“去掉震源影响”的过程,专业上叫做反褶积。这是接收函数方法最核心的数学工具,你可以把它理解为一个“信号清洗”的过程,把混杂在一起的信息分离开。
那么,清洗出来的接收函数长什么样呢?它通常是一条随时间变化的振幅曲线。横轴是时间(单位是秒),但这个时间不是地震发生后的绝对时间,而是地震波从地表到某个地下界面再反射/转换回地表所需的滞后时间。纵轴就是振幅,代表了来自地下界面的信号的相对强弱。一个简单的脉冲信号,可能就对应着一个清晰的地下界面,比如地壳和地幔的分界面——莫霍面。所以,当我们得到一个台站的接收函数后,最直观的应用就是:看看这条曲线上在什么时间点出现了明显的“鼓包”或脉冲,然后结合一个大概的地下速度模型,就能把这个时间转换成深度,从而知道在台站下方多深的地方存在一个明显的波速变化界面。
这里必须提一下接收函数方法赖以成立的两个核心假设,这也是理解其能力和局限性的关键。第一,我们假设传到台站的地震波可以近似看作平面波。这就像假设太阳光平行照射到地面,对于远距离的地震(震中距大于30度)和区域性的地下结构研究,这个假设通常是合理的。第二,我们假设在垂直(Z)分量上记录的主要是P波能量,在径向(R,指向震源的方向)分量上记录的主要是S波能量。这个假设是我们能够进行信号分离和反褶积的基础。当然,真实情况要复杂得多,但正是基于这些合理的简化,我们才得以用一个相对简洁的模型来窥探地球内部。
2. 从理论到代码:动手获取你的第一条接收函数
理论讲得再多,不如亲手做一遍来得实在。这部分我就带你走一遍用Python和rf库处理实际数据、生成接收函数的流程。我强烈推荐你跟着操作一遍,过程中遇到的坑和解决的办法,我都会详细说明。
2.1 环境搭建与数据准备
首先,我们需要一个Python环境。我个人的习惯是使用conda创建一个独立的环境,避免包版本冲突。打开你的终端(Linux/Mac)或命令提示符/PowerShell(Windows),执行以下命令:
# 创建一个名为rf_study的新环境,指定Python版本
conda create -n rf_study python=3.9
# 激活这个环境
conda activate rf_study
接下来,安装核心的rf库及其依赖。根据官方文档,最稳妥的方式是通过conda


365

被折叠的 条评论
为什么被折叠?



