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: ahhead_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:01 paulf 00009 * first inclusion 00009 * 00010 * Revision 1.3 2001/04/12 03:03:08 lombard 00011 * reorgainized to put the format-specific header items in *head.h 00012 * and the putaway-specific items in *putaway.h, of which there 00013 * currently is only sacputaway.h 00014 * Function protoypes used by putaway.c moved to pa_subs.h 00015 * 00016 * Revision 1.2 2000/03/09 21:54:36 davidk 00017 * Added function prototypes for the ah putaway routines, so that 00018 * users of the ahputaway routines would not get compile warnings. 00019 * 00020 * Revision 1.1 2000/02/14 20:05:54 lucky 00021 * Initial revision 00022 * 00023 * 00024 */ 00025 00026 #ifndef AHHEAD_H 00027 #define AHHEAD_H 00028 00029 #define AHUNDEF -12345 /* undefined value -- withers 8/98*/ 00030 00031 00032 /* structure for data file header -- witte, 11 June 85 */ 00033 00034 #define AHHEADSIZE 1024 00035 #define CODESIZE 6 00036 #define CHANSIZE 6 00037 #define STYPESIZE 8 00038 #define COMSIZE 80 00039 #define TYPEMIN 1 00040 #define TYPEMAX 6 00041 #define LOGSIZE 202 00042 #define LOGENT 10 00043 #define NEXTRAS 21 00044 #define NOCALPTS 30 00045 00046 typedef struct { 00047 float x; 00048 float y; 00049 } vector; 00050 00051 typedef struct { 00052 float r; 00053 float i; 00054 } complex; 00055 00056 typedef struct { 00057 double r; 00058 double i; 00059 } d_complex; 00060 00061 typedef struct { 00062 float xx; 00063 float yy; 00064 float xy; 00065 } tensor; 00066 00067 struct ah_time { 00068 short yr; /* year */ 00069 short mo; /* month */ 00070 short day; /* day */ 00071 short hr; /* hour */ 00072 short mn; /* minute */ 00073 float sec; /* second */ 00074 }; 00075 00076 struct calib { 00077 complex pole; /* pole */ 00078 complex zero; /* zero */ 00079 }; 00080 00081 struct station_info { 00082 char code[CODESIZE]; /* station code */ 00083 char chan[CHANSIZE]; /* lpz,spn, etc. */ 00084 char stype[STYPESIZE];/* wwssn,hglp,etc. */ 00085 float slat; /* station latitude */ 00086 float slon; /* " longitude */ 00087 float elev; /* " elevation */ 00088 float DS; /* gain */ 00089 float A0; /* normalization */ 00090 struct calib cal[NOCALPTS]; /* calibration info */ 00091 }; 00092 00093 struct event_info { 00094 float lat; /* event latitude */ 00095 float lon; /* " longitude */ 00096 float dep; /* " depth */ 00097 struct ah_time ot; /* " origin time */ 00098 char ecomment[COMSIZE]; /* comment line */ 00099 }; 00100 00101 struct record_info { 00102 short type; /* data type (int,float,...) */ 00103 long ndata; /* number of samples */ 00104 float delta; /* sampling interval */ 00105 float maxamp; /* maximum amplitude of record */ 00106 struct ah_time abstime;/* start time of record section */ 00107 float rmin; /* minimum value of abscissa */ 00108 char rcomment[COMSIZE]; /* comment line */ 00109 char log[LOGSIZE]; /* log of data manipulations */ 00110 }; 00111 00112 typedef struct { 00113 struct station_info station; /* station info */ 00114 struct event_info event; /* event info */ 00115 struct record_info record; /* record info */ 00116 float extra[NEXTRAS]; /* freebies */ 00117 } ahhed; 00118 00119 00120 #define FLOAT 1 00121 #define COMPLEX 2 00122 #define VECTOR 3 00123 #define TENSOR 4 00124 #define DOUBLE 6 00125 00126 00127 #endif