libsacio  1.0.2
Seismic Analysis Code I/O Library
Data Structures | Macros | Enumerations
sacio.h File Reference

SAC Input/Output Functions. More...

Data Structures

struct  sac_hdr
 sac header More...
 
struct  sac
 sac data and header structure More...
 
struct  complexf
 Single precision complex number. More...
 
struct  complexd
 
struct  eid
 Structure to convert keyword to enum value. More...
 

Macros

#define SAC_FLOAT_UNDEFINED   -12345.0
 Float undefined value.
 
#define SAC_INT_UNDEFINED   -12345
 Integer undefined value.
 
#define SAC_CHAR_UNDEFINED   "-12345 "
 Character string undefined.
 
#define SAC_CHAR_UNDEFINED_2   "-12345 "
 Character string undefined - 16 characters.
 
#define SAC_REAL_UNDEFINED   SAC_FLOAT_UNDEFINED
 Float undefined value.
 
#define SAC_INTEGER_UNDEFINED   SAC_INT_UNDEFINED
 Integer undefined value.
 
#define SAC_NUMBER_UNDEFINED   SAC_INT_UNDEFINED
 Integer undefined value.
 
#define SAC_CHARACTER_UNDEFINED   SAC_CHAR_UNDEFINED
 Character string undefined value.
 
#define SAC_ENUM_UNDEFINED   SAC_INT_UNDEFINED
 Enum undefined value.
 
#define SAC_LOGICAL_UNDEFINED   SAC_INT_UNDEFINED
 Logical undefined value.
 
#define SAC_KSTNM   SAC_STA
 Alias for Station.
 
#define SAC_KNETWK   SAC_NET
 Alias for Network.
 
#define SAC_KHOLE   SAC_LOC
 Alias for Location or Hole.
 
#define SAC_CHAN   SAC_CHA
 Alias for Channel.
 
#define SAC_KCMPNM   SAC_CHA
 Alias for Channel.
 
#define SAC_KEVENT   SAC_EVENT
 Alias for Event Name.
 
#define SAC_KEVNM   SAC_EVENT
 Alias for Event Name.
 
#define SAC_KINST   SAC_INST
 Alias for Instrument.
 
#define SAC_LOC   SAC_HOLE
 Alias for Location or Hole.
 
#define REGCONV   100
 Region Conversion.
 
#define SAC_F64
 X-Macro v7 floating point header values, in order. More...
 
#define SAC_F32
 X-Macro v6 floating point header values, in order.
 
#define ERROR_CANT_CUT_SPECTRAL_FILE   1321
 Error cutting spectral file.
 
#define ERROR_CUT_TIMES_BEYOND_DATA_LIMITS   13241325
 Cut times are beyond data limits: 1324 and 1325.
 
#define ERROR_START_TIME_LESS_THAN_BEGIN   1324
 Cut start time is less than begin value.
 
#define ERROR_STOP_TIME_GREATER_THAN_END   1325
 Cut stop time is greater than end value.
 
#define ERROR_START_TIME_GREATER_THAN_END   1326
 Cut start time is greater than end value.
 
#define ERROR_STOP_TIME_LESS_THAN_BEGIN   1327
 Cut stop time is less than begin value.
 
#define ERROR_START_TIME_GREATER_THAN_STOP   1328
 Cut time time is greater than stop value.
 
#define ERROR_CANT_CUT_UNEVENLY_SPACED_FILE   1356
 Error cuting unevenly spaced file.
 
#define ERROR_READING_CARD_IMAGE_HEADER   1319
 Error reading an sac alphanumeric file.
 

Enumerations

