This is documentation for an obsolete product.
Current products and services

 Documentation /  Scientific Astronomer /  Eclipse Predicting Functions /


6. Eclipse Predicting Functions

During a typical year the Moon orbits the Earth nearly 13 times. Two of those orbits usually pass so close to the direction of the Sun that the Moon casts a shadow onto the surface of the Earth; such events are called solar eclipses. Depending on how close (from the Earth's viewpoint) the Moon and the Sun are to each other, the event is termed either a partial, total, or annular solar eclipse.

You can compute and display such events using Scientific Astronomer. For instance, the package provides a function called Separation to compute the angular separation between any two celestial objects on any given date, as seen from any viewpoint. When the separation is zero, then one of the objects is eclipsed by the other. You can compute the precise date of such an event with a function like SolarEclipse, and then use the PlanetPlot function to see how the shadow falls on the object. Additional functions, such as MoonShadow, are available to compute the precise position of the shadow; and EclipseBegin and EclipseEnd are used to give the precise start and end times of the eclipse as seen from a specific location.

Eclipses traditionally refer to alignments involving the Earth, the Moon, and the Sun. Scientific Astronomer, however, can handle alignments among any three objects. Typical cases are the Earth, the Moon, and a star for lunar occultations; the Sun or the Earth, with Jupiter and a Galilean moon for various types of shadows, transits, occultations, and eclipses; and the Sun, the Earth, and an inner planet for transits of the planet across the solar disk.

Setting Your Time Zone

Load the Scientific Astronomer package.


This chapter does not include any function that requires a knowledge of your geographic location. Most functions still require that you input your time zone, however; you can set this using SetLocation as normal.

This sets your time zone to 11 hours ahead of GMT.

In[2]:=SetLocation[TimeZone -> 11];