Calibrating timing of astronomical images using navigation satellites


Getting the timing right in astronomical imaging is both important and surprisingly difficult to do. The common tendency seems to be to say that you've corrected the time on your computer using GPS signals or NTP, and that therefore, the time written out in your image files must be that of the midpoint of the exposure.

Sadly, while your computer may indeed be synched to have almost exactly the right time, the time in your images can still be considerably off. I've seen cases where the times were for the beginning of the exposure. Or the end of exposure. Or, for reasons that passeth all understanding, one exposure duration too early. (Probably the camera returned a signal when it started the exposure, which the software took to mean the end of the exposure?) Or the time the image was written out to the hard disk.

About the only way to really verify that the image times are correct is to check them against a known object. Global Navigation Satellite Systems (GNSS) provide satellites that move about 40 arcseconds per second (some a bit faster or slower). If you image one and can measure the endpoints of its trail to within (say) two arcseconds, you've basically fixed the time at which the image was taken to within 1/20 second.

Positions are available for GNSS satellites from five systems: GPS (United States), GLONASS (Soviet Union/Russia), Galileo (Europe), BeiDou (China), and QZSS (Japan). The positions should be good to within centimeters, more than good enough for our purposes.

The basic procedure is to get a list of GNSS satellites visible at your location for a given time. You can then pick out one or more to observe; I recommend choosing those at high elongations from the sun, but not actually in the earth's shadow. The brightness of these satellites tends to drop quickly when they're far from opposition.

Then, for each satellite you wish to observe, you can create ephemerides for a particular satellite and go out and observe it. The difference between where you measure its position and the ephemeris position gives you your timing offset.

I recommend observing multiple satellites (to reduce the chances for error) and to use different exposure durations. This last point is significant. You could observe lots of satellites with, say, a ten-second exposure, and determine that your timing was off by seven seconds, and adjust your timing accordingly.

What you might fail to notice in this case is that a 20-second duration would be off by twelve seconds, if the time reported was that of the end of the exposure, plus two seconds while the image was downloaded from the camera.

Once you've gotten astrometry, you can upload your astrometry and find out how far off you were. The tool will figure out which object(s) you observed, the timing difference for each observation, and how far "cross-track" you were (that is, the difference between your measured position and the closest the object should have come to that position). You'll also get the average timing and cross-track residual errors, and their scatter (standard deviation).

Ephemeris sources

Usually, the tools on this site can just give you an accurate position for the GNSS satellites, and you can regard that as the answer you'd get if your timing was good to within 1/100 second or so, and possibly better (ten-millisecond accuracy has been tested; millisecond-level accuracy is expected, but I haven't figured out a way to test it yet.)

Positions at that level of accuracy are available a few days in advance for GPS and GLONASS satellites. For Galileo, BeiDou, and QZSS satellites, you only get that level of accuracy a few days late. These tools will give you positions for such satellites in those cases, usually good to within a few arcminutes. So you can go out, observe a BeiDou or Galileo satellite, then wait a few days for the precise ephemerides to become available. Once you've got them, you can use them to check how accurate your timing was.

I realize that this is somewhat annoying. Unfortunately, we seem to be stuck with it. I'm getting the "imprecise" positions from TLEs (Two-Line Elements). Without those, we'd have no idea where to look in advance for Galileo, BeiDou, or QZSS objects. We'd know exactly where they had been, but not where to point our telescopes tonight.

Fortunately, though, there are plenty of GPS and GLONASS satellites. You may find that limiting yourself only to those constellations is not, in practice, all that limiting.

Low-precision site locations

The positions given for observatories are, with few exceptions, from a list of observatories maintained by the Minor Planet Center. (An extended version of the same list is available that adds a few details and explanations.) The MPC list provides, at best, a precision of about 6.4 meters in altitude and latitude (10-6 of the earth's radius). In some cases, one or even two fewer digits are given. When that happens, you get a warning message about loss of precision.

The degree to which you should worry about this varies. At least one user of these tools is investigating errors at the millisecond level. In one millisecond, a GPS satellite moves about three meters. If your observatory positions is chopped off to 64-meter precision, you can still correct your timing to within about 40 milliseconds.

You may find an 'observatory code' in my errata to the MPC observatory list that gives correct precision. In particular, Mauna Kea is not only given to low precision; the position is for one telescope, probably the IRTF. As described at the above link, one can instead use 'codes' such as Sub for Subaru, Ke1 and Ke2 for the two Keck telescopes, and so on. Positions are also given for scopes at Cerro Tololo, Cerro Paranal, Kitt Peak, Haleakalā, and La Silla that would be lumped into one position by MPC.

Also, you can send me your latitude, longitude, and altitude and I'll either correct the MPC's position or add an entirely new "MPC code" (unofficial, of course!) so you can get correct data.

Designations for GNSS satellites

There are, depending on how you look at it, up to four different schemes by which GNSS satellites are designated, making it sometimes difficult to know about which satellite one is speaking.

• LNN - letter and two digits. The letter will be G for GPS, R for the (Russian) GLONASS satellites, C for the (Chinese) BeiDou satellites, E for (European) Galileo, J for (Japanese) QZSS satellites, or I for (Indian) INSS, with other letters doubtless to be added as other countries put up their satellites.

For GPS satellites, the two digits refer to the pseudo-random number (PRN) sequence used by that satellite. Some re-use occurs here, so (for example) G06 first was given to the satellite G003 = 1978-093A; in March 1994, the designation was passed on to G036 = 1994-016A; in March 2014, it was passed on to G049 = 2009-014A; in May 2014, it was again passed on to G067 = 2014-026A. So, one designation, but used by four satellites at different times.

Because of these reassignments, the LNN scheme has the drawback that you don't really know which satellite is meant, unless you have a date as well. However, it's widely used in the GNSS community.

• LNNN - letter and three digits. The letter will be the same as for the above system; the three digits will be different. This appears to be satellite-specific, and isn't passed around the way the letter/two-digit designations are.

• YYYY-NNNL - year, number, letter. This is the "international" satellite designation (of a sort used for all satellites, not just GNSS ones.) It gives the year of launch, followed by the number of the launch within the year. The letter specifies a particular piece from that launch (there might be, say, an A and a B piece that are satellites delivered by that launch, and a C piece which is the booster left as junk from the launch.)

• YYNNNL : the international designation is frequently abbreviated to a two-digit year with no dash.

Remaining things to do

• I've written code to do precovery searches for GNSS sats: give it a list of where you took images over the years ("I got the following RA/dec rectangle at thus-and-such times"), and it will tell you where and when you got satellites.

The problem with this is that there are currently about 80 GNSS satellites, or about one in every 500 square degrees of sky. Go back a few years, and it's a lot less than that. If you're a big asteroid survey, you'll still have plenty of opportunities to spot-check your timing (i.e., you don't get checking on every image, but enough to see night-to-night variations). For smaller scale observers, you'll just get a spot-check at larger intervals.

One such check found 170 GNSS satellites found by the NEAT survey between 1996 to 2002, and I've run similar searches for three other telescopes. But the code is not particularly easy for anyone else to use at this point.

Contact info

I can be reached at p‮оç.ötŭlpťсéјôřp@otúl‬m. If you're a human instead of a spambot, you can probably figure out how to remove the diacritical marks...