This module provides an object oriented approach to astronomical
coordinate transformations. It can be used to convert between
J2000, B1950, Galactic and super Galactic coordinates.  It can
calculate the azimuth and elevation of a source specified in
equatorial coordinates, orbital elements or by name (if a planet).
It can also determine whether the specified coordinates are observable
for the given telescope and determine rise and set times. Doppler
corrections can also be calculated.

This software is still a beta release but is in use in a production
environment. The interfaces may still change slightly.

It is a wrapper class around Astro::PAL that simplifies the handling of
astronomical coordinate systems.


This class uses Astro::PAL, Astro::Telescope as well as
DateTime and Time::Piece.

This release begins the migration from Time::Piece to DateTime
for specification of epochs. Both are supported at present but
at some point Time::Piece support may be removed.


  perl Build.PL
  ./Build test
  ./Build install


This module was written by Tim Jenness <>
of the Joint Astronomy Centre.

Copyright (C) 2008-2012 Science and Technologiy Facilities Council.
Copyright (C) 2001-2005 Particle Physics and Astronomy Research Council.
All Rights Reserved.

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later

This program is distributed in the hope that it will be useful,but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place,Suite 330, Boston, MA  02111-1307, USA


  + Add support for JPL ephemeris when calculating planet positions
  + Add support for Horizons web service when generating positions
    of planetary moons


 v0.01 - initial test release to CPAN

 v0.02 - Add Astro::Coords::Calibration and Astro::Coords::Fixed

 v0.03 - Add isObservable method
	 Spun off Astro::Telescope into its own CPAN distribution

 v0.04 - Internal release

 v0.05 - - Check format of input arguments (for sexagesimal parsing)
         + Add rise, set and transit time calculation
         + Add Interpolated RA/Dec [Astro::Coords::Interpolated]
         + Add calculate method
         - Fix orbital elements [requires recent slalib]
         + Can now ask for J2000 for all coordinate types
         + Add name and comment method for tagging a coordinate object

 v0.07 - Add support for parallax and proper motion, epoch and equinox
         + ra2000 and dec2000 methods always return RA/Dec J2000 for epoch 2000.0
          (equatorial only)

 v0.10 - + Major reorganization internally to use (the new) Astro::Coords::Angle
           objects for all angles. Should simplify formatting of return values.
         + datetime() method now supports DateTime objects for time
           specification. Time::Piece is now deprecated.
         + Add radial velocity support
         + Add doppler correction (experimental)
         + New method to obtain the native Equatorial encoding that was used
         + set_time and rise_time now works properly for the Moon (and Sun)
         + rise_time can now be configured to return the nearest rise time
           not just the next rise_time.
         + planet diameter is now available
         + Galactic and ecliptic conversions now in base class (moved from Equatorial)
         + radec1950 method available
         + Switch to GPL license

v0.12 - + Update Elements interface
        + Improve performance of DateTime usage (caching TimeZone object)
        + Support barycentric velocities
        + Astro::Coords::Offset now has invert(), clone() and posang() method
        + Astro::Coords::Angle now has clone() and negate() methods.
        + Astro::Coords::Offset now allows more systems.
        + Fix problem with fractions seconds in LST calculation
        + Fix problem with calculate() method trashing the cached DateTime.
        + Uses Module::Build

v0.13 - + Use Astro::PAL instead of Astro::SLA. The main driver being that
          Astro::PAL can be installed from CPAN without any additional dependencies.
        + Significant speed improvements thanks to Graham Bell <>.
        + New apply_offset() method to add an Offset onto an existing coordinate
          object and return a new coordinate object (Graham Bell)

v0.14   + Fix tests for long double perl. Build now requires Test::Number::Delta.

v0.15   + Add planets() method to retrieve planet names and remove pluto (Graham Bell)

v0.16   + Massive speed up in rise/set time calculation (Graham Bell)

v0.17   + Require DateTime version 0.76 to avoid problems with rise/set test scripts.

v0.18   + Fix inconsistency in parsing of hours vs degrees (Eric Jensen)

v0.19   + Astro::Coords::Fixed::array now returns the azimuth and elevation
          in radians.
        + Changed the default number of decimal places for
          Astro::Coords::Angle::Hour to 3.
        + Updated the format specification used to parse epoch strings in
          Astro::Coords::Elements (for recent versions of Time::Piece).
        + Fixed the Astro::Coords::Angle::negate method.
        + Added warnings about the use of proper motion without parallax.
          (With Astro::PAL, significant proper motions are not applied
          unless the parallax is also given.)

v0.20   + Units can now be given as a 2-element array such as ['hours', 'degrees'].