✍️ 朱邓达  •  🗓️ 2026-09-16 (创建时间)

lamb

简介:

组合三类 Lamb 闭合解,直接计算均匀弹性半空间中的动态全波解

语法

grt lamb (点源) -Hvp/vs/rho -Nnt/dt -Dsdepsrc -S[u]scale -Ooutdir ( -Rdist -Aazimuth -Drdeprcv | -Qfile | -Ufaultparam ) [ -Ffn/fe/fz | -Mstrike/dip[/rake] | -TMxx/Mxy/Mxz/Myy/Myz/Mzz ] [ -Dtftype[/tfparams][+ddelay] ] [ -E[p]t0[/v0] ] [ -Iodr ] [ -Jodr ] [ -n ] [ -e ] [ -s ] [ -Lphases ] [ -Pnthreads ] [ -h ]

grt lamb (有限断层) -Hvp/vs/rho -Nnt/dt -Cfaultparam -Ooutdir ( -Rdist -Aazimuth -Drdeprcv | -Qfile | -Ufaultparam ) [ -Dtftype[/tfparams][+ddelay] ] [ -E[p]t0[/v0] ] [ -Iodr ] [ -Jodr ] [ -e ] [ -s ] [ -Lphases ] [ -Pnthreads ] [ -h ]

描述

调用 lamb 模块时,需要确定以下五类信息:

  1. 介质与采样:-H 指定均匀半空间参数,-N 指定采样点数和时间间隔,无需格林函数库

  2. 震源位置:点源位于水平原点,必须用 -Ds 指定深度;有限震源用 -C 读取断层文件

  3. 台站位置:用 -R/-A/-Dr 指定一个接收点,三个选项都需设置; 或用 -Q 读取任意点列表,或用 -U 读取有限接收断层,三种方式选其一

  4. 震源机制与强度:点源用 -S 设置强度,机制可选 -M、-F 或 -T,默认爆炸源; 有限震源由 -C 提供位置、机制和强度,不能再设置 -Ds/-S/-M/-F/-T

  5. 输出:-O 指定 SAC 输出目录,-n 选择 ZNE 分量,-e 增加位移空间导数; 有限震源始终输出 ZNE

所有坐标共用一个水平原点。 模块根据源点和接收点深度自动选择 Lamb 闭合解:两点都在自由表面时使用第一类解, 只有一个点位于地下时使用第二类解,两点都位于地下时使用第三类解。 所有源台组合的水平距离都须大于零。 两点都在自由表面时仅支持单力源 -F;地表单力源且所有接收点都在地表时, -e 被忽略。

位移单位为 cm,默认 Z 垂直向上,R 径向向外,T 沿 R 顺时针旋转 90°, N、E 分别为北向、东向。

输出目录按接收点指定方式组织,syn 模块与 lamb 模块使用相同规则:

  • 极坐标单点 (-R 与 -A):保存为 {outdir}/{component}.sac

  • 接收文件 (-Q 或 -U):保存为 {outdir}/{index}_{coord_N}_{coord_E}_{deprcv}/{component}.sac

SAC 头段保存实际接收坐标及 -Q、-U 提供的接收断层形态,供 sproj 模块使用。

可用 -D 设置震源时间函数,-E 调整记录起点,SAC 头段 t0/t1 记录最早 P、S 初至。 本模块使用线性卷积,并裁剪到输出时窗,须使时窗覆盖所需震相和卷积尾部。

必选选项

-Hvp/vs/rho

均匀半空间参数。vp 和 vs 的单位为 km/s,rho 的单位为 g/cm3。

-Nnt/dt

最小输出采样点数 nt 和采样间隔 dt (s)。默认从发震时刻开始记录。 震源过程(含破裂延迟)较长时会自动延长记录,所有接收点的采样点数一致。

-S[u]scale

放大系数 scale ,作用在合成结果上。

  • 对于爆炸源、剪切源、张裂源和矩张量源,scale 即标量地震矩,单位为 dyne·cm。

  • 对于单力源, scale 单位为 dyne 。

  • 由于标量地震矩公式中 \(M_0 = \mu\Sigma D\) 包含震源处的 \(\mu\) , 这里为了方便设置参数,用户可以使用 -Su 表示震源处的 \(\mu\) , 而 scale 就仅需设置 \(\Sigma D\) ,即 面积 x 滑动距离(或张裂距离),单位 cm3。

-Ooutdir

输出目录名,不存在时自动新建。已有同名文件会被覆盖。

可选选项

-Dsdepsrc

点源的震源深度 (km),允许取 0。点源模式必须设置,使用 -C 时不能设置。

-Drdeprcv

单个接收点的深度 (km),允许取 0。使用 -Q、-U 时不能设置。

-Rdist

接收点相对水平原点的距离 (km),须为正数。使用 -Q、-U 时不能设置。

-Aazimuth

接收点相对水平原点的方位角,单位为 °,北向为 0°,取值范围为 [0, 360]。 使用 -Q、-U 时不能设置。

-Qfile

从 ASCII 文件读取任意接收点,每行依次为北向坐标、东向坐标和深度,单位为 km。 可在其后增加走向、倾角和滑动角三列,单位为 °,供后续应力投影使用。 以 # 开头的行为注释,所有数据行须统一使用三列或六列。 深度须非负;走向、倾角和滑动角的范围分别为 [0, 360]°、[0, 90]° 和 [-180, 180]°。 各接收点按文件中的行顺序编号,索引从 0 开始。

-Ufaultparam

从 sCoulomb 格式的有限断层文件读取接收断层,仅支持 Kode=100。 走向、倾角和滑动角随结果保存,供后续应力投影使用;未定义滑动角时,须在投影时补充。

