A Python script to compute data on full moons, solstices, equinoxes, solar eclipses and lunar eclipses between Jan. 5, 1550 and Dec. 31, 2649 -- 23,289 celestial events in all.
- Datetimes of full moons, solstices, equinoxes and lunar eclipses are calculated by the Skyfield Python library using NASA's
de440.bsp
ephemeris file - Solar eclipse data comes from NASA's Five Millenium Catalog of Solar Eclipses
The compute_events.py
script generates five CSVs in the data
folder:
data/solstices-and-equinoxes.csv
data/lunar-eclipses.csv
data/solar-eclipses.csv
data/full-moons.csv
data/celestial-almanac.csv
Also included in this repo: A Python script to upload the data to a Google Calendar via API. (Turns out the combined file is too big for the browser-based CSV import option.)
Here's a link to the public Google Calendar I made, if you'd like to subscribe. Otherwise, you can run the upload_to_calendar.py
script to populate your own -- first you'd need to save your calendar's ID as an environment variable called ALMANAC_CAL_ID
(or otherwise swap in your calendar ID value here).
- Clone or download/unzip this repository
cd
into the folder and install the dependencies (preferably into a virtual environment, using your tooling of choice):pip install -r requirements.txt
python compute_events.py
to generate the CSV filespython upload_to_calendar.py
to populate your own calendar (takes awhile!)