Solar eclipse parametrisation#

Solar eclipses take place 2 to 5 times year on some place on Earth. They can have temporally and spatially limited effect on incoming radiation, but this effect can be significant for some applications (e.g. electricity grid stability). During a solar eclipse, the moon is located between the Earth and the sun and creates a shadow on Earth’s surface. The axis connecting the center of the sun and the moon is called shadow axis. Eclipses can be computed a long time in advance due to the knowledge about the motion of the planets and the moon in the solar system.

Scientific Background#

There are more than one option to compute solar eclipses, one can use ephemeris data and do computations for all time steps. This approach was chosen for the IFS solar eclipse implementation (Lopez 2024). In ICON, eclipses are only computed if a solar eclipse takes place with Besselian elements.

Fred Espenak and NASA provide “Besselian Elements” to compute solar eclipses 2000 years back and almost 3000 years in the future. Espenak 2006 provides the coefficients along with information around solar eclipses and visualizations of solar eclipse paths. These elements are a number coefficients of several polynomial expressions. These polynoms describe how the shadow axis is moving in time. Time is relative to a reference time, the closest full hour to the time of greatest eclipse. The time is key to solar eclipse computations: the astronomically relevant time is universal time (UT). As the Earth changes rotation speed, the terrestrial time (TT) and UT diverge. Delta T allows to convert between the two, but is not perfectly known for the future, or the far past. The knowledge of Delta T is important for the exact positioning and timing of a solar eclipse on Earth. More details about Delta T can be found in Espenak 2006.

The time used as an input to the polynomials is the time difference to the reference time in decimal hours. Chauvenet 1891 and the ALMANAC explain how to compute Besselian elements and how to use them.

Computation of the obscuration#

The coordinates of the shadow axis are computed (once per timestep). Every grid point needs to be transformed (2D surface problem). The transformation takes into account the ellipsoidal shape of Earth. For every grid point, ICON computes the positions of the Sun and Moon and their apparent disk sizes. The angle between the centers of the sun and the moon is computed as well. Finally, the geometric overlap (= obscuration) of sun and moon (approximated by circles) is computed for every grid point. If the eclipse is an annular one, the obscuration is the area of the moon divided by the area of the sun disk at maximum. In the total eclipse case, the maximum obscuration is fixed to 1. The top-of-atmosphere incoming radiation is then reduced by multiplying with 1-obscuration.

../../../_images/Lindenberg_SOFI_2015-03-20.png

Solar eclipse on 2015-03-20 at Lindenberg. 10min global irradiance data of DWD’s Lindenberg station (blue), ICON’s radiation forecast without eclipse parametrization, and with eclipse parametrization (orange: ICON global 13km, red: ICON EU nest).#

Limitations#

The following aspects are neglected

  • limb darkening (the temperature of the sun is constant on the solar disk)

  • sun shape

  • moon shape

  • details about solar activity (e.g. sun spots)

  • only implemented for NWP physics (iforcing=3)

Implementation#

The Besselian coefficients are provided via a netcdf file. During the initialization, ICON reads the solar eclipse dates provided in the file. If no solar eclipse takes place during the model forecast time, nothing will be done afterwards. If a solar eclipse is present, the coefficients are saved for later use. During the physics, ICON checks every radheat time step, if it is time to run the solar eclipse computations, and runs them if necessary. The coeffecients are kept either until the solar eclipse is finished or cleaned with model finalization.

Technical Limitations#

  • no GPU support

  • no single precision support since the eclipse is inaccurate in single precision

Namelist switches#

The radiation_nml has two new entries

  • use_eclipse to turn the parametrization on/off (default: off)

  • bessel_filename to provide a file with Besselian coefficients and solar eclipse dates

Create input file with Besselian coefficients#

The csv input is available from NASA: csv with Besselian coefficients The script prepare_eclipseNC_NASA.py downloads this data and extracts the data for solar eclipses during the period requested by the user. The output is netcdf file which can be provided to ICON in bessel_filename.

The input data is kindly provided by NASA. Eclipse Predictions by Fred Espenak, NASA’s GSFC. More information