计算接收函数
本页文档示例下载
receiver_function.tar.gz |
解压后进入示例目录,运行 bash run.sh 即可复现本页示例。
基于相同的广义反射透射系数矩阵方法,
PyGRT 可计算层状模型中单位平面入射 P 或 SV 波在自由表面的接收函数。
命令行中使用 rcvfn 模块,Python 中对应 PyModel1D.rcvfn()。
具体公式详见 平面入射 P-SV 波接收函数的计算公式。
以下示例使用如下模型文件:
# H(km) Vp(km/s) Vs(km/s) rho(g/cm^3)
6.0 5.363 3.10 2.70
10.0 6.228 3.60 2.70
19.0 6.747 3.90 2.70
0.0 7.830 4.50 2.70
这里为了演示两种指定入射波参数的用法,假设
P 入射使用水平射线参数 p = 0.03 s/km
SV 入射使用底部半空间的 10° 入射角
# P 波使用水平射线参数,SV 波使用底部半空间的入射角
grt rcvfn -Mmod1 -P0.03 -TP -N500/0.1 -A5.0 -E-10 -W -OCLI_P
grt rcvfn -Mmod1 -I10/0 -TS -N500/0.1 -A5.0 -E-10 -W -OCLI_S
使用 -W 可以附加输出 Z/R 响应。
model = pygrt.PyModel1D(modelpath="mod1")
model.rcvfn(
wtype="P",
rayp=0.03,
nt=500,
dt=0.1,
output_path="PY_P",
alp=5.0,
delay=-10.0,
write_components=True,
upsampling_n=5,
)
model.rcvfn(
wtype="S",
inca=10.0,
idx=0,
nt=500,
dt=0.1,
output_path="PY_S",
alp=5.0,
delay=-10.0,
write_components=True,
upsampling_n=5,
)
设置 write_components=True 可以附加输出 Z/R 响应。
输出文件如下,
入射波 |
接收函数 |
附加输出(如果有设置) |
时间参考零点 |
|---|---|---|---|
P |
P_rcvfn.sac |
P_Z.sac、P_R.sac |
P 波到时 |
SV |
S_rcvfn.sac |
S_Z.sac、S_R.sac |
S 波到时 |
以下结果图每个子图单独按最大绝对振幅归一化,仅用于比较波形形状; 每幅图包含三行,依次为接收函数以及 Z/R 响应。
入射 P 波
入射 SV 波