SolarEclipse
gives the date of the next solar eclipse.
SolarEclipse[date]
gives the date of the next solar eclipse after the specified date.
SolarEclipse[prop]
gives the value of property prop for the next solar eclipse.
SolarEclipse[date,prop]
gives the value of property prop for the next solar eclipse after date.
Details and Options
 A solar eclipse occurs when the shadow projected by the Moon passes over the surface of the Earth.
 There are 2 to 5 solar eclipses every year, always near a new moon.
 The shadow of the Moon has three parts: the umbra, the penumbra and the antumbra.
 In SolarEclipse[date,…], date can be any DateObject expression or date string.
 SolarEclipse[{date_{1},date_{2},…},prop] returns an EventSeries object of values of the given property at the instant of maximum eclipse after each date_{i}.
 SolarEclipse[{start,end,All}] returns the list of eclipses between the start and end dates.
 SolarEclipse[{"Saros",s}] returns the list of eclipses with Saros number s.
 In SolarEclipse[date,prop], prop can be a named property "prop" or a parametrized property of the form {"prop",param_{1},param_{2},…}, where typical parameters are the date or the location of the observer.
 General properties of solar eclipses include:

"Type" type of solar eclipse (partial, total, annular or hybrid) "MeeusType" type in Meeus' classification of seven types "Gamma" minimum EarthMoon center distance, in Earth's equatorial radii "Magnitude" magnitude observed at the instant of maximum eclipse "NewMoon" date of the new moon of the solar eclipse "LunationNumber" lunation number of the new moon of the eclipse "LunarNode" lunar node (ascending or descending) of the eclipse "Central" whether the shadow axis intersects the Earth or not "Umbral" whether the umbra cone intersects the Earth or not "ContactCount" number of contacts, between 2 and 10, of the shadow axis and cones with the Earth  Properties describing the geographical structure of the eclipse include:

"EclipseMap" GeoGraphics map of the key geographical elements {"EclipseMap",opts} add options opts to GeoGraphics "GraphicsData" graphics directives for all phases of the eclipse  Two of the observed periodicities of eclipses are the Saros and Inex cycles. Related properties include:

"SarosSeries" integer Saros number of the eclipse "InexSeries" integer Inex number of the eclipse "IndexInSaros" position of the eclipse in its Saros series "SarosInex" pair {saros,inex} of integer numbers  Maximum eclipse happens at the closest approach between the shadow axis and the center of the Earth. Maximum eclipse properties include:

"MaximumEclipseDate" instant at which maximum eclipse happens "MaximumEclipsePosition" geo position of the shadow axis at maximum eclipse "MaximumEclipseMagnitude" magnitude (fraction of Sun's diameter covered) "MaximumEclipseObscuration" obscuration (fraction of Sun's area covered) "MaximumEclipseUmbraDuration" duration of centrality phase at the maximum eclipse position "MaximumEclipsePenumbraDuration" duration of partiality phase at the maximum eclipse position  Points at which the shadow cones or their axes first or last touch the Earth are known as contact points.
 Penumbral cone contacts are denoted P_{i}, and there are 2 or 4 in an eclipse. Related properties include:

"ContactPointP1Date" instant of first external penumbral contact, at sunrise "ContactPointP2Date" instant of first internal penumbral contact, at sunrise "ContactPointP3Date" instant of last internal penumbral contact, at sunset "ContactPointP4Date" instant of last external penumbral contact, at sunset "ContactPointP1Position" geo position of contact P1 "ContactPointP2Position" geo position of contact P2 "ContactPointP3Position" geo position of contact P3 "ContactPointP4Position" geo position of contact P4  Umbral cone contacts are denoted U_{i}, and there are 0, 2 or 4 in an eclipse. Related properties include:

"ContactPointU1Date" instant of first external umbral contact, at sunrise "ContactPointU2Date" instant of first internal umbral contact, at sunrise "ContactPointU3Date" instant of last internal umbral contact, at sunset "ContactPointU4Date" instant of last external umbral contact, at sunset "ContactPointU1Position" geo position of contact U1 "ContactPointU2Position" geo position of contact U2 "ContactPointU3Position" geo position of contact U3 "ContactPointU4Position" geo position of contact U4  Shadow axis contacts are denoted C_{i}, and there are 0 or 2 in an eclipse. Related properties include:

"ContactPointC1Date" instant of first contact of the shadow axis with the Earth "ContactPointC2Date" instant of last contact of the shadow axis with the Earth "ContactPointC1Position" geo position of contact C1 "ContactPointC2Position" geo position of contact C2  Properties "TotalPhaseStartDate" and "TotalPhaseEndDate" are equivalent to "ContactPointC1Date" and "ContactPointC2Date".
 Properties related to the shadow axis include:

{"ShadowAxisPosition",date} geo position of the shadow axis at the given date {"ShadowAxisVelocity",date} velocity geo vector of the shadow axis at the given date {"ShadowAxisSpeed",date} speed (norm of the velocity vector) of the shadow axis {"ShadowAxisDirection",date} bearing angle of the shadow axis velocity vector {"ShadowAxisDeclination",date} declination of the shadow axis in the TETE equatorial frame {"ShadowAxisHourAngle",date} Greenwich hour angle of the shadow axis "ShadowAxisLine" geo path of the shadow axis for the whole eclipse  The property "TotalPhaseCenterLine" is equivalent to "ShadowAxisLine".
 Properties related to the umbra cone include:

{"UmbraPolygon",date} polygon of the umbra shadow at the given date {"UmbraBoundaryLine",date} geo path of the boundary of the umbra at the given date "UmbraEnvelopePolygon" polygon including all locations in the umbra during the eclipse "UmbraRiseSetLine" rising and setting curve for the umbra {"UmbraPathWidth",date} width of the umbra envelope at the given date  The property "TotalPhasePolygon" is equivalent to "UmbraEnvelopePolygon".
 Properties related to the penumbra cone include:

{"PenumbraPolygon",date} polygon of the penumbra shadow at the given date {"PenumbraBoundaryLine",date} geo path of the boundary of the penumbra at the given date "PenumbraEnvelopePolygon" polygon including all locations in the penumbra in the eclipse "PenumbraRiseSetLine" rising and setting curve for the penumbra "PenumbraRiseSetNode" node of selfintersecting rising and setting curve "MaximumEclipseInHorizonLine" curve of maximum eclipse in the horizon  The property "PartialPhasePolygon" is equivalent to "PenumbraEnvelopePolygon".
 The local maximum eclipse for the position loc happens when this position is closest to the shadow axis. Local maximum eclipse properties include:

{"LocalMaximumEclipseDate",loc} the date at which the maximum eclipse is observed from loc {"LocalMaximumEclipseMagnitude",loc} magnitude observed from loc at local maximum eclipse {"LocalMaximumEclipseObscuration",loc} obscuration observed from loc at local maximum eclipse  Local contact properties include:

{"LocalPenumbraContact1Date",loc} instant of first penumbral contact with position loc {"LocalPenumbraContact2Date",loc} instant of last penumbral contact with position loc {"LocalPenumbraDuration",loc} duration between first and last penumbral contacts {"LocalUmbraContact1Date",loc} instant of first umbral contact with position loc {"LocalUmbraContact2Date",loc} instant of last umbral contact with position loc {"LocalUmbraDuration",loc} duration between first and last umbral contacts  Time and locationdependent properties include:

{"LocalMagnitude",date,loc} magnitude observed from loc at date {"LocalObscuration",date,loc} obscuration observed from loc at date {"SunApparentRadius",date,loc} angular apparent radius of the Sun {"MoonApparentRadius",date,loc} angular apparent radius of the Moon {"SunMoonSeparation",date,loc} angular separation between Sun and Moon  Properties related to Besselian elements include:

{"BesselianElementsCoefficients",date_{0}} polynomial coefficients for the eight main Besselian elements with respect to the time origin date_{0} "BesselianElementsCoefficients" polynomial coefficients for the automatically selected time origin {"BesselianElementsFunctions",date_{0}} Besselian element functions of time in hours from date_{0} "BesselianElementsFunctions" Besselian element functions for the automatic time origin {"BesselianElements",date} values of the eight main Besselian elements at date {"BesselianRotationMatrix",date} rotation matrix between the geodetic and Besselian frames {"SunXYZ",date} Besselian coordinates of the center of the Sun {"MoonXYZ",date} Besselian coordinates of the center of the Moon {"PenumbraVertexXYZ",date} Besselian coordinates of the penumbra vertex {"UmbraVertexXYZ",date} Besselian coordinates of the umbra vertex {"AngularVelocityXYZ",date} Besselian coordinates of Earth's angular velocity vector {"ObserverXYZ",date,loc} Besselian coordinates of the observer at position loc  SolarEclipse[] is equivalent to SolarEclipse["MaximumEclipseDate"].
 SolarEclipse can accept the following options:

TimeDirection 1 whether to return the next or last solar eclipse EclipseType Automatic used to specify the type of solar eclipse TimeSystem Automatic time system to be used for output dates TimeZone $TimeZone time zone to be used for output dates  Possible settings for TimeDirection include:

1 returns the next solar eclipse from the specified date 1 returns the last solar eclipse from the specified date  Possible settings for EclipseType include:

Automatic returns the next eclipse of any type "Annular" returns the next annular eclipse "Hybrid" returns the next hybrid eclipse "Partial" returns the next partial eclipse "Total" returns the next total eclipse  To compute the positions of the Earth, the Sun and the Moon, SolarEclipse uses the DE440 ephemerides from NASA, spanning a period of more than 30 millennia, between the years –13200 and 17200 approximately. There are about 72200 solar eclipses in this period.
Examples
open allclose allBasic Examples (4)
Scope (23)
Dates as Eclipse Identifiers (3)
An eclipse is identified in output by the DateObject expression of its maximum eclipse instant:
Dates in input can be given as DateObject expressions or date strings:
Global Properties of an Eclipse (2)
Find the general properties, or circumstances, of the eclipse used by Eddington to confirm gravitational bending:
It had a magnitude of 1.0728, so that the Moon's apparent diameter was 7.28% larger than that of the Sun at maximum eclipse:
It had obscuration 1, meaning that the full disk of the Sun was covered by the Moon:
It belonged to Saros series 136:
It was eclipse number 32 in that Saros series:
Find general properties of a partial eclipse:
A total of 62.87% of the diameter of the Sun was covered by the Moon as observed at maximum eclipse:
A total of 52.47% of the area of the Sun's apparent disk was covered by the disk of the Moon:
This eclipse will happen in lunation 447:
The eclipse will happen around 14 minutes before the instant of the new moon:
Find the date and position of maximum eclipse:
Find the dates of penumbral contact with that location:
Simulate the eclipse as observed from the location of maximum eclipse between those two instants:
Eclipse Types (4)
Eclipses can be classified in different ways. An eclipse is central if the shadow axis touches the Earth:
A central eclipse can be total, annular or hybrid (i.e. change between annular and total):
This is a partial eclipse, so the shadow axis will not intersect the Earth:
Therefore, this property cannot be computed:
There can be total or annular solar eclipses that are not central. The last one happened in 2014:
The shadow axis does not intersect the Earth:
But the umbra cone (actually the antumbra part) does intersect the Earth:
Show the evolution of the eclipse near the instant of maximal eclipse, zooming in on the umbra on the right:
Jean Meeus proposed a classification for seven types of eclipse. Find out the Meeus types of eclipses in the next four years:
Maximum Eclipse (1)
In a partial eclipse, no Earth observer sees totality. The location and instant observing highest magnitude is called the maximum eclipse:
The eclipse identifier uses precisely the instant of maximum eclipse:
This is the location observing maximum eclipse:
This is the magnitude observed from that location:
It coincides with the computation of magnitude from that location at that instant:
For a partial eclipse, maximum eclipse always happens near the horizon:
This map shows the location of maximum eclipse at the center, in white, on the yellow line of maximum eclipse in horizon:
Contact Points (1)
Evolution of the Shadow Axis and the Umbra (3)
Find the first total eclipse after the beginning of the year 2030:
Compute the instantaneous position of the shadow axis at any given instant:
Compute the path of the shadow axis for this whole eclipse:
Compute the envelope polygon for the umbra:
Represent those elements on a map:
Zoom in around the selected instantaneous position:
Take the first solar eclipse of the year 2024 and compute the dates of its first and last shadow axis contacts:
Compute the speed of the shadow axis as a function of the number of hours from maximum eclipse:
This is the speed at the instant of maximum eclipse:
The speed diverges near the contact points of the shadow axis with the Earth:
Compute the width of the central path at any time during an eclipse:
Only eclipses with all four umbral contact points have a welldefined central path. For example, partial eclipses do not have a central path:
Rising and Setting Curve (2)
Find the rise/set curve for the next eclipse, describing the positions that see the beginning or end of the eclipse at sunrise or sunset:
This eclipse has all four penumbral contact points, so the penumbra shadow is interior to the Earth at some point. Therefore, the rise/set line has two separate lobes:
Find the rise/set curve for an eclipse in which contact points P2 and P3 do not exist:
Maximum Eclipse in Horizon Curve (1)
Local Circumstances (2)
Find the date of the total solar eclipse of April 2024, which will be visible from the US:
It will not be possible to observe totality from this location. This is the magnitude at the instant of local maximum eclipse, and it is smaller than 1:
It will happen at this instant:
Plot the evolution of the magnitude at this location:
The magnitude is zero outside of this date interval:
That is the duration of the contact with the penumbra:
For the eclipse of April 2024, select a location that will observe totality:
It will observe totality because the magnitude at the local maximum eclipse is larger than 1:
Plot the evolution of the magnitude at this location. The totality phase is clear:
Compute the penumbra and umbra contacts:
Therefore, these are the durations of partiality and totality:
Eclipse Cycles (3)
Besselian Elements (1)
Compute the Besselian element coefficients for the first solar eclipse of the year 2024:
This is the time selected as the origin of time:
Construct the standard Besselian functions as functions of time in hours from T0:
From these functions, compute all circumstances of the eclipse. For example, find the instant of maximum eclipse:
Compare to the reported value after changing to the "TT" time system:
Options (6)
EclipseType (1)
By default, SolarEclipse finds the next eclipse of any type:
TimeDirection (2)
By default, SolarEclipse finds the next eclipse:
Find the previous eclipse instead:
TimeSystem (2)
By default, SolarEclipse returns dates in the default Wolfram Language time system, an implementation of UTC extended to follow UT1 in the far past and future:
Specify that the result should be given in a different time system:
Find an eclipse in the far past. Note that DateObject uses by default a proleptic Gregorian calendar without year zero:
Changing to the "TT" time system shifts the date representation by several days:
TimeZone (1)
By default, SolarEclipse returns dates in your local time zone:
Properties & Relations (5)
A solar eclipse is always very close to a new moon. Take a random date in the last 1000 years:
Find the first eclipse after that date:
Find the new moon in the vicinity of that solar eclipse:
They are less than 20 minutes apart:
Both the eclipse and the new moon can be identified by the same lunation number:
Solar eclipses correspond to minima of angular separation between the sky positions of the Sun and Moon:
For a total eclipse, the angular separation has its minimum at zero:
SolarEclipse finds and describes solar eclipses, in which the Moon passes between the Earth and the Sun:
LunarEclipse finds and describes lunar eclipses, in which the Earth passes between the Sun and the Moon:
They are frequently about two weeks from each other:
Compute all eclipses of a given Saros series:
They are all separated by approximately one Saros:
There are 2 to 5 solar eclipses each year:
Interactive Examples (2)
Text
Wolfram Research (2014), SolarEclipse, Wolfram Language function, https://reference.wolfram.com/language/ref/SolarEclipse.html (updated 2023).
CMS
Wolfram Language. 2014. "SolarEclipse." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2023. https://reference.wolfram.com/language/ref/SolarEclipse.html.
APA
Wolfram Language. (2014). SolarEclipse. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SolarEclipse.html