The following coordinate system conversions are supported:

- LocalDet <-> IdealDet
- Horizon <-> LocalDet
- Horizon <-> IdealDet
- Horizon <-> Equatorial
- Celestial <-> Equatorial

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);

- None.

Sue Kasahara Last Modified: $Date: 2004/06/05 18:43:33 $