加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

SAC文件格式

(2011-07-27 16:57:55)
标签:

sac

文件

格式

教育

概述:
这一部分讨论SAC数据文件的内容,描述文件的二进制而ASCII格式以及SAC头段的详细情况。目前SAC可以操作任意endian的二进制文件,即big-endian的系统(Sun Solaris,Mac PC)能够读取little-endian系统(Linux、Mac i686、Cygwin)写的SAC文件,反过来也如此,因而SAC文件在各个系统上是通用的。
每个信号储存在磁盘上单独的SAC文件中,这些文件包含一个固定长度的头段区以及一个或两个数据区。头段区包含了浮点型、整型、逻辑型以及字符型变量。对于等采样间隔的数据文件在头段中可以包含了自变量的最小值、最大值以及采样间隔,因而只需要一个包含因变量的数据区。对于非等间隔数据或者频谱数据则包含两个数据区,前者的两个数据区分别为因变量和自变量(注意顺序),后者的两个数据区包含振幅和相位或者实部和虚部。

SAC二进制格式:
这是最常用的SAC文件格式,它可以被SAC自己(READ和WRITE)以及子程序库(RSAC1,RSAC2,WSAC1,WSAC2,WSAC0)使用。整个头段长度为158个字(每字32位),后跟数据区。为了能够快速读取数据文件的一小部分(可以使用CUT命令),这些文件也有一个长度为128个32位字的物理记录,并被打开用于直接访问(不知这句话为何意~)。
SAC二进制文件结构
---------------------------------
============= =========== ===================
头段区          第一数据区     第二数据区(可选)
============= =========== ===================
起始字: 0       起始字:158   起始字:158+NPTS
长度(字): 158   长度:NPTS   长度: NPTS
内容见下表       -因变量      -自变量(非等间隔数据)
           -振幅        -相位
           -实部        -虚部
============= =========== ===================

SAC二进制头段:
下表展示了SAC文件的头段内容,Word和Type两列分别给出了那一行的头段变量的起始字以及变量类型。变量类型的说明如下:
==== ======== ======== ==================================
类型  数据类型   未定义值    描述
==== ======== ======== ==================================
   浮点型    -12345.0  单精度
   整型      -12345    变量名以N开头
   枚举型    -12345    变量名以I开头,在有限个整数值中取值,每
            个值有特定的名字,每个值代表特定的情形,
            子程序使用与之等价的字母数据型名称
   逻辑型    FALSE     变量名以L开头,值取TRUE或FALSE.
   字符型   "-12345.." 变量名以K开头,长为8或16个字符
   辅助型              头段中不存在,由其他变量导出
==== ======= ========== =================================
如果变量名为INTERNAL,则意味着该变量为SAC内部变量,用户不需要对其操作;如果变量名为UNUSED代表这个变量暂时没有使用(为以后占位~),这些变量值目前没有任何意义,可称之为未定义变量。对于某一类型的变量,以上表中类似于-12345之类的数据表明该变量未定义。

下表所示为SAC的头段变量,一般来说每行有5个字:
======= ======= ======== ======== ======== ======= ========
Word    Type    NAMES
======= ======= ======== ======== ======== ======= ========
                DELTA       DEPMIN   DEPMAX   SCALE   ODELTA
                                                INTERNAL
10                 T0          T1       T2       T3      T4
15                 T5          T6       T7       T8      T9
20                          RESP0    RESP1    RESP2   RESP3
25                 RESP4    RESP5    RESP6    RESP7   RESP8
30                 RESP9    STLA     STLO     STEL    STDP
35                 EVLA     EVLO     EVEL     EVDP    MAG
40                 USER0    USER1    USER2    USER3   USER4
45                 USER5    USER6    USER7    USER8   USER9
50                 DIST     AZ       BAZ      GCARC   INTERNAL
55                 INTERNAL DEPMEN   CMPAZ    CMPINC  XMINIMUM
60                 XMAXIMUM YMINIMUM YMAXIMUM UNUSED  UNUSED
65                 UNUSED   UNUSED   UNUSED   UNUSED  UNUSED
70                 NZYEAR   NZJDAY   NZHOUR   NZMIN   NZSEC
75                 NZMSEC   NVHDR    NORID    NEVID   NPTS
80                 INTERNAL NWFID    NXSIZE   NYSIZE  UNUSED
85                 IFTYPE   IDEP     IZTYPE   UNUSED  IINST
90                 ISTREG   IEVREG   IEVTYP   IQUAL   ISYNTH
95                 IMAGTYP  IMAGSRC  UNUSED   UNUSED  UNUSED
100            UNUSED   UNUSED   UNUSED   UNUSED  UNUSED
105            LEVEN    LPSPOL   LOVROK   LCALDA  UNUSED
110            KSTNM    KEVNM*
116            KHOLE    KO       KA
122            KT0      KT1      KT2
128            KT3      KT4      KT5
134            KT6      KT7      KT8
140            KT9      KF       KUSER0
146            KUSER1   KUSER2   KCMPNM
152            KNETWK   KDATRD   KINST
======= ======= ======== ======== ======== ======= ========
其中KEVNM为16字符(4字)长,其他K类型的变量为8字符(2字)长。

