ocssw
V2022
|
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include <gsl/gsl_blas.h>
#include <gsl/gsl_linalg.h>
#include <gsl/gsl_matrix_double.h>
#include <boost/algorithm/string/trim.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include "geolocate_oci.h"
#include <netcdf>
#include "nc4utils.h"
#include "timeutils.h"
#include <clo.h>
#include "global_attrs.h"
#include <terrain.h>
#include <genutils.h>
Go to the source code of this file.
Macros | |
#define | ERROR_EXIT(dim) {if(dim==0){printf("--Error--: the dimension %s is zero. Exiting. See line %d in file %s",#dim,__LINE__, __FILE__);exit(EXIT_FAILURE);} } |
Functions | |
void | read_def_eph (string ephfile, vector< double > &otime, vector< vector< double >> &posj, vector< vector< double >> &velj, double l1aEpoch) |
int | geolocate_oci (string l1a_filename, string geo_lut_filename, geo_struct &geoLUT, string l1b_filename, string dem_file, bool radiance, string doi, const string ephFile, string pversion) |
int | j2000_to_ecr (int32_t iyr, int32_t idy, double sec, double ecmat[3][3]) |
int | j2000_to_mod (int32_t iyr, int32_t idy, double sec, double j2mod[3][3]) |
int | get_nut (int32_t iyr, int32_t idy, double xnut[3][3]) |
int | ephparms (double t, double &xls, double &gs, double &xlm, double &omega) |
int | nutate (double t, double xls, double gs, double xlm, double omega, double &dpsi, double &eps, double &epsm) |
int | get_ut1 (int32_t iyr, int32_t idy, double &ut1utc) |
int | gha2000 (int32_t iyr, double day, double &gha) |
int | mtoq (double rm[3][3], double q[4]) |
int | qprod (double q1[4], float q2[4], double q3[4]) |
int | qprod (float q1[4], float q2[4], float q3[4]) |
int | orb_interp (size_t n_orb_rec, size_t sdim, double *torb, orb_array *p, orb_array *v, double *time, orb_array *posi, orb_array *veli) |
int | q_interp (size_t n_att_rec, size_t sdim, double *tq, quat_array *q, double *time, quat_array *qi) |
int | tilt_interp (size_t n_tilts, size_t sdim, double *ttilt, float *tiltin, double *time, float *tilt) |
int | l_sun (size_t sdim, int32_t iyr, int32_t iday, double *sec, orb_array *sunr, double *rs) |
int | sun2000 (size_t sdim, int32_t iyr, int32_t idy, double *sec, orb_array *sun, double *rs) |
int | qtom (float q[4], double rm[3][3]) |
int | scan_ell (float p[3], double sm[3][3], double coef[10]) |
int | oci_geonav (const char *dem_file, float pos[3], float vel[3], double smat[3][3], double coef[10], float sunr[3], float **pview, size_t npix, double *delt, float *xlat, float *xlon, short *solz, short *sola, short *senz, short *sena, short *height, float &lonwest, float &loneast, float &latsouth, float &latnorth) |
int | mat2rpy (float pos[3], float vel[3], double smat[3][3], float rpy[3]) |
Macro Definition Documentation
◆ ERROR_EXIT
#define ERROR_EXIT | ( | dim | ) | {if(dim==0){printf("--Error--: the dimension %s is zero. Exiting. See line %d in file %s",#dim,__LINE__, __FILE__);exit(EXIT_FAILURE);} } |
Definition at line 23 of file geolocate_oci.cpp.
Function Documentation
◆ ephparms()
int ephparms | ( | double | t, |
double & | xls, | ||
double & | gs, | ||
double & | xlm, | ||
double & | omega | ||
) |
Definition at line 939 of file geolocate_oci.cpp.
◆ geolocate_oci()
int geolocate_oci | ( | string | l1a_filename, |
string | geo_lut_filename, | ||
geo_struct & | geoLUT, | ||
string | l1b_filename, | ||
string | dem_file, | ||
bool | radiance, | ||
string | doi, | ||
const string | ephFile, | ||
string | pversion | ||
) |
Definition at line 117 of file geolocate_oci.cpp.
◆ get_nut()
int get_nut | ( | int32_t | iyr, |
int32_t | idy, | ||
double | xnut[3][3] | ||
) |
Definition at line 911 of file geolocate_oci.cpp.
◆ get_ut1()
int get_ut1 | ( | int32_t | iyr, |
int32_t | idy, | ||
double & | ut1utc | ||
) |
Definition at line 999 of file geolocate_oci.cpp.
◆ gha2000()
int gha2000 | ( | int32_t | iyr, |
double | day, | ||
double & | gha | ||
) |
Definition at line 1048 of file geolocate_oci.cpp.
◆ j2000_to_ecr()
int j2000_to_ecr | ( | int32_t | iyr, |
int32_t | idy, | ||
double | sec, | ||
double | ecmat[3][3] | ||
) |
Definition at line 819 of file geolocate_oci.cpp.
◆ j2000_to_mod()
int j2000_to_mod | ( | int32_t | iyr, |
int32_t | idy, | ||
double | sec, | ||
double | j2mod[3][3] | ||
) |
Definition at line 876 of file geolocate_oci.cpp.
◆ l_sun()
int l_sun | ( | size_t | sdim, |
int32_t | iyr, | ||
int32_t | iday, | ||
double * | sec, | ||
orb_array * | sunr, | ||
double * | rs | ||
) |
Definition at line 1337 of file geolocate_oci.cpp.
◆ mat2rpy()
int mat2rpy | ( | float | pos[3], |
float | vel[3], | ||
double | smat[3][3], | ||
float | rpy[3] | ||
) |
Definition at line 1701 of file geolocate_oci.cpp.
◆ mtoq()
int mtoq | ( | double | rm[3][3], |
double | q[4] | ||
) |
Definition at line 1080 of file geolocate_oci.cpp.
◆ nutate()
int nutate | ( | double | t, |
double | xls, | ||
double | gs, | ||
double | xlm, | ||
double | omega, | ||
double & | dpsi, | ||
double & | eps, | ||
double & | epsm | ||
) |
Definition at line 968 of file geolocate_oci.cpp.
◆ oci_geonav()
int oci_geonav | ( | const char * | dem_file, |
float | pos[3], | ||
float | vel[3], | ||
double | smat[3][3], | ||
double | coef[10], | ||
float | sunr[3], | ||
float ** | pview, | ||
size_t | npix, | ||
double * | delt, | ||
float * | xlat, | ||
float * | xlon, | ||
short * | solz, | ||
short * | sola, | ||
short * | senz, | ||
short * | sena, | ||
short * | height, | ||
float & | lonwest, | ||
float & | loneast, | ||
float & | latsouth, | ||
float & | latnorth | ||
) |
Definition at line 1486 of file geolocate_oci.cpp.
◆ orb_interp()
int orb_interp | ( | size_t | n_orb_rec, |
size_t | sdim, | ||
double * | torb, | ||
orb_array * | p, | ||
orb_array * | v, | ||
double * | time, | ||
orb_array * | posi, | ||
orb_array * | veli | ||
) |
Definition at line 1139 of file geolocate_oci.cpp.
◆ q_interp()
int q_interp | ( | size_t | n_att_rec, |
size_t | sdim, | ||
double * | tq, | ||
quat_array * | q, | ||
double * | time, | ||
quat_array * | qi | ||
) |
Definition at line 1249 of file geolocate_oci.cpp.
◆ qprod() [1/2]
int qprod | ( | double | q1[4], |
float | q2[4], | ||
double | q3[4] | ||
) |
Definition at line 1117 of file geolocate_oci.cpp.
◆ qprod() [2/2]
int qprod | ( | float | q1[4], |
float | q2[4], | ||
float | q3[4] | ||
) |
Definition at line 1128 of file geolocate_oci.cpp.
◆ qtom()
int qtom | ( | float | q[4], |
double | rm[3][3] | ||
) |
Definition at line 1433 of file geolocate_oci.cpp.
◆ read_def_eph()
void read_def_eph | ( | string | ephfile, |
vector< double > & | otime, | ||
vector< vector< double >> & | posj, | ||
vector< vector< double >> & | velj, | ||
double | l1aEpoch | ||
) |
Read a predicted PACE ephemeris file and convert vectors to ECR.
- Parameters
-
ephfile Name of the ephemeris file. Expected to be non-null and not empty. otime Out-parameter indicating time of each record. posj In/out-parameter indicating position of each record. velj In/out-parameter indicating velocity of each record. l1aEpoch Unix time of the start of the L1A file's first day
Definition at line 51 of file geolocate_oci.cpp.
◆ scan_ell()
int scan_ell | ( | float | p[3], |
double | sm[3][3], | ||
double | coef[10] | ||
) |
Definition at line 1449 of file geolocate_oci.cpp.
◆ sun2000()
int sun2000 | ( | size_t | sdim, |
int32_t | iyr, | ||
int32_t | idy, | ||
double * | sec, | ||
orb_array * | sun, | ||
double * | rs | ||
) |
Definition at line 1362 of file geolocate_oci.cpp.
◆ tilt_interp()
int tilt_interp | ( | size_t | n_tilts, |
size_t | sdim, | ||
double * | ttilt, | ||
float * | tiltin, | ||
double * | time, | ||
float * | tilt | ||
) |
Definition at line 1306 of file geolocate_oci.cpp.