00001 #ifndef ASTCOORDINATE_H 00002 #define ASTCOORDINATE_H 00003 00005 // AstCoordinate 00006 // 00007 // Package: Ast (AstroUtil). 00008 // 00009 // Purpose: Provide utility routines to convert between different 00010 // astronomical coordinate sytems. 00011 // 00012 // Horizon coordinates (altitude,azimuth) are defined as: 00013 // altitude: elevation above the horizon, measured from -90^o (nadir) 00014 // through 0^o (horizon) to +90^o (zenith). 00015 // azimuth: the angle in the horizon plane measured easterly from 00016 // north, i.e. 0^o is North, 90^o East, 180^o South, 00017 // 270^o West. 00018 // 00019 // Local Det. Coordinate direction cosines (dcosx,dcosy,dcosz) are 00020 // defined in the local coordinate system of a specified detector 00021 // type (Detector::Detector_t): 00022 // +z: horizontal component of the beam direction. 00023 // +y: local vertical. 00024 // +x: chosen to make coordinate system right-handed. 00025 // 00026 // Ideal Det. Coordinate direction cosines (dcosx_ideal,dcosy_ideal, 00027 // dcosz_ideal) are defined such that: 00028 // +z: points North. 00029 // +y: radius vector originating at center of earth. 00030 // +x: points West. 00031 // 00032 // Geocentric Equatorial coordinates (hourangle, declination), 00033 // are defined relative to the earth's equatorial plane. 00034 // hourangle: time since the object crossed the observer's meridian 00035 // (the great circle passing through the observer's zenith 00036 // and the poles). Measured from 0 to 360^o. 00037 // declination: elevation above the equatorial plane, measured from 00038 // -90^o to 90^o. 00039 // 00040 // Geocentric Celestial coordinates (right ascension,declination), 00041 // are defined as in the equatorial system, but instead of rotating 00042 // with the earth, they are fixed on the celestial sphere. 00043 // right ascension: angle in the equatorial plane measured eastwards 00044 // from the rising of Aries. Measured from 0 - 360^o. 00045 // declination: same as for Geocentric Equatorial coordinates. 00046 // 00047 // Geocentric Ecliptic coordinates (ecliptic latitude, beta, ecliptic 00048 // longitude, lamda), are defined relative to the ecliptic great circle. 00049 // They are also fixed on the celestial sphere 00050 // latitude: elevation over the ecliptic (-90 to 90^o). 00051 // longitude: angle in the ecliptic plane, measured eastwards from the 00052 // rising of Aries (one of two points where the equatorial and ecliptic 00053 // circles cross). 00055 00056 #include "Conventions/Detector.h" 00057 00058 namespace AstUtil { 00059 00060 void LocalToIdeal(double dcosx, double dcosy, double dcosz, 00061 Detector::Detector_t dettype, double& dcosx_ideal, 00062 double& dcosy_ideal, double& dcosz_ideal); 00063 void IdealToLocal(double dcosx_ideal, double dcosy_ideal, double dcosz_ideal, 00064 Detector::Detector_t dettype, double& dcosx, 00065 double& dcosy, double& dcosz); 00066 void HorizonToLocal(double altitude, double azimuth, 00067 Detector::Detector_t dettype, double& dcosx, 00068 double& dcosy, double& dcosz); 00069 void LocalToHorizon(double dcosx, double dcosy, double dcosz, 00070 Detector::Detector_t dettype, double& altitude, 00071 double& azimuth); 00072 void HorizonToIdeal(double altitude, double azimuth,double& dcosx_ideal, 00073 double& dcosy_ideal,double& dcosz_ideal); 00074 void IdealToHorizon(double dcosx_ideal, double dcosy_ideal, 00075 double dcosz_ideal,double& altitude, double& azimuth); 00076 void HorizonToEquatorial(double altitude, double azimuth, 00077 double latitude, double& hourangle, double& declination); 00078 void EquatorialToHorizon(double hourangle, double declination, 00079 double latitude, double& altitude, double& azimuth); 00080 void CelestialToEquatorial(double ra, double gmst, 00081 double longitude, double& hourangle); 00082 void EquatorialToCelestial(double hourangle, double gmst, 00083 double longitude, double& ra); 00084 void CelestialToEcliptic(double declination, double ra, 00085 double& beta, double& lamda); 00086 void EclipticToCelestial(double beta, double lamda, 00087 double& declination, double& ra); 00088 00089 } 00090 00091 #endif // ASTCOORDINATE_H 00092
1.3.9.1