参考
https://seisman.github.io/SAC_Docs_zh/data-process/event-info/
https://seisman.github.io/SAC_Docs_zh/fileformat/times/#id15
时间变量
一般数据使用时刻+数据点的形式,占用存储空间较多。因此,选择一个参考时刻,其余时刻
使用与参考时刻的秒数差表示。
一般而言,选择一个特殊的时刻作为参考时刻。
SAC使用的是:
“起始相对时间 + 采样间隔 + 数据点数 + 结束相对时间” 表示。即:
“b
+ deltea
+ npts
+ e
”,但这样造成了头段变量e
的特殊性。
SAC 将震相到时(时刻)相对于参考时刻的时间差(即相对时间)保存到头段变量 o
、 a
、f
、tn
中。
参考时刻变量:nzyear
、nzjday
、nzhour
、nzmin
、nzsec
、nzmsec
相对时间:b
、e
、o
、a
、f
、tn
绝对时刻:参考时刻+相对时间
命令
listhdr
简写lh
,用于列出头段变量的值。
1 | lh 头段变量名(可以列出多个) |
chnhdr
简写ch
,用于修改头段变量的值。
1 | ch b 修改值 |
使用注意事项:
- 如果
o
、a
、f
、tn
都没有定义, 那么修改 b 值可以用于校正仪器的时间零点漂移以及时区差异。 - 如果
o
、a
、f
、tn
已经被定义, 则修改 b 值会导致与震相相关的头段变量出现错误!
修改参考时间
修改参考时间会导致除了参考时间外的其他变量都没有变化,因此造成绝对时刻发生平移。
理论上可以校正零点漂移和时区,但是由于SAC不支持智能判断时间,因此修改时区相对繁琐。
如果要校正时区,建议直接修改b
。
修改发震时刻
修改o
实现很危险,因此使用ch
命令allt
选项。
1 | SAC> r ./cdv.z |
处理大量数据时:
1 | r *.SAC |
(0 - &1,o&)
中:&1,o&
表示引用内存中第一个SAC文件的头段变量o
的值,
然后用0-o的值
得到结果。优势:不需要使用lh o
查看o
的值。
synchronize
:同步所有数据的参考时间,将内存中所有数据拥有相同的参考时刻。
使用此命令后,所有数据的o
拥有相同的值。