OnWorks favicon

aa - Online in the Cloud

Run aa in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command aa that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



aa - astronomical almanac - calculate planet and star positions




The aa program computes the orbital positions of planetary bodies and performs rigorous
coordinate reductions to apparent geocentric and topocentric place (local altitude and
azimuth). It also reduces star catalogue positions given in either the FK4 or FK5 system.
Data for the 57 navigational stars is included. Most of the algorithms employed are from
The Astronomical Almanac (AA) published by the U.S. Government Printing Office.

The aa program follows the rigorous algorithms for reduction of celestial coordinates
exactly as laid out in current editions of the Astronomical Almanac. The reduction to
apparent geocentric place has been checked by a special version of the program (aa200)
that takes planetary positions directly from the Jet Propulsion Laboratory DE200 numerical
integration of the solar system. The results agree exactly with the Astronomical Almanac
tables from 1987 onward (earlier Almanacs used slightly different reduction methods).


The following items will be read in automatically from the first of these files to be
found: ./aa.ini, ~/.aa.ini, /etc/aa.ini. The file contains one ASCII string number per
line so is easily edited. A sample initialization file is supplied. The entries are:

lon Terrestrial longitude of observer, degrees East of Greenwich

lat Geodetic latitude of observer (program calculates geocentric latitude)

height Height above sea level, meters

temp Atmospheric temperature, degrees Centigrade

Atmospheric pressure, millibars

tflag Input time type: 1 = TDT, 2 = UT, 0 = TDT set equal to UT

deltaT Value to use for deltaT, seconds; if 0 then the program will compute it.

Orbit Computations

Several methods of calculating the positions of the planets have been provided for in
the program source code. These range in accuracy from a built-in computation using
perturbation formulae to a solution from precise orbital elements that you supply from an
The program uses as a default a set of trigonometric expansions for the position of the
Earth and planets. These have been adjusted to match the Jet Propulsion Laboratory's
DE404 Long Ephemeris (1995) with a precision ranging from about 0.1" for the Earth to 1"
for Pluto. The adjustment was carried out on the interval from 3000 B.C. to 3000 A.D. for
the outer planets. The adjustment for the inner planets is strictly valid only from 1350
B.C. to 3000 A.D., but may be used to 3000 B.C. with some loss of precision. See
/usr/share/doc/aa/readme.404 for additional information. The true accuracy of positions
calculated for prehistoric or future dates is of course unknown.
The Moon's position is calculated by a modified version of the lunar theory of
Chapront-Touze' and Chapront. This has a precision of 0.5 arc second relative to DE404
for all dates between 1369 B.C. and 3000 A.D. The real position of the Moon in ancient
times is not actually known this accurately, due to uncertainty in the tidal acceleration
of the Moon's orbit.

In the absence of an interpolated polynomial ephemeris such as the DE200, the highest
accuracy for current planetary positions is achieved by using the heliocentric orbital
elements that are published in the Astronomical Almanac. If precise orbital elements are
provided for the desired epoch then the apparent place should be found to agree very
closely with Almanac tabulations.
Entering 99 for the planet number generates a prompt for the name of a file containing
human-readable ASCII strings specifying the elements of orbits. The items in the
specification are (see also the example file orbit.cat):

First line of entry:
epoch of orbital elements (Julian date)
longitude of the ascending node
argument of the perihelion
mean distance (semimajor axis) in au
daily motion

Second line of entry:
mean anomaly
epoch of equinox and ecliptic, Julian date
visual magnitude B(1,0) at 1au from earth and sun
equatorial semidiameter at 1au, arc seconds
name of the object, up to 15 characters

Angles in the above are in degrees except as noted. Several sample orbits are supplied in
the file orbit.cat. If you read in an orbit named "Earth" the program will install the
Earth orbit, then loop back and ask for an orbit number again.
The entry for daily motion is optional. It will be calculated by the program if it is
set equal to 0.0 in your catalogue. Almanac values of daily motion recognize the nonzero
mass of the orbiting planet; the program's calculation will assume the mass is zero.
Mean distance, for an elliptical orbit, is the length of the semi-major axis of the
ellipse. If the eccentricity is given to be 1.0, the orbit is parabolic and the "mean
distance" item is taken to be the perihelion distance. Similarly a hyperbolic orbit has
eccentricity > 1.0 and "mean distance" is again interpreted to mean perihelion distance.
In both these cases, the "epoch" is the perihelion date, and the mean anomaly is set to
0.0 in your catalogue.
Elliptical cometary orbits are usually catalogued in terms of perihelion distance also,
but you must convert this to mean distance to be understood by the program. Use the

