6

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?

Sean Barbeau
  • 1,603
  • 13
  • 20
  • "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

2 Answers2

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.

Sean Barbeau
  • 1,603
  • 13
  • 20
  • I still care! :) I'd upvote more if I could for tracking down this info, but I'm hesitant to mark this as the official answer as to whether an "industry-standard" exists. The above referenced document for NMEA 0183 isn't actually the official protocol spec (unfortunately, due to copyright reasons), and the quoted text looks to be from a particular OEM (Geostar Navigation) receiver manual - http://geostar-navigation.com/file/geos3/geos_nmea_protocol_v3_0_eng.pdf. – Sean Barbeau Apr 01 '14 at 16:26
  • 1
    After a bit more Googling, it seems that http://www.shipops.oregonstate.edu/data/wecoma/cruise/2010/w1004b/documentation_2010/Instrument_Documentation/NMEA_0183_defn.pdf is a photocopied page from NMEA 0183, which has similar language. Similar language is also showing up in a few other OEM documents (http://www.simrad-yachting.com/Root/Operator%20Manual/SimradYachting/English/AI70_OM_EN_20221438A.pdf, http://www.navcomtech.com/navcom_en_US/docs/download_center/white_papers/current/nmea_gbs_mde_message_definition.pdf). So, I'm going to edit to point to the official doc and mark as answer. – Sean Barbeau Apr 01 '14 at 16:32
1

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
Sean Barbeau
  • 1,603
  • 13
  • 20