:author: 朱邓达 :date: 2026-09-09 计算接收函数 ==================== .. admonition:: 本页文档示例下载 :class: tip :download:`receiver_function.tar.gz ` | 解压后进入示例目录,运行 ``bash run.sh`` 即可复现本页示例。 基于相同的广义反射透射系数矩阵方法, **PyGRT** 可计算层状模型中单位平面入射 P 或 SV 波在自由表面的接收函数。 命令行中使用 :doc:`/Module/rcvfn` 模块,Python 中对应 :meth:`PyModel1D.rcvfn() `。 具体公式详见 :doc:`/Formula/others/rcvfn`。 以下示例使用如下模型文件: .. literalinclude:: mod1 :language: text 这里为了演示两种指定入射波参数的用法,假设 + P 入射使用水平射线参数 *p* = 0.03 s/km + SV 入射使用底部半空间的 10° 入射角 .. tabs:: .. group-tab:: CLI .. literalinclude:: run.sh :language: bash :start-after: BEGIN CLI RCVFN :end-before: END CLI RCVFN 使用 **-W** 可以附加输出 Z/R 响应。 .. group-tab:: Python .. literalinclude:: run.py :language: python :start-after: BEGIN PYTHON RCVFN :end-before: END PYTHON RCVFN 设置 ``write_components=True`` 可以附加输出 Z/R 响应。 输出文件如下, .. list-table:: :header-rows: 1 :widths: 20 30 45 40 :align: center * - 入射波 - 接收函数 - 附加输出(如果有设置) - 时间参考零点 * - P - *P_rcvfn.sac* - *P_Z.sac*、*P_R.sac* - P 波到时 * - SV - *S_rcvfn.sac* - *S_Z.sac*、*S_R.sac* - S 波到时 以下结果图每个子图单独按最大绝对振幅归一化,仅用于比较波形形状; 每幅图包含三行,依次为接收函数以及 Z/R 响应。 .. figure:: P_rcvfn.svg :align: center 入射 P 波 .. figure:: S_rcvfn.svg :align: center 入射 SV 波