SAC的ASCII格式头段:
与二进制文件是完全等价的,只是一个是给人看的,一个是给机器看到。
======= ======== ======== ======== ======== ====== =========
行号      格式     NAMES
======= ======== ======== ======== ======== ====== =========
01      (5G15.7) DELTA    DEPMIN   DEPMAX   SCALE  ODELTA
02      (5G15.7) B                        INTERNAL
03      (5G15.7) T0       T1       T2       T3     T4
04      (5G15.7) T5       T6       T7       T8     T9
05      (5G15.7) F        RESP0    RESP1    RESP2  RESP3
06      (5G15.7) RESP4    RESP5    RESP6    RESP7  RESP8
07      (5G15.7) RESP9    STLA        STLO     STEL   STDP
08      (5G15.7) EVLA     EVLO     EVEL     EVDP   MAG
09      (5G15.7) USER0    USER1    USER2    USER3  USER4
10      (5G15.7) USER5    USER6    USER7    USER8  USER9
11      (5G15.7) DIST     AZ       BAZ      GCARC  INTERNAL
12      (5G15.7) INTERNAL DEPMEN   CMPAZ    CMPINC XMINIMUM
13      (5G15.7) XMAXIMUM YMINIMUM YMAXIMUM ADJTM  UNUSED
14      (5G15.7) UNUSED   UNUSED   UNUSED   UNUSED UNUSED
15      (5I10)   NZYEAR   NZJDAY   NZHOUR   NZMIN  NZSEC
16      (5I10)   NZMSEC   NVHDR    NORID    NEVID  NPTS
17      (5I10)   NSPTS       NWFID    NXSIZE   NYSIZE UNUSED
18      (5I10)   IFTYPE   IDEP        IZTYPE   UNUSED IINST
19      (5I10)   ISTREG   IEVREG   IEVTYP   IQUAL  ISYNTH
20      (5I10)   IMAGTYP  IMAGSRC  UNUSED   UNUSED UNUSED
21      (5I10)   UNUSED   UNUSED   UNUSED   UNUSED UNUSED
22      (5I10)   LEVEN    LPSPOL   LOVROK   LCALDA UNUSED
23      (A8,A16) KSTNM    KEVNM             
24      (3A8)    KHOLE    KO        KA         
25      (3A8)    KT0      KT1      KT2         
26      (3A8)    KT3      KT4      KT5         
27      (3A8)    KT6      KT7      KT8         
28      (3A8)    KT9       KF       KUSER0         
29      (3A8)    KUSER1   KUSER2   KCMPNM         
30      (3A8)    KNETWK   KDATRD   KINST         
======= ======== ======== ======== ======== ====== =========
是否找不到一个ASCII格式的SAC文件看看里面的内容?找不到那就自己生成一个。
    SAC>fg seismogram
    SAC>w alpha temp
遇见不懂的命令记得随时help一下,另外可以使用convert命令实现文件格式的转换,但是这个命令即将被淘汰了~找个文本编辑器,打开temp文件,看看SAC文件的内容,对着上表以及下表了解每一个变量的含义,也可以思考一下定义这些变量的意义以及可能如何使用他们。

头段变量说明:
========= ===== =============================================================
Name      Type  Description
========= ===== =============================================================
NPTS         每个数据分量的点数。[必须]
DEPMIN       因变量最小值。
DEPMAX       因变量最大值。
DEPMEN       因变量平均值。
DELTA        等间隔采样点之间的增量(标称值)。[必须]
ODELTA       观测到的采样点增量,如果其不等于DELTA则有值  
NZYEAR       GMT年,文件基准时间
NZJDAY       GMT儒略日,此处儒略日大致相当于该日一年中的第多少天,比月、日少用一个变量
NZHOUR       GMT时
NZMIN        GMT分
NZSEC        GMT秒
NZMSEC       GMT毫秒
NZDTTM       GMT时间数组,不在头段中,用于子程序读取SAC文件.该数据包含了上面6个变量
KZDATE       不在头段中,字母数字格式的GMT基准日期,由NZYEAR和NZJDAY导出
KZTIME       不在头段中,字母数字格式的GMT基准时间,由NZHOUR, NZMIN, NZSEC和NZMSEC导出  
           自变量起始值(相对参考时间的秒数)。[必须]
           自变量结束值(相对参考时间的秒数)。[必须]
           事件发生时间(相对参考时间的秒数)*
