5

In the U.S. GPS system, satellites are uniquely identified by the PRN number broadcast by each satellite. This ID is usually visible on most GPS receiver platforms that provide access to individual GPS satellite signal information to identify the broadcasting satellite (e.g., accessible on Android via the GPSStatus.Listener and the GpsSatellite.getPrn() method (http://goo.gl/QLse3)).

However, the Russian GLONASS system does not currently have the concept of a PRN number broadcast by every satellite, as many of the legacy satellites are an FDMA system, not a CDMA system such as the U.S. So, in GLONASS these satellites broadcast the same code on a different frequency.

However, an ID is still available for GLONASS satellites for many GPS receiver positioning platforms that support dual GPS/GLONASS positioning, often via the same access point as the PRN value for U.S. GPS satellites (e.g., on Android via the GpsSatellite.getPrn() method, with seemlingly standardized values across devices I've seen from 65 to 88. See the first screenshot listed in the GPSTest app on Google Play (https://play.google.com/store/apps/details?id=com.android.gpstest) for an example list of U.S. and GLONASS satellites obtained from the GPSStatus.Listener on a Samsung Galaxy S3).

I haven't yet been able to find an official industry-standard source for how these ID values for GLONASS satellites are determined. However, proprietary documentation for particular products have shown GLONASS satellites numbered from 65 to 88 [1] and 38 to 61 [2].

Is there any industry-standard official mapping between GLONASS satellites and "PRN" values?

  • "In the U.S. GPS system, satellites are uniquely identified by the PRN number..." That is not true--you also need to know the time at which you're considering a given PRN--the satellite assigned to broadcast a PRN number can change. – Brian Jun 10 '15 at 17:30
3

I know it's been a long time and you probably no longer care for the answer, but in case you (or someone coming in from a web search) cares, I'll attempt an answer.

To quote some text from the NMEA 0183 (unofficial reference at http://www.catb.org/gpsd/NMEA.txt, in case the official one disappears) specification,

The numbers 65-96 are reserved for GLONASS satellites. GLONASS satellites are identified by 64+satellite slot number.

You can find GLONASS slot numbers pretty easily on Wikipedia.

0

For Android 7.0 (N) and higher, Google has added a new API in Android that allows apps to explicitly determine the GNSS type of each satellite for the following GNSS constellation (from https://developer.android.com/reference/android/location/GnssStatus.html):

  • CONSTELLATION_BEIDOU
  • CONSTELLATION_GALILEO
  • CONSTELLATION_GLONASS
  • CONSTELLATION_GPS
  • CONSTELLATION_QZSS
  • CONSTELLATION_SBAS

The ID of each satellite can also be obtained, and ID ranges are defined in the documentation at https://developer.android.com/reference/android/location/GnssStatus.html#getSvid(int):

getSvid()

Gets the identification number for the satellite at the specific index.

This svid is pseudo-random number for most constellations. It is FCN & OSN number for Glonass.

The distinction is made by looking at constellation field getConstellationType(int).

Expected values are in the range of:

  • GPS: 1-32
  • SBAS: 120-151, 183-192
  • GLONASS: One of: OSN, or FCN+100
    • 1-24 as the orbital slot number (OSN) (preferred, if known)
    • 93-106 as the frequency channel number (FCN) (-7 to +6) plus 100. i.e. encode FCN of -7 as 93, 0 as 100, and +6 as 106
  • QZSS: 193-200
  • Galileo: 1-36
  • Beidou: 1-37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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