Software and repositories
- The surveyed products use several computational lineages. Espenak's NASA and EclipseWise tables, Jubier's calculator, Wright's SVS pipeline and Herald's Occult are prominent sources. Direct geometric engines and independently fitted element sets also appear in the survey 1 2 3 4 5 6.
- Contact corrections and bead simulation are separate capabilities. Jubier, Solar Eclipse Maestro, Occult, Eclipse Orchestrator and Kramer document limb corrections. Photo Ephemeris has smooth-Moon contact tables and a separate limb-aware bead simulator. The survey also includes public single-eclipse bead/profile implementations 2 7 8. See corrections and code for dataset choices.
- 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 9 10 11 5. - The surveyed general libraries supply smooth-Moon products. The repository survey includes single-eclipse LOLA bead work and a bundled limb-band file, but no general limb-corrected path-limit implementation 8 12 13.
- 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 14.
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
Besselian elements are an interface for the classical pipeline. Direct topocentric calculations and SVS raster limb tests provide alternative routes. The validation plan uses NASA's JavaScript Solar Eclipse Explorer (JSEX) for smooth local circumstances, Jubier for limb-corrected contacts and SVS shapefiles as raster-method reference products 10 3. Predictor configuration is collected 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 Astronomy Engine source/c/astronomy.c Raw source downloaded 2026-09-15 (122 KB) and grepped. CalcShadow, GeoidIntersect, LocalEclipse, Obscuration, EclipseKindFromUmbra.
- 6company RHerAle/Eclipse-Engine README Author README read 2026-09-30 at commit a3aff74127bbe2a7de7cb33f30a8c92c744ab67f. Elements fitted to DE440s; Python reference chain is not in this repository. Public engine consumes the fitted elements. Cached README SHA256 ebfc38b21edc31726bbf810402756136089129f25308ab31ac79eed4f4a1d97c.
- 7company Photo Ephemeris, Technical Note: Solar Eclipse Functionality Author documentation updated 2026-06-06, read 2026-09-30. Contact tables assume a smooth spherical Moon. Separate Kaguya/Herald bead simulator uses 1800 points at 0.2 degrees and a user-adjustable 959.95 arcsecond default; that radius is not used for contact tables.
- 8company 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.
- 9company Stellarium src/core/SolarEclipseComputer.cpp Source read at pinned commit 69888f4f47af2aa4d1c9d14ec3853e874e253c73. SHA256 6ea4ddfac3c2fc921adcb75c06fd6c0062d6e7716ce566c15976c16b2020cbd5. Lines 584-587 use a small-separation angular axis approximation; global limits and observer transformations inspected. Verified 2026-09-30.
- 10primary 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.
- 11company 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.
- 12company 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.
- 13unsourced GitHub repository search API queries run for this survey Queries run 2026-09-15: besselian elements; solar eclipse calculator; solar eclipse path; eclipse circumstances; solar eclipse besselian; eclipse limb profile; baily beads; eclipse explorer; solar eclipse by language (Rust, Go, Julia, Java, C++); pyeclipse; eclipsecalc; eclipse predictor; solar eclipse Python besselian OR circumstances OR contact. Metadata (stars, language, licence, last push) taken from the repos endpoint.
- 14primary 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.