WXP C++ Library Version 6.74.6
Loading...
Searching...
No Matches
Gvar.h
1#ifndef _WINC_GVAR
2#define _WINC_GVAR
3
4#include <WXP/Angle.h>
5#include <WXP/Attitude.h>
6#include <WXP/AttitudeAngle.h>
7#include <WXP/DateVal.h>
8#include <WXP/EarthPoint.h>
9#include <WXP/EarthPoint2.h>
10#include <WXP/Point2.h>
11#include <WXP/SatAngle.h>
12#include <WXP/SatPoint.h>
13
14namespace WXP {
15 class Gvar {
16 int idntfr; /* 2 IDNTFR = */
17 int imcact; /* 3 IMCACT = IMC active flag */
18 float reflon; /* 6 +REFLON = Reference longitude */
19 float refdis; /* 7 +REFDIS = Reference distance from nominal */
20 float reflat; /* 8 +REFLAT = Reference latitude */
21 float refyaw; /* 9 +REFYAW = Reference yaw */
22 Attitude ref_att;/* 10 +RATROL = Reference attitude roll */
23 /* 11 +RATPTC = Reference attitude pitch */
24 /* 12 +RATYAW = Reference attitude yaw */
25 double epoch; /* 13-14 ETIME = Epoch time */
26 float edtime; /* 15 +EDTIME = Delta from epoch time */
27 Attitude im_mot_cor;/* 16 +IMCROL = Image motion compensation roll */
28 /* 17 +IMCPTC = Image motion compensation pitch */
29 /* 18 +IMCYAW = Image motion compensation yaw */
30 float ldr[13]; /* 19-31 +LDR = Longitude delta from ref parameters */
31 float rddr[11]; /* 32-42 +RDDR = Radial distance delta from ref params */
32 float dgl[9]; /* 43-51 +DGL = Geocentric latitude delta parameters */
33 float doy[9]; /* 52-60 +DOY = Orbit yaw delta parameters */
34 float solinc; /* 61 reserved */
35 float exptim; /* 62 +EXPTIM = Exponential start time from epoch */
36 AttitudeAngle raawds; /* 63-117 RAAWDS = Roll attitude angle words */
37 AttitudeAngle paawds; /* 130-184 PAAWDS = Pitch attitude angle words */
38 AttitudeAngle yaawds; /* 185-239 YAAWDS = Yaw attitude angle words */
39 AttitudeAngle rmawds; /* 258-312 RMAWDS = Roll misalignment angle words */
40 AttitudeAngle pmawds; /* 313-367 PMAWDS = Pitch misalignment angle words */
41 double imgtim; /* 368-369 IMGDATM = Image time value (YYDDD) */
42 int imgsnd; /* 370 IMGSND = Imager/sounder instrument flag */
43
44 int imc;
45
46 /* ELCOMM include variables */
47 double bt[3][3]; /* Instrument to ECEF coordinates transformation */
48 double q3; /* Used in function lpoint */
49 Attitude inst_att; /* Pitch,roll,yaw angles of instrument (rad) */
50 float pma,rma; /* Pitch,roll misalignments of instrument (rad) */
51 /* INSTCO include variables */
52 int inc_max[2]; /* Number of increments per cycle */
53 float elev_bnds[2]; /* Bounds in elevation (radians) */
54 float scan_bnds[2]; /* Bounds in scan angle (radians) */
55 float elev_inc[2]; /* Change in elevation angle per increment (rad) */
56 float scan_inc[2]; /* Change in scan angle per increment (radians) */
57 float elev_dln[2]; /* Elevation angle per detector line (radians) */
58 float scan_pix[2]; /* Scan angle per pixel (radians) */
59 /* GVRCOM common variables */
60 int itype;
61 int instr;
62 EarthPoint2 sat_sub;
63 /* SAVCOM common variables */
64 Point2 xs; /* Normalized S/C position in ECEF coordinates */
65 double b[3][3]; /* Spacecraft to ECEF coordinates transformation */
66 double dr;
67 Angle phi;
68 Angle psi;
69
70 public:
71 int initConstants( int nadnsc, int nadnsi, int nadewc, int nadewi);
72 int initParams();
73 int instMatrix( Attitude att, double a[3][3] , double at[3][3] );
74 int getSubPoint( EarthPoint &ept );
75 float getScanDelta();
76 float getElevDelta();
77 int tran( SatPoint &spt, SatAngle &sa );
78 int tran( SatAngle &sa, SatPoint &spt );
79 int tran( SatPoint &spt, EarthPoint &ept );
80 int tran( EarthPoint &ept, SatPoint &spt );
81 int tran( SatAngle &sa, EarthPoint &ept );
82 int tran( EarthPoint &ept, SatAngle &sa );
83
84 static double epochTime( DateVal dv );
85 static double epochTime( unsigned int dmy, unsigned int smh );
86 static int setAttitudeAngle( int *data, AttitudeAngle &param );
87 static double adjustAttitude( AttitudeAngle &parms, double sol_ang, double exp_tim);
88
89 const static double RADE_EQUA;
90 const static double RADE_POLE;
91 const static double RADE_MEAN;
92 const static double SOLAR_YR;
93 const static double SIDER_YR;
94 const static double SOLSID;
95 const static int REF_DATE;
96 const static int REF_TIME;
97 const static double PREC_VER_EQ;
98 const static double OBLIQ_ECLIP;
99 const static double NOMORB;
100 const static double REQ;
101 const static double RPL;
102 const static double REQRPL2;
103 const static double FER;
104 const static double FER2;
105 const static double REQRPL3;
106 const static double REQRPL4;
107
108 friend class AreaFile;
109 };
110}
111#endif
112
113
This structure sets data for an angle.
Definition: Angle.h:5
This class decodes McIDAS AREA files.
Definition: AreaFile.h:15
This class manages GVAR GOES satellite image navigation.
Definition: Gvar.h:15
static double epochTime(DateVal dv)
Definition: Gvar.cc:608
float getScanDelta()
Definition: Gvar.cc:277
int tran(SatPoint &spt, SatAngle &sa)
Definition: Gvar.cc:294
int initParams()
Definition: Gvar.cc:82
int instMatrix(Attitude att, double a[3][3], double at[3][3])
Definition: Gvar.cc:576
int getSubPoint(EarthPoint &ept)
Definition: Gvar.cc:267
int initConstants(int nadnsc, int nadnsi, int nadewc, int nadewi)
Definition: Gvar.cc:45
static int setAttitudeAngle(int *data, AttitudeAngle &param)
Definition: Gvar.cc:658
float getElevDelta()
Definition: Gvar.cc:285
static double adjustAttitude(AttitudeAngle &parms, double sol_ang, double exp_tim)
Definition: Gvar.cc:543
All WXP classes fall under the WXP namespace.
Definition: Angle.h:4
This struct stores attitude angle data.
Definition: AttitudeAngle.h:13
This struct stores the attitude of the satellite in space.
Definition: Attitude.h:6
This struct defines basic date values.
Definition: DateVal.h:5
This struct stores double precision earth location.
Definition: EarthPoint2.h:5
This struct defines earth point values (lat, lon, elev)
Definition: EarthPoint.h:5
This struct stores double precision point location.
Definition: Point2.h:5
This struct stores the angle of the satellite imager.
Definition: SatAngle.h:5
This struct stores where the satellite is pointing.
Definition: SatPoint.h:6