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


SAC Data File Format


Overview

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.


Contents


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.


Binary Format


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:
  • dependent variable
  • amplitude
  • real component
contents:
  • independent variable if unevenly spaced
  • phase
  • imaginary component

* if present


Binary Header


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.


Alphanumeric Format


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


Sample Alphanumeric Data File


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

More...


If you have technical questions about this page, contact:
peterg@llnl.gov -- Peter Goldstein


This page maintained by:

peterg@llnl.gov -- Peter Goldstein

LLNL Disclaimer
8/12/98
UCRL-MA-112836