Welcome to EclipseTimesCalc (Version 1.6)

EclipseTimesCalc icon
EclipseTimesCalc

Introduction

This app provides estimates of where and when the various events of an eclipse will occur without needing access to the Internet. Many places I have observed from places (e.g. deserts or bows of ships) that did not have cell service or WiFi. This allows the user to get the exact event times for the exact location even while bouncing around on the bow of a ship.

Why write another app that does eclipse prediction? This started with a macOS® app I am writing to control my camera during an eclipse. Solar Eclipse Maestro will not run on Catalina (or later versions) nor be compatible with the long battery life M1 machines Apple announced in late 2020. I have used SEM twice in 2017 and 2019. After experimenting I determined that running on a VM in the field was not an option. Traveling with an operational computer running Mojave is also a non-starter. Those reasons (and COVID boredom) led to work starting on the macOS® CaptureEclipse.

After completing the scheduling engine I decided that I wanted the ability to generate event times. This, in turn, lead to learning about the algorithms to make eclipse predictions and making that code available first as an iOS® app and then integrating it into CaptureEclipse. I am pleased to announce that CaptureEclipse is now available on the Mac App Store.

If your goal is to figure out where to go to see an eclipse then I recommend using the EclipseWise web site. That will present a Google Map that you can use to determine where to go. However, I have had to frequently move once I am at my "ideal" site (or the site was itself moving {e.g. a ship}). If you have to move Version 1.2 integrates with Apple Maps (and Google Maps on iOS®) as described in Maps below to test possible new sites. Once you are at a site this app will allow yourself to get up to date event times from your current location without relying on an internet connection.

Changes in 1.6

The predictions for 2024 now use the 1/1/24 USNO measurement of earth rotation (ΔT).

Changes in 1.3

One of the parameters used by the predictions in this program is ΔT (aka TT-UT) which models irregularities in Earth’s rotation. Before 2019 this changed at a fairly constant rate; however, in 2019 this value stopped growing which threw off calculations based on the historical record.

In this version the values for Eclipses in 2023 and 2024 are based on measurements of ΔT by the US Naval Observatory. With this change this program’s predictions exactly match my own event measurements for the April 2023 eclipse.

Since this value now requires close monitoring, the program will flag when the value is greater than 6 months old for any near term eclipse. I plan to issue other updates when the July 2023 (for Oct 23) and January 2024 (for Apr 24) numbers are published.

Note that not all of the web based JavaScript calculators have adapted to this change. The implementation I used as a reference (Eclipsewise) has not, as of this writing, while another calculator by xjubier has. I chose to adopt xjubier's convention of only updating 2023 and 2024.

Use

Using the program is really easy

Where Screen

The Where screen shows when the program starts. It defaults to the location of Greatest Extent for the next eclipse

Select the eclipse you are interested in by rotating the wheel. By default the location of Greatest Extent for that eclipse will show as the coordinates.

You are free to either enter the coordinates as decimal degrees (as shown left or above) or as DMS (right or below)

If you want to use your current location press the Here button.

Version 1.3 gives an indication of the age of ΔT. An old ΔT is not necessarily fatal, but the value displayed should be checked against USNO to see if it is acceptible.

Where Screen DMS mode
Map Tab

The Map tab also shows at the beginning. It will display Fred Espenak's Map of the selected eclipse. If you do have internet access it will also provide a link to the source information for this eclipse.

After you have entered the circumstances press "Predict"

Predict

Note that new tabs appear. You can run more than one prediction. Just return to the "Where" tab, enter your conditions, and press Predict again

Summary Tab

The summary tab provides some basic information on the selected conditions

  • Whether at this location the eclipse is Partial, Annular, Total, or not visible
  • Your location relative to the center line. Note that if you are more than .1 degree from the centerline (10 nm) then it will display if you are north or south (for eclipses in the high arctic or antarctic east or west). Since the track rarely lies in an orthogonal direction the closest centerline might be, for example, northwest if it says you are south
  • When appropriate it provides the angles of contact of the moon to the sun as viewed by an observer. These are degrees clockwise from zenith (which is different than some astronomical conventions). See the more detailed discussion below
    • For Total Eclipses: This is the angle where the last (first) bit of sun is exposed
    • For Annular Eclipses: This is the angle where the last (first) bit of moon touches the sun
  • The sunrise and set times for this location

Times Tab

