Introduction | New User | Analysis | Graphics | Macros | Inline Functions |
Blackboard | Input-Output |Data Format (part 1) | Data Format (part 2) |
Appendix | Application Programmer Interface (API) | API How To
This section discusses the contents of the SAC data file,
describes the binary and alphanumeric formats of this file, and
documents the SAC header in detail.
Each signal is stored on disk in a separate SAC data file.
These files contain a fixed length header section followed by
one or two data sections.
The header contains floating point, integer, logical, and character fields.
Evenly spaced data files have only one data section which contains the
dependent variable.
Unevenly spaced data and spectral data files contain two data sections.
For unevenly spaced data, the first data section contains the dependent
variable and the second contains the independent variable.
For spectral files the first component is either the amplitude or the real
component and the second component is either the phase or imaginary component.
This is the format that you will use most often.
It is used in SAC itself(READ and WRITE commands) and in the subroutine
library (RSAC1, RSAC2, WSAC1, WSAC2, WSAC0.)
These are binary (unformatted) files so that they can be quickly
read from disk into memory.
The header is 158 32-bit words in length, followed by the data section(s).
In order to rapidly read only a small section of a data file
(see the CUT command), these files also have a physical record
length of 512 bytes (128 32-bit words) and are opened for direct-access.
There is no physical record structure.
This format is shown schematically in the following figure.
Structure of SAC Binary Data File
| HEADER SECTION | FIRST DATA SECTION | SECOND DATA SECTION* |
|---|---|---|
| start word: 0 | start word: 158 | start word: 158+NPTS |
| word length: 158 | word length: NPTS | word length: NPTS |
| contents: see table | contents:
| contents:
|
* if present
The following table shows the contents and layout of the SAC binary
data file header. The W and T columns give the beginning word
and header data type for the header variables named on that line.
These header variables and data types are described later in this
section. If the name is INTERNAL then that variable is internal
to SAC and not normally of interest to the user. If the name is
UNUSED then that variable is not currently being used. For any
given file, some of these variables will not have meaningful values.
These are refered to as ``undefined variables'' for that file.
For each data type, a special value signifies this undefined state.
They are listed in a table at the end of this section.
W
T
NAMES
0
F
DELTA
DEPMIN
DEPMAX
SCALE
ODELTA
5
F
B
E
O
A
INTERNAL
10
F
T0
T1
T2
T3
T4
15
F
T5
T6
T7
T8
T9
20
F
F
RESP0
RESP1
RESP2
RESP3
25
F
RESP4
RESP5
RESP6
RESP7
RESP8
30
F
RESP9
STLA
STLO
STEL
STDP
35
F
EVLA
EVLO
EVEL
EVDP
MAG
40
F
USER0
USER1
USER2
USER3
USER4
45
F
USER5
USER6
USER7
USER8
USER9
50
F
DIST
AZ
BAZ
GCARC
INTERNAL
55
F
INTERNAL
DEPMEN
CMPAZ
CMPINC
XMINIMUM
60
F
XMAXIMUM
YMINIMUM
YMAXIMUM
UNUSED
UNUSED
65
F
UNUSED
UNUSED
UNUSED
UNUSED
UNUSED
70
I
NZYEAR
NZJDAY
NZHOUR
NZMIN
NZSEC
75
I
NZMSEC
NVHDR
NORID
NEVID
NPTS
80
I
INTERNAL
NWFID
NXSIZE
NYSIZE
UNUSED
85
I
IFTYPE
IDEP
IZTYPE
UNUSED
IINST
90
I
ISTREG
IEVREG
IEVTYP
IQUAL
ISYNTH
95
I
IMAGTYP
IMAGSRC
UNUSED
UNUSED
UNUSED
100
I
UNUSED
UNUSED
UNUSED
UNUSED
UNUSED
105
L
LEVEN
LPSPOL
LOVROK
LCALDA
UNUSED
110
K
KSTNM
KEVNM*
116
K
KHOLE
KO
KA
122
K
KT0
KT1
KT2
128
K
KT3
KT4
KT5
134
K
KT6
KT7
KT8
140
K
KT9
KF
KUSER0
146
K
KUSER1
KUSER2
KCMPNM
152
K
KNETWK
KDATRD
KINST
KEVNM is 16 characters (4 words) long.
All other K fields are 8 characters (2 words) long.
This file is essentially the alphanumeric equivalent of the SAC
binary data file. The header section is stored on the first 30
cards. This is followed by one or two data sections. The data
is in 5G15.7 format. The following table shows the card number,
formats and names of the variables on the header section cards.
| CN | FORMAT | NAMES | ||||
|---|---|---|---|---|---|---|
| 01 | (5G15.7) | DELTA | DEPMIN | DEPMAX | SCALE | ODELTA |
| 02 | (5G15.7) | B | E | O | A | 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 | (5110) | NZMSEC | NVHDR | NORID | NEVID | NPTS |
| 17 | (5110) | NSPTS | NWFID | NXSIZE | NYSIZE | UNUSED |
| 18 | (5110) | IFTYPE | IDEP | IZTYPE | UNUSED | IINST |
| 19 | (5110) | ISTREG | IEVREG | IEVTYP | IQUAL | ISYNTH |
| 20 | (5110) | IMAGTYP | IMAGSRC | UNUSED | UNUSED | UNUSED |
| 21 | (5110) | UNUSED | UNUSED | UNUSED | UNUSED | UNUSED |
| 22 | (5110) | 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 | ||
The header section and first five lines of the data section
of a sample SAC alphanumeric data file is shown below.
You can reproduce this file (with the entire data section) on your system by
executing the following commands:
u: FUNCGEN SEISMOGRAM
u: WRITE ALPHA TEMP1
You can then convert this alphanumeric file to a binary one and read it
into SAC with the following commands:
u: CONVERT FROM ALPHA TEMP1 TO SAC TEMP2
u: READ TEMP2
This little test shows the equivalence of the alphanumeric and
binary file formats.
0.1000000e-01 -1.569280 1.520640 -12345.00 -12345.00
9.459999 19.45000 0. 10.47000 2.000000
-12345.00 20.00000 -12345.00 -12345.00 -12345.00
-12345.00 -12345.00 -12345.00 -12345.00 -12345.00
17.78000 -12345.00 -12345.00 -12345.00 -12345.00
-12345.00 -12345.00 -12345.00 -12345.00 -12345.00
-12345.00 87.99997 -120.0000 -12345.00 -12345.00
47.99997 -125.0000 -12345.00 -12345.00 -12345.00
123.4560 -12345.00 -12345.00 -12345.00 -12345.00
-12345.00 -12345.00 -12345.00 -12345.00 -12345.00
4461.052 0.2718981 185.2046 40.18594 -12345.00
-12345.00 -0.9854718e-01 0. 0. -12345.00
-12345.00 -12345.00 -12345.00 -12345.00 -12345.00
-12345.00 -12345.00 -12345.00 -12345.00 -12345.00
1981 88 10 38 14
0 6 0 0 1000
-12345 -12345 -12345 -12345 -12345
1 50 9 -12345 -12345
-12345 -12345 42 -12345 -12345
-12345 -12345 -12345 -12345 -12345
-12345 -12345 -12345 -12345 -12345
1 1 1 1 0
CDV K8108838
-12345 HOLE IPD0
XYZ -12345 KT1
-12345 -12345 -12345
-12345 -12345 -12345
-12345 -12345 ABKD
USER0 -12345 -12345
-12345 -12345 -12345
-0.9728001e-01 -0.9728001e-01 -0.9856002e-01 -0.9856002e-01 -0.9728001e-01
-0.9600000e-01 -0.9472002e-01 -0.9344001e-01 -0.9344001e-01 -0.9344001e-01
-0.9344001e-01 -0.9344001e-01 -0.9472002e-01 -0.9472002e-01 -0.9344001e-01
-0.9344001e-01 -0.9216000e-01 -0.9216000e-01 -0.9216000e-01 -0.9216000e-01
-0.9088002e-01 -0.9088002e-01 -0.9216000e-01 -0.9344001e-01 -0.9472002e-01
This page maintained by:
peterg@llnl.gov -- Peter Goldstein
LLNL Disclaimer
8/12/98
UCRL-MA-112836