OB.DAAC Logo
NASA Logo
Ocean Color Science Software

ocssw V2022
pml_iop_tables.h
Go to the documentation of this file.
1 #ifndef tjsm_pml_iop_tables
2 #define tjsm_pml_iop_tables
3 #include <stdio.h>
4 #include <math.h>
5 #include <stdlib.h>
6 #include <string.h>
7 
8 #define MAX_LINE 180
9 
10 /* These are declared here as an extern so they will be useable */
11 /* by the rest of the code (static was previously used incorrectly)*/
12 extern float *lambda, lc[MAX_BANDS], *a_w, *b_w;
13 
14 /* Geophysical (GOP) variables */
15 extern int32_t nband, ch_n, sp_n, od_n;
16 extern float *ch_lev, *ac[MAX_BANDS], *bc[MAX_BANDS];
17 extern float *sp_lev, *as[MAX_BANDS], *bs[MAX_BANDS];
18 extern float *od_lev, *od[MAX_BANDS];
19 
20 /* IOP variables */
21 extern int32_t th_s_n, th_v_n, dphi_n;
22 extern float *th_s_lev, *th_v_lev, *dphi_lev;
23 extern int32_t ap_n, bp_n;
24 extern float *ap_lev, *bp_lev;
25 
26 extern float *refen; /* The pointer for refen.*/
27 
28 /* 490:510 ratio - step 1 of the model */
29 extern int bp[2], maxit;
31 extern float b_tilde_w, b_tilde_p;
33 
34 /* Gelbstoff and pigment parameters */
36 extern float ysbpa_0, ysbpa_s, ysbpa_l;
37 
38 /* Bright pixel externals */
39 extern float tol_n, tol_b, n_init;
40 extern int bp_base, bp_1, bp_2, max_iter, n_bands;
41 extern double lc1, lc2, log_lc1, e_init;
44 extern double n_min, n_max, iter_scale, clim_spm;
45 
46 /* Function declarations */
47 int load_work_tab(char *configname, int sensorID);
48 void load_config(char *configname);
49 float geo2iop(float *levels, float *iopv[MAX_BANDS], int band, float value, int size);
50 float interp_l(float *x, float u, int n);
51 float interp(float *x, float u, int n);
52 int setgeom(float sun_theta, float sen_theta, float dphi);
53 double f_ab(double a, double b, int band);
54 double fint(double a, double b, int band);
55 
56 /* These functions are used in the bright pixel code */
57 float r_ab(float a, float b, int band);
58 float sed_ref(float spm, int band);
59 float chl_ref(float chl, int band);
60 float iop_ref(float conc, int band, int iop);
61 
62 #endif
double rst_spm
double b_init
int32 value
Definition: Granule.c:1235
double lc1
float geo2iop(float *levels, float *iopv[MAX_BANDS], int band, float value, int size)
float b_tilde_p
int max_iter
float scat_l
int setgeom(float sun_theta, float sen_theta, float dphi)
int bp_1
float * refen
float * dphi_lev
int bp_2
float * ch_lev
double fint(double a, double b, int band)
float scat_l_modis
list levels
Definition: mapgen.py:180
float * ap_lev
double rst_n_step
double b_high_init
float b_tilde_w
float * th_v_lev
PARAM_TYPE_NONE Default value No parameter is buried in the product name name_prefix is case insensitive string compared to the product name PARAM_TYPE_VIS_WAVE The visible wavelength bands from the sensor are buried in the product name The product name is compared by appending and name_suffix ie aph_412_giop where prod_ix will be set to PARAM_TYPE_IR_WAVE same search method as PARAM_TYPE_VIS_WAVE except only wavelength above are looped through but prod_ix is still based ie aph_2_giop for the second band
int32_t nband
float eps_p_412_443
float * lambda
Definition: decode_rs.h:75
double rst_db
float sed_ref(float spm, int band)
float lc[MAX_BANDS]
float n_init
float * od_lev
double spm_min
float * b_w
float * as[MAX_BANDS]
int bp[2]
float init_chl
float * od[MAX_BANDS]
float ysbpa_l
int32_t ch_n
int32_t th_v_n
float * a_w
void load_config(char *configname)
float scat_a
double lc2
float interp_l(float *x, float u, int n)
double e_init
float * th_s_lev
#define MAX_BANDS
Definition: pml_iop.h:11
float tol
float interp(float *x, float u, int n)
double f_ab(double a, double b, int band)
float * bp_lev
double max_db
double min_db
float * bs[MAX_BANDS]
double log_lc1
int32_t th_s_n
int32_t sp_n
double rst_n
int32_t od_n
double delta_b_init
int n_bands
double n_max
float ysbpa_s
data_t b[NROOTS+1]
Definition: decode_rs.h:77
float tol_n
float ysbpa_0
float eps_a_init
float eps_a_init_modis
double n_min
data_t u
Definition: decode_rs.h:74
float chl_ref(float chl, int band)
int32_t ap_n
float iop_ref(float conc, int band, int iop)
float tol_b
float scat_b
int load_work_tab(char *configname, int sensorID)
double b_low_init
float r_ab(float a, float b, int band)
int32_t dphi_n
float scat_n
float * ac[MAX_BANDS]
int bp_base
PGE01 indicating that PGE02 PGE01 V6 for and PGE01 V2 for MOD03 were used to produce the granule By convention adopted in all MODIS Terra PGE02 code versions are The fourth digit of the PGE02 version denotes the LUT version used to produce the granule The source of the metadata environment variable ProcessingCenter was changed from a QA LUT value to the Process Configuration A sign used in error in the second order term was changed to a
Definition: HISTORY.txt:424
int32_t sensorID[MAXNFILES]
Definition: l2bin.cpp:97
double clim_spm
double spm_max
int32_t bp_n
float eps_y_412_443
double iter_scale
float scat_c
float * sp_lev
float * bc[MAX_BANDS]
int maxit