Why
在初次使用Mineos软件时,为保证自己操作流程的正确性,一般会与自己之前熟悉的
软件进行一个结果的对比,这就要求输入的模型一致,震源参数一致,台站位置一致等。
本文主要解决输入模型一致的问题。
AxiSEM模型文件和Mineos模型文件简介
通过观察,可以发现Mineos所使用的模型的结构与AxiSEM十分类似。下面是具体的模型
文件对比
AxiSEM
1
2
3
4
5
6
7
8
9
10
11
| # Input file for AXISEM created from prem_ani model on 07/08/2020, at 16h 44min
NAME prem_ani
ANELASTIC T
ANISOTROPIC T
UNITS m
COLUMNS radius rho vpv vsv vph vsh eta qka qmu
6371000. 2600.00 5800.00 3200.00 5800.00 3200.00 1.00000 0.57827000E+05 0.60000000E+03
6356000. 2600.00 5800.00 3200.00 5800.00 3200.00 1.00000 0.57827000E+05 0.60000000E+03
# Discontinuity 1, depth: 15.00 km
6356000. 2900.00 6800.00 3900.00 6800.00 3900.00 1.00000 0.57827000E+05 0.60000000E+03
6346600. 2900.00 6800.00 3900.00 6800.00 3900.00 1.00000 0.57827000E+05 0.60000000E+03
|
Mineos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| Anisotropic PREM
1 0 1
160 26 73 1
0. 13088.50 11262.20 3667.80 0.13277000E+04 0.84599998E+02 11262.20 3667.80 1.00000
21500. 13088.40 11262.13 3667.75 0.13277000E+04 0.84599998E+02 11262.13 3667.75 1.00000
71500. 13087.39 11261.40 3667.24 0.13277000E+04 0.84599998E+02 11261.40 3667.24 1.00000
121500. 13085.29 11259.89 3666.18 0.13277000E+04 0.84599998E+02 11259.89 3666.18 1.00000
171500. 13082.10 11257.59 3664.58 0.13277000E+04 0.84599998E+02 11257.59 3664.58 1.00000
221500. 13077.82 11254.51 3662.42 0.13277000E+04 0.84599998E+02 11254.51 3662.42 1.00000
271500. 13072.45 11250.64 3659.72 0.13277000E+04 0.84599998E+02 11250.64 3659.72 1.00000
321500. 13065.99 11245.99 3656.47 0.13277000E+04 0.84599998E+02 11245.99 3656.47 1.00000
371500. 13058.45 11240.56 3652.68 0.13277000E+04 0.84599998E+02 11240.56 3652.68 1.00000
421500. 13049.82 11234.34 3648.33 0.13277000E+04 0.84599998E+02 11234.34 3648.33 1.00000
471500. 13040.09 11227.34 3643.44 0.13277000E+04 0.84599998E+02 11227.34 3643.44 1.00000
|
可以发现,AxiSEM的输入模型有对变量含义的解释,以及对间断面的注释;而mineos则需要参考Manual或者源代码来确认模型
中每个参数的具体意义。具体解释如下:
Mineos的第2行的第1个数字取值为(1:横向各向同性(TI);0:各向同性);第2个数字与衰减有关(<=0: 不含衰减);第3个是
模型的类型(1:层状格式;0:多项式形式)
Mineos的第3行的第1个数字取值为模型的最大半径所在行数(不包括前面3行,也就是整个模型部分共多少行);第2个数字为ICB
所在的行数(不包括前3行);第3个数字为CMB所在的行数(不包括前3行);第4个数字为0则所有半径的结果都存储,为1则表示在
6330km以上以及不连续面两侧全部存储,其他位置以1 sample/km存储。
Mineos的第4行开始,每列的含义为(r, rho, vpv, vsv, qkappa, qshear, vph, vsh, eta)
模型转换
可以发现,除注释的部分外,AxiSEM 模型文件和 Mineos 十分相似,最大的特征是AxiSEM 的模型是从地表一直往下,而 Mineos则
是从地心到地表,因此,需要把整个文件在纵向上做一个reverse 变换。最简单的方法是采用一行perl语句:
1
| $ perl -e 'print reverse <>' axisem.txt > mineos.txt
|
接下来,可以用vim删除掉所有的注释行,得到一个纯数值的文件。
然后,继续观察,我们发现mineos前4列与 axisem完全一致, 后面的几列有一些位置的改变,这个可通过awk命令来调整列的顺序:
1
| $ awk '{print $1,$2,$3,$4,$8,$9,$5,$6,$7}' mineos.txt > premANIC.card
|
最后, 将mineos前面三行按照模型以及模拟的要求填好即可。不过,另外也可以写一个脚本将整个流程串起来:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #!/bin/bash
# reverse row order
perl -e 'print reverse <>' axisem.txt > tmp.txt
# remove comment lines
# grep -v '^#': remove the lines begin with #
# grep -v '^[A-Z]': remove the lines begin with [A-Z]
cat tmp.txt | grep -v '^#' | grep -v '^[A-Z]' > tmp2.txt
# change the order of columns
awk '{print $1,$2,$3,$4,$8,$9,$5,$6,$7}' tmp2.txt > mineos.card
# add comments in the begining
sed -i '1 i\Anisotropic PREM \n 1 0 1 \n 160 26 73 1' mineos.card
rm -rf tmp*.txt
|
修订历史
参考资料