Predicting Eclipses Does Not Require the Saros Cycle or NASA’s Involvement

These days, predicting eclipses is easily done using computers. Prediction is made by determining the position of the Sun and the Moon at a time, and calculating if an eclipse happens. The same procedure is then repeated numerous time, each for a different time.

The victims of the flat-Earth dogma insist nobody can predict eclipses from the position of the Sun and the Moon. They believe NASA simply used the Saros cycle to predict eclipses by calculating the interval between eclipses. They are wrong.

Calculating eclipse is done using the ephemeris. It is a mathematical model describing the motion of celestial bodies. Utilizing the ephemeris, we can figure out the position of the Sun and the Moon at a time, and determine if an eclipse happens.

With the 2017 North American total solar eclipse, NASA used their supercomputers to make the prediction. With their immense computing power, they even took the elevation data of both the Earth and the Moon into consideration. This is impossible to achieve from the Saros cycle.

Flat-Earthers think NASA is the authority when it comes to eclipses, and we can only wait while NASA meticulously calculates the Saros cycle for us. But they are wrong. NASA does not hold the monopoly on eclipse prediction. Anyone with sufficient knowledge can easily predict eclipses. And the result will probably be good enough. Just because these flat-Earthers are hopelessly clueless when it comes to eclipses, it doesn’t mean no average men can’t predict eclipses.

For demonstration, we created a straightforward Python script to predict the occurrences of a lunar eclipse in the 21st century. The script consists of no more than 20 lines, and anyone who knows basic programming will not have much difficulty to understand it.

Source code

#!/usr/bin/env python
'''
lunar-eclipse-prediction.py

Shows the occurences of a lunar eclipse in the 21st century.
Works by iterating every hour in the 21st century and calculating if the
separation between the Moon and the Sun is less than 0.9° from 180°.
The number 0.9° is hardcoded for simplicity, for more accuracy, it
should be computed from the distance of the Moon and the Sun.
'''
import ephem
from datetime import datetime, timedelta

curtime = datetime(2001, 1, 1, 0, 0, 0) # start time
endtime = datetime(2100, 12, 31, 23, 59, 59) # end time
moon = ephem.Moon()
sun = ephem.Sun()
observer = ephem.Observer()
observer.elevation = -6371000 # place observer in the center of the Earth
observer.pressure = 0 # disable refraction

while curtime <= endtime:
    observer.date = curtime.strftime('%Y/%m/%d %H:%M:%S')

    # computer the position of the sun and the moon with respect to the observer
    moon.compute(observer)
    sun.compute(observer)

    # calculate separation between the moon and the sun, convert
    # it from radians to degrees, substract it by 180°
    sep = abs((float(ephem.separation(moon, sun))
          / 0.01745329252) - 180)

    # eclipse happens if Sun-Earth-Moon alignment is less than 0.9°.
    # this should detect all total and partial eclipses, but is
    # hit-and-miss for penumbral eclipses.
    # the number is hardcoded for simplicity. for accuracy it should
    # be computed from the distance to the Sun and the Moon.
    if sep < 0.9:
        print(curtime.strftime('%Y/%m/%d %H:%M:%S'), sep)
        # an eclipse cannot happen more than once in a day,
        # so we skip 24 hours when an eclipse is found
        curtime += timedelta(days = 1)
    else:
        # advance an hour if eclipse is not found
        curtime += timedelta(hours = 1)

Updates may be available in our GitHub repository: flatearthws/eclipse-calculations

The script uses pyephem to determine the positions of the Moon and the Sun. Use ‘pip install pyephem’ to install it on your system. Pyephem’s source code is available for anyone to see. Feel free to scrutinize and check if it uses the Saros cycle (it is not).

Raw script output is here: lunar-eclipse-prediction-output.txt. Compare it to the list of 21st century lunar eclipses on Wikipedia or NASA.

The script should reliably predict total or partial eclipses but is a hit-and-miss on penumbral eclipses. The reason is that it assumes an eclipse happens when the Moon is within 0.9° of the Earth’s center of the umbra. In reality, Earth and Moon orbits are not perfectly circular, and the threshold of separation need to be calculated from that fact.

References