I'm trying to algorithmically predict which signals from which GNSS satellites could be heard by a ground-based receiver (without actually looking at the recieved data; the idea is to be able to also compute this for historic dates). However, I found it quite difficult to figure out exactly which satellites transmit which signals.

I definitely haven't found a searchable/downloadable archive assigning signals to SV IDs for various time instants.

You can look at e.g. the block the satellite belongs to, like GPS IIF, and extrapolate that all satellites in the block transmit the same signals. But I haven't either found a computer readable definition of signals transmitted by each block of satellites.

Also, there are mentions like this on Wikipedia:

Broadcasting L5 "safety of life" navigation signal demonstrated on USA-203.

So does this mean one block IIR-M satellite did transmit a usable L5 signal for some time? Or did it transmit it from its start of operation? And is the signal somehow "marked" demo-only in a way that receivers try to not use it?

I guess it is also possible that there are events due to which only one of the provided signals is not broadcasted (like broken components etc.). Where can find information about such events?

The closest I found (not easily machine-readable, only current status) is the QZSS info page. There are mentions about satellites and their signals, but the signal lists are incomplete (i.e. missing the military/authorized signals, GPSIII missing L1C and so on).


2 Answers 2


I assume that you can figure out which satellite was visible when and where, e.g. using Celestrak. You already seem to have figured out which satellites have what capabilities, so that leaves the question of which capabilities were actually operational at a given time. It should not be surprising that there are monitoring networks in place to check exactly this.

For Galileo the performance of the constellation is monitored by the GNSS Service Center. Outages are communicated via NAGUs (Notification Advisory for Galileo User). They maintain an archive with all NAGUs. Note that the NAGUs reference Satellite Name, which is not the same as SV ID. The current mapping is on the status page. I think SV ID reassignments are also communicated in the NAGUs.

For the GPS constellation the monitoring is done by the US Coast Guard Navigation Center. Outages are communicated via NANUs (Notice Advisory to Navstar Users). They maintain a current status page and various archives. This page explains how to access the archives, including how to do so programmatically.

I'm not familiar enough with the other constellations (BeiDou, GLONASS etc.) to know where to look for their monitoring authorities, archives, etc.

  • $\begingroup$ Thanks a lot. I'm not marking the answer as accepted as it doesn't answer the main question (what signals are transmitted at what time), but it is indeed pretty useful. GPS SOF files seem like a good source of information about the satellite outages. Galileo NAGUs seem to be parseable, but not very easily. Putting together information from many sources, I've created a list of satellite signals per satellite block (hardware generation): github.com/ctu-vras/gnss-info/blob/master/gnss_info/data/… . But I still wonder why there isn't an authoritative list/catalog. $\endgroup$ Nov 2, 2023 at 16:21
  • $\begingroup$ @MartinPecka Not sure what else you are expecting. The satellites transmit according to their design capabilities, unless NAGU/NANU says otherwise. The only exception I can think of are commissioning and in-orbit validation campaigns. $\endgroup$
    – Ludo
    Nov 2, 2023 at 16:59
  • $\begingroup$ There are lots of software stacks processing GNSS signals. I get that most of them just process whatever they get in a RINEX/UBX/SBX stream from the low-level hardware. Such software doesn't need to know what possible signals it could hear. However, if I wanted to implement a processing stack that is aware of what signals should have been received under ideal conditions, it can reason about why some of the signals did not arrive. But to do that, I need to know which signals to expect. Currently, my source of this list was mostly Wikipedia, and that's not satisfactory. $\endgroup$ Nov 2, 2023 at 17:02
  • $\begingroup$ @MartinPecka so what piece are you missing then? Orbits are known, so you can predict which SV you will see at what time. From the ICDs you can predict which signals they should ideally be broadcasting. With the NAGUs/NANUs you can determine any deviations from the ICD. $\endgroup$
    – Ludo
    Nov 3, 2023 at 8:41
  • 1
    $\begingroup$ Ah, good pointer with the ICDs, thanks. I hoped I won't need to sift through these. As it seems that ICDs are the only authoritative source, I took the time and read through them. See my answer for an extract of the information I found. It is a wiki post, so feel free to add whatever you know. $\endgroup$ Nov 3, 2023 at 17:44

It seems there indeed isn't any good machine-readable list of signals for GNSS satellites (or blocks of them). One good-looking (but non-authoritative, and GPS-only) is provided by the GNSSTK project.

I manually extracted available information and my best guess is recorded in https://github.com/ctu-vras/gnss-info/tree/master/gnss_info/data/constellations .

There are a few summary sources which are not authoritative, but are trustworthy:

There are also authoritative sources, however, they are scattered over ICD documents of the constellations:

  • GPS
    • L1 C/A, L1-P(Y), L2-P(Y), L2-CL, L2-CM: IS GPS 200 sec 3.2.1, table 3-III
      • What is unclear is for L2: "while the other is BPSK modulated by any one of three other bit trains which are selectable by ground command.", which allows either L2-C or L2 C/A to be transmitted in the Q phase.
    • L5: IS GPS 705 sec. 3.1
    • L1C: IS GPS 800 sec. 1.2
  • Galileo
    • E1, E5a, E5b, E5, E6: OS SIS ICD figure 1
      • HAS SDD sec 1.5 says that the E6-B HAS service is not yet fully operational (only service level 1 for now); it is unclear whether that means that some satellites do not transmit on E6-B or if it only means that they do transmit, but only dummy data.
    • is a bit problematic, many pages unavailable, so I used google cache; and even so, the documents are not very conclusive
    • There is a general infopage (currently HTTP security problems, access via Google cache), which has the list of signals. However, it seems to be a bit outdated.
    • L1 C/A, L1 P, L2 C/A, L2 P: GLONASS ICD sec. 3.1 + note 1
      • It is unclear which GLONASS-M sats transmit L3OC signals (fortunately, IGS marks those as block GLONASS-M+)
      • It is unclear which GLONASS-K1 sats transmit L2OC signals (IGS has K1A and K1B, but without further explanation)
    • L1OCM, L3OCM, L5OCM: non-authoritative, Novatel article
  • Beidou
  • QZSS
    • L1C: no authoritative source found. The ICD doesn't specify which vehicles will transmit it. News articles and wikipedia do have an idea, though.
    • L5: SIS ICD sec. 1.1

Regarding availability history of the signals, the information is hard to get:

  • GPS: https://www.navcen.uscg.gov/sites/default/files/gps/sof/current_sof.sof
    • machine-readable XML
    • granularity: whole sats
    • full history of non-functioning satellites
  • Galileo:
    • NAGUs
      • machine readable, but the format is more oriented to humans
      • granularity: signals
      • current and historical data available; however, it is needed to parse all NAGUs in order to know which ones were applicable at a particular date in the past
    • NAGUs
      • machine readable, but the format is more oriented to humans
      • granularity: sats
      • report available for each day since 14 Sep 2019
  • Beidou
  • QZSS
    • Live data
      • HTML page, easy to parse
      • granularity: signals (?)
      • only live data
    • Archive
      • easy to parse
      • granularity: sats
      • historical data per day since 14 Apr 2017
    • nothing authoritative found
    • Wikipedia has a table
      • HTML, easy to parse
      • granularity: sats
      • no information about time-frame of unavailability

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.