OB.DAAC Logo
NASA Logo
Ocean Color Science Software

ocssw V2022
flags_iop.h
Go to the documentation of this file.
1 #ifndef _FLAGS_IOP_H
2 #define _FLAGS_IOP_H
3 
4 #include <stdint.h>
5 #include "l12_parms.h"
6 
7 /* flag bit settings */
8 #define IOPF_ISMASKED 0x0001 // pixel masked
9 #define IOPF_FAILED 0x0002 // algorithm signals failure
10 #define IOPF_MAXITER 0x0004 // max iterations reached
11 #define IOPF_BADRRS 0x0008 // insufficient valid Rrs
12 #define IOPF_NAN 0x0010 // inversion returned NAN
13 #define IOPF_RRSDIFF 0x0020 // mean Rrs diff exceeded threshold
14 #define IOPF_ALO 0x0040 // retrieved a below threshold
15 #define IOPF_AHI 0x0080 // retrieved a above threshold
16 #define IOPF_APHLO 0x0100 // retrieved aph below threshold
17 #define IOPF_APHHI 0x0200 // retrieved aph above threshold
18 #define IOPF_ADGLO 0x0400 // retrieved adg below threshold
19 #define IOPF_ADGHI 0x0800 // retrieved adg above threshold
20 #define IOPF_BBLO 0x1000 // retrieved bb below threshold
21 #define IOPF_BBHI 0x2000 // retrieved abb above threshold
22 #define IOPF_BBPLO 0x4000 // retrieved bbp below threshold
23 #define IOPF_BBPHI 0x8000 // retrieved bbp above threshold
24 
25 #ifdef __cplusplus
26 extern "C" {
27 #endif
28 
29 static const char * const giop_flag_lname[NGIOPFLAGS] = {"ISMASKED",
30  "FAILED",
31  "MAXITER",
32  "BADRRS",
33  "NAN",
34  "RRSDIFF",
35  "ALO",
36  "AHI",
37  "APHLO",
38  "APHHI",
39  "ADGLO",
40  "ADGHI",
41  "BBLO",
42  "BBHI",
43  "BBPLO",
44  "BBPHI"};
45 
46 typedef struct iopflagctl_struc {
47  int32_t nwave;
48  int32_t maxiter;
49 
50  float *a_lo;
51  float *a_hi;
52  float *a_on;
53 
54  float *aph_lo;
55  float *aph_hi;
56  float *aph_on;
57 
58  float *adg_lo;
59  float *adg_hi;
60  float *adg_on;
61 
62  float *bb_lo;
63  float *bb_hi;
64  float *bb_on;
65 
66  float *bbp_lo;
67  float *bbp_hi;
68  float *bbp_on;
69 
70 } iopfstr;
71 
72 void set_iop_flag(float wave[], int32_t nwave,
73  float a[], float aph[], float adg[],
74  float bb[], float bbp[], int16_t *flag);
75 
76 #ifdef __cplusplus
77 }
78 #endif
79 
80 #endif
int32_t maxiter
Definition: flags_iop.h:48
float * aph_lo
Definition: flags_iop.h:54
float * a_on
Definition: flags_iop.h:52
float * adg_on
Definition: flags_iop.h:60
float * a_hi
Definition: flags_iop.h:51
float * bb_on
Definition: flags_iop.h:64
float * aph_on
Definition: flags_iop.h:56
float * aph_hi
Definition: flags_iop.h:55
void set_iop_flag(float wave[], int32_t nwave, float a[], float aph[], float adg[], float bb[], float bbp[], int16_t *flag)
float * bb_hi
Definition: flags_iop.h:63
#define NGIOPFLAGS
Definition: l12_parms.h:17
float * bbp_on
Definition: flags_iop.h:68
float * adg_hi
Definition: flags_iop.h:59
float * bbp_hi
Definition: flags_iop.h:67
float * bb_lo
Definition: flags_iop.h:62
float * a_lo
Definition: flags_iop.h:50
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
float * bbp_lo
Definition: flags_iop.h:66
int32_t nwave
Definition: flags_iop.h:47
float * adg_lo
Definition: flags_iop.h:58