TauP 自定义模型
文章目录
TauP 内置了常见的一维速度模型,比如 PREM、ak135、iasp91 等,这些标准速度模型
位于 TauP 软件包的 StdModels
目录下。日常科研中,这些标准速度模型是不能满足
需求的,因而需要自定义速度模型。
速度模型格式
通常,自定义的模型都是在标准模型的基础上对少量改动。所以,要想自定义模型,先要了解
TauP 模型的格式。TauP 支持两种速度模型格式: nd
和 tvel
。
tvel 格式
以 ak135 模型为例,其前 10 行的内容如下:
$ head -10 ak135.tvel
ak135 - P
ak135 - S
0.000 5.8000 3.4600 2.7200
20.000 5.8000 3.4600 2.7200
20.000 6.5000 3.8500 2.9200
35.000 6.5000 3.8500 2.9200
35.000 8.0400 4.4800 3.3198
77.500 8.0450 4.4900 3.3455
120.000 8.0500 4.5000 3.3713
165.000 8.1750 4.5090 3.3985
其中前两行是注释行,会被自动忽略,但这两行是必须的。接下来每行给定一个深度处的参数值, 两个深度之间的参数通过线性插值得到。若某个深度处有两个不同的参数值,则该深度处是一个 速度界面,比如上面的几行中 20 和 35 都是速度界面,其余深度则不是。
nd 格式
以 PREM 模型为例,其前 10 行的内容如下:
$ head -10 prem.nd
0.00 5.80000 3.20000 2.60000 1456.0 600.0
15.00 5.80000 3.20000 2.60000 1456.0 600.0
15.00 6.80000 3.90000 2.90000 1350.0 600.0
24.40 6.80000 3.90000 2.90000 1350.0 600.0
mantle
24.40 8.11061 4.49094 3.38076 1446.0 600.0
40.00 8.10119 4.48486 3.37906 1446.0 600.0
60.00 8.08907 4.47715 3.37688 1447.0 600.0
80.00 8.07688 4.46953 3.37471 195.0 80.0
115.00 8.05540 4.45643 3.37091 195.0 80.0
与 tvel 格式类似,也是每行指定一个深度处的参数值。两个深度之间的参数通过线性插值得到。 若某个深度处有两个不同的参数值,则该深度处是一个速度界面。不同之处在于, nd 格式中没有 前两列注释行,且有专门的行来指定地球内部的重要界面:Moho、CMB 和 ICB。
微调模型
假定要以 PREM 模型为基础来自定义模型。首先将标准 PREM 模型 prem.nd
复制一份到
工作目录,并重命名为 model1.nd
。直接执行如下命令就可以计算新模型下的震相走时。
$ taup_time -mod model1 -ph p,P,Pn -h 5 -km 200
Model: model1
Distance Depth Phase Travel Ray Param Takeoff Incident Purist Purist
(deg) (km) Name Time (s) p (s/deg) (deg) (deg) Distance Name
-----------------------------------------------------------------------------------
1.80 5.0 P 29.09 13.657 45.47 45.43 1.80 = P
1.80 5.0 Pn 29.09 13.657 45.47 45.43 1.80 = Pn
1.80 5.0 P 31.60 16.312 58.38 58.30 1.80 = P
1.80 5.0 P 31.75 16.187 57.67 57.60 1.80 = P
1.80 5.0 p 34.48 19.158 0.00 87.84 1.80 = p
1.80 5.0 P 34.73 18.961 81.80 81.50 1.80 = P
若 -mod
后的参数没有以 .nd
或 .tvel
结尾,则命令会首先到标准模型中找,若找不到则到当前
目录下找。
若 -mod
后的参数以 .nd
或 .tvel
结尾,则命令只会在当前目录下寻找模型文件。所以,在使用
自定义的模型时还是建议加上后缀比较好。
接下来就是修改模型了,基本上不乱改都不会出问题。
加速计算
修改完模型后,TauP 中的所有命令就都可以使用这个模型了。如果你需要多次调用 TauP 来计算自定义模型 下的震相走时,你会发现,自定义的模型算走时总是比标准模型算的要慢。
出现这个现象是因为,TauP 已经针对每个标准模型计算了其对应的 tau 表。这个表的计算量很大,但只与模型 有关,与震中距、震源深度等都无关。因而先把这个表计算出来,则可以实现走时计算的加速。
计算表的方式也很简单:
$ taup_create -nd model1.nd
$ taup_time -mod model1.taup -ph p,P,Pn -h 5 -km 200
taup_create
命令会生成一个后缀为 .taup
的二进制文件,这个文件可以直接在命令中使用,如上面
的第二个命令所示。
文章作者 SeisMan
上次更新 2016-05-21