Computing Solar Eclipses — Research

Path and limits

workingupdated 2026-09-15central-linelimitsoutlinepath-widthdurationoblate-earthbesselian
  • The central line is a square root. At time tt the shadow axis meets the ellipsoid where ξ=x\xi = x, η1=y/ρ1\eta_1 = y/\rho_1 and ζ1=1x2η12\zeta_1 = \sqrt{1 - x^2 - \eta_1^2}, in a frame where the flattened Earth is a unit sphere. Everything else on the map is a variation on this step 1.
  • The limits are a root-finding problem in one angle. A point is on a limit when the eclipse begins and ends at the same instant. That gives one condition on the position angle QQ of the shadow edge, tanQ=(bζdasecQ)/(cζμcosd)\tan Q = (b' - \zeta d' - a'\sec Q)/(c' - \zeta\mu'\cos d), and an iteration on ζ\zeta because the height above the fundamental plane is not known until the point is found 1 2.
  • Duration and width are local ratios. Central duration is 2L2/n2L_2/n with L2=l2ζtanf2L_2 = l_2 - \zeta\tan f_2 and nn the shadow speed relative to the rotating observer. Path width follows Mikhailov's 1931 formula, 2L2[ζ2+((x(xξ)+η1(yη))/n)2]1/22L_2\,[\zeta^2 + ((x(x'-\xi') + \eta_1(y'-\eta'))/n)^2]^{-1/2} 2 3.
  • The oblate Earth is handled by Bessel's substitution. Two auxiliary radii ρ1=1e2cos2d\rho_1 = \sqrt{1 - e^2\cos^2 d} and ρ2=1e2sin2d\rho_2 = \sqrt{1 - e^2\sin^2 d} and a rotated declination d1d_1 turn the ellipsoid into a unit sphere in (ξ,η1,ζ1)(\xi, \eta_1, \zeta_1) coordinates. Some codes skip this and intersect a line with the ellipsoid directly by solving a quadratic 1 4.
  • The constants decide the edges. All NASA products use k=0.272281k = 0.272281 for umbral contacts, a solar radius of 959.63 arcseconds at 1 au, and a published ΔT\Delta T per eclipse. For penumbral contacts the bulletins and EclipseWise use k=0.2725076k = 0.2725076, while the Five Millennium Canon and the path tables and element pages generated from it use k=0.2724880k = 0.2724880. Stellarium copies the bulletin pair. The Swiss Ephemeris uses its own vector method with a lunar diameter of 3476.3 km 5 3 6.
  • Smooth-Moon limits are wrong by 1 to 3 km. NASA, Jubier and SVS all say so. SVS (Ernie Wright) replaces the ellipse with a limb-profiled polygon built from LRO LOLA and SLDEM2015 with SRTM terrain, and reports 2017 umbra shifts of up to 3 km from observer elevation alone 7 8.

The question. Given the Besselian elements of a solar eclipse as polynomials in time, how are the curves that go on a world map computed: the central line, the northern and southern limits of the umbra or antumbra and of the penumbra, the outline of the shadow at an instant, the duration of totality or annularity, the path width, the instant and point of greatest eclipse, the point of greatest duration, the ground speed of the umbra, and the true shape of the umbra on the ground? Which formulas do the Explanatory Supplement, Chauvenet, Meeus and Espenak use, what constants do they adopt, how is the oblate Earth treated, and what do the implementations that add lunar limb and terrain corrections do differently?

The frame and the elements

Every source here works in Bessel's fundamental planefundamental planeThe plane through the Earth's centre perpendicular to the axis of the Moon's shadow. Its x axis lies in the equator pointing east, its y axis points north, and the shadow's cross-section on it is an exact circle., with lengths in units of the Earth's equatorial radius and the Besselian elementsBesselian elementsThe time-dependent quantities xx, yy, dd, μ, l1l_1, l2l_2 and the constants tanf1f_1, tanf2f_2 that describe the Moon's shadow relative to the fundamental plane, from which any eclipse circumstance can be computed. x,y,d,μ,l1,l2,tanf1,tanf2x, y, d, \mu, l_1, l_2, \tan f_1, \tan f_2 as the only input. The geometry, the sign conventions, the cone equations and the constants behind those eight numbers are in Besselian elements and the fundamental plane, and are used here without re-derivation 1 9.

Two details are needed below. The 1961 Supplement tabulates the numerators of sinf1\sin f_1 and sinf2\sin f_2 as constants for each lunar radius ratio: 0.0046640 09 and 0.0046407 92 when k=0.272281k = 0.272281, and 0.0046640 18 and 0.0046407 83 when k=0.2724880k = 0.2724880, both from 1968 1. And l2l_2 is negative for a total eclipse, positive for an annular one, while l1l_1 is always positive 1.

Stellarium computes the elements at run time with a Sun/Earth radius ratio of 109.12278, from 696,000 km over 6378.1366 km, the latter from IERS Conventions 2003, and uses k=0.2725076k = 0.2725076 for the penumbra and the code constant s =0.272281= 0.272281 for the umbra, commenting that the 696,000 km value is "calculated from arctan of IAU 1976 solar radius (959.63 arcsec at 1 au)" 3.

NASA's bulletins publish the elements as cubic polynomials in t=t1t0t = t_1 - t_0, in decimal hours from the hour t0t_0 nearest greatest eclipse in Terrestrial Dynamical TimeTerrestrial Time (TT)The uniform time scale of the ephemerides and of the Besselian elements, equal to TAI + 32.184 s. Older eclipse tables call it TDT, TD or Ephemeris Time (ET). Elements are computed in TT and converted to UT1 with ΔT before any Earth rotation is applied.. The form is a=a0+a1t+a2t2+a3t3a = a_0 + a_1 t + a_2 t^2 + a_3 t^3 for a{x,y,d,l1,l2,μ}a \in \{x, y, d, l_1, l_2, \mu\}, fitted by least squares to elements "rigorously calculated at five separate times over a six hour period centered at t0t_0", so the fit is valid for t0±3t_0 \pm 3 h 5 10. TDT, TD and TT are one scale, and ET is the pre-1984 name for it. tanf1\tan f_1 and tanf2\tan f_2 are given as constants for the eclipse.

The ephemeris differs by product. The 2001 bulletin used DE200/LE200. The 2017 pages state JPL DE405 with ΔT=68.4\Delta T = 68.4 s and the 2024 pages VSOP87 and ELP2000-85 with ΔT=70.6\Delta T = 70.6 s 5 11 12. The Five Millennium Canon, NASA/TP-2006-214141, uses VSOP87D and ELP-2000/82 truncated at 0.0005 arcseconds, with centre-of-mass lunar positions and no centre-of-figure offset 13. NASA labels its 2024 element page "VSOP87/ELP2000-85", while the Canon text describes ELP-2000/82, so the two labels belong to different runs.

The observer and the oblate Earth

An observer at west longitude λ\lambda, geocentric latitude ϕ\phi' and geocentric distance ρ\rho has coordinates in the fundamental frame

ξ=ρcosϕsinθ,η=ρsinϕcosdρcosϕsindcosθ,ζ=ρsinϕsind+ρcosϕcosdcosθ\xi = \rho\cos\phi'\sin\theta, \quad \eta = \rho\sin\phi'\cos d - \rho\cos\phi'\sin d\cos\theta, \quad \zeta = \rho\sin\phi'\sin d + \rho\cos\phi'\cos d\cos\theta

with θ=μλ\theta = \mu - \lambda the local hour angle of the shadow axis 1. Their hourly rates, with μ\mu' and dd' in radians per hour, are

ξ=μ(ηsind+ζcosd),η=μξsinddζ,ζ=μξcosd+dη\xi' = \mu'(-\eta\sin d + \zeta\cos d), \qquad \eta' = \mu'\xi\sin d - d'\zeta, \qquad \zeta' = -\mu'\xi\cos d + d'\eta

The ρ sin φ′, ρ cos φ′ρ sin φ′, ρ cos φ′The observer's geocentric coordinates on the ellipsoid, ρsinϕ=(1e2)sinϕ(1e2sin2ϕ)1/2' = (1 - e^2),(1 - e22)^{-1/2} and ρcosϕ=cosϕ(1e2sin2ϕ)1/2' = ,(1 - e22)^{-1/2}, with ϕ the geodetic latitude and ee the eccentricity of the spheroid. pair for geodetic latitude ϕ\phi is

ρsinϕ=(1e2)sinϕ1e2sin2ϕ=Ssinϕ,ρcosϕ=cosϕ1e2sin2ϕ=Ccosϕ\rho\sin\phi' = \frac{(1-e^2)\sin\phi}{\sqrt{1 - e^2\sin^2\phi}} = S\sin\phi, \qquad \rho\cos\phi' = \frac{\cos\phi}{\sqrt{1 - e^2\sin^2\phi}} = C\cos\phi

The 1961 edition uses Hayford's spheroid, e2=0.00672267e^2 = 0.00672267, flattening 1/297, and notes e2=0.00669454e^2 = 0.00669454 from 1968 1. Modern codes use WGS84: Eclipse-Engine hard-codes F=1/298.257223563F = 1/298.257223563, the 2027 visualiser 1/298.2571/298.257, and Stellarium takes the flattening from its Earth model 14 4 3.

The difficulty for global curves is that ρ\rho depends on the latitude of a point that has not yet been found. Bessel's substitution removes the iteration. Introduce the parametric latitudeparametric latitudeThe latitude ϕ1_1 defined by sinϕ1=ρsinϕ/1e2_1 = '/ and cosϕ1=ρcosϕ_1 = ', which maps the Earth ellipsoid onto a unit sphere so that eclipse curves can be solved without knowing the observer's distance from the geocentre in advance. ϕ1\phi_1 with sinϕ1=ρsinϕ/1e2\sin\phi_1 = \rho\sin\phi'/\sqrt{1-e^2} and cosϕ1=ρcosϕ\cos\phi_1 = \rho\cos\phi', and the auxiliary quantities

ρ1=1e2cos2d,ρ2=1e2sin2d\rho_1 = \sqrt{1 - e^2\cos^2 d}, \qquad \rho_2 = \sqrt{1 - e^2\sin^2 d}
ρ1sind1=sind,ρ1cosd1=1e2cosd,ρ1ρ2sin(d1d2)=e2sindcosd,ρ1ρ2cos(d1d2)=1e2\rho_1\sin d_1 = \sin d, \quad \rho_1\cos d_1 = \sqrt{1-e^2}\cos d, \quad \rho_1\rho_2\sin(d_1 - d_2) = e^2\sin d\cos d, \quad \rho_1\rho_2\cos(d_1 - d_2) = \sqrt{1-e^2}

Then with η1=η/ρ1\eta_1 = \eta/\rho_1 and ζ1=ζ/ρ2\zeta_1 = \zeta/\rho_2 the observer satisfies

ξ=cosϕ1sinθ,η1=sinϕ1cosd1cosϕ1sind1cosθ,ζ1=sinϕ1sind1+cosϕ1cosd1cosθ\xi = \cos\phi_1\sin\theta, \quad \eta_1 = \sin\phi_1\cos d_1 - \cos\phi_1\sin d_1\cos\theta, \quad \zeta_1 = \sin\phi_1\sin d_1 + \cos\phi_1\cos d_1\cos\theta

so that ξ2+η12+ζ12=1\xi^2 + \eta_1^2 + \zeta_1^2 = 1: the ellipsoid has become a unit sphere. The true height above the plane is recovered from

ζ=ρ2[ζ1cos(d1d2)η1sin(d1d2)]\zeta = \rho_2\left[\zeta_1\cos(d_1 - d_2) - \eta_1\sin(d_1 - d_2)\right]

The Supplement notes that ρ1\rho_1, ρ2\rho_2 and d1d2d_1 - d_2 are nearly constant over an eclipse and can be evaluated once for the hour nearest conjunction 1. The inverse transformation to geographic coordinates is

cosϕ1sinθ=ξ,cosϕ1cosθ=η1sind1+ζ1cosd1,sinϕ1=η1cosd1+ζ1sind1\cos\phi_1\sin\theta = \xi, \quad \cos\phi_1\cos\theta = -\eta_1\sin d_1 + \zeta_1\cos d_1, \quad \sin\phi_1 = \eta_1\cos d_1 + \zeta_1\sin d_1
λ=μθ,tanϕ=tanϕ11e2\lambda = \mu - \theta, \qquad \tan\phi = \frac{\tan\phi_1}{\sqrt{1-e^2}}

with (1e2)1/2=1.003378(1-e^2)^{-1/2} = 1.003378 for Hayford and 1.003364 from 1968 1. Stellarium's computeTimePoint and calcSolarEclipseData implement exactly these lines: rho1 = sqrt(1-e2*sqr(cosd)), sd1 = sind/rho1, cd1 = sqrt(1-e2)*cosd/rho1, sdd = e2*sind*cosd/(rho1*rho2), zeta1 = (zeta/rho2 + eta1*sdd)/cdd, theta = atan2(xi, -eta1*sd1 + zeta1*cd1), lng = theta - mu, tanLat = sfn1/((1-f)*cfn1) 3.

A second treatment avoids the substitution. The 2027 visualiser expresses the fundamental-plane basis vectors in Earth-fixed coordinates, ξ̂=(sinμ,cosμ,0)\hat\xi = (\sin\mu, \cos\mu, 0), η̂=(sindcosμ,sindsinμ,cosd)\hat\eta = (-\sin d\cos\mu, \sin d\sin\mu, \cos d), ζ̂=(cosdcosμ,cosdsinμ,sind)\hat\zeta = (\cos d\cos\mu, -\cos d\sin\mu, \sin d), and intersects the line 𝐚+ζζ̂\mathbf{a} + \zeta\hat\zeta with the ellipsoid by solving the quadratic g(ζ̂,ζ̂)ζ2+2g(𝐚,ζ̂)ζ+g(𝐚,𝐚)1=0g(\hat\zeta,\hat\zeta)\zeta^2 + 2g(\mathbf{a},\hat\zeta)\zeta + g(\mathbf{a},\mathbf{a}) - 1 = 0 where gg is the ellipsoid metric with zz scaled by 1/(1f)21/(1-f)^2, and takes the root nearest the Moon 4. The Swiss Ephemeris does the same in a cruder way: it divides the zz coordinates of Sun and Moon by (1f)(1 - f), computes the intersection as if the Earth were a sphere, then recomputes the scale factor from the latitude found and repeats once 6. Both are algebraically equivalent to Bessel's substitution for a point on the surface. They differ when an observer height must be included. That case is discussed below.

The time system is ephemeris time (now TT) throughout the Supplement, and the map curves are converted to Universal Time only through ΔT\Delta T 1. In practice the hour angle μ\mu tabulated against TT is shifted by the rotation of the Earth in ΔT\Delta T seconds: the 2027 visualiser evaluates mu = poly(E.mu, t) - 0.00417807 * deltaT degrees, and Eclipse-Engine uses 1.002738 * delta_t_s * 15 / 3600 degrees, both 15.041 arcseconds of longitude per second of ΔT\Delta T 4 14. Omitting it leaves latitude right and shifts longitude by about 32 km for ΔT=76\Delta T = 76 s at the latitude of Egypt 15. NASA's page on Earth rotation tabulates the same effect for historical eclipses, for example 9,848 s of ΔT\Delta T at 1 BCE giving a 41.0 degree longitude shift 16.

Central line

The central linecentral lineThe locus of points where the shadow axis meets the Earth's surface. It is found at each instant from ξ=x= x, η1=y/ρ1_1 = y/_1 and ζ1=1ξ2η12_1 = , and exists only while the axis intersects the Earth. is the locus where the shadow axis meets the surface. At each time,

ξ=x,η1=y/ρ1,ζ1=1x2η12\xi = x, \qquad \eta_1 = y/\rho_1, \qquad \zeta_1 = \sqrt{1 - x^2 - \eta_1^2}

There are two roots. The negative ζ1\zeta_1 is the point below the horizon and is "usually omitted in the ephemerides" 1. Where 1x2η12<01 - x^2 - \eta_1^2 < 0 the axis misses the Earth: the eclipse is non-central at that instant. The 1992 edition writes the same three lines as its equation 8.3553-1 and adds ζ=ρ2[ζ1cos(d1d2)η1sin(d1d2)]\zeta = \rho_2[\zeta_1\cos(d_1-d_2) - \eta_1\sin(d_1-d_2)] as 8.3553-2 2. Stellarium's calcSolarEclipseData tests p = 1 - x*x - eta1*eta1 and takes the partial-eclipse branch when it is negative, in which case it computes the point on the limb closest to the axis by normalising (x,y/ρ1)(x, y/\rho_1) 3.

The ends of the central line are the first and last contacts of the umbra, where ζ1=0\zeta_1 = 0 and x2+η12=1x^2 + \eta_1^2 = 1. The Supplement finds the time by Newton's correction t=(xx+yy)/n12t = -(xx' + yy')/n_1^2 with n12=x2+y2n_1^2 = x'^2 + y'^2 at an approximate time, and the 1992 edition uses the discriminant D=x2+y121D = x^2 + y_1^2 - 1 with inverse interpolation 1 2.

Duration on the central line

The 1961 Supplement gives the semi-duration of the total or annular phase as

s=L2n,L2=l2ζtanf2,n2=(xξ)2+(yη)2s = \frac{L_2}{n}, \qquad L_2 = l_2 - \zeta\tan f_2, \qquad n^2 = (x' - \xi')^2 + (y' - \eta')^2

with ξ=μ(ysind+ζcosd)\xi' = \mu'(-y\sin d + \zeta\cos d) and η=μxsinddζ\eta' = \mu' x\sin d - d'\zeta evaluated at the central-line point. The units are hours when hourly variations are used 1. The 1992 edition gives the full duration as 2L2/n2L_2/n "with appropriate sign" and remarks that this disregards vertical motion, and that in local circumstances the accurate duration is the difference of the two contact times 2. Stellarium writes duration = L2a*120./n minutes with nn in Earth radii per hour and the sign distinguishing annular (positive) from total (negative) 3. The 2027 visualiser instead bisects the two times at which the fixed surface point crosses the umbra edge, |(ξx,ηy)|=|l2ζtanf2||(\xi - x, \eta - y)| = |l_2 - \zeta\tan f_2|. That is the local-circumstance definition of duration 4.

Off the central line the NASA bulletins give the interpolation

d=D1(2a/W)2d = D\sqrt{1 - (2a/W)^2}

with DD the central duration, aa the perpendicular distance from the central line and WW the path width, all in seconds and kilometres, together with t2=tmd/2t_2 = t_m - d/2 and t3=tm+d/2t_3 = t_m + d/2 5.

Northern and southern limits

The umbral path and its limits on the Earth's discThe Earth is drawn as a disc seen from the Sun. A pale region covers most of the disc and is labelled the penumbral outline, its edge a dashed arc low on the disc. A curve runs from limb to limb across the upper half of the disc: the central line, the track of the shadow axis. Five small dark ellipses sit on that curve at successive instants, each the umbra on the ground, smallest near the middle of the path and larger toward its ends where the surface tilts away. Two further curves, one dashed and one dotted, run either side of the central line and touch every one of the five ellipses. They are the northern and southern limits, drawn as the envelope of the moving ellipse, and they spread apart toward the ends of the path as the ellipses grow.northern limitsouthern limitcentral linethe shadow axison the groundthe umbra at five instantseach ellipse touches both limits,which is what makes them limitspenumbral outlinethe partial phaseis under way inside itthe Earth as seen from the SunSchematic. The umbra is drawn far larger, relative to the Earth, than it ever is.

At a point on a limit the eclipse begins and ends at the same instant, so the distance Δ\Delta from the observer to the axis equals the shadow radius LL and its time derivative vanishes. Writing xξ=ΔsinQx - \xi = \Delta\sin Q, yη=ΔcosQy - \eta = \Delta\cos Q with QQ the position angle Qposition angle QThe angle, measured eastward from north in the fundamental plane, of the shadow axis as seen from the observer's projected point. Limit curves and outline curves are parametrised by Q. of the axis from the observer, the condition is

(xξ)sinQ+(yη)cosQ(lζtanf)=0(x' - \xi')\sin Q + (y' - \eta')\cos Q - (l' - \zeta'\tan f) = 0

The Supplement introduces the auxiliary elementsauxiliary elementsDerived rates aa', bb', cc' built from the Besselian elements and their time derivatives that make the condition for the northern and southern limits a single equation in the position angle QQ.

a=lμxtanfcosd,b=y+μxsind,c=x+μysind+μltanfcosda' = -l' - \mu' x\tan f\cos d, \qquad b' = -y' + \mu' x\sin d, \qquad c' = x' + \mu' y\sin d + \mu' l\tan f\cos d

and, omitting terms in dtanfd'\tan f and setting sec2f=1\sec^2 f = 1, obtains

tanQ=bζdasecQcζμcosd\tan Q = \frac{b' - \zeta d' - a'\sec Q}{c' - \zeta\mu'\cos d}

For the umbra, ξ=xL2sinQ\xi = x - L_2\sin Q and η1=(yL2cosQ)/ρ1\eta_1 = (y - L_2\cos Q)/\rho_1. The sign of cosQ\cos Q is positive for the northern limit of a total eclipse and the southern limit of an annular eclipse, negative for the other two 1. The 1992 edition writes the same condition with the tan2f\tan^2 f factor kept, its equation 8.353-2,

aibicosQ+cisinQ+ζ(1+tan2fi)(dcosQμcosdsinQ)=0,i=1,2a_i - b_i\cos Q + c_i\sin Q + \zeta(1 + \tan^2 f_i)(d'\cos Q - \mu'\cos d\sin Q) = 0, \qquad i = 1, 2

with dots on aa, bb, cc that the scan dropped, and assigns a converged point to the northern limit when LicosQ<0L_i\cos Q < 0 and to the southern when LicosQ>0L_i\cos Q > 0 2. The 2013 edition's equation 11.81 is the same relation solved for ζ\zeta, which Stellarium implements as

ζ=ȧ+ḃcosQċsinQ(1+tan2f)(ḋcosQμ̇cosdsinQ)\zeta = \frac{-\dot a + \dot b\cos Q - \dot c\sin Q}{(1 + \tan^2 f)(\dot d\cos Q - \dot\mu\cos d\sin Q)}

with ȧ=l̇μ̇xtanfcosd+yḋtanf\dot a = -\dot l - \dot\mu x\tan f\cos d + y\dot d\tan f, ḃ=(ẏμ̇xsind)\dot b = -(\dot y - \dot\mu x\sin d) and ċ=ẋ+μ̇ysind+μ̇Ltanfcosd\dot c = \dot x + \dot\mu y\sin d + \dot\mu L\tan f\cos d 3 17. Note the extra yḋtanfy\dot d\tan f term that 1961 dropped. Chauvenet's original, reproduced in Buchanan's 1904 exposition, is the same condition in logarithmic form: tan(Q12E)=tan(45+v)tan12E\tan(Q - \tfrac{1}{2}E) = \tan(45^{\circ} + v')\tan\tfrac{1}{2}E with tanv=(f/e)cosβ\tan v' = (f/e)\cos\beta, where ee, EE and ff are Chauvenet's auxiliaries and cosβ\cos\beta is taken from the central line because it "is not known" on the limit curve, which Buchanan admits makes the umbral formulae "not rigorously exact" near the ends 18.

The iteration in the 1961 Supplement is:

  1. Start with L2L_2 from the central-line duration computation at the same time and tanQ0=b/(c2ζμcosd)\tan Q_0 = b'/(c_2' - \zeta\mu'\cos d) from the same computation. If there is no central line, start with ζ=0\zeta = 0, L2=l2L_2 = l_2, tanQ=b/c2\tan Q = b'/c_2'.
  2. Compute ξ\xi, η1\eta_1, then ζ1=1ξ2η12\zeta_1 = \sqrt{1 - \xi^2 - \eta_1^2} and ζ=ρ2[ζ1cos(d1d2)η1sin(d1d2)]\zeta = \rho_2[\zeta_1\cos(d_1-d_2) - \eta_1\sin(d_1-d_2)].
  3. Recompute tanQ\tan Q from the accurate formula, using secQ\sec Q from the previous approximation because the asecQa'\sec Q term is small.
  4. Re-evaluate L2=l2ζtanf2L_2 = l_2 - \zeta\tan f_2, ξ\xi, η1\eta_1, ζ1\zeta_1 and convert to λ\lambda, ϕ\phi.

The procedure "converges rapidly and rarely requires more than two approximations", but "near the ends of the path it may be advisable to carry through one more approximation" 1. The 1992 edition scans QQ a degree at a time from a first guess with ai=0a_i = 0 until the discriminant changes sign twice, inverse-interpolates each zero, then iterates ζ\zeta to 10510^{-5} Earth radii, and, where the iteration "may begin oscillating about some mean value", takes the mean 2.

For the penumbral limits the flattening may be neglected: L1=l1ζtanf1L_1 = l_1 - \zeta\tan f_1, ξ=xL1sinQ\xi = x - L_1\sin Q, η=yL1cosQ\eta = y - L_1\cos Q, ζ=1ξ2η2\zeta = \sqrt{1 - \xi^2 - \eta^2}, tanQ=b/(c1ζμcosd)\tan Q = b'/(c_1' - \zeta\mu'\cos d) with the ζd\zeta d' and asecQa'\sec Q terms omitted, and the sign of cosQ\cos Q positive for the southern limit and negative for the northern 1. The penumbra "often has only one" limit on the surface, the umbra "nearly always has both" 2.

Stellarium takes a different route to the same condition. Its getShadowLimitQs substitutes ζ(Q)\zeta(Q) from the 2013 equation 11.81 into the unit-sphere identity ξ2+η12+ζ12=1\xi^2 + \eta_1^2 + \zeta_1^2 = 1 and the ζ\zeta relation 11.60, multiplies through, and obtains a single polynomial in sinQ\sin Q and cosQ\cos Q whose coefficients the source lists term by term. It solves that with Newton's method over the full circle, keeps only sets with an even number of roots, samples every minute from P1 to P4, and bisects in time wherever the number of roots changes or ζ\zeta changes sign, dropping points with negative ζ\zeta as below the horizon 3.

Two open-source engines replace the derivative condition with a geometric one. The 2027 visualiser computes the ground velocity of the shadow centre, 𝐯=ωẑ×𝐏\mathbf{v} = \omega\hat z \times \mathbf{P} projected on the ξ\xi and η\eta axes, forms the direction of travel relative to the ground Qdir=atan2(ẋvξ,ẏvη)Q_{dir} = \operatorname{atan2}(\dot x - v_\xi, \dot y - v_\eta), and places the two limits at Qdir±90Q_{dir} \pm 90^{\circ}, iterating four times on L=|l2ζtanf2|L = |l_2 - \zeta\tan f_2| 4. Eclipse-Engine does the same with five iterations and records why the ground-relative velocity matters: "the observer's own eastward speed is a few hundred m/s against an umbra doing a few km/s. Ignoring it narrows the drawn band by up to 5 km on each side at low latitude", a 4 per cent error on a 130 km half-width. It also returns the two curves as left and right of the motion instead of north and south, because the labels swap at "some 170 of 6200 sampled epochs" in its catalogue 14. This perpendicular-offset construction is the small-ll', small-dd' limit of the Supplement's condition and is the reason NASA's bulletins describe the limits as tangent to the path of the shadow.

Outline of the shadow at an instant

An outline curveoutline curveThe curve of all points at which the eclipse (partial for the penumbra, central for the umbra) is beginning or ending at a stated instant; the shadow's footprint on the ground at that time. is the locus of points where the eclipse is beginning or ending at the given time. Neglecting flattening and using l1l_1 for L1L_1,

ξ=xl1sinQ,η=yl1cosQ,ξ2+η2+ζ2=1\xi = x - l_1\sin Q, \qquad \eta = y - l_1\cos Q, \qquad \xi^2 + \eta^2 + \zeta^2 = 1

with QQ as the independent variable at 5 or 10 degree steps. If the penumbra has both limits on the surface, QQ runs through the full circle. Otherwise the end points are where ζ=0\zeta = 0: with x=msinMx = m\sin M, y=mcosMy = m\cos M,

cos(QM)=m2+l1212ml1\cos(Q - M) = \frac{m^2 + l_1^2 - 1}{2 m l_1}

and the two roots bound the visible arc; which arc is found by testing a trial QQ. For a large-scale map the flattening is restored, ξ=xL1sinQ\xi = x - L_1\sin Q, η1=(yL1cosQ)/ρ1\eta_1 = (y - L_1\cos Q)/\rho_1, ζ1=1ξ2η12\zeta_1 = \sqrt{1 - \xi^2 - \eta_1^2}, iterating L1=l1ζtanf1L_1 = l_1 - \zeta\tan f_1 from the spherical value 1. The 1992 edition uses one-degree steps in QQ and points already computed on the limit curves as the end points 2. The umbral outline is the same with l2l_2, f2f_2, and the Supplement notes that outline curves of the umbra "are not published" in the Almanac 2.

Stellarium's getShadowOutlineCoordinates runs three fixed iterations of L=lζ1tanfL = l - \zeta_1\tan f for each of 60 angles and returns nothing where 1ξ2η12<01 - \xi^2 - \eta_1^2 < 0 3. The 2027 visualiser uses 90 angles and four iterations and, where the cone misses the Earth, substitutes the point on the terminator in that direction so the polygon stays closed 4. Eclipse-Engine uses 181 angles, iterates to convergence instead of a fixed count because "at grazing incidence the radius depends ever more steeply on zeta and four rounds leave the vertex kilometres out", and breaks the ring into runs where the cone leaves the ground 14.

Path width

The 1992 Supplement gives the width perpendicular to the direction of motion by "a formula derived by Mikhailov (1931)", its equation 8.3553-5, which the scan garbled. Stellarium's transcription of it reads

W=|2RL2[ζ2+(x(xξ)+η1(yη)n)2]1/2|W = \left|\, 2 R_\oplus L_2 \left[\zeta^2 + \left(\frac{x(x' - \xi') + \eta_1(y' - \eta')}{n}\right)^2\right]^{-1/2}\right|

with p1 = zeta*zeta, p2 = x*(xdot-xidot)/n, p3 = eta1*(ydot-etadot)/n, pathWidth = abs(earthRadius*2.*L2a/sqrt(p1+(p2+p3)*(p2+p3))) 2 3. The term in the bracket is the cosine of the angle between the surface normal and the direction of motion resolved on the fundamental plane. When the motion is along the tilt of the surface the width is 2L22L_2, and when the motion is across the tilt it is 2L2/ζ2L_2/\zeta. Stellarium's comment warns that the formula "could give a false impression" where only part of the umbra touches the Earth, citing the 2003 May 31 annular eclipse, and that width should not be shown unless both limits exist 3. NASA's path tables give width in kilometres at the central-line point together with the umbra's major and minor axes and its "instantaneous velocity with respect to Earth's surface" in the physical-ephemeris table 5. A simple cone-geometry approximation, W=2(dumbra(dmoonr))tanαW = 2(d_{umbra} - (d_{moon} - r_\oplus))\tan\alpha with α=arcsin((rrmoon)/(ddmoon))\alpha = \arcsin((r_\odot - r_{moon})/(d_\odot - d_{moon})), reproduces the 2017 NASA value of 114.7 km as 116 km but ignores the surface tilt 19.

Ground speed of the umbra

No source read here prints a formula for the speed of the umbra over the ground. The Supplement's nn is the speed of the shadow relative to the observer in the plane through the observer parallel to the fundamental plane 1. NASA bulletins tabulate the velocity and describe it in the narrative: 0.554 km/s at greatest eclipse in 2001, 0.63 km/s at the Angolan coast and 1.7 km/s leaving Mozambique 5. Jubier's map reports "Umbral/Antumbral velocity" in its tooltip 20. A geometric derivation, given here because it is not quoted from any source, follows from the same projection as Mikhailov's width. A lateral displacement 𝛅\boldsymbol\delta of the axis in the fundamental plane moves the surface intersection by 𝛅s=𝛅ẑ(𝛅𝐍)/(ẑ𝐍)\boldsymbol\delta_s = \boldsymbol\delta - \hat z\,(\boldsymbol\delta\cdot\mathbf{N})/(\hat z\cdot\mathbf{N}), where 𝐍\mathbf{N} is the surface normal, so that

vground=nR1+(v̂𝐍)2ζ2v_{ground} = n R_\oplus\sqrt{1 + \frac{(\hat v\cdot\mathbf{N})^2}{\zeta^2}}

with v̂\hat v the unit direction of (xξ,yη)(x' - \xi', y' - \eta') and ẑ𝐍=ζ\hat z\cdot\mathbf{N} = \zeta for a sphere. This is why the shadow speed rises without bound toward the ends of the path where ζ0\zeta \to 0, and why the satellite-derived 2017 estimates of 2,382 to 2,929 km/h over Wyoming and Nebraska sit close to nRn R_\oplus where the Sun was high 21.

Greatest eclipse and greatest duration

The greatest eclipsegreatest eclipseThe instant when the shadow axis passes closest to the Earth's centre, at which γ is defined and the catalogued circumstances are quoted. is the instant when the shadow axis passes closest to the centre of the Earth. The Supplement minimises m2=x2+y2m^2 = x^2 + y^2: at an approximate time TT the correction is t=(xx+yy)/n12t = -(xx' + yy')/n_1^2 with n12=x2+y2n_1^2 = x'^2 + y'^2, and the 1992 edition uses the discriminant xx+yy=0xx' + yy' = 0 1 2. For a partial eclipse the point of greatest magnitude is on the terminator, ζ=0\zeta = 0, at ξ=x/m\xi = x/m, η1=y1/m1\eta_1 = y_1/m_1, with distance to the axis Δ=mρ\Delta = m - \rho and magnitude (l1Δ)/(l1+l2)(l_1 - \Delta)/(l_1 + l_2), where l1+l2l_1 + l_2 may be replaced by 2l10.54592l_1 - 0.5459 (0.5464 from 1963) when l2l_2 is unavailable 1. The 2001 bulletin defines greatest eclipse the same way and adds that it "differs slightly from the instants of greatest magnitude and greatest duration (for total eclipses)", and that "the differences are usually quite small" 5. NASA's map key marks the point with an asterisk and the minimum distance as gammagammaThe distance of the shadow axis from the Earth's centre in Earth equatorial radii at greatest eclipse, positive when the axis passes north of the centre. Values of |γ||| below about 0.9972 give a central eclipse. 22.

The point of greatest durationgreatest durationThe point on the central line where totality or annularity lasts longest. It is close to, but not the same as, the point of greatest eclipse, and can be shifted by 10 to 20 km by lunar limb effects. has no closed formula in any source read. It is the maximum of 2L2(t)/n(t)2L_2(t)/n(t) along the central line, which trades the growth of |L2||L_2| toward the subsolar point against the growth of nn where the Earth's rotation contributes least. The besselian repository reports that for 2027 August 2 the two points differ by about 215 km and 0.6 s, and that its "exact centerline solve" dominates a seven-minute build 15. The NASA Google map for 2024 states that limb corrections "shift the exact location of Greatest Duration by ~10-20 kilometers" 8.

Observer height, terrain and the ends of the path

The Supplement's formulas put every point on the spheroid. Height enters only through ρ\rho, which the 1992 edition says "is usually not unity; it contains flattening and height above the geoid" 2. NASA's bulletins handle height in the graze-zone tables with a multiplicative "Elev Fact": the path must be shifted perpendicular to itself by the elevation times the factor, so an observer at 1000 m with a factor of +0.20 shifts the limit by 200 m northward 5. The 2008 bulletin states the factor as tan(90A)sinD\tan(90^{\circ} - A)\sin D with AA the Sun's altitude and DD the difference between the Sun's azimuth and the azimuth of the limit line 10. The Photographer's Ephemeris (Photo Ephemeris) quotes the same rule of thumb as "of the order of ~500 m per 1,000 m of elevation" and computes its paths "for an observer at sea level" at 0.1 degree longitude steps 23. NASA's local-circumstance tables use a location's elevation when known and otherwise sea level, and say elevation "does not play a significant role in the predictions unless the location is near the umbral path limits and the Sun's altitude is relatively small (<10°)" 5.

The direct line–ellipsoid approach handles height naturally: the 2027 visualiser's surfacePoint intersects the axis with an ellipsoid of any semi-axes, and its local circumstances accept an observer above the surface 4. Ernie Wright's SVS method goes further and takes observer elevations from SRTM at every pixel, so that "higher elevations can lift the observer either into or out of the umbra cone. The overall effect is to shift the umbra toward the Sun", by up to 3 km to the southeast in the western United States in 2017 7.

At the ends of the path all the formulas degrade. The central line ends where ζ1=0\zeta_1 = 0, the limit iteration needs an extra pass, the limit curves continue past the end of the central line to the extreme points where ξ=xl2sinQ\xi = x - l_2\sin Q, η1=(yl2cosQ)/ρ1\eta_1 = (y - l_2\cos Q)/\rho_1, ξ2+η12=1\xi^2 + \eta_1^2 = 1 and tanQ=(ba2secQ)/c2\tan Q = (b' - a_2'\sec Q)/c_2', and the width formula blows up as ζ0\zeta \to 0 1 2. Chauvenet's umbral-limit formulae have cosβ\cos\beta as a divisor and become infinite at the extreme points 18. NASA's 2001 bulletin says the time interpolation between lines of maximum eclipse "is valid along most of the path with the exception of the extreme ends, where the shadow experiences its largest acceleration", and that refraction corrections near the horizon "are uncertain since they depend on the atmospheric temperature-pressure profile" 5. SVS notes that its duration and path shapefiles "are truncated and invalid at the ends" 24. The polynomial elements add their own edge problem: the 2026 simulator warns that at "the very edge of the path of totality (where duration → 0)" the cubic fit can shift contact times by tens of seconds against full-ephemeris sources 25.

The shape of the umbra: ellipse or polygon

On the smooth-Moon model the umbra on the ground is the projection of a circle along the shadow axis onto a tilted surface, an ellipse with semi-axes |L2||L_2| and |L2|/ζ|L_2|/\zeta in the small-cone limit, and the outline curveoutline curveThe curve of all points at which the eclipse (partial for the penumbra, central for the umbra) is beginning or ending at a stated instant; the shadow's footprint on the ground at that time. iteration above traces it exactly on the spheroid 1. NASA's physical-ephemeris tables print the major and minor axes 5.

Wright's SVS visualisations replace this with what the 2017 animation calls "an irregular polygon with slightly curved edges. Each edge corresponds to a single valley on the lunar limb, the last (or first) spot on the limb that lets sunlight through." The limb profile is built by transforming each point of a lunar elevation map into body-fixed Cartesian coordinates, rotating the point cloud into fundamental-plane coordinates at each time step, and taking "the set of points lying farthest from the shadow axis" as the limb. The lunar data are LRO laser altimetry and the hybrid LRO/Kaguya (SELENE) SLDEM2015 model. Earth elevations are SRTM. Positions are JPL DE421 on every SVS product page, while the paper's appendix uses DE440. The difference is under a metre at the Moon, and the question is treated in Wright and Young 2024. The 2024 path animation states that "the umbra and its path were calculated in a way that accounts for both elevations on the Earth's surface and the irregular lunar limb" 26. The animation shows three shapes: the red smooth ellipse, the white limb-corrected polygon and the dark grey polygon with Earth terrain added 7. The 2024 follow-up explains the geometry as valleys acting "like pinholes projecting images of the Sun onto the surface of the Earth", the umbra being the hole in the middle of the resulting flower pattern, and reports that in 2017 "only 49 valleys made significant contributions to the umbra shape" 27. The method paper is Wright and Young, "A Raster-oriented Method for Creating Eclipse Maps", Astronomical Journal 168:163 (2024), whose abstract states that ignoring the terrain of both bodies "introduces errors on the order of kilometers in the ground track of the umbra and seconds in the duration and contact times of totality" 28 29.

NASA's own path tables do not include this. The 2024 Google map page says its data "DO NOT include the effects of mountains and valleys along the edge of the Moon", that such corrections "shift the limits of the eclipse path north or south by ~1-3 kilometers, and change the eclipse duration by ~1-3 seconds", and that limb-corrected predictions "are normally posted 12-18 months before each eclipse" 8. NASA's and EclipseWise's limb pages put the uncorrected timing error at "2 to 3 seconds (and more near the path limits where the geometry is far more critical)", reduced to 0.5 s with Watts data and 0.2 s with Kaguya or LRO data 30 31. The bulletins tabulate corrections to the limits as interior and exterior components that define a graze zonegraze zoneThe narrow band, typically 5 to 10 km wide, along each umbral limit where the irregular lunar limb makes the eclipse neither wholly total nor wholly partial and Baily's beads persist. NASA bulletins tabulate its interior and exterior boundaries. "typically five to ten kilometers wide", computed by "an algorithm which searches the path limits for the extreme positions where no photospheric beads are visible along a ±30° segment of the Moon's limb, symmetric about the extreme contact points at the instant of maximum eclipse", with the exterior boundary "somewhat arbitrarily defined" as where "an unbroken photospheric crescent of 60° in angular extent is visible at maximum eclipse". The limb data were Watts's 1963 charts corrected to a centre-of-mass sphere after Morrison and Appleby (1981), accurate to about 0.3 arcseconds 5 10. Jubier's maps display a per-location limb correction "LC" in seconds, fetched online, and his Solar Eclipse Maestro compares Watts, Kaguya and LRO profiles against the reduced radius k2k_2 used for the uncorrected path 20 32. John Irwin's besselianelements.com publishes "true limb" limits for 2024 that account for lunar and terrestrial topography and are drawn for two solar radii, 959.90 and 960.00 arcseconds, around an estimate of 959.95±0.05959.95'' \pm 0.05''; the lines are jagged because the terrain is 33 34.

Sources compared

Source What it gives that the others do not Constants and data Grade
Explanatory Supplement 1961, ch. 9 1 The complete algebra, worked examples for 1961 Feb 15, the auxiliary elements aa', bb', cc', the two-step iteration for limits, the QQ-range test for outlines k=0.272274k = 0.272274 then 0.272281 and 0.2724880, s=959.63s_\odot = 959''.63, Hayford e2=0.00672267e^2 = 0.00672267 peer-reviewed
Explanatory Supplement 1992, ch. 8 2 The discriminant scan in QQ, the 10510^{-5} Earth-radius tolerance, the oscillation rule, Mikhailov's width formula, the flattening iteration in γ\gamma Refers to IAU kk of 1982 peer-reviewed
Explanatory Supplement 2013, ch. 11 17 The ζ(Q)\zeta(Q) closed form (eq. 11.81) and rise/set iteration (11.89, 11.94) that Stellarium implements; not read directly via Stellarium peer-reviewed
Chauvenet 1863 via Buchanan 1904 18 The logarithmic auxiliaries ee, EE, ff, vv and the admission that the umbral limits borrow cosβ\cos\beta from the central line pre-IAU survey
Meeus 1989, Elements of Solar Eclipses 35 Elements for 570 eclipses 1951–2200 with algorithms for central line and limits and numerical checks; not read ELP/VSOP era, not verified peer-reviewed
NASA bulletins and path tables 5 10 12 The tabulated product, the graze-zone algorithm, Elev Fact, the off-axis duration interpolation k=0.2725076k = 0.2725076 penumbral, 0.272281 umbral, DE200 then VSOP87/ELP2000, ΔT\Delta T per eclipse primary
Stellarium 3 A complete open implementation with every curve, Newton solve of the limit polynomial, PNG and KML output 6378.1366 km, 696,000 km, kk and ss as NASA company
Swiss Ephemeris 6 Vector method without Besselian elements; central point and umbra diameter only, no limits DMOON 3476.3 km, DSUN 1,392,000 km (or 1,391,978.5 km), Earth 6378.14 km company
SVS / Wright 7 28 Raster method with limb polygon and terrain; the only source that publishes the true shape LRO LOLA, SLDEM2015, SRTM, DE421 primary, peer-reviewed
Open-source JS engines 4 14 Line–ellipsoid quadratic, ground-relative sweep for limits, convergence notes WGS84, k2=0.272281k_2 = 0.272281, ΔT\Delta T from NASA company, unsourced

What a developer should do

  1. Implement the 1961 Supplement's equations exactly as quoted above, in the (ξ,η1,ζ1)(\xi, \eta_1, \zeta_1) frame, and check against Example 9.6 and 9.7 for 1961 February 15 08h ET (x=0.403040x = -0.403040, y=+0.808354y = +0.808354, sind=0.220112\sin d = -0.220112, giving ϕ=+4418.3\phi = +44^{\circ} 18'.3, λ=2920.9\lambda = -29^{\circ} 20'.9 west, duration 158.6 s) 1. Read SolarEclipseComputer.cpp in Stellarium alongside it. It is the closest thing to a reference implementation with citations 3.
  2. Use the 1992 edition's limit procedure (scan QQ, inverse-interpolate, iterate ζ\zeta to 10510^{-5}, assign by the sign of LcosQL\cos Q) rather than the two-pass 1961 recipe when generating whole curves, because it is robust at the ends 2.
  3. Adopt NASA's constants when the goal is to reproduce NASA tables: k1=0.2724880k_1 = 0.2724880 for the NASA path tables and catalogue and 0.27250760.2725076 for the bulletins and EclipseWise, k2=0.272281k_2 = 0.272281 in both cases, solar radius 959.63 arcseconds at 1 au, and the ΔT\Delta T printed with each eclipse. Validate against the path table at three times, as the 2027 visualiser does, expecting agreement at 1 km and 0.1 s 12 4.
  4. Apply the ΔT\Delta T shift to μ\mu at 15.041 arcseconds per second, not 15.0 14.
  5. Treat limb and terrain corrections as a separate stage, and read Wright and Young 2024 before designing it 28.

What this changes

The pipeline's global-circumstances stage should be a single routine that maps (t,Q,cone)(t, Q, \text{cone}) to a surface point through the Bessel substitution, with the central line, limits, outlines, rise/set curves and maximum-eclipse curves all expressed as constraints on QQ or ζ\zeta. The width and duration are by-products of that routine. The smooth-Moon path is a first-order product. The limb-profiled polygon is a distinct product that needs the lunar DEM and a raster or ray method, and the two should never be mixed in one file without labelling.

Open questions

  • The exact text of Explanatory Supplement 2013 equations 11.56, 11.60, 11.65, 11.78, 11.81, 11.82, 11.89 and 11.94, to confirm Stellarium's transcription of the ζ(Q)\zeta(Q) formula and the rise/set iteration 17.
  • Mikhailov 1931 as cited in the 1992 Supplement for the path-width formula, to verify the scan-damaged equation 8.3553-5 against the Stellarium code 2.
  • The full text of Wright and Young 2024 (AJ 168:163), for the solar radius adopted, the limb-point selection criterion and the pixel resolution of the raster 28.
  • Meeus's Elements of Solar Eclipses 1951–2200, for its limit algorithm and the numerical examples that the Photo Ephemeris and MATLAB implementations rely on 35 36.
  • The NASA source code or a written statement of how the bulletins compute the "instantaneous velocity with respect to Earth's surface" in the physical-ephemeris tables 5.

References

  1. 1peer-reviewed Explanatory Supplement to the Astronomical Ephemeris and the American Ephemeris and Nautical Almanac (1961), chapter 9 Eclipses and Transits, section B Solar eclipses fundamental equations and section C predicted data The primary algebra for Besselian elements, the observer in the fundamental frame, the auxiliary elements a' b' c', central line, limits, outline, maximum-eclipse, rise/set and greatest-eclipse curves, with worked examples for 1961 Feb 15. Read the OCR full text on archive.org (djvu text); OCR errors were resolved against the 1992 edition and the Stellarium code.
  2. 2peer-reviewed Explanatory Supplement to the Astronomical Almanac (1992), chapter 8 Eclipses of the Sun and Moon, by Alan D. Fiala and John A. Bangert Sections 8.353 to 8.3565 and 8.361: the conditional equation with tan^2 f, the flattening iteration in gamma, the Q-scan and 1e-5 tolerance for limits, Mikhailov's path-width formula (8.3553-5), discriminants for contacts, eclipse-map conventions. Read the OCR full text; equation 8.3553-5 is scan-damaged and was reconstructed from Stellarium's transcription.
  3. 3company Stellarium, src/core/SolarEclipseComputer.cpp (master) Read the source (var/downloads/stellarium_SolarEclipseComputer.cpp). Besselian elements at run time with 6378.1366 km, 696,000 km, k=0.2725076 and s=0.272281; zetaFromQ from ES 2013 eq. 11.81; Newton solve of the limit polynomial; central line, duration, Mikhailov path width, outlines, rise/set by ellipse-circle Newton solve, maximum at rise/set; PNG and KML output. Cites ES 1961, 1992, 2013 and IERS 2003.
  4. 4company enrique7mc/solar-eclipse-2027, src/eclipse.js and README Read the README summary and the source (var/downloads/enrique_eclipse.js). NASA elements, f=1/298.257, k2=0.272281, Delta T=71.7 s, mu shift 0.00417807 deg/s, line-ellipsoid quadratic, sweep-envelope limits, 90-point outline, two-circle obscuration formula, bisected central duration; check script agrees with the NASA path table to ~1 km and 0.1 s.
  5. 5primary Espenak, F. and Anderson, J., Total Solar Eclipse of 2001 June 21, NASA/TP-1999-209484 Read the PDF (extracted with pdftotext, var/downloads/TP209484_2001.txt). Gives the polynomial evaluation, Table 2-8 definitions, k values, DE200/LE200, the off-axis duration formula d = D(1-(2a/W)2)1/2, the graze-zone algorithm, Elev Fact, the limb time-correction formula, and narrative umbra speeds.
  6. 6company Swiss Ephemeris source, swecl.c, function eclipse_where (aloistr/swisseph mirror) Read the source (var/downloads/swecl.c). Vector method: s0, r0, d0, D0, centrality test, oblateness by z-scaling with one iteration, DMOON 3476300 m, DSUN 1392000000 m or 1391978489.9 m, Earth radius 6378140 m; returns the central point and umbra diameter only.
  7. 7primary NASA SVS 4517, Umbra Shapes, Ernie Wright Read from the Wayback Machine snapshot of 2025-12-10. Describes the limb-profile construction from a rotated DEM point cloud, SRTM observer elevations, the up-to-3 km southeastward shift in 2017, and the red ellipse / white limb / dark grey terrain shapes.
  8. 8primary Total Solar Eclipse of 2024 Apr 08, interactive Google map (NASA GSFC eclipse web site) Read. States VSOP87/ELP2000-85, Delta T = 70.6 s, that predictions do not include lunar limb effects, that limb corrections shift limits by ~1-3 km, durations by ~1-3 s and greatest duration by ~10-20 km, and that corrected predictions are posted 12-18 months ahead.
  9. 9company Explanation of Besselian Elements for Solar Eclipses (EclipseWise, Fred Espenak) Read. Definitions of x, y, L1, L2, d, mu, f1, f2 in units of Earth's equatorial radius; no path formulas.
  10. 10primary Espenak, F. and Anderson, J., Total Solar Eclipse of 2008 August 01, NASA/TP-2007-214149, section 1 Eclipse Predictions Read the HTML. Same table set as 2001 at 3-min intervals; states the Elev Fact as tan(90-A) sin(D); k=0.2725076 penumbral and 0.272281 umbral; Watts limb data corrected after Morrison and Appleby (1981).
  11. 11primary Path of Total Solar Eclipse of 2017 Aug 21 (NASA GSFC eclipse web site, Espenak) Read. Delta T = 68.4 s; rows at 17:00, 18:00 and 19:00 UT quoted for validation.
  12. 12primary Path of Total Solar Eclipse of 2024 Apr 08 (NASA GSFC eclipse web site, Espenak) Read. Column headers, 120-second rows, Limits row, footnote Delta T = 70.6 s. First rows quoted verbatim in the data-products note.
  13. 13primary Espenak, F. and Meeus, J., Five Millennium Canon of Solar Eclipses: -1999 to +3000, NASA/TP-2006-214141, introductory text Read the PDF (var/downloads/5MCSE-Text11.txt). History of canons (Oppolzer's three-point arcs), VSOP87D and ELP-2000/82 truncation, centre-of-mass positions, the k history (0.2724880 and 0.272281 in 1968-1980, IAU 0.2725076 in 1982) and the 1986 Oct 03 misclassification, map key including the magnitude 0.5 curve and Delta T standard error.
  14. 14company RHerAle/Eclipse-Engine, js/besselian.js and README (eclipseradar.com, AGPL-3.0) Read the README summary and the source file (var/downloads/rherale_besselian.js). WGS84 flattening, Delta T shift at 1.002738*15 arcsec/s, central line at 6-s steps, limits perpendicular to ground-relative motion with 5 iterations and the 5 km low-latitude remark, outlines at 181 angles to convergence, obscuration grid 640x320x121 and contour refinement to 0.5 km, antimeridian and pole handling. Validation only against the project's own Python chain.
  15. 15company aravpanwar/besselian, README Read the README summary. k1=0.272488, k2=0.272281, Delta T=76.0 s for 2027, longitude shift Delta T*15/3600 deg (~32 km), exact centreline solve, greatest eclipse versus greatest duration differ by ~215 km and 0.6 s, checks against NASA numbers.
  16. 16primary Eclipse Predictions and Earth's Rotation (NASA GSFC eclipse web site) Read. Explains Delta T and gives a table of longitude shifts per epoch (e.g. 9,848 s at 1 BCE gives 41.0 degrees); no formula.
  17. 17peer-reviewed Urban, S. E. and Seidelmann, P. K. (eds), Explanatory Supplement to the Astronomical Almanac, 3rd edition (2013), chapter 11 Eclipses of the Sun and Moon Not read. Known through Stellarium's citations of equations 11.56, 11.60, 11.65, 11.78, 11.81, 11.82, 11.89 and 11.94 for the zeta(Q) closed form and the maximum-at-horizon iteration.
  18. 18survey Buchanan, R., The Mathematical Theory of Eclipses According to Chauvenet's Transformation of Bessel's Method (1904) Reproduces Chauvenet's formulae (Manual of Spherical and Practical Astronomy, 1863, arts. 320 ff.) for the penumbral and umbral limiting curves, rising and setting curve, maximum curve, outline of the shadow, with the remark that the umbral limits borrow cos beta from the central line. Read the OCR full text for arts. 93 and 135-137 and the table of contents.
  19. 19unsourced Math Encounters blog, Calculate Eclipse Path Width (2017) Read. Cone-geometry width formula giving 116 km against NASA's 114.7 km for 2017; ignores surface tilt.
  20. 20company Jubier, X., Solar Eclipse Google Map Help Read via curl. Full curve colour code, tooltip fields (umbral depth, path width, obscuration, magnitude, ratio, umbral velocity), LC limb correction fetched online, IAU 1976 solar radius 959.63 arcsec versus ~959.98 photospheric, no refraction, elevation tool, Delta T extrapolation good to 0.5 s. Last updated July 2, 2017.
  21. 21unsourced Helioclipse blog, How fast does the Moon's shadow move? Read. Qualitative explanation of shadow speed and 2017 satellite-derived local speeds of 2,382 to 2,929 km/h over Wyoming and Nebraska; no formula.
  22. 22primary Key to Solar Eclipse Maps, Five Millennium Canon (NASA GSFC eclipse web site) Read. Orthographic projection, rise/set loops, maximum at sunrise/sunset, magnitude 0.5 curve, greatest-eclipse asterisk, gamma, subsolar point, TD and Delta T.
  23. 23company Photo Ephemeris, Technical Note: Solar Eclipse Functionality Read. NASA elements, Meeus Elements of Solar Eclipses and Astronomical Almanac 2023 for paths, 0.1 degree longitude sampling at sea level, no limb correction, +/-1-2 km path accuracy, elevation shift ~500 m per 1000 m, Delta T sources by period.
  24. 24primary NASA SVS 4518, 2017 Total Solar Eclipse Map and Shapefiles, Ernie Wright Read from the Wayback Machine snapshot of 2025-12-20. Lists the nine 2017 shapefiles and the 1-second set (6000 umbra shapes 17:12-18:52 UTC at ~100 m precision, path at 250 m, centre polyline, durations at 30 s), WGS84 lat-lon projection, LRO/Kaguya limb, DE421.
  25. 25company SR123/eclipse-2026, README and eclipse.js Read the README summary and grepped the source. NASA elements with t0 = 18:00 TDT and Delta T = 71.4 s, Meeus Astronomical Algorithms ch. 54, per-location contacts by bisection, warning about polynomial sensitivity at the path edge.
  26. 26primary NASA SVS 5219, 2024 Path of Totality, Ernie Wright Read from the Wayback Machine snapshot of 2025-12-12. States the 2024 umbra and path were calculated accounting for Earth elevations and the irregular lunar limb; SRTM, LOLA, DE421.
  27. 27primary NASA SVS 5366, Solar Eclipse Shadow Shape Explained, Ernie Wright Read from the Wayback Machine snapshot of 2026-03-06. Pinhole-image explanation of the polygonal umbra, 49 contributing valleys in 2017, reference to the 2024 Astronomical Journal paper.
  28. 28peer-reviewed Wright, E. and Young, C. A., A Raster-oriented Method for Creating Eclipse Maps, The Astronomical Journal 168:163 (2024), doi:10.3847/1538-3881/ad6b23 Abstract read via the Crossref API (IOPscience blocked the fetch). States that ignoring the terrain of both bodies introduces errors of order kilometres in the ground track and seconds in duration and contact times, and that the raster method has been used since December 2016. Full text not read.
  29. 29company USRA newsroom, A New Process Brings Precision to Eclipse Mapping (2024-09-26) Read from the Wayback Machine snapshot (direct fetch returned 403). Press release naming the paper, its DOI and the LRO input; describes the per-pixel rendering approach.
  30. 30primary The Lunar Limb Profile and Eclipse Predictions (NASA GSFC eclipse web site) Read. Watts 1963 charts, Kaguya and LRO; uncorrected times in error by 2-3 s and more near the limits; corrected agreement to 0.5 s (Watts) and 0.2 s (Kaguya/LRO).
  31. 31company Lunar Limb Profile and Eclipse Predictions (EclipseWise, Fred Espenak) Read. Same content as the NASA limb page: Watts, Kaguya, LRO; 2-3 s errors uncorrected; no k values.
  32. 32company Jubier, X., Solar Eclipse Maestro help: LRO-Kaguya-Watts Lunar Limb Profiles Window Read via curl. Watts corrected by Morrison/Appleby 1981 and Rossello/Jordi 1991; Kaguya and LRO more accurate; reduced radius k2 used for the uncorrected path; IAU mean radius 1738.091 km, k=0.2725076; 0.241 degree Watts angle offset.
  33. 33trade Besselian Elements (John Irwin), Eclipse Limits and Centreline are jagged lines Read. Explains that the limb topography and Earth orography make true-limb lines jagged; solar radius 959.95 +/- 0.05 arcsec with lines at 959.90 and 960.00.
  34. 34trade Besselian Elements (John Irwin), Path of the 2024 April 8th Total Solar Eclipse Read. True-limb limits (orange) versus traditional smooth limits (red), accounting for lunar limb and Earth topography; datasets and formats not named.
  35. 35peer-reviewed Meeus, J., Elements of Solar Eclipses 1951-2200 (Willmann-Bell, 1989) Not read. Besselian elements for 570 eclipses with formulae for local circumstances, points on the central line and on the northern and southern limits, with numerical examples; the 5MCSE text and Photo Ephemeris cite it as the algorithm source. Contents known from catalogue descriptions and citing sources only.
  36. 36trade Eagle, D., A MATLAB Implementation of Elements of Solar Eclipses (MATLAB Central File Exchange, 2019) Read the listing. Implements Meeus's numerical methods; requires the ECLIPSE.ELS data file sold by Willmann-Bell; no formulas on the page.