The following coordinate system conversions are supported:
Horizon coordinates are defined in terms of (altitude,azimuth) where:
altitude: elevation above the horizon, measured from -90^o (nadir)
through 0^o (horizon) to +90^o (zenith).
azimuth: the angle in the horizon plane measured easterly from
north, i.e. 0^o is North, 90^o East, 180^o South,
270^o West.
LocalDet Coordinate direction cosines (dcosx,dcosy,dcosz) are
defined in the local coordinate system of a specified detector
type (DetectorType::Detector_t):
+z: horizontal component of the beam direction.
+y: local vertical.
+x: chosen to make coordinate system right-handed.
IdealDet Coordinate direction cosines (dcosx_ideal,dcosy_ideal,
dcosz_ideal) are defined such that:
+z: points North.
+y: radius vector originating at center of earth.
+x: points West.
Geocentric Equatorial coordinates (hourangle, declination),
are defined relative to the earth's equatorial plane.
hourangle: time since the object crossed the observer's meridian
(the great circle passing through the observer's zenith
and the poles). Measured from 0 to 360^o.
declination: elevation above the equatorial plane, measured from
-90^o to 90^o.
Geocentric Celestial coordinates (right ascension,declination),
are defined as in the equatorial system, but instead of rotating
with the earth, they are fixed on the celestial sphere.
right ascension: angle in the equatorial plane measured eastwards
from the rising of Aries. Measured from 0 - 360^o
declination: elevation above the equatorial plane, measured from
-90^o to 90^o.
The following time conversions are allowed:
Calendar -> Julian -> GMST -> GAST GST <-> LST
Time conversion methods:
void CalendarToJulian(int year, int month, int day,
double hour, double& juliandate);
void JulianToGMST(double juliandate, double& gmst);
void JulianToGAST(double juliandate, double& gast);
void GSTToLST(double gst, double longitude, double& lst);
void LSTToGST(double lst, double longitude, double& gst);
Coordinate conversion methods:
void LocalToIdeal(double dcosx, double dcosy, double dcosz,
DetectorType::Detector_t dettype, double& dcosx_ideal,
double& dcosy_ideal, double& dcosz_ideal);
void IdealToLocal(double dcosx_ideal, double dcosy_ideal, double dcosz_ideal,
DetectorType::Detector_t dettype, double& dcosx,
double& dcosy, double& dcosz);
void HorizonToLocal(double altitude, double azimuth,
DetectorType::Detector_t dettype, double& dcosx,
double& dcosy, double& dcosz);
void LocalToHorizon(double dcosx, double dcosy, double dcosz,
DetectorType::Detector_t dettype, double& altitude,
double& azimuth);
void HorizonToIdeal(double altitude, double azimuth,double& dcosx_ideal,
double& dcosy_ideal,double& dcosz_ideal);
void IdealToHorizon(double dcosx_ideal, double dcosy_ideal,
double dcosz_ideal,double& altitude, double& azimuth);
void HorizonToEquatorial(double altitude, double azimuth,
double latitude, double& hourangle, double& declination);
void EquatorialToHorizon(double hourangle, double declination,
double latitude, double& altitude, double& azimuth);
void CelestialToEquatorial(double ra, double gmst,
double longitude, double& hourangle);
void EquatorialToCelestial(double hourangle, double gmst,
double longitude, double& ra);