sac

官方文档:sac
简介:绘制 SAC 格式的地震波形数据

sac 模块可以读取SAC文件并绘制波形数据。

注解

sac 模块修改自原 pssac 与 pssac2,其功能类似,但语法不同。

sac 模块实现波形绘制的步骤是:

  1. 读入 SAC 文件列表
  2. 根据 -T 选项确定参考时间
  3. 根据 -C 选项和参考时间读入指定的波形数据段
  4. 根据 -F 选项对数据进行预处理
  5. 根据 -M 选项确定Y方向的缩放因子并对波形振幅进行缩放
  6. 根据 -Q 决定是否交换X和Y
  7. 根据 -E 以及其他信息确定波形在地图上的位置
  8. 根据 -W 选项绘制波形
  9. 根据 -G 选项为波形涂色

语法

gmt sac [ saclist|SACfiles ] -Jparameters -Rregion [ -Bparameters ] [ -C[t0/t1] ] [ -Ddx[/dy] ] [ -Ea|b|k|d|n[n]|u[n] ] [ -F[i][q][r] ] [ -G[p|n][+gfill][+zzero][+tt0/t1] ] [ -Msize[u][/alpha] ] [ -Q ] [ -S[i]scale[unit] ] [ -T[+tn][+rreduce_vel][+sshift] ] [ -U[stamp] ] [ -V[level] ] [ -Wpen ] [ -X[a|c|f|r][xshift[u]] ] [ -Y[a|c|f|r][xshift[u]] ] [ -hheaders ] [ -pflags ] [ -ttransp ] [ --PAR=value ]

必选选项

SACfiles
要绘制在图上的一系列SAC文件名,目前仅支持等间隔SAC数据
saclist

SAC 文件列表,每行包含一个SAC文件名及其对应的控制参数。

文件格式为:

filename [X  Y [pen]]
  • filename 是要绘制的SAC文件名
  • XY 控制SAC波形的第一个数据点在地图上的位置。若省略 XY ,则使用其默认值,否则此处指定的 XY 将具有最高优先级
    • 对于线性投影而言,X 默认是SAC文件的开始时间。使用 -T 选项会调整 X 的默认值,Y 值则由 -E 选项控制;
    • 对于地理投影而言,XY 默认是台站的经度和纬度。
  • pen 控制当前SAC波形的线条属性
-Jprojection (more …)
设置地图投影方式。
-Rxmin/xmax/ymin/ymax[+r][+uunit] (more …)
指定数据范围

可选选项

-Bparameters (more …)
设置底图边框和轴属性
-C[t0/t1]

只读取并绘制时间窗 t0t1 范围内的波形。

t0t1 均是相对于参考时间的秒数,参考时间由 -T 选项决定。若未使用 -T 选项,则使用SAC头段中的参考时间(kzdate和kztime)。

若只使用了 -C 但未指定时间窗,则 t0/t1-R 选项的 xmin/xmax 决定。

-Ddx[/dy]
使得波形偏离指定位置 dx/dy。若未指定 dy 则默认与 dx 相同。
-Ea|b|k|d|n[n]|u[n]

选择剖面类型(即Y轴类型)

  • a 方位角剖面
  • b 反方位角剖面
  • k 震中距剖面(单位 km)
  • d 震中距剖面(单位 degree)
  • n 波形编号剖面,第一个波形的编号为 n [n 默认值为0]
  • u 用户自定义剖面,SAC波形的Y位置由SAC头段变量 usern 决定 [默认使用 user0]
-F[i][q][r]

绘图之前的数据预处理

  • i 积分
  • q 平方
  • r 去均值

i|q|r 可以重复多次,比如 -Frii 会将加速度转化为位移。 i|q|r 出现的顺序决定了数据预处理的流程。

-G[p|n][+gfill][+zzero][+tt0/t1]

