How eclipseClick Computes Eclipse Contact Times
From Besselian elements to sub-second timing — the math and algorithms behind every prediction.
What C1, C2, C3, C4 Mean
A total solar eclipse has four contact points. C1 is when the Moon first touches the Sun's edge. C2 is when the Moon fully covers the Sun — totality begins. C3 is when the Sun first reappears — totality ends. C4 is when the Moon completely clears the Sun.
The Computation Pipeline
eclipseClick runs a multi-stage pipeline for every location you add. Each stage builds on the previous one — from raw Besselian elements published by NASA, through coordinate transformations, to iterative root-finding that converges on the exact moment each contact occurs.
Why Sub-second Accuracy Matters
Diamond ring, Baily's beads, chromosphere — these phenomena last seconds. A timing error of even 2–3 seconds can mean the difference between a perfectly exposed diamond ring and a blown-out frame. eclipseClick targets sub-second accuracy so your automated capture sequences fire at exactly the right moment.
Deep Dive
1. Besselian Elements & Polynomial Evaluation
Besselian elements describe the geometry of an eclipse as seen from the fundamental plane — an imaginary plane passing through the Earth's center, perpendicular to the Moon's shadow axis. NASA's Goddard Space Flight Center publishes these as polynomial coefficients for each eclipse.
eclipseClick ships Besselian element data for 28 eclipses from 2021 to 2035, sourced from NASA GSFC. Each element is a polynomial in time, evaluated using Horner's method for numerical stability.
Horner's method for a cubic polynomial:
where τ = t − t0
is the time offset from the reference epoch in hours. This form avoids computing powers of
τ separately, reducing floating-point error accumulation.
The elements evaluated this way are: x, y
(shadow axis coordinates, cubic), d
(Sun's declination, quadratic), μ
(Greenwich hour angle, quadratic), and
l1, l2
(penumbral and umbral shadow radii, quadratic).
Derivatives (needed for Newton-Raphson):
2. Fundamental Plane Geometry
The fundamental plane is the stage where all eclipse geometry plays out. The Moon's shadow axis pierces this plane at coordinates (x, y), while the observer's position is projected onto it as (ξ, η).
Separation between shadow axis and observer:
Contact occurs when this distance equals the shadow radius:
- • C1 / C4:
m = l1(penumbral radius — partial eclipse begins/ends) - • C2 / C3:
m = |l2|(umbral radius — totality begins/ends)
3. Observer Coordinate Transformation
To project the observer onto the fundamental plane, eclipseClick transforms geodetic coordinates (latitude, longitude, altitude) through several steps:
- 1 Geodetic to geocentric latitude — accounts for Earth's oblateness. Geocentric latitude is always closer to the equator than geodetic.
- 2 Geocentric to equatorial rectangular — using the Earth's radius at that latitude (accounting for flattening) plus observer altitude.
- 3 Equatorial to fundamental plane — rotation using the Sun's declination d and the observer's local hour angle H = μ + λ − ΔT.
Observer's fundamental plane coordinates:
where ρ is the observer's geocentric distance (in Earth radii), φ′ is geocentric latitude, and H is the local hour angle.
4. WGS84 Oblate Earth Model
The Earth is not a sphere — it bulges at the equator. eclipseClick uses the WGS84 reference ellipsoid, the same model used by GPS, to get the observer's true geocentric position.
WGS84 Constants
- a = 6,378,137 m
- f = 1 / 298.257223563
- e² = 0.00669437999
Effect on Timing
Using a sphere instead of WGS84 introduces latitude-dependent errors up to ~0.5 seconds at mid-latitudes — enough to mistime a diamond ring exposure.
Geocentric latitude from geodetic:
5. Newton-Raphson Iteration
Finding the exact moment of contact is a root-finding problem. We need to find t
such that m(t) − L(t) = 0,
where m is the observer-shadow distance and
L is the shadow radius. eclipseClick uses Newton-Raphson iteration
for fast quadratic convergence.
Iteration formula:
where F(t) = (x − ξ)² + (y − η)² − L².
The derivative uses the chain rule across all Besselian element polynomials and the time-varying observer coordinates.
Convergence threshold: 0.00001 hours (~0.036 seconds). Most locations converge in 3–5 iterations. The quadratic convergence of Newton-Raphson means each iteration roughly doubles the number of correct digits.
6. Lunar Limb Corrections
The Moon isn't a smooth sphere. Mountains and valleys along its limb (edge) mean the true moment of second and third contact can differ by several seconds from a smooth-Moon calculation. This is what makes Baily's beads happen — sunlight streaming through lunar valleys.
eclipseClick's Pro tier uses elevation data from the Lunar Reconnaissance Orbiter (LRO) LOLA digital elevation model — a 64 pixels-per-degree dataset of the Moon's topography, totaling approximately 160 MB of binary data.
Data Source
- LRO LOLA 64ppd DEM
- ~160 MB binary elevation grid
- Bilinear interpolation on 0.1° grid
What It Corrects
- C2/C3 timing (up to ±3 seconds)
- Diamond ring position angle
- Baily's beads prediction
The limb profile is computed for the observer's specific libration geometry — the Moon's orientation as seen from their location. This means the same eclipse produces different limb corrections for different observers.
7. Delta T (TT − UT) Corrections
Astronomical calculations use Terrestrial Time (TT), a uniform timescale. But our clocks run on Universal Time (UT), which is tied to Earth's rotation — and Earth's rotation is gradually slowing down. The difference, ΔT = TT − UT, must be applied to convert computed contact times to clock time.
| Year | ΔT (seconds) | Longitude shift |
|---|---|---|
| 2024 | ~69 s | ~0.29° |
| 2026 | ~70 s | ~0.29° |
| 2027 | ~70 s | ~0.29° |
| 2030 | ~71 s | ~0.30° |
eclipseClick uses IERS-tabulated ΔT values for past dates and extrapolated predictions for future eclipses.
A 1-second error in ΔT shifts the eclipse path by approximately
0.004° in longitude — about
450 meters at the equator.
Why it matters: Ignoring ΔT entirely would shift contact times by over a minute and displace the eclipse path by ~30 km. For automated photography, this is the difference between capturing totality and missing it.
8. Shadow Mapping
eclipseClick's interactive map visualizes both the umbral shadow (totality) and penumbral shadow (partial eclipse) as they sweep across the Earth. This requires inverting the fundamental plane projection — going from shadow geometry back to geographic coordinates.
For each point in the shadow, the algorithm solves a quadratic equation in ζ (the observer's distance along the shadow axis from the fundamental plane) using the oblate Earth equation:
If the discriminant is positive, the point lies on the Earth's surface and is within the shadow. The solution gives the geographic latitude and longitude, which eclipseClick renders as a polygon on the map.
Umbra (totality)
Computed using the umbral radius l2.
Typically 100–270 km wide. Rendered as a dark overlay on the map.
Penumbra (partial)
Computed using the penumbral radius l1.
Can exceed 7,000 km in diameter. Rendered as a semi-transparent gradient.
The shadow animation steps through time, recomputing Besselian elements and shadow boundaries at each frame. Because the animation shows the eclipse-wide shadow (not just the observer's local view), it works independently of the selected observation location.
See the math in action
Download eclipseClick and compute contact times for your location.