KO           事件发生时间标志
IZTYPE       等效基准时间
                 - IUNKN (未知)
                 - IB (文件开始时间)
                 - IDAY (基准GMT的午夜)
                 - IO (事件发生时间)
                 - IA (初动到时)
                 - ITn (用户自定义的读取时间Tn, n=0,9)
IDEP         因变量类型:
                 - IUNKN (未知)
                 - IDISP (位移:nm)
                 - IVEL (速度:nm/sec)
                 - IVOLTS (速度:volts)
                 - IACC (加速度:nm/sec/sec)
SCALE        因变量比例因子放大系数[目前未使用]
NVHDR        头段版本号,目前为6,对于老的SAC文件(NVHDR>6)在读入SAC时会自             动更新。[必须]
IFTYPE       文件类型[必须]:
                 - ITIME {时间序列文件}
                 - IRLIM {频谱文件--实虚部格式}
                 - IAMPH {频谱文件--振幅相位格式}
                 - IXY {一般的x-y数据}
                 - IXYZ {一般的XYZ(3-D)文件}
LEVEN        若为等间隔则为真。[必须]
========= ===== =============================================================
关于SAC时间的说明:
SAC头段中与时间有关的变量很多,NZYEAR, NZJDAY, NZHOUR, NZMIN, NZSEC, NZMSEC六个变量定义了某年某日的某个时刻,一般用与之等效的KZDATE和KZTIME来表示,这个时间只是一个参考(基准)时间,你可以任意设置,通常其为第一个数据点所对应的时间,但是也可以为事件的发生时间、某个午夜或你的生日。所有的其他时间(如B、E、O等等)都是相对于这个时间的秒数,根据基准时间以及各个时间变量的相对值即可以确定该数据中任意时刻的绝对时间。关于SAC如何操控时间需要理解~
与震相有关的变量:
===== ===== =================================================================
Name  Type  Description
===== ===== =================================================================
       初动到时(相对参考时间的秒数)
KA       初动到时标志
       事件结束时间(相对参考时间的描述,注意于文件结束时间的区别)
KF       事件结束标志
Tn       用户定义的时间,在拾取震相时使用,n = 0-9(相对参考时间的秒数)
KT{n} K     用户定义的时间标志, n = 0-9.
===== ===== =================================================================
与仪器有关的变量:
===== ===== =================================================================
Name  Type  Description
===== ===== =================================================================
KINST K     记录仪器名称
IINST I     记录仪器类型[未使用]
RESPn F     仪器响应参数,n=0,9. [未使用]
===== ===== =================================================================
与台站有关的变量:
======= ===== ===============================================================
Name    Type  Description
======= ===== ===============================================================
KNETWK     地震台网名
KSTNM      台站名
ISTREG     台站地理区域[未使用]
STLA       台站纬度(度,北为正)
STLO       台站经度(度,东为正).
STEL       台站高程(m). [未使用]
STDP       台站相对地表深度(m). [未使用]
CMPAZ      分量方位角(从北开始顺时针度数).
CMPINC     分量入射角(从垂直开始的度数).
KCMPNM     分量名称
KSTCMP     台站分量,由KSTNM, CMPAZ和CMPINC导出
LPSPOL     如果台站分量为正极性则为真(左手规则)
======= ===== ===============================================================
与事件有关的变量:
========= ===== =============================================================
Name      Type  Description
========= ===== =============================================================
KEVNM        事件名
IEVREG       事件地理区域[未使用]
EVLA         事件纬度(度,北为正)
EVLO         事件经度(度,东为正)
EVEL         事件高程(m). [未使用]
EVDP         事件相对地表深度(m). [未使用]
MAG          事件震级
IMAGTYP      震级类型:
                 - IMB (Bodywave Magnitude)
                 - IMS (Surfacewave Magnitude)
                 - IML (Local Magnitude)
                 - IMW (Moment Magnitude)
                 - IMD (Duration Magnitude)
                 - IMX (User Defined Magnitude)
IMAGSRC      震级来源信息:
                 - INEIC (National Earthquake Information Center)
                 - IPDE (Preliminary Determination of Epicenter)
                 - IISC (Internation Seismological Centre)
                 - IREB (Reviewed Event Bulletin)
                 - IUSGS (US Geological Survey)
                 - IBRK (UC Berkeley)
                 - ICALTECH (California Institute of Technology)
                 - ILLNL (Lawrence Livermore National Laboratory)
                 - IEVLOC (Event Location (computer program) )
                 - IJSOP (Joint Seismic Observation Program)
                 - IUSER (The individual using SAC2000)
                 - IUNKNOWN (unknown)