enum  HeaderID {
  SAC_DELTA = 1, SAC_DEPMIN = 2, SAC_DEPMAX = 3, SAC_SCALE = 4,
  SAC_ODELTA = 5, SAC_B = 6, SAC_E = 7, SAC_O = 8,
  SAC_A = 9, SAC_FMT = 10, SAC_T0 = 11, SAC_T1 = 12,
  SAC_T2 = 13, SAC_T3 = 14, SAC_T4 = 15, SAC_T5 = 16,
  SAC_T6 = 17, SAC_T7 = 18, SAC_T8 = 19, SAC_T9 = 20,
  SAC_F = 21, SAC_RESP0 = 22, SAC_RESP1 = 23, SAC_RESP2 = 24,
  SAC_RESP3 = 25, SAC_RESP4 = 26, SAC_RESP5 = 27, SAC_RESP6 = 28,
  SAC_RESP7 = 29, SAC_RESP8 = 30, SAC_RESP9 = 31, SAC_STLA = 32,
  SAC_STLO = 33, SAC_STEL = 34, SAC_STDP = 35, SAC_EVLA = 36,
  SAC_EVLO = 37, SAC_EVEL = 38, SAC_EVDP = 39, SAC_MAG = 40,
  SAC_USER0 = 41, SAC_USER1 = 42, SAC_USER2 = 43, SAC_USER3 = 44,
  SAC_USER4 = 45, SAC_USER5 = 46, SAC_USER6 = 47, SAC_USER7 = 48,
  SAC_USER8 = 49, SAC_USER9 = 50, SAC_DIST = 51, SAC_AZ = 52,
  SAC_BAZ = 53, SAC_GCARC = 54, SAC_SB = 55, SAC_SDELTA = 56,
  SAC_DEPMEN = 57, SAC_CMPAZ = 58, SAC_CMPINC = 59, SAC_XMIN = 60,
  SAC_XMAX = 61, SAC_YMIN = 62, SAC_YMAX = 63 , SAC_YEAR = 71,
  SAC_DAY = 72, SAC_HOUR = 73, SAC_MIN = 74, SAC_SEC = 75,
  SAC_MSEC = 76, SAC_HDR = 77, SAC_ORID = 78, SAC_EVID = 79,
  SAC_NPTS = 80, SAC_NSNPTS = 81, SAC_WFID = 82, SAC_NX = 83,
  SAC_NY = 84 , SAC_FILE_TYPE = 86, SAC_DEP_TYPE = 87, SAC_ZERO_TIME = 88 ,
  SAC_INST_TYPE = 90, SAC_STREG = 91, SAC_EVREG = 92, SAC_EVENT_TYPE = 93,
  SAC_QUAL = 94, SAC_SYNTH = 95, SAC_MAG_TYPE = 96, SAC_MAG_SRC = 97 ,
  SAC_EVEN = 106, SAC_POLARITY = 107, SAC_OVERWRITE = 108, SAC_CALC_DIST_AZ = 109 ,
  SAC_STA = 111, SAC_EVENT = 112 , SAC_HOLE = 114, SAC_KO = 115,
  SAC_KA = 116, SAC_KT0 = 117, SAC_KT1 = 118, SAC_KT2 = 119,
  SAC_KT3 = 120, SAC_KT4 = 121, SAC_KT5 = 122, SAC_KT6 = 123,
  SAC_KT7 = 124, SAC_KT8 = 125, SAC_KT9 = 126, SAC_KF = 127,
  SAC_KUSER0 = 128, SAC_KUSER1 = 129, SAC_KUSER2 = 130, SAC_CHA = 131,
  SAC_NET = 132, SAC_DATRD = 133, SAC_INST = 134, SAC_DATE = 135,
  SAC_TIME = 136, SAC_STCMP = 137, SAC_FILENAME = 138, SAC_AMARKER = 140,
  SAC_OMARKER = 141, SAC_FMARKER = 142, SAC_T0MARKER = 143, SAC_T1MARKER = 144,
  SAC_T2MARKER = 145, SAC_T3MARKER = 146, SAC_T4MARKER = 147, SAC_T5MARKER = 148,
  SAC_T6MARKER = 149, SAC_T7MARKER = 150, SAC_T8MARKER = 151, SAC_T9MARKER = 152,
  SAC_MONTH = 153, SAC_MONTH_DAY = 154, SAC_DATE_TIME = 155
}
 Sac Header IDs. More...
 
enum  SacHeaderTypes {
  SAC_FLOAT_TYPE = 1, SAC_INT_TYPE = 2, SAC_ENUM_TYPE = 3, SAC_BOOL_TYPE = 4,
  SAC_STRING_TYPE = 5, SAC_LONG_STRING_TYPE = 6, SAC_AUX_TYPE = 7
}
 
