Main Page Class Hierarchy Compound List File List Compound Members File Members

# sachead.h

Go to the documentation of this file.

    00001
    00002 /*
    00003  *   THIS FILE IS UNDER RCS - DO NOT MODIFY UNLESS YOU HAVE
    00004  *   CHECKED IT OUT USING THE COMMAND CHECKOUT.
    00005  *
    00006  *    $Id: sachead_8h-source.html 2161 2006-05-19 16:55:03Z paulf $
    00007  *
    00008  *    Revision history:
    00009  *     $Log$
    00009  *     Revision 1.1  2006/05/19 16:55:02  paulf
    00009  *     first inclusion
    00009  *
    00010  *     Revision 1.10  2002/02/19 18:23:40  lucky
    00011  *     Added blessed valus for IDEP variable
    00012  *
    00013  *     Revision 1.9  2001/11/26 22:27:50  lucky
    00014  *     Added SAC_IO #define to match what localmag/gmew are using
    00015  *
    00016  *     Revision 1.8  2001/04/12 03:03:08  lombard
    00017  *     reorgainized to put the format-specific header items in *head.h
    00018  *     and the putaway-specific items in *putaway.h, of which there
    00019  *     currently is only sacputaway.h
    00020  *     Function protoypes used by putaway.c moved to pa_subs.h
    00021  *
    00022  *     Revision 1.7  2000/12/04 20:11:23  lucky
    00023  *     Added cOnset to SAC_ArrivalStruct
    00024  *
    00025  *     Revision 1.6  2000/11/15 17:03:13  lucky
    00026  *     Added SACPABase_next_ev_review
    00027  *
    00028  *     Revision 1.5  2000/08/28 15:39:19  lucky
    00029  *     *** empty log message ***
    00030  *
    00031  *     Revision 1.4  2000/07/24 18:24:22  lucky
    00032  *     Removed MAX_PHS_PER_EQ -- it is set globally in earthworm.h
    00033  *
    00034  *     Revision 1.3  2000/04/26 20:34:09  lucky
    00035  *     Added comments to known fields in sac header
    00036  *
    00037  *     Revision 1.2  2000/03/09 21:58:09  davidk
    00038  *     removed some unneccessary #defines.
    00039  *      Added a lot of new #define constants, typedefs, and functions prototypes
    00040  *     for the SACPA_XXX routines and the SACPABase_XXX routines.
    00041  *
    00042  *     Revision 1.1  2000/02/14 20:05:54  lucky
    00043  *     Initial revision
    00044  *
    00045  *
    00046  */
    00047
    00048 #ifndef SACHEAD_H
    00049 #define SACHEAD_H
    00050
    00051 /*
    00052  *      SAC Header Include File
    00053  *      This file contains structures and definitions for SAC file headers.
    00054  *      If you are looking for SAC putaway routines, look in sacputaway.h
    00055  *
    00056  *      This include file should be used when ever the SAC header
    00057  *      is accessed.
    00058  */
    00059
    00060 /************************************/
    00062 /************************************/
    00063
    00064 #define SACHEADERSIZE   632     /* # of bytes in SAC header */
    00065
    00066 #define SACVERSION      6       /* version number of SAC */
    00067 #define SAC_I_D         2.0     /* SAC I.D. number */
    00068
    00069 #define SACWORD         float   /* SAC data is an array of floats */
    00070 #define SACUNDEF        -12345  /* undefined value */
    00071 #define SACSTRUNDEF     "-12345  "      /* undefined value for strings */
    00072
    00073 #define SACTEMP4        11
    00074
    00075 #define SACTEMP6        3
    00076 #define SACTEMP7        10
    00077
    00078 #define KEVNMLEN        16      /* length of event name */
    00079 #define K_LEN           8       /* length of all other string fields */
    00080
    00081 /* header value  constants */
    00082 #define SAC_IUNKN       5l
    00083 #define SAC_IDISP       6l
    00084 #define SAC_IVEL        7l
    00085 #define SAC_IACC        8l
    00086 #define SAC_IVOLTS      50l
    00087 #define SAC_IBEGINTIME  9l
    00088 #define SAC_ITIME       1l
    00089 #define SAC_IO         11l
    00090
    00091
    00092 #define NUM_FLOAT       70      /* number of floats in header */
    00093 #define MAXINT          40      /* number of ints in header */
    00094 #define MAXSTRING       24      /* number of strings in header */
    00095
    00096 /************************************/
    00098 /************************************/
    00099
    00100 /*      This is the actual data structure which is used to enter the header
    00101         variables. */
    00102
    00103 struct SAChead {
    00104   /* floating point fields */
    00105   float delta;    /* nominal increment between evenly spaced data (sec) */
    00106   float depmin;   /* min value of trace data (dep var) */
    00107   float depmax;   /* max value of trace data (dep var) */
    00108   float scale;    /* scale factor - NOT USED */
    00109   float odelta;   /* Observed delta if different from delta */
    00110   float b;        /* beginning value of time (indep var)  */
    00111   float e;        /* ending value of time (indep var) */
    00112   float o;        /* event origin time, relative to reference time */
    00113   float a;        /* first arrival time, relative to reference time */
    00114   float internal1;
    00115   float t0;       /* user-defined times */
    00116   float t1;
    00117   float t2;
    00118   float t3;
    00119   float t4;
    00120   float t5;
    00121   float t6;
    00122   float t7;
    00123   float t8;
    00124   float t9;
    00125   float f;        /* End of event time, relative to reference time */
    00126   float resp0;
    00127   float resp1;
    00128   float resp2;
    00129   float resp3;
    00130   float resp4;
    00131   float resp5;
    00132   float resp6;
    00133   float resp7;
    00134   float resp8;
    00135   float resp9;
    00136   float stla;     /* station latitude (deg north) */
    00137   float stlo;     /* station longitude (deg east) */
    00138   float stel;     /* station elevation (meters) */
    00139   float stdp;
    00140   float evla;     /* event location, latitude (deg north) */
    00141   float evlo;     /* event location, longitude (deg east) */
    00142   float evel;
    00143   float evdp;     /* event depth (km) */
    00144   float blank1;
    00145   float user0;    /* user defined values */
    00146   float user1;
    00147   float user2;
    00148   float user3;
    00149   float user4;
    00150   float user5;
    00151   float user6;
    00152   float user7;
    00153   float user8;
    00154   float user9;
    00155   float dist;     /* event-station epicentral distance (km) */
    00156   float az;       /* event to station azimuth (deg) */
    00157   float baz;      /* event to station back-azimuth (deg) */
    00158   float gcarc;    /* event to station arc distance (deg) */
    00159   float internal2;
    00160   float internal3;
    00161   float depmen;
    00162   float cmpaz;    /* component azimuth (deg) */
    00163   float cmpinc;   /* component inclination (deg) */
    00164   float blank4[SACTEMP4];
    00165
    00166   /* integer fields */
    00167   long nzyear;    /* Reference time = Trace beginning time (year) */
    00168   long nzjday;    /*  (julian day) */
    00169   long nzhour;    /*  (hour) */
    00170   long nzmin;     /*  (minute) */
    00171   long nzsec;     /*  (second) */
    00172   long nzmsec;    /*  (millisecond) */
    00173   long internal4;
    00174   long internal5;
    00175   long internal6;
    00176   long npts;       /* number of points in trace */
    00177   long internal7;
    00178   long internal8;
    00179   long blank6[SACTEMP6];
    00180   long iftype;      /* Type of data:  1 for time series */
    00181   long idep;        /* Type of dependent data =UNKNOWN */
    00182   long iztype;      /* zero time equivalence  =1 for beginning */
    00183   long iblank6a;
    00184   long iinst;
    00185   long istreg;
    00186   long ievreg;
    00187   long ievtyp;      /* event type; IUNKN */
    00188   long iqual;
    00189   long isynth;
    00190   long blank7[SACTEMP7];
    00191   unsigned long leven;    /* =1 for evenly spaced data */
    00192   unsigned long lpspol;   /* =1 for correct polarity, 0 for reversed */
    00193   unsigned long lovrok;
    00194   unsigned long lcalda;
    00195   unsigned long lblank1;
    00196
    00197   /* character string fields */
    00198   char kstnm[K_LEN];      /* station name (blank padded) */
    00199   char kevnm[KEVNMLEN];   /* event name */
    00200   char khole[K_LEN];
    00201   char ko[K_LEN];         /* Origin time label */
    00202   char ka[K_LEN];         /* First arrival time label */
    00203   char kt0[K_LEN];        /* labels for user-defined times */
    00204   char kt1[K_LEN];
    00205   char kt2[K_LEN];
    00206   char kt3[K_LEN];
    00207   char kt4[K_LEN];
    00208   char kt5[K_LEN];
    00209   char kt6[K_LEN];
    00210   char kt7[K_LEN];
    00211   char kt8[K_LEN];
    00212   char kt9[K_LEN];
    00213   char kf[K_LEN];
    00214   char kuser0[K_LEN];     /* labels for user-defined quantities */
    00215   char kuser1[K_LEN];
    00216   char kuser2[K_LEN];
    00217   char kcmpnm[K_LEN];
    00218   char knetwk[K_LEN];
    00219   char kdatrd[K_LEN];
    00220   char kinst[K_LEN];
    00221 };
    00222
    00223 /* This is a structure of the same size as 'SAChead', but in a form
    00224    that is easier to initialize. */
    00225
    00226
    00227 struct SAChead2 {
    00228   float SACfloat[NUM_FLOAT];
    00229   long SACint[MAXINT];
    00230   char SACstring[MAXSTRING][K_LEN];
    00231 };
    00232
    00233 /* eof sachead.h */
    00234
    00235 #endif