为波形的正/负部分涂色。

  • -G 后不接任何参数,则默认将正值部分填充为黑色
  • p|n 控制是要填充正值区域还是负值区域,重复使用 -G 选项以分别为正/负部分设置不同的填充属性
  • +gfill 设置填充色
  • +tt0/t1 只填充 t0/t1 时间范围内的波形。参考时间由 -T 选项决定。
  • +zzero 定义“零”参考线。从“零”到顶部为正值区域,从“零”到底部为负值区域
-Msize[u][/alpha]

控制Y方向的缩放。不使用的话,Y方向即为振幅

  • size[u] 将所有波形在地图上的高度缩放到 size[u],其中 u 可以取 i|c|p ,默认单位由 PROJ_LENGTH_UNIT 控制。
  • size/alpha
    • alpha 小于0,则所有波形使用相同的比例因子。比例因子由第一个波形决定,第一个波形将被缩放到 size[u]
    • alpha 等于0,则将所有波形乘以 size ,此时不允许有单位
    • alpha 大于0,则将所有波形乘以 size*r^alpha,其中 r 是以 km 为单位的距离
-Q
垂直绘制波形,即Y轴是时间,X轴是振幅
-S[i]scale[unit]

指定时间比例尺。

对于地理投影而言,即表示图上一个单位距离所代表的波形描述。其中单位 unit 可以取 c|i|p。若未指定 unit,则默认使用 PROJ_LENGTH_UNIT 所指定的单位。

scale 前加上 i 则时间比例尺的含义反过来,即 scale 表示 1秒长度的波形在图上的实际长度。

-T[+tn][+rreduce_vel][+sshift]

指定参考时间及偏移量

  • +ttmark 指定参考时间(即将所有波形沿着参考时间对齐),其中 tmark 可以取-5(b), -4(e), -3(o), -2(a), 0-9(t0-t9)
  • +rreduce_vel 设置reduce速度,单位 km/s
  • +sshift 将所有波形偏移 shift
-U[label][+c][+jjust][+odx/dy] (more …)
在图上绘制GMT时间戳logo
-V[level] (more …)
设置 verbose 等级 [c]
-Wpen
设置波形的画笔属性

-X[a|c|f|r][xshift[u]]

-Y[a|c|f|r][yshift[u]] (more …)
移动绘图原点
-h[i|o][n][+c][+d][+rremark][+rtitle] (more …)
跳过或生成指定数目的头段记录
-p[x|y|z]azim[/elev[/zlevel]][+wlon0/lat0[/z0]][+vx0/y0] (more …)
设置3D透视视角
-t[transp] (more …)
设置图层透明度(百分比)。取值范围为0(不透明)到100(全透明)
-^-
显示简短的帮助信息,包括模块简介和基本语法信息(Windows下只能使用 -
-++
显示帮助信息,包括模块简介、基本语法以及模块特有选项的说明
-? 或无参数
显示完整的帮助信息,包括模块简介、基本语法以及所有选项的说明
--PAR=value
临时修改GMT参数的值,可重复多次使用。参数列表见 gmt.conf

示例

利用 SAC 的命令 funcgen seismogram 生成了波形,想要绘制单个波形,并分别为正负部分涂色:

gmt sac seis.SAC -JX10c/5c -R9/20/-2/2 -Baf -Fr -Gp+gblack -Gn+gred -png single

利用 SAC 命令 datagen sub tel *.z 生成多个波形,将其绘制在距离剖面上:

gmt sac *.z -R200/1600/12/45 -JX15c/5c -Bx200+l'T(s)' -By5+lDegree -BWSen \
     -Ed -M1.5c -W0.5p,red -png distance_profile

利用 SAC 命令 datagen sub tel *.z 生成多个波形,将其绘制在地图上:

gmt begin map pdf
gmt sac *.z -JM15c -R-120/-40/35/65 -Baf -M1i -S300c
saclst stlo stla f *.z | gmt plot -St0.4c -Gblack -i1,2
gmt end

相关模块

meca, polar, coupe, basemap, plot