✍️ 朱邓达  •  🗓️ 2026-08-17 (创建时间)

okada

简介:

使用 Okada 均匀半空间解析解计算静态位移及其空间导数

Okada 解是均匀弹性半空间中位错源产生静态变形的闭合解析解。 本模块的实现参考 NIED 的 DC3D0/DC3D 程序说明, 支持埋藏点源,并可通过 sCoulomb 格式的有限断层文件输入断层。 关于解的背景和 PyGRT 的计算流程,详见 Okada 解。

语法

grt okada (点源) -Hvp/vs/rho -Dsdepsrc -S[u]scale -Ooutgrid ( -Xx1/x2/dx -Yy1/y2/dy -Drdeprcv | -Qfile | -Ufaultparam ) [ -Mstrike/dip[/rake] ] [ -N ] [ -e ] [ -s ] [ -h ]

grt okada (有限断层) -Hvp/vs/rho -Cfaultparam -Ooutgrid ( -Xx1/x2/dx -Yy1/y2/dy -Drdeprcv | -Qfile | -Ufaultparam ) [ -N ] [ -e ] [ -s ] [ -h ]

描述

okada 模块直接计算均匀弹性半空间中的静态位移。 点源模式对应 Okada 的 DC3D0 解,矩形断层使用 DC3D 解,

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

  1. 介质:-H 指定均匀半空间参数,无需格林函数库

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

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

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

  5. 输出:-O 指定 NetCDF 输出文件,-N 选择 ZNE 分量,-e 增加位移空间导数

输出文件的全局 layout 属性区分三种接收布局:

  • grid:规则网格,结果使用 north/east 二维布局

  • points:-Q 指定的任意点列表,结果使用一维 point 维度; 若提供接收断层形态,还会保存逐点 strike、dip、rake 变量

  • faults:-U 指定的有限接收断层,结果使用一维 point 维度, 并保存断层级形态和剖分信息。nfault 为断层数量,offset 为各断层接收点的结束索引, stksize、dipsize 分别为沿走向、倾向的子断层数量

points 和 faults 均保存各点的 north、east 和 depth 坐标。

必选选项

-Hvp/vs/rho

均匀半空间参数。vp、vs 的单位为 km/s,rho 的单位为 g/cm3。 旧选项 -I 仍兼容,但会给出弃用警告,请改用 -H。

-S[u]scale

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

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

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

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

-Ooutgrid

输出网格文件,若同名文件已存在,则销毁后新建。

可选选项

-Dsdepsrc

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

-Drdeprcv

规则网格接收点的深度 (km),允许取 0。网格模式必须设置,使用 -Q、-U 时不能设置。

-Xx1/x2/dx

指定北向等距网格点 (km) 。 x1,x2 分别为最小、最大值, dx 为间隔。

-Yy1/y2/dy

指定东向等距网格点 (km) 。 y1,y2 分别为最小、最大值, dy 为间隔。

-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

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

-Mstrike/dip[/rake]

设置点源震源机制,角度单位为 °。未设置 -M 时为爆炸源;设置 strike/dip 时为张裂源; 设置 strike/dip/rake 时为双力偶源。使用 -C 时不能设置。

-N

输出的三分量为 ZNE [默认为 ZRT]。

-e

在合成位移的同时,也合成九个位移空间导数。 ZRT 输出使用前缀 z/r/t,分别表示 \(\partial_z\)、\(\partial_r\) 和 \(r^{-1}\partial_\theta\); ZNE 输出使用前缀 z/n/e,分别表示向上、北向和东向坐标的偏导。 例如 nE 表示东向位移对北向坐标的偏导。 ZRT 的角向偏导尚未包含柱坐标联络项,后续应变、旋转和应力模块会补入这些项。

-s

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

-h

打印帮助文档。

示例

详见