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

# ahhead.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: 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