1 #ifndef SZA_UTIL_ASTROMETRY_H
2 #define SZA_UTIL_ASTROMETRY_H
11 #include "carma/szautil/Angle.h"
12 #include "carma/szautil/HourAngle.h"
13 #include "carma/szautil/DecAngle.h"
18 class QuadraticInterpolator;
41 virtual ~Astrometry();
49 void extendUt1Utc(
double mjd,
double ut1utc);
58 void extendEqnEqx(
double tt,
double eqneqx);
65 double getUt1Utc(
double mjd);
73 double getEqnEqx(
double tt);
79 bool canBracket(
double mjdUtc);
104 static HourAngle mjdUtcToLst(
double mjdUtc, Angle longitude,
105 double ut1Utc,
double eqnEqx);
110 HourAngle mjdUtcToLst(
double mjdUtc, Angle longitude);
124 static double mjdUtcToMjdTt(
double mjdUtc);
125 static Date mjdUtcToCalendarDate(
double mjdUtc);
127 static void meanToApparentPlace(HourAngle& meanRa, DecAngle& meanDec, TimeVal& date,
double equinox,
128 HourAngle& apparentRa, DecAngle& apparentDec);
130 static void j2000ToApparentPlace(HourAngle& meanRa, DecAngle& meanDec, TimeVal& date,
131 HourAngle& apparentRa, DecAngle& apparentDec);
133 static void apparentToMeanPlace(HourAngle& apparentRa, DecAngle& apparentDec, TimeVal& date,
135 HourAngle& meanRa, DecAngle& meanDec);
137 static void apparentToJ2000Place(HourAngle& apparentRa, DecAngle& apparentDec, TimeVal& date,
138 HourAngle& meanRa, DecAngle& meanDec);
140 static void b1950ToJ2000(HourAngle& raB1950, DecAngle& decB1950, HourAngle& raJ2000, DecAngle& decJ2000);
142 static void j2000ToB1950(HourAngle& raJ2000, DecAngle& decJ2000, HourAngle& raB1950, DecAngle& decB1950);
144 static Angle angularSeparation(HourAngle ra1, DecAngle dec1, HourAngle ra2, DecAngle dec2);
148 static const double secondsPerDay_;
149 static const double pi_;
150 static const double twopi_;
155 QuadraticInterpolator* ut1Utc_;
160 QuadraticInterpolator* eqnEqx_;
169 #endif // End #ifndef SZA_UTIL_ASTROMETRY_H