mean distance = perihelion distance / (1 - eccentricity)

to calculate the value to be entered in your catalogue for an elliptical orbit.
The epoch of the orbital elements refers particularly to the date to which the given
mean anomaly applies. Published data for comets often give the time of perihelion passage
as a calendar date and fraction of a day in Ephemeris Time. To translate this into a
Julian date for your catalogue entry, run aa, type in the published date and decimal
fraction of a day, and note the displayed Julian date. This is the correct Julian
Ephemeris Date of the epoch for your catalogue entry. Example (Sky & Telescope, March
1991, page 297): Comet Levy 1990c had a perihelion date given as 1990 Oct 24.68664 ET. As
you are prompted separately for the year, month, and day, enter 1990, 10, 24.68664 into
the program. This date and fraction translates to JED 2448189.18664. For comparison
purposes, note that published ephemerides for comets usually give astrometric positions,
not apparent positions.

Ephemeris Time and Other Time Scales

Exercise care about time scales when comparing results against an almanac. The orbit
program assumes input date is Ephemeris Time (ET or TDT). Topocentric altitude and
azimuth are calculated from Universal Time (UT). The program converts between the two as
required, but you must indicate whether your input entry is TDT or UT. This is done by
the entry for input time type in aa.ini. If you are comparing positions against almanac
values, you probably want TDT. If you are looking up at the sky, you probably want UT.
Ephemeris transit times can be obtained by declaring TDT = UT. The adjustment for deltaT
= ET minus UT is accurate for the years 1620 through 2011, as the complete tabulation from
the Astronomical Almanac is included in the program. Outside this range of years,
approximate formulas are used to estimate deltaT. These formulas are based on analyses of
eclipse records going back to ancient times (Stephenson and Houlden, 1986; Borkowski,
1988) but they do not predict future values very accurately. For precise calculations,
you should update the table in deltat.c from the current year's Almanac. Note the civil
time of day is UTC, which is adjusted by integral leap seconds to be within 0.9 second of

Updated deltaT values and predictions can be obtained from this network archive:
http://maia.usno.navy.mil . See the file deltat.c for additional information. In
addition, the IAU has adopted several other definitions of time, but this program does not
distinguish among them. The International Earth Rotation Service is in charge of UT.
Precise data on Earth rotation and orientation are published in the IERS bulletins,
available at the IERS computer site www.iers.org as well as at the usno site.

Rise and Set Times

Each calculation of the time of local rising, meridian transit, and setting includes a
first order correction for the motion in right ascension and declination of the object
between the entered input time and the time of the event. Even so, the calculation has to
be iterated, or repeated with successively closer estimates of the event time. In view of
the first order correction the iteration has a second-order convergence characteristic and
arrives at a precise result in just two or three steps. On the other hand, the technique
used is unstable for nearly-circumpolar objects, such as the Moon observed at high
latitudes. Thus a failure to report rise and set times does not necessarily mean that
there was no rise or set event.

The program reports the transit that is nearest to the input time. Rise and set times
ordinarily precede and follow the transit. Check the date displayed next to the rise,
set, or transit time to be sure the results are for the desired date and not for the
previous or next calendar day. For the Sun and Moon, rise and set times are for the upper
limb of the disc; but the indicated topocentric altitude always refers to the center of
the disc. The computed event times include the effects of diurnal aberration and

Age of the Moon, in days from the nearest Quarter, also has a correction for orbital
motion, but does not get the benefit of iterative improvement and may be off by 0.1 day
(the stated Quarter is always correct, however). The estimated time can be made much more
precise by entering the input date and time of day to be near the time of the event. In
other words, the rigorous calculation requires iterating on the time; in this case the
program does not do so automatically, hence if you want maximum accuracy you must do the
iteration by hand.


