Calculating Besselian Elements

This guide walks you through the full process of calculating Besselian elements from scratch. These steps allow you to generate accurate eclipse geometry - and therefore, the Besselian elements - based on raw ephemeris data for the Sun and Moon. This data will be fed into the process described for the Vandermonde matrix.

Step 1: Download Ephemeris Data from IMCCE

You can,. of course, use any e[hemeris you like. The author has always found the data from IMCCE to be easy to use, as well as of course being highly accurate. If you choose to use it, then visit the IMCCE ephemeris generation form: https://ssp.imcce.fr/forms/physical-ephemeris

To get the data you need, repeat the following process twice: once for the Sun and once for the Moon.

  1. Under "Solar System Bodies", Select the target: Sun or Moon.
  2. Under "Epoch", Choose the time scale: TT (Terrestrial Time). (This is important! Of course you will adjust all your times into UTC using Delta T (and also dUT1), but you'll do that LATER. You want your Besselian elements to be independent of Earth's variable rotation, to the extent possible.)
  3. Set the epoch time to exactly 3 hours before your eclipse maximum (\( t_0 \)). Use the full defined format including decimal seconds, e.g., 2026-08-12T15:00:00.000. And mind the date! If your (\( t_0 \)) is 02:00:00.000, for instance, then three hours before that will land on the previous calendar date.
  4. Set the Number of Dates to be 13, because that's how many differnet clock times you're going to extract data for.
  5. Set the Step Size as 30 minutes. (So you end up with 13 times that you're gathering data for.) Use 0.5 Hours if your spirit is feeling free.
  6. Set the observation point to Geocentre. Again, you will do any topocentric adjusting later - not now.
  7. Under "Options", Check the radio button for "Equatorial Apparent of the Date". You do NOT need to worry about Light-time or Radial Velocity. (Light-time is already built into the ephemeris data, and unless you need to know the light time, you don't need to include it in your export.)
  8. Click Export and choose CSV with decimal degrees selected for angles. (This is REALLY important!) And PLEASE make sure you LOOK at the value for RA before you export it, as you will have to adjust the RA if it comes through in your CSV as decimal hours instead of degrees. (Hours * 15 = Degrees)

In the exported CSV, verify that the 7th row (the middle one) corresponds to your exact \( t_0 \). This ensures that you started with the correct time when you established the table of values.

Now, you will do all of the following steps for each of the 13 times you obtained the empheris data for. (This process is derived directly from the 2013 edition of the Explanatory Supplement.)

Step 2: Convert Distances to Earth Radii

Convert the geocentric distances to Sun (\( \odot \)) and Moon (\( \text{☾} \)) from au to Earth radii. We use an equatorial radius for Earth of 6378.1366km, and the definition of the au as 149 597 870.7km.

\[ D_{\text{⊕}} = D_{\text{au}} \times \frac{149597870.7}{6378.1366} = D_{\text{au}} \times 23.439281 \]

This will give us \( D_{\odot} \text{ and } D_{\text{☾}} \text{.} \)

Step 3: Convert RA (\(\alpha\)) to Degrees

ONLY IF the RA came through as decimal hours, convert it from hours to decimal degrees. In what follows, we will assume you have this in degrees.

\[ \alpha_{\text{deg}} = \alpha_{\text{hours}} \times 15 \]

Step 4: Cartesian Coordinates

For both the Sun and Moon, calculate:

\[ \begin{aligned} x &= D \cdot \cos(\delta) \cdot \cos(\alpha) \\\\ y &= D \cdot \cos(\delta) \cdot \sin(\alpha) \\\\ z &= D \cdot \sin(\delta) \end{aligned} \]

In each case, of course use the distance, RA and dec for one body at a time. Don't forget to convert the arguments to radians if your programming language requires it!

Step 5: Vector G and Its Magnitude

Obtain the components and magnitude of the vector G from the Moon to the Sun:

\[ G_x = x_{\odot} - x_{\text{☾}}, \quad G_y = y_{\odot} - y_{\text{☾}}, \quad G_z = z_{\odot} - z_{\text{☾}} \]

\[ |G| = \sqrt{G_x^2 + G_y^2 + G_z^2} \]

Step 6: Greenwich Mean Sidereal Time \( \theta \)

Calculate GMST using Jean Meeus' formula:

\[ T = \frac{JD - 2451545.0}{36525} \]

\[ \theta = 280.46061837 + 360.98564736629 \cdot (JD - 2451545.0) + 0.000387933 \cdot T^2 - \frac{T^3}{38710000} \]

NOTE: Use UT1 for the time when calculating the JD. UT(C) may be used if UT1 is not known - but your date will be in error by as much as \( 10^{-5} \). (Also note that you will therefore need to know [or estimate] the value of \( \Delta T \)!)

Normalize to the range [0°, 360°]: \( \theta \bmod 360 \)

Step 7: Angular Elements

In the equations that follow, we will place variables within boxes if those variables are actual Besselian elements.

Extract the following values:

\[ \boxed{d} = \arcsin\left(\frac{G_z}{|G|}\right) \]

\[\boxed{\mu} = a - \theta\]

\[ a = \operatorname{atan2}(G_y, G_x) \]
VERY IMPORTANT: If you are using a programming language that requires the arguments of atan2 to be in (x,y) order, you must put them in that order! And don't forget that inverse trig functions almost certainly gave you radians.

Step 8: Besselian Coordinates (x, y, z)

Compute the Moon’s coordinates in the fundamental plane:

\[ \boxed{x} = r \cdot \cos(\delta) \cdot \sin(\alpha - a) \]

\[ \boxed{y} = r \cdot \left[ \sin(\delta) \cdot \cos(d) - \cos(\delta) \cdot \sin(d) \cdot \cos(\alpha - a) \right] \]

\[ z = r \cdot \left[ \sin(\delta) \cdot \sin(d) + \cos(\delta) \cdot \cos(d) \cdot \cos(\alpha - a) \right] \]

Step 9: Shadow Cone Geometry

Compute the geometric parameters of the umbral and antumbral cones using the apparent angular radii of the Sun and Moon, both measured from the Earth's center.

Note: These updates affect the computed edges of the eclipse path. The interested individual may substitute different values and compare the changes to the location of the eclipse path edges accordingly.

The cone angles formed by the external and internal tangents to the Sun and Moon disks are computed as:

\[ \sin(f_1) = \frac{R_{\odot} + k}{|G|}, \quad \sin(f_2) = \frac{R_{\odot} - k}{|G|} \]

Here, \( |G| \) is the center-to-center geocentric distance between the Sun and Moon (computed in Step 5). These angles define the geometry of the umbral and antumbral cones.

Use these to calculate the Besselian elements of \( \boxed{\tan(f_1)} \) and \( \boxed{\tan(f_2)} \). Use the identity \(\tan\theta = \frac{\sin\theta}{\sqrt{1 - \sin^2\theta}} \)

Next, compute the intercepts of the cone boundaries along the z-axis:

\[ c_1 = z + \frac{k}{\sin(f_1)}, \quad c_2 = -\frac{k}{\sin(f_2)} \]

Then calculate the projected semi-widths (or radii) of the cones at the fundamental plane:

\[ \boxed{l_1} = c_1 \cdot \tan(f_1), \quad \boxed{l_2} = c_2 \cdot \tan(f_2) \]

With your thirteen values of these eight variables, You're now ready to fit polynomials to derive and use these elements in eclipse path prediction or visibility analysis. Proceed to the section on the Vandermonde matrix.