chnhdr¶
概要¶
修改指定的头段变量的值
语法¶
ChnHdr [FILE n1 n2 ...] field v [field v ...] [ALLT v]
输入¶
- FILE n1 n2
只修改内存中的指定文件的头段变量,
n
为内存中文件的文件号- field v
SAC 头段变量名及其值1
- ALLT v
将所有已定义的时间相关头段变量的值加
v
秒,同时将参考时刻减去v
秒
说明¶
关于值 v
的说明:
头段变量的类型和值的类型必须匹配;
对于有内部空格的字符串要用单引号括起来;
逻辑型头段变量的取值为
TRUE
或FALSE
,YES
或NO
也可以接受对于相对时间头段变量(
B
、E
、O
、A
、F
、Tn
),v
可以是相对参考时刻的时间偏移量(浮点型),也可以使用绝对时刻的形式GMT v1 v2 v3 v4 v5 v6
,其中v1
、v2
、v3
、v4
、v5
、v6
是GMT年、一年的第一天、时、分、秒、毫秒。如果v1
是两位整数,SAC 假定其为当前世纪,除非那个时间是未来时间,那种情况下 SAC 假定是上个世纪,最好还是用4位整数表示年。对于任意类型的头段变量,均可以设置其值为
undef
,使头段变量回到未定义状态
该命令允许你修改指定的一个或多个文件的头段变量值。在未指定文件号的情况下,则对内存中的所有文件进行操作。要将内存中修改后的头段覆盖磁盘文件的头段,需要使用 write 或 writehdr 命令,SAC 会对新值做有效性检查,不过你可以使用 listhdr 自己检查。
头段中用6个变量定义了参考时刻,这是 SAC 中唯一的绝对时刻,其它时刻都被转换成相对于参考时刻的相对时间。可以使用 ALLT v
修改参考时刻以及相对时间。参考时间被减去了 v
秒,相对时间被加上了 v
秒,这保证了数据的绝对时刻不发生改变。为了方便,你可以通过输入绝对时刻而非相对时间来改变时间偏移变量的值。绝对时刻首先被转换为相对时间,然后再存入头段中。
示例¶
修改内存中所有文件的事件经纬度、事件名:
SAC> ch evla 34.3 evlo -118.5
SAC> ch kevnm 'LA goes under'
修改第二、四个文件的事件经纬度、事件名:
SAC> ch file 2 4 EVLA 34.3 EVLO -118.5
SAC> ch file 2 4 KEVNM 'LA goes under'
设定初动到时为无定义状态:
SAC> ch a undef
假设你知道事件的GMT起始时间,你想要快速改变头段中所有的时间变量,使得发震时刻是0即参考时间为发震时刻,并且所有的相对时间根据这个时间去纠正相对值。
首先用 GMT
选项设置事件起始时间:
SAC> ch o GMT 1982 123 13 37 10 103
现在使用 listhdr 检查发震时刻 o
相对于当前参考时间的秒数:
SAC> lh o
o = 123.103
现在使用 ALLT
选项从所有的偏移时间中减去这个值,并加到参考时间上,同时需要改变描述参考时间类型的字段:
SAC> ch allt -123.103 iztype iO
注意这里的负号意味着从偏移时间中减去这个值。
更方便的做法是直接引用头段变量的值:
SAC> ch allt (0 - &1,o&) iztype IO
- 1
为了保证数据内部一致性,以下头段变量的值不可用该命令修改:
nvhdr
、npts
、nwfid
、norid
和nevid