Pressing the Times tab will bring up the display of the times and bearings of each of the events. From my own experience I believe these are good to within a second, but for more details see the discussion below

This also displays the source of the information used to compute these numbers (either NASA or Eclipsewise). In version 1.3 it will also display if it is using the USNO ΔT measurements.

Integration with Apple Maps (and Google Maps)

Copying from Maps

Version 1.2 will allow the user to drop a pin on Apple Maps (or Google Maps on iOS®) and have EclipseTimesCalc give you the conditions at this location. The video below provides a demonstration. But the process is easy. Select the coordinates in the Map program. The switch to EclipseTimesCalc and paste. You can paste in either Lat or Long. Both will be replaced along with NS and EW with the coordinates you pasted.

I view this feature as mostly being of use on eclipse day. Weather will be an issue at virtually every US location in 2024. This feature will allow the user to test a new location quickly on your phone in the field. If you are doing your planning at home using a large screen then I suggest using the the EclipseWise web site as that will provide a more flexible map. The EclipseWise site is not as friendly with a phone size screen. Hence why this app will be better in the field.

Copying Numeric Coordinate

Sometimes the source of the coordinates might be something other than a map app. For example, you might be copying from a browser version of a map. This next demo shows how this happens. Note the one unusual item is that the paste replaces the entire field instead of appending to the existing text.

Warning when running on Mac® M1

Do not use the mouse to paste. It will sometimes cause a crash in Apple code. Only do the paste using ⌘ - V

Implications on Photography

Remember your biggest threat to success is whether your computer has accurate time

It is important to understand what the times value represents since different programs make different predictions.

It is also important to remember that the beginning (and end) of totality is not a point-in-time event but instead lasts over several seconds. Thus the goal of any prediction is to give a reliable point in time that you can base your script on.

  • This program will predict the time that a Spherical moon will interact with a spherical sun. This is the same prediction made by Meeus, Espenak, et al. As a practical matter this will likely be in the middle of the beginning (end) of totality. High peaks on the edge of the moon will likely have already begun forming beads. Totality will fully begin at the true C2 point where the last valley passes the edge. Thus for photography one would need to balance images before and after the C2 point listed by this prediction to capture all of the action.
  • A program whose C2 prediction is for the last valley to pass predicts the end of the totality process. One might take an image after as a fudge for imprecise time or estimate, but the real action will occur in the seconds before this prediction. One will have to estimate how long before is.

For myself there is no obvious advantage of one approach over the other as both require some judgement calls in the scripting. It is very important to understand what is being predicted and adapt the script to that prediction.

Technical Details

The Algorithm for Eclipse Circumstances

The method of predicting the circumstances of an eclipse dates back to 1824 and the work of Friedrich Bessel. Bessel figured out that that you could apply a series of polynomials

x0 + x1*t + x2*t2 + x3*t3

where x0, x1, x2, and x3 are the elements
t = time

to describe the movement of the sun and moon within the relatively short time period of an eclipse. The resulting Bessel Elements consist of polynomials for X, Y, μ (or M), d, L1, L2, and two tangents. These are defined in Explanation of Besselian Elements for Solar Eclipses on Fred Espenak's website. The result is further corrected by ΔT to account for changes in earth's rotation and the resulting impact on calculating a time in UTC.

Bessel's work was amplified by the book "Manual of Spherical and Practical Astronomy", Chauvenet, 1863. However the calculations in that book use a now obsolete convention of converting multiplications of trig functions to additions of log sin which I found rather difficult to apply. Thus modern day implementations are based on Elements of Solar Eclipses 1951-2200 by Jean Meeus. My own original implementation was based on the equations there. However, while the book consists of many fully worked out detailed examples, it stops at the actual calculation of circumstances and uses a reference location where there is only a partial eclipse as the last example. The rest of the information is in footnotes. My first implementation based on his descriptions would for some eclipses switch C2 and C3.

This work is a port of the Javascript calculator calccirc.js contained on Fred Espenak's Eclipsewise website. According to the comments this was written by Bill Kramer and Fred Espenak in 2016 based on "Eclipse Calculator" by Deirdre O'Byrne and Stephen McCann - 2003. Clearly the latter work was also derived from Meeus since I referenced Meeus to understand the code. I also chose to export some calculations that were performed, but not made visible. In accordance with the GNU General Public License my Apple Swift port of this code is available here. This code is basically the Meeus algorithm, but contains, among other changes, a fix for the C2 C3 problem that bedeviled me. I have added code to export the Meeus calculations of the relative location of the site to the center line and the moon angles at the main event times converted into a more convenient form.

