✍️ 朱邓达  •  📅 2025-04-17  •  ⚡ 2025-09-22

准备工作

PyGRT 程序包由C和Python两个编程语言的代码组成,目的是兼并高效性和便捷性。 底层复杂运算由C语言编写,编译链接成动态库 libgrt.so 供Python调用。Python通过 ctypes 库导入动态库以使用外部函数,以此兼并了C语言的高效和Python语言的便捷。

除了Python脚本式运行, PyGRT 保留传统命令行式运行C程序 grt 。 受 GMT 的启发, grt 程序对多个计算功能使用模块化管理, 可使用类似于以下格式来运行程序。每个模块可使用 -h 查看帮助。

grt <module-name> [<module-options>]

C程序的运行独立于Python,不需要Python环境,从而满足了更多计算场景。

入门部分包含一些示例与说明,可快速上手。Github主页的 example/ 文件夹中有更多示例,可在 Github Releases 中下载。

建立模型文件

../_images/mod.svg

这里的选项卡 C 不代表内部是C语言代码,而是 使用C程序 grt 。后续的选项卡沿用此设定,不再解释。

PyGRT 以如下自由格式定义模型中每层的物性参数,每列之间以空格隔开(最后两列的 Qp, Qs 可省略)

Thickness(km)    Vp(km/s)    Vs(km/s)   Rho(g/cm^3)   [Qp]   [Qs]

例如 milrow 模型(假设文本文件名为 milrow

0.2  3.4  1.7  2.3
0.6  3.7  1.9  2.4
0.5  4.2  2.1  2.4
0.5  4.6  2.3  2.5
0.7  4.9  2.8  2.6
0.5  5.1  2.9  2.7
6.0  5.9  3.3  2.7
28   6.9  4.0  2.8
0.0  8.2  4.7  3.2

备注

最后一行表示半空间,对应厚度值不会被使用。

备注

Vs 设置为 0 表示该层为液体层。