Five hundred years of precomputed astronomy, 1700 to 2200: every moon phase, every lunar perigee and apogee, every crossing of the Moon through the ecliptic, every equinox and solstice, and every solar and lunar eclipse. 55,909 events, public domain, and reproducible on your own machine with two commands.
Published by CycleCalcs, the astronomy site and API these numbers are computed for.
| File | Rows | What it holds |
|---|---|---|
| data/moon/phases.csv | 24,786 | Every new moon, first quarter, full moon and last quarter, with Earth-Moon distance and supermoon/micromoon flags at each new and full moon |
| data/moon/apsides.csv | 13,282 | Every lunar perigee and apogee, with distance |
| data/moon/nodes.csv | 13,449 | Every ascending and descending node passage, the crossings that make eclipses possible |
| data/seasons/seasons.csv | 2,004 | The exact instant of every equinox and solstice |
| data/eclipses/solar-eclipses.csv | 1,185 | Every solar eclipse: greatest-eclipse instant, kind, obscuration, and the greatest-eclipse point for central eclipses |
| data/eclipses/lunar-eclipses.csv | 1,203 | Every lunar eclipse: peak instant, kind, obscuration, and per-phase durations |
Every dataset ships with a .meta.json beside it documenting each column, the
conventions applied, the engine version, and the file's SHA-256.
SHA256SUMS.txt covers everything.
The whole point of this repository is that you do not have to trust it:
git clone https://github.com/cyclecalcs/astronomy-data
cd astronomy-data
npm ci
node scripts/build.mjs
git diff --stat # nothing: the build is byte-identical by constructionThe build script reads no clock, touches no network, and derives every value from one pinned dependency: astronomy-engine 2.1.19 (MIT), Don Cross's ephemeris engine. Nothing is reimplemented: every event is found by the engine's own search functions, so these files cannot drift from what the engine says.
- Every instant is UTC, written to the second. The engine's Delta T model handles the conversion from dynamical time internally.
- Distances are center-to-center kilometers, the convention every published perigee table uses.
- Supermoon and micromoon flags apply the published CycleCalcs conventions: closer than 360,000 km at the instant of a full or new moon is flagged super, farther than 405,000 km micro. The distance column is the measurement; the flags are a documented editorial line drawn through it. Other publications draw the line elsewhere, which is why supermoon counts disagree; with the distance in every row you can apply any rule you prefer.
- Node crossings are the true node, found by the engine's search, not the mean-node polynomial most published tables approximate with.
- Greatest eclipse is not greatest duration. The solar eclipse table records the instant and place where the shadow axis passes nearest Earth's center. Where totality lasts longest is a different point a few seconds apart; the two are conflated in much published writing about eclipses.
- Accuracy: positions from this engine are arcminute-class for the Sun and Moon across this span, and event instants here are typically within about a minute of reference ephemerides; 1700-2200 is the window the engine is rated for, which is why the files end there. The site publishes its measured residuals at cyclecalcs.com/api/accuracy.html.
CSV parses everywhere. Two worked examples are included:
- examples/next-full-moon.py - pandas, straight from the raw GitHub URL
- examples/next-total-eclipse.js - plain Node, no dependencies
If you want these events pushed to you instead of pulled, cyclecalcs.com/calendar-feeds.html serves the same instants as free subscribable calendar feeds, and the API serves them as JSON with a free keyless tier. All three surfaces run the same engine, so they can never disagree.
The data is dedicated to the public domain under CC0 1.0: use it, sell it, build on it, no attribution required. Computed astronomical values are facts about the physical universe, and CycleCalcs claims no ownership of the sky. The build script is CC0 too.
The CycleCalcs name and logo are reserved and are not covered by this grant.
Archived on Zenodo with a permanent DOI, so a citation stays resolvable even if this repository moves:
CycleCalcs LLC (2026). CycleCalcs Astronomy Data: moon phases, apsides, node crossings, seasons and eclipses, 1700-2200. Zenodo. https://doi.org/10.5281/zenodo.21905242
That DOI always resolves to the newest version; each release also gets its own
version DOI if you need to pin one exactly. A CITATION.cff is included, so
GitHub's "Cite this repository" button works too.
A citation is appreciated and never required: the data is CC0.
- Planet-pair conjunctions and retrograde stations (the site computes them; the public tables follow once the same no-reimplementation rule can hold)
- A reproducible residuals study against JPL Horizons
- Zenodo archival with a DOI
Corrections and requests are welcome via issues.