Source of the Bessel Elements
For this work I have used 4 different sources for the Bessel elements
  • Fred Espenak's NASA site
  • The elements from the HTML tables on Espenak's EclipseWise site
  • The hidden more detailed elements on the EclipseWise calculator pages
  • The elements published for the 1994 eclipse in Meeus's book. These are not exposed in the app, but are visible in the source code

ΔT was either obtained from the source of the Bessel elements or the US Naval Observatory.

The source for a particular eclipse can be seen on the "Times" tab.

Accuracy

First let me be clear. These are predictions from various Fred Espenak sources that I am repackaging for portability. Questions should be submitted to him directly on the Eclipsewise site. Having said that (and to keep my lawyer happy) I remind the reader that THIS SOFTWARE IS PROVIDED 'AS IS' AND THAT YOUR USE OF OR RELIANCE ON THE APPLICATION IS AT YOUR SOLE RISK AND DISCRETION. UNDER NO CIRCUMSTANCES IS THE AUTHOR TO BE LIABLE FOR ANY ERRORS IN THE PREDICTIONS OF THIS APPLICATION.

Having that out of the way let me state what I know.

I have used these predictions derived from similar formulas using the same data twice (using SEM) to control a camera in real time. So I personally have great confidence in the result. Other more complex calculations take into account lunar edges; However, these timings need to be interpreted differently as described in Photography above

As described above the correction for earth's rotation (ΔT) deviated from its long term trends. Starting with Version 1.3 this app will track the actual measurements published by the US Naval Observatory. Doing so makes the result exactly agree with the measured eclipse times in April 2023. When the measurements are more than 180 days before the eclipse the user should compare the current value with the value built into the program. A difference of ± 0.2 (or even the historical accuracy of ± 0.5) will not have a significant impact on the prediction.

Moon Angles

These predictions will give the user a good idea of where the C's will occur. As stated in the use documentation, the angles reported are measured clockwise from the zenith. Some other calculation of angles use different conventions.

During testing I compared the results from these predictions against a more sophisticated model in Solar Eclipse Maestro that took into account edge conditions. I find that in most cases my predicted moon angles agree with within 15° (most of those within 5°)1. Thus unless you are using a 1000mm lens these results will allow to you know where and when the events will occur with good certainty.

Sunrise

The javascript calculator also contained a sunrise calculator. I experimented with that, but the Bessel elements only have a limited lifetime. On summer days the times were outside of this range and the computation gave unsatisfactory results. I did not pursue a fix.

Instead I decided to base my algorithm on the NOAA sunrise calculator. As this is also public domain software my implementation is also in the source code

Testing

Apple has a very complete testing framework which I took advantage of. The tests consist of being able to directly feed parameters to the prediction engine and also to manipulate the User Interface. Since the user interface is not covered under GPL I have not disclosed these tests. I have disclosed the tests that directly call the prediction engine.

For each eclipse I compare the result at several different locations to the results predicted either by NASA web pages (for NASA sourced elements) or the Google Map from the EclipseWise pages. In some cases I had to instead use the more precise calculation of the Javascript calculator by setting stops in the Javascript calculator and looking at its internal variables. Thus "success" is agreeing with the Espenak predictions.

Moon angles are verified two different sources. C1 and C4 are obtained by holding protractor to the screen (really) while Sky X (for eclipses after 2024 Sky Safari Pro) simulates the eclipse. C2 and C3 are obtained from the detailed diagrams from Solar Eclipse Maestro.

Sunset times are verified using a different NOAA calculator.

References on the maps page point back to the source of the Bessel Elements.

Privacy

This app does not collect nor does it distribute any information about its operation

If you have configured your iOS® device under Settings -> Privacy -> Analytics & Improvements -> Share With Developers to share crash information with developers we may receive a report should your program ever crash. This is an iOS® feature that we have no control over. Any information obtained will be used solely for the purpose of determining the cause of the crash.

Contact Me

If you are thinking about photographing an eclipse please consult my Youtube series Photographing Solar Eclipses before contacting me.

If you have any questions about this App, You can contact Me:

By email: eclipsetimescalc@almadenobservatory.net

Footnote

1 There were a couple of cases where my predictions disagreed by more than 15°. These are marked with the angles displayed as red.