修改指定的头段变量的值
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
,使头段变量回到未定义状态
该命令允许你修改指定的一个或多个文件的头段变量值。在未指定文件号的情况下, 则对内存中的所有文件进行操作。要将内存中修改后的头段覆盖磁盘文件的头段, 需要使用 /commands/write
或 /commands/writehdr
命令,SAC 会对新值做有效性检查,不过你可以使用 /commands/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
现在使用 /commands/listhdr
检查发震时刻 o
相对于当前参考时间的秒数:
SAC> lh o
o = 123.103
现在使用 ALLT
选项从所有的偏移时间中减去这个值,并加到参考时间上, 同时需要改变描述参考时间类型的字段:
SAC> ch allt -123.103 iztype iO
注意这里的负号意味着从偏移时间中减去这个值。
更方便的做法是直接引用头段变量的值:
SAC> ch allt (0 - &1,o&) iztype IO
为了保证数据内部一致性,以下头段变量的值不可用该命令修改:
nvhdr
、npts
、nwfid
、norid
和nevid
↩