Positions and proper motions of the 57 navigational stars were taken from the Fifth
Fundamental Catalogue (FK5). They are in the file /usr/share/aa/star.cat. For all of
these, the program's output of astrometric position agreed with the 1986 AA to the
precision of the AA tabulation (an arc second). The same is true for 1950 FK4 positions
taken from the SAO catalogue. The program agrees to 0.01" with worked examples presented
in the AA. Spot checks against Apparent Places of Fundamental Stars confirm the mean place
agreement to <0.1". The APFS uses an older nutation series, so direct comparison of
apparent place is difficult. The program incorporates the complete IAU Theory of Nutation
(1980). Items for the Messier catalogue, /usr/share/aa/messier.cat, are from either the
AA or Sky Catalogue 2000.
To compute a star's apparent position, its motion since the catalogue epoch is taken
into account as well as the changes due to precession of the equatorial coordinate system.
Star catalogue files have the following data structure. Each star entry occupies one line
of ASCII characters. Numbers can be in any usual decimal computer format and are
separated from each other by one or more spaces. From the beginning of the line, the
parameters are

Epoch of catalogue coordinates and equinox
Right ascension, hours
Right ascension, minutes
Right ascension, seconds
Declination, degrees
Declination, minutes
Declination, seconds
Proper motion in R.A., s/century
Proper motion in Dec., "/century
Radial velocity, km/s
Distance, parsecs
Visual magnitude
Object name
For example, the line

2000 02 31 48.704 89 15 50.72 19.877 -1.52 -17.0 0.0070 2.02 alUMi(Polaris)

has the following interpretation:

J2000.0 ;Epoch of coordinates, equator, and equinox
2h 31m 48.704s ;Right Ascension
89deg 15' 50.72" ;Declination
19.877 ;proper motion in R.A., s/century
-1.52 ;proper motion in Dec., "/century
-17.0 ;radial velocity, km/s
0.007 ;parallax, "
2.02 ;magnitude
alUMi(Polaris) ;abbreviated name for alpha Ursae Minoris (Polaris)

Standard abbreviations for 88 constellation names are expanded into spelled-out form
(see constel.c). The program accepts two types of catalogue coordinates. If the epoch is
given as 1950, the entire entry is interpreted as an FK4 item. The program then
automatically converts the data to the FK5 system. All other epochs are interpreted as
being in the FK5 system.
Note that catalogue (and AA) star coordinates are referred to the center of the solar
system, whereas the program displays the correct geocentric direction of the object. The
maximum difference is 0.8" in the case of alpha Centauri.


aa does not accept any options.

Use aa online using onworks.net services

Free Servers & Workstations

Download Windows & Linux apps

  • 1
    Phaser is a fast, free, and fun open
    source HTML5 game framework that offers
    WebGL and Canvas rendering across
    desktop and mobile web browsers. Games
    can be co...
    Download Phaser
  • 2
    VASSAL Engine
    VASSAL Engine
    VASSAL is a game engine for creating
    electronic versions of traditional board
    and card games. It provides support for
    game piece rendering and interaction,
    Download VASSAL Engine
  • 3
    OpenPDF - Fork of iText
    OpenPDF - Fork of iText
    OpenPDF is a Java library for creating
    and editing PDF files with a LGPL and
    MPL open source license. OpenPDF is the
    LGPL/MPL open source successor of iText,
    Download OpenPDF - Fork of iText
  • 4
    SAGA - System for Automated
    Geoscientific Analyses - is a Geographic
    Information System (GIS) software with
    immense capabilities for geodata
    processing and ana...
    Download SAGA GIS
  • 5
    Toolbox for Java/JTOpen
    Toolbox for Java/JTOpen
    The IBM Toolbox for Java / JTOpen is a
    library of Java classes supporting the
    client/server and internet programming
    models to a system running OS/400,
    i5/OS, o...
    Download Toolbox for Java/JTOpen
  • 6
    D3.js (or D3 for Data-Driven Documents)
    is a JavaScript library that allows you
    to produce dynamic, interactive data
    visualizations in web browsers. With D3
    Download D3.js
  • More »

Linux commands