OB.DAAC Logo
NASA Logo
Ocean Color Science Software

ocssw V2022
geolocate_oci.cpp File Reference
#include <fstream>
#include <iostream>
#include <sstream>
#include <gsl/gsl_blas.h>
#include <gsl/gsl_linalg.h>
#include <gsl/gsl_matrix_double.h>
#include "geolocate_oci.h"
#include <netcdf>
#include "nc4utils.h"
#include "timeutils.h"
Include dependency graph for geolocate_oci.cpp:

Go to the source code of this file.

Macros

#define VERSION   "0.01"
 

Functions

int main (int argc, char *argv[])
 
int read_mce_tlm (NcFile *l1afile, NcGroup egid, uint32_t nscan, uint32_t nenc, int32_t &ppr_off, double &revpsec, double &secpline, int32_t *mspin, int32_t *ot_10us, uint8_t *enc_count, float **hamenc, float **rtaenc)
 
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 l_sun (size_t sdim, int32_t iyr, int32_t iday, double *sec, orb_array *sunr)
 
int sun2000 (size_t sdim, int32_t iyr, int32_t idy, double *sec, orb_array *sun)
 
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 (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 *range)
 
int mat2rpy (float pos[3], float vel[3], double smat[3][3], float rpy[3])
 

Macro Definition Documentation

◆ VERSION

#define VERSION   "0.01"

Definition at line 20 of file geolocate_oci.cpp.

Function Documentation

◆ ephparms()

int ephparms ( double  t,
double &  xls,
double &  gs,
double &  xlm,
double &  omega 
)

Definition at line 764 of file geolocate_oci.cpp.

◆ get_nut()

int get_nut ( int32_t  iyr,
int32_t  idy,
double  xnut[3][3] 
)

Definition at line 736 of file geolocate_oci.cpp.

◆ get_ut1()

int get_ut1 ( int32_t  iyr,
int32_t  idy,
double &  ut1utc 
)

Definition at line 824 of file geolocate_oci.cpp.

◆ gha2000()

int gha2000 ( int32_t  iyr,
double  day,
double &  gha 
)

Definition at line 874 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 644 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 701 of file geolocate_oci.cpp.

◆ l_sun()

int l_sun ( size_t  sdim,
int32_t  iyr,
int32_t  iday,
double *  sec,
orb_array sunr 
)

Definition at line 1086 of file geolocate_oci.cpp.

◆ main()

int main ( int  argc,
char *  argv[] 
)

An implementation of a Lon/Lat to UTM zone code written by Chuck Gantz chuck.nosp@m..gan.nosp@m.tz@gl.nosp@m.obal.nosp@m.star..nosp@m.com ...in 1998...found on http://www.gpsy.com/gpsinfo/geotoutm/, a site published by Karen Nakamura, last updated 22 June 2000.

Minor modifications to the code were made to eliminate deprecation warnings

Definition at line 29 of file geolocate_oci.cpp.

◆ mat2rpy()

int mat2rpy ( float  pos[3],
float  vel[3],
double  smat[3][3],
float  rpy[3] 
)

Definition at line 1415 of file geolocate_oci.cpp.

◆ mtoq()

int mtoq ( double  rm[3][3],
double  q[4] 
)

Definition at line 906 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 793 of file geolocate_oci.cpp.

◆ oci_geonav()

int oci_geonav ( 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 *  range 
)

Definition at line 1235 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 965 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 1044 of file geolocate_oci.cpp.

◆ qprod() [1/2]

int qprod ( double  q1[4],
float  q2[4],
double  q3[4] 
)

Definition at line 943 of file geolocate_oci.cpp.

◆ qprod() [2/2]

int qprod ( float  q1[4],
float  q2[4],
float  q3[4] 
)

Definition at line 954 of file geolocate_oci.cpp.

◆ qtom()

int qtom ( float  q[4],
double  rm[3][3] 
)

Definition at line 1182 of file geolocate_oci.cpp.

◆ read_mce_tlm()

int read_mce_tlm ( NcFile *  l1afile,
NcGroup  egid,
uint32_t  nscan,
uint32_t  nenc,
int32_t &  ppr_off,
double &  revpsec,
double &  secpline,
int32_t *  mspin,
int32_t *  ot_10us,
uint8_t *  enc_count,
float **  hamenc,
float **  rtaenc 
)

Definition at line 530 of file geolocate_oci.cpp.

◆ scan_ell()

int scan_ell ( float  p[3],
double  sm[3][3],
double  coef[10] 
)

Definition at line 1198 of file geolocate_oci.cpp.

◆ sun2000()

int sun2000 ( size_t  sdim,
int32_t  iyr,
int32_t  idy,
double *  sec,
orb_array sun 
)

Definition at line 1111 of file geolocate_oci.cpp.