ocssw  1.0
/disk01/web/ocssw/build/src/l2gen/l1_struc.h (r8090/r7724)
Go to the documentation of this file.
00001 #ifndef _L1_STRUC_H
00002 #define _L1_STRUC_H
00003 
00004 #include "l12_parms.h"
00005 #include "input_struc.h"
00006 #include "hdf.h"
00007 
00008 /* Notice: any changes to this structure may require modifications to the */
00009 /* following routines: alloc_l1.c, cpl1rec.c, l1subpix.c.                 */
00010 
00011 typedef struct l1_struct {
00012 
00013     int32_t   sensorID;      
00014     int32_t   length;     /* number of bytes allocated to data block */
00015     int32_t   npix;
00016     int32_t   spix;
00017     int32_t   epix;
00018     int32_t   dpix;
00019     int32_t   nscans;
00020     int32_t   sscan;
00021     int32_t   escan;
00022     int32_t   dscan;
00023     int32_t   nbands;
00024     int32_t   nbandsir;
00025     int32_t   ndets;
00026     int32_t  *bindx;
00027     int32_t   iscan;
00028     int32_t   detnum;
00029     int32_t   mside;
00030 
00031     /* for avhrr */
00032 
00033     int32_t   xsatid;
00034     char   satnam[12];
00035     int    morbit;
00036     float  prtemp;
00037 
00038     /* process control paramters */
00039 
00040     int32_t   landMaskOn;
00041     int32_t   bathMaskOn;
00042     int32_t   cloudMaskOn;
00043     int32_t   glintMaskOn;
00044     int32_t   hiltMaskOn;
00045     int32_t   stlightMaskOn;
00046     int32_t   senzMaskOn;
00047     int32_t   solzMaskOn;
00048 
00049     /* sensor band-pass-specific data */
00050 
00051     int32_t   iwave [NBANDS];
00052     float  fwave [NBANDS];
00053     float  Fo    [NBANDS];
00054     float  Fobar [NBANDS];
00055     float  Fonom [NBANDS];
00056     float  Tau_r [NBANDS];
00057     float  k_oz  [NBANDS];
00058     float  aw    [NBANDS];
00059     float  bbw   [NBANDS];
00060 
00061     /* scan-time-specific data */
00062 
00063     double fsol;
00064 
00065     /* scan attributes */
00066 
00067     float tilt;
00068 
00069     /* All parameters below are scan-length dependent */ 
00070 
00071     char   *data;       /* points to start of variable-length data block */
00072     int32_t   *year;
00073     int32_t   *day;
00074     int32_t   *msec;
00075     int32_t   *nobs;
00076     float  *lon;
00077     float  *lat;
00078     float  *solz;
00079     float  *sola;
00080     float  *senz;
00081     float  *sena;
00082     float  *Lt;
00083     float  *Lt_unc;
00084 
00085     float  *Ltir;
00086     float  *Bt;
00087 
00088     float  *delphi;
00089     float  *csolz;
00090     float  *csenz;
00091     int32_t   *pixnum;
00092     float  *alpha;
00093     float  *scattang;
00094 
00095     float  *ws;
00096     float  *wd;
00097     float  *mw;
00098     float  *zw;
00099     float  *pr;
00100     float  *oz;
00101     float  *wv;
00102     float  *rh;
00103     float  *no2_tropo;
00104     float  *no2_strat;
00105     float  *no2_frac;
00106     float  *height;
00107     short  *elev;
00108     short  *ancqc;
00109 
00110     int32_t   *flags;
00111     char   *mask;
00112     char   *hilt;
00113     char   *cloud;
00114     char   *glint;
00115     char   *land;
00116     char   *swater;
00117     char   *ice;
00118     char   *solzmax;
00119     char   *senzmax;
00120     char   *stlight;
00121     char   *absaer;
00122     char   *navfail;
00123     char   *navwarn;
00124     char   *darkpix;
00125     char   *filter;
00126     char   *cirrus;
00127 
00128     float  *t_h2o;
00129     float  *t_o2;
00130     float  *tg_sol;
00131     float  *tg_sen;
00132     float  *t_sol;
00133     float  *t_sen;
00134     float  *rhof;
00135     float  *tLf;
00136     float  *Lr;
00137     float  *L_q;
00138     float  *L_u;
00139     float  *polcor;
00140     float  *dpol;
00141     float  *TLg;
00142     float  *rhos;
00143     float  *glint_coef;
00144     float  *cloud_albedo;
00145     float  *aerindex;
00146     float  *sstref;
00147     float  *sssref;
00148     float  *sw_n;
00149     float  *sw_a;
00150     float  *sw_bb;
00151     float  *rho_cirrus;
00152 
00153     /* for MERIS L1 */
00154     int32_t   *pixdet;         /* detector index of pixel */
00155     float  *radcor;         /* smile correction */
00156 
00157     /* for MERIS L2 */
00158     int32_t   n_inprods;
00159     float **in_prods;
00160     int32_t  *in_flags;
00161 
00162     /* for VIIRS unaggregated and superscan */
00163     int16 scn_fmt;  /* scan format of data, 0 std, else unaggregated */
00164     float margin_s;  /* extra scan margin beyond actual samples */
00165 
00166     instr  *input;
00167 
00168 } l1str;
00169 
00170 #endif
00171 
00172 
00173 
00174