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.bspephemeris 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.csvdata/lunar-eclipses.csvdata/solar-eclipses.csvdata/full-moons.csvdata/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
cdinto the folder and install the dependencies (preferably into a virtual environment, using your tooling of choice):pip install -r requirements.txtpython compute_events.pyto generate the CSV filespython upload_to_calendar.pyto populate your own calendar (takes awhile!)