Software and repositories
- Four production lineages produce almost every published eclipse number: Espenak's NASA and EclipseWise tables, Xavier Jubier's JavaScript calculator and Solar Eclipse Maestro, Ernie Wright's NASA SVS pipeline, and Dave Herald's Occult 4. Every consumer app surveyed either embeds one of these or embeds NASA's Besselian elements 1 2 3 4.
- Only the closed programs apply a lunar limb profile to contact times, and only SVS applies one to the umbra shape. Jubier's maps and Solar Eclipse Maestro, Occult 4, Eclipse Orchestrator, Kramer's calculator and the Photo Ephemeris bead simulator all correct contacts. Maestro and Jubier's limb-correction column use LRO LOLA and Kaguya (SELENE) as well as corrected Watts charts. The list is in corrections and code 2 3.
- Open-source code for the full Besselian pipeline exists in Stellarium's
SolarEclipseComputer.cpp(C++, GPL) and NASA'sprogram.js(JavaScript, GPL). Swiss Ephemeris and Astronomy Engine compute eclipses geometrically from ephemerides without Besselian elements 5 6 7 8. - No open-source implementation of a limb-corrected path edge or of Baily's beads from LOLA was found in a general library. Two recent repositories, tomasrojasc/eclipse-2026 and AstroWimSara/SolarEclipseWorkbench, do it for single eclipses 9 10.
- The reference datasets are all public: NASA's 11,898-row CSV of polynomial Besselian elements, the SVS shapefiles and KML with 1-second umbra polygons, LOLA LDEM grids at 4 to 1024 pixels per degree, SLDEM2015, SRTM and Copernicus DEMs, and USNO and IERS ΔT files 1 3 11.
What this topic covers
Which existing software, services and public code compute solar eclipse products, what exactly each one computes, from which inputs and constants, and where the method is documented well enough that a developer can reproduce or reuse it. The four notes cover institutional and commercial tools, general astronomy libraries, public GitHub repositories with a comparison matrix, and the datasets with download URLs and formats.
Notes in this topic
- Commercial and institutional tools: NASA GSFC and EclipseWise, NASA SVS, Jubier, Occult 4, timeanddate, GreatAmericanEclipse, McGlaun, Eclipse Orchestrator, Solar Eclipse Timer, EclipseDroid, Totality, USNO.
- Open-source libraries: Stellarium, Swiss Ephemeris, Astronomy Engine, Skyfield, PyEphem, libnova, NOVAS, SOFA, astropy, sunpy, SPICE, Horizons, Meeus ports.
- GitHub repositories: 30 repositories with a comparison matrix and the five most complete flagged.
- Datasets: Besselian element tables, SVS GIS data, lunar DEMs, terrestrial DEMs, ΔT tables, ephemeris kernels.
What this topic changes for the pipeline
Nothing in the stage design. The survey confirms that the Besselian element formulation is the common interface between the ephemeris stage and the product stage, and that limb and terrain corrections are applied downstream of it by every tool that applies them. It fixes the validation plan instead: NASA's JavaScript Solar Eclipse Explorer for local circumstances without a limb, Jubier's map for limb-corrected contacts, and the SVS shapefiles for the umbra outline. Which predictor uses which ephemeris, ΔT, radius, limb and terrain is tabulated once, in predictor disagreements.
References
- 1primary Catalog of Solar Eclipse Besselian elements in CSV format (NASA GSFC) Downloaded 2026-09-15: 5.95 MB, 11,898 data rows, 55 columns including x0..x3, y0..y3, d0..d2, mu0..mu2, l10..l12, l20..l22, tan_f1, tan_f2, t0, dt.
- 2company Jubier: EclipseCalculatorGM3_xSE.js (Solar Eclipse Calculator for Google Maps v3) Source read (198 KB, downloaded 2026-09-15). Change log 2007 to 2016, constants, k1/k2 ratio, Watts and Kaguya limb correction hooks, refraction and elevation handling.
- 3primary NASA SVS 5073: The 2023 and 2024 Solar Eclipses: Map and Data Read from a Wayback Machine snapshot (2025) because svs.gsfc.nasa.gov refused connections. Lists the shapefile and KML contents and the data sources (SRTM, LRO, DE421).
- 4company Occult v4 (David Herald) home page Fetched with curl 2026-09-15. Feature list, C#/.NET 4.5, 42 data files, installer sizes. Eclipse-specific help is inside the Windows help file and was not read.
- 5company Stellarium src/core/SolarEclipseComputer.cpp Read from a sparse clone at commit 69888f4 (2026-09-14). 2,183 lines. Besselian elements, k and s constants, Explanatory Supplement references, KML and PNG map export.
- 6primary JSEX program.js (JavaScript source of the Solar Eclipse Explorer) Source read in full (36.8 KB, downloaded 2026-09-15). GPL v2+. Contains the local-circumstance algorithm, the observer geocentric constants and the crude refraction handling.
- 7company Swiss Ephemeris swecl.c (eclipse routines) Read from a depth-1 clone at commit 9083a12 (2026-09-14), SE_VERSION 2.10.03. Functions eclipse_where, eclipse_how, eclipse_when_loc and their constants and comments.
- 8company Astronomy Engine source/c/astronomy.c Raw source downloaded 2026-09-15 (122 KB) and grepped. CalcShadow, GeoidIntersect, LocalEclipse, Obscuration, EclipseKindFromUmbra.
- 9company tomasrojasc/eclipse-2026 Read live. Skyfield with DE421, LOLA LDEM_16 limb profile, moon_pa_de421 orientation, Baily's beads per bead; 84 tests; no licence stated.
- 10company AstroWimSara/SolarEclipseWorkbench Read live. Astropy and IERS for ΔT, solar radius 959.95 arcsec, bundled lunar limb band file, SPICE kernels; GPL-3.0; 20 stars.
- 11primary LOLA GDR cylindrical IMG directory Read live. ldem_4, ldem_16, ldem_64, ldem_128, ldem_256 hemisphere files and ldem_1024 tiles with sizes.