|
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.


