Monday, 19 August 2019

android - Is there an industry-standard official mapping of Galileo satellites to global "PRN”/ID values?


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.



Answer



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



No comments:

Post a Comment

arcpy - Changing output name when exporting data driven pages to JPG?

Is there a way to save the output JPG, changing the output file name to the page name, instead of page number? I mean changing the script fo...