Go to the documentation of this file.
28 using namespace netCDF;
29 using namespace netCDF::exceptions;
47 static constexpr
double MSECPERDAY = 86400000000.0;
53 static constexpr
int ADSTATE_BYTE = 169;
54 static constexpr
int ADSTATE_BITS = 3;
55 static constexpr
int ADSTATE_NUM_OF_BITS = 3;
56 static constexpr
int ADMANDONE_BYTE = 255;
57 static constexpr
int ADMANDONE_BIT = 7;
58 static constexpr
int ADFFTID_BYTE = 339;
59 static constexpr
int SCAN_ALL = -1;
61 static constexpr
bool MEAN_SID =
true;
62 static constexpr
bool APP_SID =
false;
180 bool performOrbitCheck =
false);
195 void calcSatAzmZen(
const double inDLat,
const double inLon,
196 const double inSamp2Sat[
VEC_SIZE],
double& outSatAzm,
207 const double viewVec[
VEC_SIZE],
double& dLat,
double&
lon,
208 double& satAzm,
double& satZen,
double&
range);
214 int sunMoonAngles(
const double inTAI,
const double inLat,
215 const double inLon,
const int smFlag,
double& sunAzm,
216 double& sunZen,
double& moonAzm,
double& moonZen,
double& moonPhase,
224 int sunAngles(
const double inTAI,
const float inLat,
const float inLon,
225 float& sunAzm,
float& sunZen);
227 int sunAngles(
const double inTAI,
const double inLat,
const double inLon,
228 double& sunAzm,
double& sunZen);
236 int moonAngles(
const double inTAI,
const float inLat,
const float inLon,
237 float& moonAzm,
float& moonZen,
float& moonPhase,
float& moonIFrac);
247 int getSAAIntensity(
const float inLat,
const float inLon,
248 float& outIntensity);
256 int checkSolarEclipse(
const double inTAI,
const double inLat,
257 const double inLon,
bool& outEclipseOccurring);
263 int writeNavigation();
289 std::map<std::string, VcstLutInputItem*> cmnGeoLutItems_;
302 int initialize_novas();
308 int initialize_LUT_data();
326 int check_scan_sync();
332 int setPolarWander(
const double a_tai);
371 int convCoordSys(
const double inTAI,
const double inPos[
VEC_SIZE],
372 const double inVel[
VEC_SIZE],
const int convFlag,
380 void convVec2LatLon(
const double inVec[
VEC_SIZE],
double& dLat,
381 double& cLat,
double&
lon);
395 void buildQuatMatrix(
const double Qw,
const double Qi,
const double Qj,
422 int getPolarUT1UTC(
const double inTAI,
double& outTDTmUT1,
423 double& outUT1mUTC,
double& outXWander,
double& outYWander,
424 double& outTJD,
bool bForceCalc =
false)
const;
432 int appSiderealTime(
const double inTAI,
const bool getmean,
double& gast,
433 double& xWander,
double& yWander,
double& tjd);
452 void invPNSW(
const double inTDT,
const double gast,
const double Xpole,
453 const double Ypole,
double eciVect[
VEC_SIZE],
461 void invWobble(
const double x,
const double y,
const double rotEq[
VEC_SIZE],
468 int computeSolarVectors();
474 int computeLunarVectors();
480 int computeEarthViewVectors();
486 int check_moon_in_sv();
492 inline bool validLat(
const double inLat) {
493 return ((inLat < -
PIO2) || (inLat >
PIO2) || std::isnan(inLat)) ?
497 inline bool validLon(
const double inLon) {
498 return ((inLon < (-
PI)) || (inLon >
PI) || std::isnan(inLon)) ? false :
true;
505 short convert14To16bit(
short value14bit);
511 bool isPlatformLittleEndian();
proSdrViirsCalQALUT * QALUT
static const std::string SN_APID_0
void initialize(int pixref_flag, int blkref_flag)
const double TAI93_TAI58_SEC
short scan_sync_failure_cnt_
double earth_radius_C(double clat)
double earth_sun_distance_avg_
CmnGeoParamLutType * paramLut
double earth_radius_D(double rlat)
int Check_Tel_Start_Not_Nominal(viirsSdrGeoPtrs *ptrs)
static const std::string SN_APID_8
InstrumentLutType * scDataLut
JPLEphemLutType * jplEphemPtr
CmnGeoPolarUT1Type * pwUT1Ptr