Opened 3 years ago

Last modified 2 years ago

#21007 new enhancement

Import more data from NMEA GNSS tracks

Reported by: pyrog Owned by: team
Priority: normal Milestone:
Component: Core Version:
Keywords: Cc:


With Real Time Kinematic (RTK) more NMEA fields could be stored for each nodes, and used e.g. for colorise the track.

  • The age in GGA message
  • The full satellite count (for all constellations) in GSA message
  • The standard deviation of horizontal error in GST message
  • The differential reference station ID in GGA

Currently JOSM display the satellite count for the GPS constellation only.

To obtain it, count the non empty SVID in the GSA sentence.
21 in the following example (SVID 12,25,29,31,32 76,84 02,24,12,36,07,08,11,25 30,36,26,29,13,35)


The standard deviation horizontal error is the maximum of the standard deviation of latitude error or standard deviation or longitude error.
In this exemple, the standard deviation horizontal error is 0.019 meter (1.9 cm)


Attachments (3)

SFE_Surveyor_210616_070432.nmea (62.5 KB ) - added by pyrog 3 years ago.
Sample NMEA track in RTK
josm_pos_file.jpg (220.7 KB ) - added by StephaneP 2 years ago.
josm_nmea_file.jpg (532.4 KB ) - added by StephaneP 2 years ago.

Download all attachments as: .zip

Change History (10)

by pyrog, 3 years ago

Sample NMEA track in RTK

comment:1 by StephaneP, 2 years ago

Now that Josm can parse the fix value inside nmea files (#20600) parsing the $GPGST $GNGST values would be a wonderful enhancement.

Last edited 2 years ago by StephaneP (previous) (diff)

comment:2 by StephaneP, 2 years ago

copy/paste of

Position error statistics

An example of the GST message string is:


The Talker ID ($--) will vary depending on the satellite system used for the position solution:

    $GP - GPS only
    $GL - GLONASS only
    $GN - Combined

GST message fields
Field 	Meaning
0 	Message ID $GPGST
1 	UTC of position fix
2 	RMS value of the pseudorange residuals; includes carrier phase residuals during periods of RTK (float) and RTK (fixed) processing
3 	Error ellipse semi-major axis 1-sigma error, in meters
4 	Error ellipse semi-minor axis 1-sigma error, in meters
5 	Error ellipse orientation, degrees from true north
6 	Latitude 1-sigma error, in meters
7 	Longitude 1-sigma error, in meters
8 	Height 1-sigma error, in meters
9 	The checksum data, always begins with *

comment:3 by stoecker, 2 years ago

I recommend to use QGIS for in depth analysis of NMEA data and not JOSM.

by StephaneP, 2 years ago

Attachment: josm_pos_file.jpg added

by StephaneP, 2 years ago

Attachment: josm_nmea_file.jpg added

comment:4 by StephaneP, 2 years ago

Replying to stoecker:

I recommend to use QGIS for in depth analysis of NMEA data and not JOSM.

The goal is not NMEA analysis, but viewing the position accuracy inside Josm, like I already do with .pos files. See this example:

A pos file (Quality (RTKlib only) + draw a circle from DOP value):

The same data in nmea (GPS Fix + draw a circle from DOP value):

The dop values inside a NMEA/GPX files are not very useful but the lat/long error ($G?GST) is when it is available.

(the dop values display in Josm for the .pos file are the lat/long error).

comment:5 by stoecker, 2 years ago

DOP as well as GST error values are both only raw indications of the real accuracy. As an indicator they are good enough. Assuming you will get better results with the error estimates only gives you a false sense of accuracy. We already had cases when the error estimates have been in the 3 cm range, but the position accuracy was actually 50cm off (with a high end system). For the normal lower cost systems I expect that to be a much more common occurrence with higher errors (especially when using in a moving equipment).

So when you don't want to analyze the data itself the DOP should be enough.

comment:6 by StephaneP, 2 years ago

DOP and GST are two very different things. DOP is only an indicator of the geometrical position of the received satellites.

What you see on the .pos exemple is the same as what you could see with the nmea file if the GST sentences were parsed. Do you really think it isn't more useful than the constant DOP circle size???

I'm confident that the accuracy result I have is ok. It was tested on various survey marker, it is used by many farmer, GIS guys, compared with high end products (trimble, topcon,...). It's a F9P from U-Blox connected on a GNSS base station from the centipede network. See this benchmark:
I don't say we never see some wrong accuracy values, but it's not a good argument to say "We prefer to display only the unuseful DOP values because sometime accuracy values could be wrong".

I can't explain your 50cm off without more details, but it looks like a wrong coordinate reference system. In France we have a 70cm offset between irtf@now and etrs89.

comment:7 by stoecker, 2 years ago

It's my job to develop software applications for GNSS receivers since many years and yes for this application here I believe that the internal error calculations and the DOP values give you nearly the same result. Main influence is the number and distribution of available satellites (i.e. the DOP) and the used position fix.

Please don't understand me wrong: I don't mean the numerical values, but only the information if a position is to be trusted or not.

Contrary to what most people believe the error estimates from the GST do not tell you what the real error is, but only indicate the details of the position calculation matrix (i.e. an internal accuracy). This leaves out a lot of effects. BTW: Especially the F9P ublox in PPP mode has sometimes very high position offsets while still keeping good error estimates. Also in RTK mode we see wrong fixes. As said we've even seen 50cm of position for several minutes in real high end hardware and the vendor later changed the firmware to be more robust against such type of behaviour after they got our report.

GNSS systems are a really complex topic and it's even hard to explain to professional users what these numbers actually mean. I fear that when we display a 2cm value for a certain measurement in JOSM then people with such systems will overrule any other data and assume 2cm also means 2cm, but that is very often simply not true. Also if we go into these accuracy scales the topic of reference systems comes up which currently in OSM isn't addressed at all. Think of two users with an RTK system one with ETRS89, one with WGS84 or ITRF output who constantly change tracks because they KNOW their data is 2cm exact...

If JOSM already supports a quality indication for RTK lib we may implement it for NMEA as well, but as said it will give a false sense of accuracy.

Modify Ticket

Change Properties
Set your email in Preferences
as new The owner will remain team.
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from team to the specified user.
Next status will be 'needinfo'. The owner will be changed from team to pyrog.
as duplicate The resolution will be set to duplicate. Next status will be 'closed'. The specified ticket will be cross-referenced with this ticket.
The owner will be changed from team to anonymous. Next status will be 'assigned'.

Add Comment

E-mail address and name can be saved in the Preferences .
Note: See TracTickets for help on using tickets.