OB.DAAC Logo
NASA Logo
Ocean Color Science Software

ocssw V2022
prism.h
Go to the documentation of this file.
1 /*
2  * prism.h
3  *
4  * Created on: June 2015
5  * Author: rhealy
6  */
7 
8 #ifndef SRC_L2GEN_PRISM_H_
9 #define SRC_L2GEN_PRISM_H_
10 #include <gsl/gsl_errno.h>
11 #include <gsl/gsl_spline.h>
12 #include <gsl/gsl_sort_double.h>
13 #include <proj.h>
14 
15 typedef struct prism_l1b_t {
16  // info
17 
18  int npixels;
19  int nscans;
20  int nbands;
23 } prism_l1b_t;
24 
25 typedef struct prism4ocia_struct {
26  int32_t year, day, month, doy, msec, hour, min;
27  float sec;
28  double stime, etime;
30  float *sena, *senz, *sola, *solz, *utc;
31  double *gain, *lon, *lat, scantime;
32  double *wave, *fwhm;
33  PJ *pj;
35  double pixelSize;
38  float *Lt;
39  float *scale_factor;
40  FILE *av_fp;
41  gsl_spline *spline;
42  gsl_interp_accel *spl_acc;
43  float alt;
44 } prism4ocia_t;
45 
46 void readNextLine_av(FILE* fp, char* tag, char* val);
47 char* getinbasename(char *file);
48 void prism_proj4_convert(prism4ocia_t * data, int numPoints, double *x, double *y);
49 char* checkTagLine_av(char *line, char* tag);
50 double getValidAngle(double *ang, int32_t npix, int32_t skip);
51 int readBinScanLine_float(float *Lt, int32_t recnum, int32_t npix, double *gain, int nbands, int numBands, int interleave, int swap, FILE *ptr);
52 prism4ocia_t* createPrivateData_pr(int numBands, int32_t nscan, int32_t npix);
53 void freePrivateData_pr(prism4ocia_t* data);
54 void get_zenaz(float *pos, float lon, float lat, float *senz, float *sena);
55 double deg2rad(double deg);
56 
57 #endif /* SRC_L2GEN_PRISM_H_ */
double easting
Definition: prism.h:34
double stime
Definition: prism.h:28
int interleave
Definition: prism.h:37
double * fwhm
Definition: prism.h:32
void get_zenaz(float *pos, float lon, float lat, float *senz, float *sena)
Definition: get_zenaz.c:28
float * solz
Definition: prism.h:30
double getValidAngle(double *ang, int32_t npix, int32_t skip)
Definition: jplaeriallib.c:423
float * senz
Definition: prism.h:30
int16 * gain
Definition: l1_czcs_hdf.c:33
char * checkTagLine_av(char *line, char *tag)
int npixels
Definition: prism.h:18
prism4ocia_t * createPrivateData_pr(int numBands, int32_t nscan, int32_t npix)
Definition: read_prism.c:36
double northing
Definition: prism.h:34
int nscans
Definition: prism.h:19
int nbands
Definition: prism.h:20
int32_t doy
Definition: prism.h:26
float32 * pos
Definition: l1_czcs_hdf.c:35
float * lat
void readNextLine_av(FILE *fp, char *tag, char *val)
double deg2rad(double deg)
Definition: read_prism.c:550
int32 nscan
Definition: l1_czcs_hdf.c:19
int32_t hour
Definition: prism.h:26
int32_t wgs_nscan
Definition: prism.h:29
no change in intended resolving MODur00064 Corrected handling of bad ephemeris attitude resolving resolving GSFcd00179 Corrected handling of fill values for[Sensor|Solar][Zenith|Azimuth] resolving MODxl01751 Changed to validate LUT version against a value retrieved from the resolving MODxl02056 Changed to calculate Solar Diffuser angles without adjustment for estimated post launch changes in the MODIS orientation relative to incidentally resolving defects MODxl01766 Also resolves MODxl01947 Changed to ignore fill values in SCI_ABNORM and SCI_STATE rather than treating them as resolving MODxl01780 Changed to use spacecraft ancillary data to recognise when the mirror encoder data is being set by side A or side B and to change calculations accordingly This removes the need for seperate LUTs for Side A and Side B data it makes the new LUTs incompatible with older versions of the and vice versa Also resolves MODxl01685 A more robust GRing algorithm is being which will create a non default GRing anytime there s even a single geolocated pixel in a granule Removed obsolete messages from seed file
Definition: HISTORY.txt:413
int readBinScanLine_float(float *Lt, int32_t recnum, int32_t npix, double *gain, int nbands, int numBands, int interleave, int swap, FILE *ptr)
Definition: jplaeriallib.c:371
int32_t month
Definition: prism.h:26
float * utc
Definition: prism.h:30
read recnum
int32_t day
Definition: prism.h:26
int32_t min
Definition: prism.h:26
void freePrivateData_pr(prism4ocia_t *data)
Definition: read_prism.c:59
double etime
Definition: prism.h:28
double * lon
Definition: prism.h:31
double pixelSize
Definition: prism.h:35
float * Lt
Definition: prism.h:38
int32_t msec
Definition: prism.h:26
int32_t year
Definition: prism.h:26
int32_t nscan
Definition: prism.h:29
int eastbyscan
Definition: prism.h:37
double scantime
Definition: prism.h:31
int32_t wgs_npix
Definition: prism.h:29
no change in intended resolving MODur00064 Corrected handling of bad ephemeris attitude data
Definition: HISTORY.txt:356
float * scale_factor
Definition: prism.h:39
gsl_interp_accel * spl_acc
Definition: prism.h:42
float * sola
Definition: prism.h:30
int32_t nbands
double * lat
Definition: prism.h:31
FILE * av_fp
Definition: prism.h:40
gsl_spline * spline
Definition: prism.h:41
float * lon
void prism_proj4_convert(prism4ocia_t *data, int numPoints, double *x, double *y)
Definition: read_prism.c:554
int32_t npix
Definition: prism.h:29
double * wave
Definition: prism.h:32
double * gain
Definition: prism.h:31
msiBandIdx val
Definition: l1c_msi.cpp:34
double rotation
Definition: prism.h:34
int npix
Definition: get_cmp.c:27
char * getinbasename(char *file)
Definition: jplaeriallib.c:41
float * sena
Definition: prism.h:30