enum  SacEnum { ,
  ITIME = 1, IRLIM = 2, IAMPH = 3, IXY = 4,
  IXYZ = 51 , IDISP = 6, IVEL = 7, IACC = 8,
  IRLDTA = 49, IVOLTS = 50, IB = 9, 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 ,
  INUCL = 37, IPREN = 38, IPOSTN = 39, IQUAKE = 40,
  IPREQ = 41, IPOSTQ = 42, ICHEM = 43, IOTHER = 44,
  IGOOD = 45, IGLCH = 46, IDROP = 47, ILOWSN = 48,
  IMB = 52, IMS = 53, IML = 54, IMW = 55,
  IMD = 56, IMX = 57, INEIC = 58, IPDEQ = 59,
  IPDEW = 60, IPDE = 61, IISC =62, IREB =63,
  IUSGS =64, IBRK =65, ICALTECH = 66, ILLNL =67,
  IEVLOC =68, IJSOP =69, IUSER =70, IUNKNOWN = 71,
  IQB = 72, IQB1 = 73, IQB2 = 74, IQBX = 75,
  IQMT = 76, IEQ = 77, IEQ1 = 78, IEQ2 = 79,
  IME = 80, IEX = 81, INU = 82, INC = 83,
  IO_ = 84, IL = 85, IR = 86, IT = 87,
  IU = 88, IEQ3 = 89, IEQ0 = 90, IEX0 = 91,
  IQC = 92, IQB0 = 93, IGEY = 94, ILIT = 95,
  IMET = 96, IODOR = 97, IOS =103
}
 

Detailed Description

SAC Input/Output Functions.

Macro Definition Documentation

◆ SAC_F64

#define SAC_F64
Value:
X(DELTA, _delta) \
X(B, _b) \
X(E, _e) \
X(O, _o) \
X(A, _a) \
X(T0, _t0) \
X(T1, _t1) \
X(T2, _t2) \
X(T3, _t3) \
X(T4, _t4) \
X(T5, _t5) \
X(T6, _t6) \
X(T7, _t7) \
X(T8, _t8) \
X(T9, _t9) \
X(F, _f) \
X(EVLO, _evlo) \
X(EVLA, _evla) \
X(STLO, _stlo) \
X(STLA, _stla) \
X(SB, _sb) \
X(SDELTA, _sdelta) \
#define X(name, key)
X-Macro for sac_f64_new()
Definition: sacio.c:398
#define E(s)
Get end value.
Definition: sacio.c:108
#define B(s)
Get begin value.
Definition: sacio.c:103

X-Macro v7 floating point header values, in order.

Enumeration Type Documentation

◆ SacEnum

enum SacEnum

definitions of constants for SAC enumerated data values

Enumerator
ITIME 

sac_hdr.iftype : time series data

IRLIM 

sac_hdr.iftype : real&imag spectrum

IAMPH 

sac_hdr.iftype : ampl&phas spectrum

IXY 

sac_hdr.iftype : gen'l x vs y data

IXYZ 

sac_hdr.iftype : General XYZ (3-D) file

IDISP 

sac_hdr.idep : displacement

IVEL 

sac_hdr.idep : velocity

IACC 

sac_hdr.idep : acceleration

IRLDTA 

sac_hdr.idep : data is real data

IVOLTS 

sac_hdr.idep : velocity (volts)

IB 

sac_hdr.iztype : start of file

IDAY 

sac_hdr.iztype : 0000 of GMT day

IO 

sac_hdr.iztype : event origin

IA 

sac_hdr.iztype : 1st arrival

IT0 

sac_hdr.iztype : user timepick 0

IT1 

sac_hdr.iztype : user timepick 1

IT2 

sac_hdr.iztype : user timepick 2

IT3 

sac_hdr.iztype : user timepick 3

IT4 

sac_hdr.iztype : user timepick 4

IT5 

sac_hdr.iztype : user timepick 5

IT6 

sac_hdr.iztype : user timepick 6

IT7 

sac_hdr.iztype : user timepick 7

IT8 

sac_hdr.iztype : user timepick 8

IT9 

sac_hdr.iztype : user timepick 9

INUCL 

sac_hdr.ievtyp nuclear shot

IPREN 

sac_hdr.ievtyp nuke pre-shot

IPOSTN 

