AA(1)
๐ญ AA(1) โจ aa, the astronomical almanac ๐
General Commands Manual ๐
โจ NAME โจ
aa is the astronomical almanac, and its whole job is to calculate planet and star positions ๐ชโญ
๐ SYNOPSIS ๐
aa
๐ซ DESCRIPTION ๐ซ
okay so aa is literally a program that works out where planetary bodies are in their orbits ๐ช and then does rigorous coordinate reductions to get the apparent geocentric and topocentric place, which means local altitude and azimuth ๐ญ. it also reduces star catalogue positions given in either the FK4 or FK5 system โจ. the data for the 57 navigational stars is already included, so you don't have to hunt it down ๐งญ. most of the algorithms come from The Astronomical Almanac (AA), published by the U.S. Government Printing Office ๐๐
bestie, this program follows the rigorous algorithms for reducing celestial coordinates exactly as they're laid out in current editions of the Astronomical Almanac ๐ฅนโจ the reduction to apparent geocentric place has been double checked by a special version of the program called aa200, which takes planetary positions straight from the Jet Propulsion Laboratory DE200 numerical integration of the solar system ๐ and the results agree exactly with the Astronomical Almanac tables from 1987 onward. earlier Almanacs used slightly different reduction methods, so if you're looking at old ones, it's not you, it's them ๐
๐ Initialization ๐
okay this part is so easy ๐ซถ the following items get read in automatically from the first of these files that gets found: ./aa.ini, ~/.aa.ini, /etc/aa.ini. the file has one ASCII string number per line, so it's super easy to edit ๐ a sample initialization file is supplied too ๐ธ these are the entries:
lonโ terrestrial longitude of the observer, in degrees East of Greenwich ๐latโ geodetic latitude of the observer (the program calculates the geocentric latitude for you) ๐งญheightโ height above sea level, in meters โฐ๏ธtempโ atmospheric temperature, in degrees Centigrade ๐ก๏ธpressureโ atmospheric pressure, in millibars ๐ซงtflagโ input time type:1= TDT,2= UT,0= TDT set equal to UT โฐdeltaTโ the value to use for deltaT, in seconds. if it's0, the program will compute it itself ๐ง
๐ช Orbit Computations ๐ช
ok this is where it gets spicy ๐ถ๏ธ the program has several methods for calculating planet positions baked into the source code. they range in accuracy from a built-in computation using perturbation formulae all the way up to a solution from precise orbital elements that you supply yourself from an almanac ๐
by default, the program uses 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. for the inner planets, the adjustment is strictly valid only from 1350 B.C. to 3000 A.D., but it can be used back to 3000 B.C., just with some loss of precision ๐ฌ for more info, check out /usr/share/doc/aa/readme.404 ๐ and just so you know, the true accuracy for positions calculated for prehistoric or future dates is, like, totally 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 isn't actually known this accurately, because of uncertainty in the tidal acceleration of the Moon's orbit ๐
โ ๏ธ bestie, the thing is: without an interpolated polynomial ephemeris like the DE200, the highest accuracy for current planetary positions comes from using the heliocentric orbital elements published in the Astronomical Almanac. if precise orbital elements are provided for the desired epoch, the apparent place should agree very closely with Almanac tabulations ๐ซถ
entering 99 for the planet number generates a prompt for the name of a file. that file contains human-readable ASCII strings that specify the elements of orbits ๐ (see also the example file orbit.cat). the items in the specification are:
First line of entry:
- epoch of orbital elements (Julian date) ๐๏ธ
- inclination
- longitude of the ascending node
- argument of the perihelion
- mean distance (semimajor axis) in au
- daily motion
Second line of entry:
- eccentricity
- mean anomaly
- epoch of equinox and ecliptic, Julian date
- visual magnitude B(1,0) at 1au from earth and sun โจ
- equatorial semidiameter at 1au, in arc seconds
- name of the object, up to 15 characters ๐ท๏ธ
angles in the above are in degrees, except where 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's set equal to 0.0 in your catalogue. almanac values of daily motion recognize the nonzero mass of the orbiting planet, but the program's calculation assumes the mass is zero ๐งฎ
so, the mean distance thing. for an elliptical orbit, mean distance is the length of the semi-major axis of the ellipse ๐ฅฐ if the eccentricity is given as 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" again gets interpreted as the perihelion distance ๐ซ in both of 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 too, but you have to convert it to mean distance so the program understands it ๐ง use this formula:
mean distance = perihelion distance / (1 - eccentricity)
to calculate the value you enter in your catalogue for an elliptical orbit ๐ง
the epoch of the orbital elements refers specifically to the date that the given mean anomaly applies to ๐๏ธ published comet data often gives the time of perihelion passage as a calendar date and a fraction of a day in Ephemeris Time. to turn that 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 ๐ that's the correct Julian Ephemeris Date of the epoch for your catalogue entry ๐ซถ
example time!! (Sky & Telescope, March 1991, page 297): Comet Levy 1990c had a perihelion date given as 1990 Oct 24.68664 ET. since you're prompted separately for the year, month, and day, you enter 1990, 10, 24.68664 into the program ๐ญ that date and fraction translates to JED 2448189.18664 ๐ and for comparison purposes, note that published ephemerides for comets usually give astrometric positions, not apparent positions ๐
โณ Ephemeris Time and Other Time Scales โณ
bestie, be careful about time scales when you're comparing results against an almanac ๐ฅบ the orbit program assumes the 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 have to indicate whether your input entry is TDT or UT. this is done by the entry for input time type in aa.ini ๐ if you're comparing positions against almanac values, you probably want TDT. if you're 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, since 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 ๐ซถ also note that the civil time of day is UTC, which is adjusted by integral leap seconds to be within 0.9 second of UT โฑ๏ธ
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 ๐
okay, 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 ๐ because 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 is unstable for nearly-circumpolar objects, such as the Moon observed at high latitudes ๐ฅถ so a failure to report rise and set times does not necessarily mean there was no rise or set event ๐
the program reports the transit that is nearest to the input time ๐ฏ rise and set times ordinarily come before and after the transit ๐ check the date displayed next to the rise, set, or transit time to be sure the results are for the date you want, and not 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 parallax ๐ซ
the age of the Moon, in days from the nearest Quarter, also has a correction for orbital motion, but it doesn't get the benefit of iterative improvement and may be off by 0.1 day ๐ (the stated Quarter is always correct, though ๐ฅฐ). the estimated time can be made much more precise by entering an input date and time of day 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 that automatically, so if you want maximum accuracy, you must do the iteration by hand ๐ง ๐
โจ Stars โจ
Okay bestie, the star positions and proper motions for the 57 navigational stars come from the Fifth Fundamental Catalogue (FK5) ๐. They live in the file /usr/share/aa/star.cat ๐๏ธ. For all of these, the program's astrometric position matched 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 the worked examples in the AA, which is literally so precise ๐ญ. Spot checks against Apparent Places of Fundamental Stars confirm the mean place agreement to <0.1" โจ. The APFS uses an older nutation series, so comparing apparent place directly is kinda tricky ๐. The program incorporates the complete IAU Theory of Nutation (1980) ๐ฅ. Items for the Messier catalogue, /usr/share/aa/messier.cat, come from either the AA or Sky Catalogue 2000 ๐.
To compute a star's apparent position, its motion since the catalogue epoch gets taken into account, along with the changes due to precession of the equatorial coordinate system ๐ง. Star catalogue files have a very specific structure, so pay attention ๐. Each star entry is one line of ASCII characters ๐. Numbers can be in any usual decimal computer format, and they're separated from each other by one or more spaces ๐. From the beginning of the line, the parameters go like this:
- 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, this line:
2000 02 31 48.704 89 15 50.72 19.877 -1.52 -17.0 0.0070 2.02
alUMi(Polaris)
breaks down like this ๐ธ:
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 the 88 constellation names get 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 read as an FK4 item, and the program then automatically converts the data to the FK5 system ๐. All other epochs are read as being in the FK5 system ๐.
Heads up: 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 ๐.
โจ OPTIONS โจ
aa does not accept any options ๐. Zero. None. It's giving minimalist ๐
.
โจ FILES โจ
./aa.ini,~/.aa.ini,/etc/aa.iniโ Initialization data ๐./usr/share/doc/aa/readme.404โ Documentation of plan404 ephemerides ๐./usr/share/aa/star.catโ Catalogue data on the 57 navigational stars โญ./usr/share/aa/messier.catโ Items for the Messier catalogue ๐.
โจ SEE ALSO โจ
conjunct(1)๐ฆ
โจ AUTHOR โจ
aa was written by Stephen L. Moshier <steve@moshier.net> ๐.
This manual page was written by James R. Van Zandt <jrv@debian.org>, for the Debian project (but may be used by others) ๐ซถ.
Stay iconic, bestie! This was the AA(1) page from the Debian aa package, dated September 4, 2006 ๐โจ
๐ฆ where this page comes from
- debian bookworm: astronomical-almanac 5.6-7
- debian trixie: astronomical-almanac 5.6-8
- ubuntu jammy: astronomical-almanac 5.6-7
- ubuntu noble: astronomical-almanac 5.6-7
- ubuntu questing: astronomical-almanac 5.6-9
- ubuntu resolute: astronomical-almanac 5.6-9build1
- ubuntu stonking: astronomical-almanac 5.6-9build1
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms