Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

AstCoordinate.h

Go to the documentation of this file.
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 

Generated on Mon Feb 15 11:06:22 2010 for loon by  doxygen 1.3.9.1