source: trunk/include/parse_usnsn.h @ 5054

Revision 1111, 4.8 KB checked in by lombard, 16 years ago (diff)

Protected from multiple includes.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1
2/*
3 *   THIS FILE IS UNDER RCS - DO NOT MODIFY UNLESS YOU HAVE
4 *   CHECKED IT OUT USING THE COMMAND CHECKOUT.
5 *
6 *    $Id $
7 *
8 *    Revision history:
9 *     $Log$
10 *     Revision 1.9  2002/11/03 00:14:26  lombard
11 *     Protected from multiple includes.
12 *
13 *     Revision 1.8  2002/03/22 19:53:47  lucky
14 *     *** empty log message ***
15 *
16 *     Revision 1.7  2001/07/01 22:16:07  davidk
17 *     Added include of earthworm_defs.h.
18 *     Oops, I guess that include of earthworm.h was neccessary.
19 *
20 *     Revision 1.6  2001/07/01 22:08:14  davidk
21 *     Removed unneccessary include of earthworm.h and added prototype for
22 *     ParseNSNMsg().
23 *
24 *     Revision 1.5  2000/10/02 21:28:23  lucky
25 *     set lengths of sta and phase in PhaseStruct to #defines STA_LEN and PHA_LEN
26 *
27 *     Revision 1.4  2000/09/12 18:14:15  lucky
28 *     Explicitly set size of phases (max number of phases in the DB)
29 *
30 *     Revision 1.2  2000/06/26 20:03:41  lucky
31 *     Added RETURN_DELETE flag so that parse_usnsn can signal back to the
32 *     calling routine that it encountered a delete message.
33 *
34 *     Revision 1.1  2000/02/14 20:05:54  lucky
35 *     Initial revision
36 *
37 *
38 */
39
40#ifndef PARSE_USNSN_H
41#define PARSE_USNSN_H
42
43#include <earthworm_defs.h>
44
45
46#define         DATE_BASE                   5
47#define         DEPTH_BASE                  25
48#define         EVENT_KEY_BASE          52
49#define         PRELIM_BASE                 61
50#define         ELLIPSE_BASE            22
51#define         ELLIPSE_LENGTH          53
52#define     EARTH_CIRCUM        40000.0
53
54/* magnitudes */
55#define     MAG_LEN     5
56#define     DATUM_LEN   3
57#define     MB_BASE     5
58#define     MB_DATUM    11
59#define     ML_BASE     21
60#define     ML_DATUM    27
61#define     MBLG_BASE   39
62#define     MBLG_DATUM  45
63#define     MD_BASE     55
64#define     MD_DATUM    61
65#define     MS_BASE     71
66#define     MS_DATUM    77
67
68/* phases */
69#define         STA_BASE        1
70#define         STA_LEN         5
71#define         PHA_BASE        6
72#define         PHA_LEN         8
73#define         OT_BASE         14
74#define         OT_LEN          11
75#define         RES_BASE        25
76#define         RES_LEN         6
77#define         RES_USED        31
78#define         DIST_BASE       32
79#define         DIST_LEN    6
80#define         AZM_BASE        39
81#define         AZM_LEN         3
82#define         MAG1_BASE       43
83#define         MAG1_LEN        15
84#define         MAG1_USED       58
85#define         MAG2_BASE       60
86#define         MAG2_LEN        15
87#define         MAG2_USED       75
88
89
90#define RETURN_DELETE -100
91
92# define RETURN_BAD_SCN -3
93
94#ifndef RETURN_SUCCESS
95# define RETURN_SUCCESS 0
96# define RETURN_FAILURE -1
97#endif /* !DEF RETURN_SUCCESS */
98
99#define MAX_MAGS        5
100
101/* Structures */
102typedef struct _PhaseMag
103{
104
105        int             MagType;                /* see rw_mag.h */
106        char    magLabel;               /* b, S, d, L, g */
107        double  value;
108        double  period;
109        double  mag;
110        int             used;
111
112} PhaseMag;
113
114
115typedef struct _PhaseStruct
116{
117        char            sta[STA_LEN+1];
118        char            phase[PHA_LEN+1];
119        int                     automatic;
120        char            onset;
121        char            motion;
122        double          ot;
123        double          res;
124        int                     res_used;               /* is this phase used? */
125        double          dist;
126        int                     azm;
127        int                     num_mags;
128        PhaseMag        mag[5];                 /* magnitudes */
129
130} Phase;
131
132typedef struct _OriginMag
133{
134
135        int             MagType;                /* see rw_mag.h */
136        char    magLabel;               /* b, S, d, L, g */
137        double  magAvg;
138        int             numStas;
139        int             isPref;                 /* Is this the preferred mag */
140
141} OriginMag;
142
143typedef struct _ErrorElipse
144{
145
146        double          maj_s;          /* Semi-major axis - strike */
147        double          maj_d;          /* Semi-major axis - dip    */
148        double          maj_l;          /* Semi-major axis - length */
149
150        double          min_s;          /* Semi-minor axis - strike */
151        double          min_d;          /* Semi-minor axis - dip    */
152        double          min_l;          /* Semi-minor axis - length */
153
154        double          int_s;          /* Intermediate axis - strike */
155        double          int_d;          /* Intermediate axis - dip    */
156        double          int_l;          /* Intermediate axis - length */
157
158} Err_Elipse;
159
160
161typedef struct _NSNMsgStruct
162{
163
164        char            EventKey[6];
165        char            EventDate[10];
166        int                     automatic;              /* 1-yes, 0-no */
167        double          ot;                             /* origin time, seconds since 1970 */
168        double          ot_err;                 /* time error in seconds */
169        float           lat;            /* origin lattitude, in degrees */
170        float           lat_err;        /* origin lattitude error, in km */
171        float           lon;            /* origin longitude, in degrees */
172        float           lon_err;        /* origin longitude error, in km */
173        float           depth;          /* depth, in km */
174        float           depth_err;      /* depth error, in km */
175        int                     depth_fixed;    /* 1-yes, 0-no */
176        int                     nph_used;       /* num phases used */
177        int                     nph_assoc;      /* num phases associated */
178        int                     nph_actual;     /* acutal phases parsed and stored */
179        double          Dmin;                   /* distance from epicenter to nearest station */
180        double          std_error;      /* standard error - rms of residuals,  */
181                                    /* in seconds                          */
182        Err_Elipse  error;                      /* Error elipse - 9 values */
183        int                     numMags;                /* Number of magnitudes for the event */
184        OriginMag   O_mag[MAX_MAGS];/* Magnitudes for the event */
185        Phase           phases[DB_MAX_PHS_PER_EQ];              /* Phases for the event */
186
187} NSNStruct;
188
189
190int ParseNSNMsg(char *NsnMsg, int msgLen, NSNStruct *msgStruct, 
191                int debug, char *debug_dir);
192
193
194
195#endif
Note: See TracBrowser for help on using the repository browser.