AstroUtil

Contents

Contact Name

Sue Kasahara.

Overview

The AstroUtil package provides utilities for converting between different astronomical time and coordinate systems. The package makes use of the NOVAS (Naval Observatory Vector Astrometry Subroutines) code as appropriate. The Nova code is part of the package. The equatorial to horizon conversion methods are adapted from M. Thomson Soudan 2 era fortran routines.

The following coordinate system conversions are supported:

where the coordinate systems are defined as follows.

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

User Interface

The AstroUtil methods are in the AstUtil namespace, i.e. the methods are accessed using the "AstUtil::" preface.

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

Database Access

None.

Configuring & Running

N/A.

Further Links


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