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
A sample of the output of the program for 1997 August 7th 22:25
UT is shown below;
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 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.
Stillman Drake
Galileo Galilei
Meeus, Jean [Root]
Last Modified 23rd November 1997GALILEO.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
'*********************************************************
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
Accuracy
[Top]
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.
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
References
[Top]
Galileo at Work: his scientific biography
Dover Books Inc, 1995
ISBN 0-486-28631-2
Sidereus Nuncius
Trans. Albert Van Helden
The University of Chicago Press, 1989
ISBN 0-226-27903-0
Astronomical Algorithms
Willmann-Bell
1st English edition, 1991
ISBN 0-943396-35-2
Keith Burnett