libsacio
1.0.2
Seismic Analysis Code I/O Library
|
sac I/O and manipulation More...
Macros | |
#define | ERROR_NOT_A_SAC_FILE 1317 |
Not a sac file. | |
#define | ERROR_OVERWRITE_FLAG_IS_OFF 1303 |
Overwrite flag, lovrok is set to 0. | |
#define | ERROR_WRITING_FILE 115 |
Error writing sac file. | |
#define | ERROR_READING_FILE 114 |
Error reading sac file. | |
#define | ERROR_FILE_DOES_NOT_EXIST 108 |
Error file does not exist. | |
#define | ERROR_OPENING_FILE 101 |
Error opening sac file. | |
#define | SAC_OK 0 |
Success, everything is ok. | |
#define | SAC_HEADER_SIZEOF_NUMBER (sizeof(float)) |
Size of header values in bytes. | |
#define | SAC_DATA_SIZE SAC_HEADER_SIZEOF_NUMBER |
Size of data values in bytes. | |
#define | SAC_HEADER_VERSION_6 6 |
Sac version no 6. | |
#define | SAC_HEADER_VERSION_7 7 |
Sac version no 7. | |
#define | SAC_HEADER_MAJOR_VERSION SAC_HEADER_VERSION_6 |
Current Major sac version number. | |
#define | SAC_HEADER_MAX_VERSION SAC_HEADER_VERSION_7 |
Current Maximum sac version number. | |
#define | SAC_VERSION_LOCATION 76 |
Offset in 4-byte words of the header version. | |
#define | MIN(a, b) ((a < b) ? a : b ) |
Minimum of two values. | |
#define | MAX(a, b) ((a > b) ? a : b ) |
Maximum of two values. | |
#define | B(s) sac_float(s, SAC_B) |
Get begin value. | |
#define | E(s) sac_float(s, SAC_E) |
Get end value. | |
#define | DT(s) sac_float(s, SAC_DELTA) |
Get delta time value. | |
#define | SAC_HEADER_FLOATS 70 /* 4 bytes (real or float) */ |
#define | SAC_HEADER_INTEGERS 15 |
#define | SAC_HEADER_ENUMS 20 |
#define | SAC_HEADER_LOGICALS 5 |
#define | SAC_HEADER_STRINGS 24 /* 9 bytes (characters) actually 23 + 1 */ |
#define | SAC_HEADER_NUMBERS ( SAC_HEADER_FLOATS + SAC_HEADER_INTEGERS + SAC_HEADER_ENUMS + SAC_HEADER_LOGICALS ) |
#define | X(name, key) z->key = SAC_FLOAT_UNDEFINED; |
X-Macro for sac_f64_new() More... | |
#define | X(name, key) case SAC_##name: s->h->key = (float) value; break; |
X-Macro for sac_f64_new() More... | |
#define | X(name, key) case SAC_##name: s->z->key = value; s->h->key = (float) value; break; |
X-Macro for sac_f64_new() More... | |
#define | X(name, key) case SAC_##name: *v = s->h->key; break; |
X-Macro for sac_f64_new() More... | |
#define | X(name, key) case SAC_##name: *v = s->z->key; break; |
X-Macro for sac_f64_new() More... | |
#define | X(name, key) s->h->key = (float) s->z->key; |
X-Macro for sac_f64_new() More... | |
#define | X(name, key) s->z->key = s->h->key; |
X-Macro for sac_f64_new() More... | |
#define | COPY_MOVE(dst, src, n) |
#define | SAC_ALPHA_FLOAT_LINES 14 |
#define | SAC_ALPHA_INT_LINES 8 |
#define | SAC_ALPHA_STRING_LINES 8 |
#define | SAC_ALPHA_FLOAT_FMT "%#15.7g" |
#define | SAC_ALPHA_INT_FMT "%10d" |
#define | SAC_ALPHA_STRING_FMT "%8s" |
#define | SAC_ALPHA_DOUBLE_FMT "%.17g" |
#define | SAC_HEADER_SIZE 632 |
Size of header. | |
#define | X(name, key) SAC_##name , |
X-Macro for sac_f64_new() More... | |
#define | START_BEFORE 1<<0 |
Start Time is before Begin value (B) | |
#define | START_INSIDE 1<<1 |
Start Time is between Begin (B) and End Value (E) | |
#define | START_AFTER 1<<2 |
Start Time is after End value (E) | |
#define | END_BEFORE 1<<3 |
End Time is before Start time (B) | |
#define | END_INSIDE 1<<4 |
End Time is between Begin (B) and End Value (E) | |
#define | END_AFTER 1<<5 |
End Time is after End Value (E) | |
Functions | |
void | sac_write_alpha (sac *s, char *filename, int *nerr) |
Write a sac file in alpha-numeric format. More... | |
sac * | sac_read_alpha (char *filename, int *nerr) |
Read a alpha-numeric sac file. More... | |
sac * | sac_cut (sac *sin, char *c1, double t1, char *c2, double t2, enum CutAction cutact, int *nerr) |
cut a sac file More... | |
sac I/O and manipulation
#define COPY_MOVE | ( | dst, | |
src, | |||
n | |||
) |
#define SAC_HEADER_ENUMS 20 |
SAC_HEADER_ENUMS | Number of Enumerated values in the SAC Header Size: SAC_HEADER_SIZEOF_NUMBER bytes |
#define SAC_HEADER_FLOATS 70 /* 4 bytes (real or float) */ |
SAC_HEADER_FLOATS | Number of Floating point values in the SAC Header Size: SAC_HEADER_SIZEOF_NUMBER bytes |
#define SAC_HEADER_INTEGERS 15 |
SAC_HEADER_INTEGERS | Number of Integer values in the SAC Header Size: SAC_HEADER_SIZEOF_NUMBER bytes |
#define SAC_HEADER_LOGICALS 5 |
SAC_HEADER_LOGICALS | Number of Logical values in the SAC Header Size: SAC_HEADER_SIZEOF_NUMBER bytes |
#define SAC_HEADER_NUMBERS ( SAC_HEADER_FLOATS + SAC_HEADER_INTEGERS + SAC_HEADER_ENUMS + SAC_HEADER_LOGICALS ) |
SAC_HEADER_NUMBERS | Number of numeric values in the SAC Header Size: SAC_HEADER_SIZEOF_NUMBER bytes |
#define SAC_HEADER_STRINGS 24 /* 9 bytes (characters) actually 23 + 1 */ |
SAC_HEADER_STRINGS | Number of strings in the SAC Header. The number here is in reality one less as the number below as of header version 6. The second value, the event name is twice as long as any other characer string |
#define X | ( | name, | |
key | |||
) | z->key = SAC_FLOAT_UNDEFINED; |
X-Macro for sac_f64_new()
X-Macro for sac_f32_new()
#define X | ( | name, | |
key | |||
) | case SAC_##name: s->h->key = (float) value; break; |
X-Macro for sac_f64_new()
X-Macro for sac_f32_new()
#define X | ( | name, | |
key | |||
) | case SAC_##name: s->z->key = value; s->h->key = (float) value; break; |
X-Macro for sac_f64_new()
X-Macro for sac_f32_new()
#define X | ( | name, | |
key | |||
) | case SAC_##name: *v = s->h->key; break; |
X-Macro for sac_f64_new()
X-Macro for sac_f32_new()
#define X | ( | name, | |
key | |||
) | case SAC_##name: *v = s->z->key; break; |
X-Macro for sac_f64_new()
X-Macro for sac_f32_new()
#define X | ( | name, | |
key | |||
) | s->h->key = (float) s->z->key; |
X-Macro for sac_f64_new()
X-Macro for sac_f32_new()
#define X | ( | name, | |
key | |||
) | s->z->key = s->h->key; |
X-Macro for sac_f64_new()
X-Macro for sac_f32_new()
#define X | ( | name, | |
key | |||
) | SAC_##name , |
X-Macro for sac_f64_new()
X-Macro for sac_f32_new()
sac* sac_cut | ( | sac * | sin, |
char * | c1, | ||
double | t1, | ||
char * | c2, | ||
double | t2, | ||
enum CutAction | cutact, | ||
int * | nerr | ||
) |
cut a sac file
cut a sac file and return a new sac file
sin | sac file |
c1 | reference time pick for start time |
t1 | relative time from c1 |
c2 | reference time pick for end time |
t2 | relative time from c2 |
cutact | Behavior of cut
|
nerr | status code
|
Example of cutting a sac file
sac* sac_read_alpha | ( | char * | filename, |
int * | nerr | ||
) |
Read a alpha-numeric sac file.
Read a sac file in alpha-numeric format
filename | alpha numeric sac file to read from |
nerr | error status code |
Example of reading an alpha-numeric sac file
Reading a non-existant file returns a NULL pointer and nerr is set to 101
Reading a file that is not a alpha-numeric file returns a NULL pointer and nerr is set to 1319
void sac_write_alpha | ( | sac * | s, |
char * | filename, | ||
int * | nerr | ||
) |
Write a sac file in alpha-numeric format.
Write a sac file into an alpha-numeric format
s | sac file to write |
filename | file to write to |
nerr | error status code |