pssac2 使用教程
文章目录
pssac2
是 pssac
的升级版。相比于 pssac
而言增加了更多的功能,选项也更加符合 GMT 的风格。
pssac2
与 pssac
的选项之间有很多相似之处,所以本文只介绍二者之间的不同之处,读者应首先阅读《pssac 使用教程》。
GMT 标准选项
pssac2 继承了 GMT 的众多标准选项,包括:
- 必须选项:
-J -R
- 可选选项:
-B -K -O -U -P -X -Y -W -V
与 pssac
相比:
- 多了
-P
选项,使得 pssac2 命令中可以直接设置纸张方向; - pssac 中
-V
选项用于交换 X 轴和 Y 轴,pssac2 中-V
选项表示 Verbose 模式;
特有选项
pssac2
的特有选项包括:
-M -N -S -G -g -C -E -n -D -l -L -r -s -v
其中,与 pssac
功能完全相同的选项有:
-E -N -r
-v 选项
pssac 中的 -V
选项用于绘制垂直的波形,即交换了 X 轴和 Y 轴。这个功能在 pssac2 中命令为 -v
,而 -V
被用于 Verbose 模式,更符合 GMT 的风格。
-V 选项
Verbose 模式,可以多次使用 - V 选项,这样 Verbose 级别会依次增加,进而输出更多的信息。
-s 选项
有时候数据的字节序与机器的字节序不同,此时可以用 -s
选项交换数据的字节序。
-S 选项
pssac2 中 -S
选项有两种用法,一种是直接指定波形偏移量,比如 -S2
表示偏移 2 秒;一种是从 SAC 头段 usern 中读取偏移量,比如 -Su0
表示从头段 USER0 中读取偏移量。
需要注意的一点是,对于前一种情况,波形会向右偏移;而对于后一种情况,波形会向左偏移。
比如,如果 USER0 中的值为 2,则 -S2
和 -Su0
,前者将波形向左移 2 秒,后者将波形向右移 2 秒。尚不确定这是 Bug 还是 Feature。
-G 与 - g 选项
pssac 中 - G 选项的用法为 -Gr/g/b/c
,用于将振幅大于 c
的部分涂成 r/g/b
色。
pssac2 中 - G 选项的用法为 -Gr/g/b/c/t0/t1
,其中 t0/t1
表示只给该时间内的数据涂色。
pssac2 中新增了 -g
选项,用于给振幅低于 c
的部分涂色。
-M 选项
-M 选项有四种用法:
-Msize
:将波形归一化,size 的含义与 pssac 中完全相同;-Msize/alpha
:alpha 只能取正值,对波形进行几何扩散的校正;-Msize/b
:按照 JB 走时表的结果进行振幅校正;-Msize/s
:sin 函数校正,比例因子为(1/size) * sqrt(sin(gcarc))
需要注意:
- pssac2 中,-M 选项是必须的,因而 pssac2 不能绘制绝对振幅,只能绘制相对振幅。不确定是 Bug 还是 Feature。
- pssac2 中
-E
选项中t
后面必须有值,即-Ekt
是错误的,此时可以使用-Ekt-6
-C 选项
-C 选项用于截取部分数据,有四种用法
-C10/20
直接指定时间窗-Ct0/20
时间窗的起始位置使用头段变量 T0 中的值-C10/t0
时间窗的结束位置使用头段变量 T0 中的值-Ct0/t1
时间窗用头段变量 T0 和 T1 的值来指定
-n 选项
表示允许震中距为负值。
在地图上绘制波形
用 pssac 将波形画在地图上还是有些麻烦的,而 pssac2 可以很轻松地解决这个问题。
当 - J 使用的是非地理投影(比如 -JX
)时,pssac2 与 pssac 几乎没有区别。而当 - J 使用的是地理投影时,则意味着是要将波形绘制在地图上。
将波形绘制在地图上有额外的三个选项可以控制:
-L 选项
-L 选项指定图上单位长度代表的秒数。比如 -L3
表示图上 1 英寸表示 3 秒。
-l 选项
-lx/y/length/bar_length/font_size
绘制时间轴的比例尺。这个选项不确定有没有效果,因为一直没有调出来。
-D 选项
-Ddx/dy
指定了波形在地图上的额外偏移量。
示例代码
#!/bin/bash
J=M15c
R=-120/-60/30/65
PS=map.ps
psxy -J$J -R$R -T -K > $PS
pscoast -J$J -R$R -B10/10 -Ggray -K -O -A1000 >> $PS
saclst stlo stla f *.z | awk '{print $2, $3}' | psxy -J$J -R$R -Sa0.5c -Gblack -K -O >> $PS
saclst stlo stla f *.z | awk '{print $2, $3,"15 0 0 TR", $1}' | pstext -J$J -R$R -D-0.1c/-0.1c -K -O >> $PS
pssac2 -J$J -R$R -M1 -K -O -L1000 -D-0.1/0 *.z >> $PS
psxy -J$J -R$R -T -O >> $PS
默认会将波形放在台站处,也可以通过传递 sacfile X Y pen
格式的数据手动指定波形位置。
注意:
- 该脚本中使用的是 GMT4 的绘图命令;
- 若使用 GMT5 的绘图命令,会出现问题,表现为所有的波形不会出现在台站处,而是挤在左下角。出现这个问题的根本原因尚不清楚。
- pssac2 的 GMT5 版本存在严重 bug,目前(2015-09-21)无法使用;
修订历史
- 2013-08-09:初稿;
- 2015-07-19:修订稿;
- 2016-03-16:
-Ekt
会报错,必须指定 n 值;
文章作者 SeisMan
上次更新 2015-07-19