追加 +idL/dW,以正尺寸对断层进行剖分,单位为 km,每个子断层中心作为一个接收点。 dL 为沿走向尺寸,dW 为沿倾向尺寸。 省略 +i 或设置 +i0/0 时,每条断层中心作为一个接收点。

-Cfaultparam

传入 sCoulomb 格式的有限断层。 动态合成可以为每条断层设置破裂函数和延迟,全局 -D 会覆盖逐行设置。

faultparam 可写成 path+idL/dW,例如 faults.inp+i1/1。 dL 为沿走向的子断层尺寸 (km),dW 为沿倾向的子断层尺寸 (km),须同时为正数或同时为零。 正尺寸用于继续剖分;+i0/0 表示每条矩形记录以整块中心的点源代表,源强按完整面积加权。 Kode=400/500 始终作为点源,不参与剖分。

  • syn 模块和 static_syn 模块:省略 +i 时,两个尺寸均取库中震中距、 震源深度和接收深度采样间隔的最小正值

  • lamb 模块:矩形断层必须显式指定 +i

  • okada 模块:矩形断层直接计算解析解,不能附加 +i

剖分从顶边起点开始,先沿走向、再沿倾向排列子断层,末块使用剩余尺寸。 每个子断层以其实际中心位置的点源代表,源强按实际面积加权后叠加。

-Ffn/fe/fz

设置单力源参数,每个方向的力将乘上 -S 中定义的放大系数。关于 z 方向,详见 Warning 。

  • fn - 北向力

  • fe - 东向力

  • fz - 垂直向下力

-Mstrike/dip[/rake]

设置剪切源/张裂源参数,角度单位为 °

  • strike - 断层走向, 0~360

  • dip - 断层倾角, 0~90

  • rake - 滑动角, -180~180 [不指定 rake 即设置张裂源]

-TMxx/Mxy/Mxz/Myy/Myz/Mzz

设置矩张量源的 6 个分量,其中下标代表 x (北向),y (东向),z (向下)。 每个分量均将乘以 -S 指定的 scale。 关于 z 方向,详见 Warning 。

-Dtftype[/tfparams][+ddelay]

将合成结果卷积时间函数。以下震源时间函数均使用面积归一化:

  • -Di - 脉冲信号(默认)

  • -Dp/t0 - 抛物波,t0 为持续时间(s),例如 -Dp/1.3

  • -Dt/t1/t2/t3 - 梯形波,三个参数分别表示上升段、平台段、下降段的时长,单位为 s。 各段时长非负,总时长大于零,例如

    • -Dt/0.1/0.1/0.2

    • -Dt/0.4/0/0.2 (退化为三角波)

    • -Dt/0/0.5/0 (退化为矩形波)

  • -Dc/t1/t2 - 非对称余弦波(AsymmetricCosine), t1 为上升段时长,t2 为下降段时长,单位为 s,均大于零,例如 -Dc/0.5/1.5。

  • -D0/file - (实验性质)自定义时间函数,文件 file 支持一列振幅或两列时间(s)、振幅, 两列输入会线性插值到采样间隔 dt。程序会对自定义时间函数自动进行面积归一化。

另支持 -Dr/f0 卷积 Ricker 子波,f0 为主频(Hz), 采用解析峰值 1 定标,不做面积归一化。

追加 +ddelay 可设置非负延迟,单位为 s,例如 -Dc/1.5/2.5+d4.0。

在显式指定时间函数时,在输出根目录生成 sig.sac,其起点为 0,长度包含延迟。 点源保存未乘源强的时间函数;有限断层震源保存总标量矩率(dyne·cm/s)。 时间积分、微分选项不改变 sig.sac。

Source Code

../_images/2e3e70abe61640fd4bedb46e1847a63fb656b989563ae414a50e504065b52b77.png

使用 -D 不同参数生成的时间函数

-E[p]t0[/v0]

设置输出记录的起点,最终取最近的采样时刻,默认起点为 0:

  • -Et0:起点为 t0 (s)

  • -Et0/v0:起点为 \(t_0+d_{\min}/v_0\), \(d_{\min}\) 为有效子源到当前接收点的最短直线距离(含深度差), v0 为参考速度 (km/s)

  • -Ept0:起点为当前接收点的最早 P 初至(含破裂延迟)加 t0,t0 须为负数

-Iodr

对波形做 odr 次时间积分,例如 -I1 得到阶跃型(step-like)位移。

-Jodr

对波形做 odr 次时间微分,例如 -J1 得到速度记录。

-Lphases

仅保留指定震相项,用逗号分隔 P、S、R、PP、SS、PS、SP 和 sPs。 可用震相由每个源台对的位置决定:两点都在地表时为 P/S/R; 地下源、地表接收时为 P/S/SP,地表源、地下接收时为 P/S/PS; 两点都在地下时为 P/S/PP/SS/PS/SP/sPs。 不支持的震相会被忽略,没有有效震相时输出全零波形。 该选项不改变 SAC 头段的几何初至标记。

-Pnthreads

多线程数,默认使用全部线程。

-n

将输出分量设置为 ZNE,默认为 ZRT。注意本模块使用小写 -n。

-e

同时计算位移空间导数,文件名在分量名前增加导数方向前缀, 例如 zN.sac 表示北向位移对接收点 z 坐标的偏导。 ZRT 使用 z/r/t 前缀,角向项为 \(r^{-1}\partial_\theta\); ZNE 使用 z/n/e 前缀,z 向上。未进行时间积分或微分时,导数单位为 1。

-s

静默输出,不在终端打印参数和进度条。

-h

打印帮助文档。

示例