NASA Logo
Ocean Color Science Software

ocssw V2022
l2_str.h
Go to the documentation of this file.
1 //
2 // l2_str.h
3 //
4 //
5 // Created by Martin Montes on 10/26/20.
6 //
7 
8 #ifndef L2_STR_H
9 #define L2_STR_H
10 
11 #include "l1c_filehandle.h"
12 #include <stdbool.h>
13 #include <stdint.h>
14 #include "l1c_input.h"
15 
16 namespace l1c {
17 
18 class l2_str {
19  protected:
20  public:
21  // methods
22  l2_str();
23  virtual ~l2_str();
24 
25  // Open, read, close
26  virtual int32_t openl2_ocis_l1c(L1C_input *l1cinput, l2_str *l2str, l1c_filehandle *l1cfile,
27  int16_t *file_id);
28  virtual int32_t readl2_ocis_l1c(l2_str *l2str, l1c_filehandle *l1cfile, int16_t *file_id, int32_t recnum);
29  virtual int32_t closel2_ocis_l1c(l2_str *l2str, l1c_filehandle *l1cfile);
30 
31  // global attributes
32  size_t npix;
33  size_t iscan;
34  size_t nscan;
35  // scan line attributes--
36  double *ev_mid_time;
38  size_t spix;
39  size_t epix;
40  size_t dpix;
41 
42  // structure--pointers to data arrays
43  // structure--pointers to data arrays
44  float **Lt; // dim depends between sensors--OCI is bands x pixels --
45  float **Lt_blue; //[num_views][num_pol][num_blue_bands][num_pixels]
46  float **Lt_red;
47  float **Lt_SWIR;
48 
49  float **l2prod; // # l2 products x number of pixels
50  size_t nl2prod;
51  float *slopeprod;
52  float *offsetprod;
53  float *tilt; // sensor tilt
54 
55  // sensor/sun geometry
56  float *senz;
57  float *sena;
58  float *solz;
59  float *sola;
60  float *delphi;
61  float *scattang;
62 
63  // navigation--
64  float att_ang[3];
65  float orb_pos[3];
66  float orb_vel[3];
67 
68  // geolocation--
69  float *senazpix;
70  float *latpix;
71  float *lonpix;
72  float *latpix2; // lat2/lon are the sline +1
73  float *lonpix2;
74 
75  l1c_filehandle *l1cfile; // not sure why this thing is here?
76 };
77 
78 // prototypes------
79 // Open, read, close
80 int32_t openl2_ocis_l1c(L1C_input *l1cinput, l2_str *l2str, l1c_filehandle *l1cfile, int16_t *file_id);
81 int32_t readl2_ocis_l1c(l2_str *l2str, l1c_filehandle *l1cfile, int16_t *file_id, int32_t recnum);
82 int32_t closel2_ocis_l1c(l2_str *l2str, l1c_filehandle *l1cfile);
83 
84 } // namespace l1c
85 
86 #endif /* L2_STR_H */
float * offsetprod
Definition: l2_str.h:52
double * ev_mid_time
Definition: l2_str.h:36
int32_t readl2_ocis_l1c(l2_str *l2str, l1c_filehandle *l1cfile, int16_t *file_id, int32_t recnum)
float ** l2prod
Definition: l2_str.h:49
float * latpix2
Definition: l2_str.h:72
size_t dpix
Definition: l2_str.h:40
size_t nl2prod
Definition: l2_str.h:50
float * senazpix
Definition: l2_str.h:69
size_t nscan
Definition: l2_str.h:34
float orb_vel[3]
Definition: l2_str.h:66
float * tilt
Definition: l2_str.h:53
float * slopeprod
Definition: l2_str.h:51
virtual int32_t closel2_ocis_l1c(l2_str *l2str, l1c_filehandle *l1cfile)
Definition: l2_str.cpp:341
float * sena
Definition: l2_str.h:57
int32_t closel2_ocis_l1c(l2_str *l2str, l1c_filehandle *l1cfile)
l1c_filehandle * l1cfile
Definition: l2_str.h:75
float * solz
Definition: l2_str.h:58
virtual ~l2_str()
Definition: l2_str.cpp:107
virtual int32_t openl2_ocis_l1c(L1C_input *l1cinput, l2_str *l2str, l1c_filehandle *l1cfile, int16_t *file_id)
Definition: l2_str.cpp:110
read recnum
float att_ang[3]
Definition: l2_str.h:64
size_t npix
Definition: l2_str.h:32
float * scattang
Definition: l2_str.h:61
virtual int32_t readl2_ocis_l1c(l2_str *l2str, l1c_filehandle *l1cfile, int16_t *file_id, int32_t recnum)
Definition: l2_str.cpp:309
float * lonpix
Definition: l2_str.h:71
float ** Lt
Definition: l2_str.h:44
float ** Lt_SWIR
Definition: l2_str.h:47
int32_t openl2_ocis_l1c(L1C_input *l1cinput, l2_str *l2str, l1c_filehandle *l1cfile, int16_t *file_id)
float * sola
Definition: l2_str.h:59
size_t * scan_quality_flag
Definition: l2_str.h:37
Definition: l1c.cpp:71
size_t epix
Definition: l2_str.h:39
size_t spix
Definition: l2_str.h:38
float * latpix
Definition: l2_str.h:70
size_t iscan
Definition: l2_str.h:33
float * lonpix2
Definition: l2_str.h:73
float * senz
Definition: l2_str.h:56
float ** Lt_blue
Definition: l2_str.h:45
float ** Lt_red
Definition: l2_str.h:46
float * delphi
Definition: l2_str.h:60
float orb_pos[3]
Definition: l2_str.h:65