IEVTYP       事件类型:
                 - IUNKN (未知)
                 - INUCL (核爆事件)
                 - IPREN (核爆前事件)
                 - IPOSTN (核爆后事件)
                 - IQUAKE (地震)
                 - IPREQ (前震)
                 - IPOSTQ (余震)
                 - ICHEM (化学爆炸)
                 - IQB (Quarry or mine blast confirmed by quarry)
                 - IQB1 (Quarry/mine blast with designed shot
                   info-ripple fired)
                 - IQB2 (Quarry/mine blast with observed shot
                   info-ripple fired)
                 - IQBX (Quarry or mine blast - single shot)
                 - IQMT (Quarry/mining-induced events: tremors
                   and rockbursts)
                 - IEQ (Earthquake)
                 - IEQ1 (Earthquakes in a swarm or aftershock sequence)
                 - IEQ2 (Felt earthquake)
                 - IME (Marine explosion)
                 - IEX (Other explosion)
                 - INU (Nuclear explosion)
                 - INC (Nuclear cavity collapse)
                 - IO (Other source of known origin)
                 - IL (Local event of unknown origin)
                 - IR (Regional event of unknown origin)
                 - IT (Teleseismic event of unknown origin)
                 - IU (Undetermined or conflicting information)
                 - IOTHER (Other)
NEVID        Event ID (CSS 3.0)
NORID        Origin ID (CSS 3.0)
NWFID        Waveform ID (CSS 3.0)
KHOLE        核爆事件的孔眼标志
DIST         事件台站距离,即震中距(km).
AZ           事件到台站的方位角(度).
BAZ          台站到事件的方位角(度).
GCARC        台站到事件的大园弧长,即另一种震中距(度).
========= ===== =============================================================
其它变量:
========= ===== =============================================================
Name      Type  Description
========= ===== =============================================================
LCALDA       如果DIST, AZ, BAZ 和 GCARC可以由台站和事件的坐标计算出来则为真
IQUAL        数据质量[未使用]:
                 - IGOOD (Good data)
                 - IGLCH (Glitches)
                 - IDROP (Dropouts)
                 - ILOWSN (Low signal to noise ratio)
                 - IOTHER (Other)
ISYNTH       合成数据标志[未使用]:
                 - IRLDTA (Real data)
                 - ????? (Flags for various synthetic seismogram codes)
KDATRD       数据被读入计算机的日期
USER{n}      用户定义变量存储区, n = 0,9.
KUSER{n}     用户定义变量存储区,  n = 0,2.
LOVROK       如果文件可覆盖则为真,类似于写权限
NXSIZE       频谱长度(限于谱文件)
NYSIZE       频谱宽度(限于谱文件)
XMINIMUM     X的最小值(限于谱文件)
XMAXIMUM     X的最大值(限于谱文件)
YMINIMUM     Y的最小值(限于谱文件)
YMAXIMUM     Y的最大值(限于谱文件)
========= ===== =============================================================
枚举类型头段取值:
这些枚举头段值在头段中以整型存储,如下表所示:
======== =====
Name     ID
======== =====
itime    01      
irlim    02      
iamph     03      
ixy      04
iunkn     05    
idisp     06    
ivel     07    
iacc     08
ib     09    
iday     10    
io     11    
ia     12
it0     13    
it1     14    
it2     15    
it3     16
it4     17    
it5     18    
it6     19    
it7     20
it8     21    
it9     22    
iradnv     23    
itannv     24
iradev     25    
itanev     26    
inorth     27    
ieast     28
ihorza     29    
idown     30    
iup     31    
illlbb     32
iwwsn1     33    
iwwsn2     34    
ihglp     35    
isro     36
inucl     37    
ipren     38    
ipostn     39    
iquake     40
ipreq     41    
ipostq     42    
ichem     43
iother     44
igood     45
iglch     46
idrop     47
ilowsn     48
irldta     49
ivolts     50    
ixyz     51    
imb     52
ims     53
iml     54
imw     55
imd     56
imx     57
ineic     58
ipde     59
iisc     60
ireb     61
iusgs     62
ibrk     63
icaltech 64
illnl     65
ievloc     66
ijsop     67    
iuser     68
iunknown 69    
iqb     70    
iqb1     71    
iqb2     72
iqbx     73    
iqmt     74    
ieq     75    
ieq1     76
ieq2     77    
ime     78    
iex     79    
inu     80
inc     81    
io     82    
il     83    
ir     84
it     85    
iu     86
======== =====

----------------------------------------------------------------------
翻译自sac/aux/help/user_man/file_format
2011-07-27

0

阅读 收藏 喜欢 打印举报/Report
前一篇:SAC用户指南
后一篇:SAC分析功能
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有