logo GNSS satellites ephems

Updated 2018 Jan 1

Click here for an explanation of what this page is and why it exists, and for links to related tools.

Use the form below to create ephemerides for GNSS satellites (GPS, Galileo, GLONASS, BeiDou, and JXSS.) You can use this form to find out which GNSS satellites are visible from your site.

Satellite ID:

Time: UTC

MPC observatory code :

Step size:

Number of ephemeris steps:
RA/dec in base 60 (Babylonian)
RA/dec in decimal degrees

Step size can end in 'm' for minutes or 'd' for days. Otherwise, assumed to be seconds.

There are several other tools for asteroid observers on this site, including a tool to list GNSS satellites visible from a given site.


Time can be in almost any human-recognizable form, such as

2017 feb 27 03:14:15.9   feb 27 2017 03:14:15.9   27.314159/2    (assumed to be current year)
2017 02 27.314159        27.314159/02/2017        now+3h         (three hours from 'right now')
27.314159fe2017          JD 2457811.814159        Fri 03:14 p.m.

Click here for a full list of possible time formats that can be used. Feel free to experiment, but getting too clever is not advised. I recommend a four-digit year, named month, and day followed by HH:MM:SS or decimal days (the first two examples shown above), leaving no ambiguity in your input.

Time span: Ephemerides are available from 1992 June 20 to four or five days from now. Note that unfortunately, ephemerides for Galileo, QZSS, and BeiDou only run up to about a day ago; from that point on, all we've got are ephems for GPS and GLONASS. I'm working on this.

Satellite IDs: Usually, the designation will be one of the letters G, R, C, J, or I, followed by two digits, but there are three other systems in use. You can use any of them; the software will figure out which one you meant. You can click here for an explanation of all four designation systems.

MPC observatory code: This should be a three-character code from the MPC's list of observatory codes. If you don't have such a code, send me your latitude, longitude, and altitude (see contact details at bottom) and I'll add a code for you.

Satellite magnitudes: Jaime Nomen told me the magnitudes for GPS satellites range from 10 to 14, depending in part on the phase angle. (I'm hoping the GLONASS satellites are brighter, but haven't heard of any observations yet.) By default, the satellites are ordered by elongation; I'd suggest getting satellites with high elongation that aren't marked 'Sha' (in the earth's shadow).

Jaime recommends getting images of multiple satellites at multiple times, to help detect random timing errors.

Accuracy appears to be at least down to 0.2 arcsecond, or about 10 milliseconds of motion. (Which is to say, you could correct your timing to that level.) In theory, it's better than that, but I don't really have a way to test it except by matching it to observations. The best observations thus far have led to timing and positions consistent to that level.

The satellites have positions known to within a few centimeters. Of course, that's the position of the antenna; if the center of light measured on a CCD is, say, a meter away, that would lead to about half a millisecond of error (the satellites move at about 2000 meters a second). We may be at that level of accuracy, but I can't really say for sure.

Source code (C/C++) is available at GitHub.

'GNSS' (Global Navigation Satellite System) includes GPS, GLONASS, Galileo, QZSS, and BeiDou satellites. You can get precise positions for GPS and GLONASS for dates starting about a day ago and running a few days into the future (i.e., predictions are available). For Galileo, QZSS, and BeiDou, this is sadly not the case. You get approximate positions for finding them, but the precise positions needed to really check your timing lag by a few days.

I realize this is an annoyance: you can image the objects, but then have to wait a few days to actually check your timing. The problem is that very precise positions (centimeter-level accuracy) are provided in the SP3 format for all GNSS satellites for those "past" dates. But for the near future and last day or so, SP3 data exists only for GPS and GLONASS.

Positions for the remaining satellites are computed using Two-Line Elements (TLEs). Those are good enough to find the object, but not good enough to really measure timing accurately.


My thanks go to Jaime Nomen and Noelia Sánchez Ortiz for their thoughts on using navigation satellites for timing astrometry, and for providing some example astrometry for testing that I was getting the right answers; and to Dave Tholen for doing some really amazing tests of the sort that require a 2.2-m telescope, the extreme conditions on Mauna Kea, and really knowing how to get the last bit of precision out of astrometry.

Change log

(2018 Jan 1) Galileo, BeiDou, and JXSS navsats are now also listed, along with the GPS and GLONASS satellites, even for "current" times. My hope is that this will provide alternative, possibly brighter targets. Be warned, though, that there's a slight element of inconvenience to them. I can tell you where to look for these objects, with an accuracy of an arcminute or so. But it takes a few days before really precise positions are available for them. Basically, you can look here, find out where to get these satellites, and then check back in a few days to learn where they "really" were.

(2018 Jan 1) Also, if the step size is in decimal minutes or days, the output ephems are labelled in decimal minutes or days.

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...