4

In the U.S. GPS system, satellites are 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)).

For other GNSS, there have been an adoption of global PRN/ID values for satellites so apps end up getting globally unique IDs per satellite that don't collide with other GNSS.

For example, according to an unofficial version of the NMEA 0183 spec (v2.19, Apr 2015):

As of April 2015 version of the NMEA 0183 spec above, Galileo isn't mentioned as far as ID reservations.

Is there any industry-standard official mapping between Galileo satellites and PRN/ID values?

EDIT Aug. 9, 2016

According to GPS World:

According to two Notice Advisories to Galileo Users (NAGUs), the two Galileo satellites launched into elliptical orbits in August 2014, GSAT0201 using PRN code E18 and GSAT0202 using PRN code E14, will start transmitting navigation messages for test purposes this Friday, Aug. 5.

The Signal Health Status (SHS) flags will be set to “Test” and the Data Validity Status (DVS) flags will be set to WWG (working without guarantee).

The satellites will not be included in the broadcast almanacs.

These PRNs are alphanumeric, while the existing agreed-upon ranges for other GNSS are numeric. I'm looking for the numeric PRNs for Galileo that would complement the other existing known GNSS ranges and that would be available on Android.

If you have an Android device that supports Galileo and you're willing to help identify the ID range, please comment on this Github issue.

3

From the IGS Galileo status it appears that there are "standard" PRNs assigned - as of Sep 15, it looks like E followed by the SV ID for the operational satellites. Obviously that could change as satellites are "refreshed". From that same web site, it is also possible that different receivers will report different values for the same satellite.

The Wikipedia articles appear to reference the "GPSWorld" Almanac, which is probably reasonable as an industry source, but not really official in the way that a standard world be. It does match though, so not a big deal.

The PRN does not appear in the official constellation information or almanac. As such, I think it is probably dubious as a stable identifier. If possible, I'd stick to the satellite identifier.

Opinion: it looks like PRN just isn't of the same importance in Galileo as it is in the GPS design, where satellite identifiers weren't important.

1

Just to provide a comprehensive general answer:

'PRN E'n ⇔ 'PRN 'n + 70

For example: PRN E11 = PRN 81

  • Source? This falls within the reserved GLONASS range... :/ – Max Dec 18 '16 at 18:23
  • I could not find offical docs on the internet but you will see these numbers used in for example 1 and 2. In the agency they use the same convention... Anyway, it's interesting - maybe it is for specific Rx? – Hydrographer Dec 19 '16 at 7:35
1

For Android 6.0.1 (M) and lower, on Qualcomm chipsets the ID range of 301-330 has been identified for Galileo satellites via tests with the GPSTest app on a BQ Aquaris X5+ device (see this issue).

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