sac_hdr.ievtyp nuke post-shot

IQUAKE 

sac_hdr.ievtyp earthquake

IPREQ 

sac_hdr.ievtyp foreshock

IPOSTQ 

sac_hdr.ievtyp aftershock

ICHEM 

sac_hdr.ievtyp chemical expl

IOTHER 

sac_hdr.ievtyp other source

IGOOD 

sac_hdr.iqual : good

IGLCH 

sac_hdr.iqual : has glitches

IDROP 

sac_hdr.iqual : has dropouts

ILOWSN 

sac_hdr.iqual : low s/n

IMB 

sac_hdr.imagtyp Bodywave Magnitude

IMS 

sac_hdr.imagtyp Surface Magnitude

IML 

sac_hdr.imagtyp Local Magnitude

IMW 

sac_hdr.imagtyp Moment Magnitude

IMD 

sac_hdr.imagtyp Duration Magnitude

IMX 

sac_hdr.imagtyp User Defined Magnitude

INEIC 

sac_hdr.imagsrc INEIC

IPDEQ 

sac_hdr.imagsrc IPDE

IPDEW 

sac_hdr.imagsrc IPDE

IPDE 

sac_hdr.imagsrc IPDE

IISC 

sac_hdr.imagsrc IISC

IREB 

sac_hdr.imagsrc IREB

IUSGS 

sac_hdr.imagsrc IUSGS

IBRK 

sac_hdr.imagsrc IBRK

ICALTECH 

sac_hdr.imagsrc ICALTECH

ILLNL 

sac_hdr.imagsrc ILLNL

IEVLOC 

sac_hdr.imagsrc IEVLOC

IJSOP 

sac_hdr.imagsrc IJSOP

IUSER 

sac_hdr.imagsrc IUSER

IUNKNOWN 

sac_hdr.imagsrc IUNKNOWN

IQB 

sac_hdr.ievtyp Quarry Blast or mine expl. confirmed by quarry

IQB1 

sac_hdr.ievtyp Quarry or mine blast with designed shot information-ripple fired

IQB2 

sac_hdr.ievtyp Quarry or mine blast with observed shot information-ripple fired

IQBX 

sac_hdr.ievtyp Quarry or mine blast - single shot

IQMT 

sac_hdr.ievtyp Quarry or mining-induced events: tremors and rockbursts

IEQ 

sac_hdr.ievtyp Earthquake

IEQ1 

sac_hdr.ievtyp Earthquakes in a swarm or aftershock sequence

IEQ2 

sac_hdr.ievtyp Felt earthquake

IME 

sac_hdr.ievtyp Marine explosion

IEX 

sac_hdr.ievtyp Other explosion

INU 

sac_hdr.ievtyp Nuclear explosion

INC 

sac_hdr.ievtyp Nuclear cavity collapse

IO_ 

sac_hdr.ievtyp Other source of known origin

IL 

sac_hdr.ievtyp Local event of unknown origin

IR 

sac_hdr.ievtyp Regional event of unknown origin

IT 

sac_hdr.ievtyp Teleseismic event of unknown origin

IU 

sac_hdr.ievtyp Undetermined or conflicting information

IEQ3 

sac_hdr.ievtyp Damaging earthquake

IEQ0 

sac_hdr.ievtyp Probable earthquake

IEX0 

sac_hdr.ievtyp Probable explosion

IQC 

sac_hdr.ievtyp Mine collapse

IQB0 

sac_hdr.ievtyp Probable Mine Blast

IGEY 

sac_hdr.ievtyp Geyser

ILIT 

sac_hdr.ievtyp Light

IMET 

sac_hdr.ievtyp Meteoric Event

IODOR 

sac_hdr.ievtyp Odors

IOS 

sac_hdr.ievtyp Other source: Known origin

◆ SacHeaderTypes

Type of values found around a Sac Header

Enumerator
SAC_FLOAT_TYPE 

Floating point header type.

SAC_INT_TYPE 

Integer header type.

SAC_ENUM_TYPE 

Enum header type.

SAC_BOOL_TYPE 

Logical header type.

SAC_STRING_TYPE 

String header type.

SAC_LONG_STRING_TYPE 

Long String header type.

SAC_AUX_TYPE 

Aux Type.