This page provides a QBASIC
recipe for finding the positions of
the four Galilean moons of Jupiter. Only the positions along an axis through the
equator of Jupiter are calculated. These 'X' coordinates are expressed in
multiples of the radius of Jupiter. The results for two sets of hourly figures
were compared with those produced by Manfred Dings Ephtool 2.0, and found to
have a maximum error of 0.2 radii, typically better than 0.1 radii.
Galileo saw the four moons in his newly constructed telescope, and described nightly observations of his 'Medicea sidera' for some days in his book Sidereus Nuncius. His telescope had an angular view of about 12 minutes of arc, an aperture of about 1 inch, and a magnification of 20x [Drake Ch8 p153]. You can see the four 'Galilean' moons of Jupiter using almost any binoculars or small telescope. Some people can see Callisto with the naked eye.
The recipe used here is adapted from Jan Meeus' book, Astronomical Alorithms. His 'lower precision' method is described in Chapters 42 and 43.
The positions of the four Galilean moons are usually listed in ephemerides as a series of X and Y coordinates. The X coordinates tell you the positions of each moon along an axis through the equator of Jupiter. The Y coordinates tell you the displacement from this X axis, and are usually much smaller than the X coordinates. I am interested in predicting what I should be able to see through binoculars, so I have ommitted the Y coordinates completely. I have not applied the correction to the elongation 'U' angles caused by perturbations among the satellites, so the recipe here will only gve accurate results for a few years either side of J2000.0
As a result of these simplifications, I do not need to calculate the heliocentric longitude of Jupiter, or the planocentric declinations of Earth or the Sun. I have calculated the angular width of Jupiter's disc, and I have expressed the X coordinates of the moons in minutes of arc, as well as the more usual Jupiter radii.
I was able to produce a program for my TI-80 programmable calculator based on this recipe, although the large numbers of variables meant I had to use a 'list' to store intermediate values.
Dan Bruton has provided a more pictorial QBASIC
program, called
GALSAT53
and he has included the core of the QBASIC
code in the zip file. See;
http://www.isc.tamu.edu/~astro/dansoftware.html
GALSAT53
is freeware, which is even better!
The QBASIC
program below embodies my simplification of Meeus's
recipe for the satellites of Jupiter. I have used a very direct programming
style, if you are devious the number of program statements and variables used
could be considerably reduced.
To use the program, copy the listing (the text between the rows of asterisks
below) from the browser window to a text editor, and save as
GALILEO.BAS.
The program should load into QBASIC
and
run.
'********************************************************* ' ' This program finds the approximate arrangement of the ' four Gallilean moons of Jupiter using the 'lower ' precision' method in Meeus's book, chapters 42 and 43. ' I have ommitted the corrections detailed by Meeus, ' and I only calculate the 'X' coordinates of the Moons, ' i.e. the separation along the Jovian equator. ' ' QBASIC program by Keith Burnett (kburnett@geocity.com) ' ' ' Work in double precision and define some constants ' DEFDBL A-Z pr1$ = "\ \###.# ###.#" pr2$ = "\ \#####.#####" pr3$ = "\ \#####.###" pi = 4 * ATN(1) tpi = 2 * pi twopi = tpi degs = 180 / pi rads = pi / 180 ' ' Get the days to J2000 ' h is UT in decimal hours ' FNday only works between 1901 to 2099 - see Meeus chapter 7 ' DEF FNday (y, m, d, h) = 367 * y - 7 * (y + (m + 9) \ 12) \ 4 + 275 * m \ 9 + d - 730531.5 + h / 24 ' ' define an inverse sine function ' DEF FNasin (x) c = SQR(1 - x * x) FNasin = ATN(x / c) END DEF ' ' the function below returns the true integer part, ' even for negative numbers ' DEF FNipart (x) = SGN(x) * INT(ABS(x)) ' ' the function below returns an angle in the range ' 0 to two pi ' DEF FNrange (x) b = x / tpi a = tpi * (b - FNipart(b)) IF a < 0 THEN a = tpi + a FNrange = a END DEF ' CLS PRINT "Galilean moons of Jupiter" PRINT "=========================" PRINT ' ' get the date and time from the user ' INPUT " year : ", y INPUT " month : ", m INPUT " day : ", day INPUT " hour UT : ", h INPUT " minute : ", mins h = h + mins / 60 d = FNday(y, m, day, h) ' ' Find the mean anomaly of the Earth (me) ' me = FNrange((357.529 + .9856003# * d) * rads) ' ' Find mean anomaly of Jupiter (mj), corrected for a long ' period term in the motion (V) ' V = (172.74 + .00111588# * d) * rads pj = .329 * SIN(V) * rads mj = FNrange((20.02 + .0830853# * d) * rads + pj) ' ' Find difference of heliocentric mean longitudes ' for Earth and Jupiter, then the correction ' for the equations of centre for the two planets ' ' k gives the corrected elongation of Jupiter wrt ' Earth ' j = FNrange((66.115 + .9025179# * d) * rads - pj) aj = (1.915 * SIN(me) + .02 * SIN(2 * me)) * rads bj = (5.555# * SIN(mj) + .168# * SIN(2 * mj)) * rads k = j + aj - bj ' ' Work out the Earth Sun distance (res), the Jupiter Sun ' distance (rjs) and the Earth Jupiter distance (rej) ' res = 1.00014 - .01671 * COS(me) - .00014 * COS(2 * me) rjs = 5.20872 - .25208 * COS(mj) - .00611 * COS(2 * mj) rej = SQR(res ^ 2 + rjs ^ 2 - 2 * res * rjs * COS(k)) ' ' find phi ' phi = FNasin(res / rej * SIN(k)) ' ' Find the elongations for each moon ' dd = d - rej / 173 'light travel time correction u1 = FNrange((163.8067 + 203.4058643# * dd) * rads + phi - bj) u2 = FNrange((358.4108 + 101.2916334# * dd) * rads + phi - bj) u3 = FNrange((5.7129 + 50.2345179# * dd) * rads + phi - bj) u4 = FNrange((224.8151 + 21.4879801# * dd) * rads + phi - bj) ' ' Now find the G and H constants, which are related to the ' eccentricity ofthe orbits of satellites III and IV ' Gj = FNrange((331.18 + 50.310482# * dd) * rads) Hj = FNrange((87.4 + 21.569231# * dd) * rads) ' ' Now find the distances from Jupiter for each moon ' r1 = 5.9073 - .0244 * COS(2 * (u1 - u2)) r2 = 9.3991 - .0882 * COS(2 * (u2 - u3)) r3 = 14.9924 - .0216 * COS(Gj) r4 = 26.3699 - .1935 * COS(Hj) ' ' Now find the X coordinates for each moon ' x1 = r1 * SIN(u1) x2 = r2 * SIN(u2) x3 = r3 * SIN(u3) x4 = r4 * SIN(u4) ' ' Now print out the X coords and the angular sep'n in ' minutes of arc. angrad is the radius of Jupiter's disc ' in minutes of arc, based on 196.5" dia at 1 a.u. ' angrad = 1.6375 / rej PRINT PRINT TAB(14); "radii"; TAB(22); "arcmin" PRINT USING pr1$; " Io : "; x1; x1 * angrad PRINT USING pr1$; " Europa : "; x2; x2 * angrad PRINT USING pr1$; "Ganymede : "; x3; x3 * angrad PRINT USING pr1$; "Callisto : "; x4; x4 * angrad PRINT PRINT USING pr3$; "distance : "; rej PRINT USING pr1$; "jup disc : "; angrad * 2 * 60 END '*********************************************************
A sample of the output of the program for 1997 August 7th 22:25 UT is shown below;
Galilean moons of Jupiter ========================= year : 1997 month : 8 day : 7 hour UT : 22 minute : 25 radii arcmin Io : 5.4 2.2 Europa : 7.1 2.9 Ganymede : -14.5 -5.9 Callisto : 24.3 9.8 distance : 4.044 jup disc : 48.6
I feel better about only seeing three of the moons using hand held 7 x 35 binoculars; the separation of Io and Europa is only 0.7 minutes of arc. The diameter of Jupiter's disc is given in arcseconds.
To assess the accuracy of the recipe here, I compared the results from a
modified version of the QBASIC
program above with results obtained
from Manfred Dings Ephtool 2.0. Ephtool is the only freeware program I have
found which can actually produce a list of numerical positions for
Jupiter's moons. Many star chart programs can produce the 'ribbon diagrams' seen
in astronomy magazines, but not numbers. See my 'resources'
page for a link to Manfred's page about Ephtool.
As can be seen from the table below, the worst case error is of the order of 0.25 Jupiter radii. More typical is an error of 0.1 radii.
Error of recipe For each date, positions were produced for each hour from 16:00 UT to 08:00 UT the following day. error = recipe - Ephtool position Galilean Moons of Jupiter for 8 / 8 / 1997 I II III IV max 0.04 0.03 0.02 -0.13 min -0.08 -0.09 -0.05 -0.23 Galilean Moons of Jupiter for 1 / 1 / 1990 I II III IV max 0.05 0.19 0.02 0.09 min -0.08 0.07 -0.06 -0.04
Stillman Drake
Galileo at Work: his scientific
biography
Dover Books Inc, 1995
ISBN 0-486-28631-2
Galileo Galilei
Sidereus Nuncius
Trans. Albert Van
Helden
The University of Chicago Press, 1989
ISBN 0-226-27903-0
Meeus, Jean
Astronomical Algorithms
Willmann-Bell
1st
English edition, 1991
ISBN 0-943396-35-2
[ Root ]
Last Modified 23rd November 1997
Keith Burnett