Your behavior appears to be a little unusual. Please verify that you are not a bot.


What Exactly Is GPS NMEA Data?

February 4, 2015  - By

You may have heard about “NMEA data” with respect to GPS.

NMEA is an acronym for the National Marine Electronics Association. NMEA existed well before GPS was invented. According to the NMEA website, the association was formed in 1957 by a group of electronic dealers to create better communications with manufacturers. Today in the world of GPS, NMEA is a standard data format supported by all GPS manufacturers, much like ASCII is the standard for digital computer characters in the computer world.

The purpose of NMEA is to give equipment users the ability to mix and match hardware and software. NMEA-formatted GPS data also makes life easier for software developers to write software for a wide variety of GPS receivers instead of having to write a custom interface for each GPS receiver. For example, VisualGPS software (free), accepts NMEA-formatted data from any GPS receiver and graphically displays it. Without a standard such as NMEA, it would be time-consuming and expensive to write and maintain such software.

What makes NMEA a bit confusing is that there are quite a few “NMEA” messages, not just one. So, just like there are all kinds of GPS receivers with different capabilities, there are many different types of NMEA messages with different capabilities. Furthermore, NMEA data can be transmitted via different types of communications interfaces such as RS-232, USB, Bluetooth, Wi-Fi, UHF, and many others.

NMEA Message Structure

To understand the NMEA message structure, let’s examine the popular $GPGGA message. This particular message was output from an RTK GPS receiver:

$GPGGA,181908.00,3404.7041778,N,07044.3966270,
W,4,13,1.00,495.144,M,29.200,M,0.10,0000*40

All NMEA messages start with the $ character, and each data field is separated by a comma.

GP represent that it is a GPS position (GL would denote GLONASS).

181908.00 is the time stamp: UTC time in hours, minutes and seconds.

3404.7041778 is the latitude in the DDMM.MMMMM format. Decimal places are variable.

N denotes north latitude.

07044.3966270 is the longitude in the DDDMM.MMMMM format. Decimal places are variable.

W denotes west longitude.

4 denotes the Quality Indicator:

1 = Uncorrected coordinate

2 = Differentially correct coordinate (e.g., WAAS, DGPS)

4 = RTK Fix coordinate (centimeter precision)

5 = RTK Float (decimeter precision.

13 denotes number of satellites used in the coordinate.

1.0 denotes the HDOP (horizontal dilution of precision).

495.144 denotes altitude of the antenna.

M denotes units of altitude (eg. Meters or Feet)

29.200 denotes the geoidal separation (subtract this from the altitude of the antenna to arrive at the Height Above Ellipsoid (HAE).

M denotes the units used by the geoidal separation.

1.0 denotes the age of the correction (if any).

0000 denotes the correction station ID (if any).

*40 denotes the checksum.

The $GPGGA is a basic GPS NMEA message. There are alternative and companion NMEA messages that provide similar or additional information.

Here are a couple of popular NMEA messages similar to the $GPGGA message with GPS coordinates in them (these can possibly be used as an alternative to the $GPGGA message):

$GPGLL, $GPRMC

In addition to NMEA messages that contain a GPS coordinate, several companion NMEA messages offer additional information besides the GPS coordinate. Following are some of the common ones:

$GPGSA – Detailed GPS DOP and detailed satellite tracking information (eg. individual satellite numbers). $GNGSA for GNSS receivers.

$GPGSV – Detailed GPS satellite information such as azimuth and elevation of each satellite being tracked. $GNGSV for GNSS receivers.

$GPVTG – Speed over ground and tracking offset.

$GPGST – Estimated horizontal and vertical precision. $GNGST for GNSS receivers.

Rarely does the $GPGGA message have enough information by itself. For example, the following screen requires: $GPGGA, $GPGSA, $GPGSV.

VisualGPSView screenshot from VisualGPC LLC.

VisualGPSView screenshot from VisualGPC LLC.

The following screen, focused on the time capabilities of GPS, requires a slightly different set of NMEA messages: $GPGGA or $GPRMC or $GPZDA, $GPGSA, $GPGSV.

NMEATime screen shot by VisualGPC LLC

NMEATime screen shot by VisualGPC LLC.

The above screenshot examples are useful for the general GPS user. For high-precision GPS mapping and surveying, the $GPGST message is particularly useful. In fact, I would say it’s a requirement for high-precision users. The reason is that GPS metadata is very important for the high-precision user as a method of assisting in determining the quality of a particular GPS coordinate. Typical GPS real-time metadata used in understanding the quality of the GPS coordinate include: PDOP, # of satellites tracked, correction method, and horizontal/vertical standard deviation values. If a GPS receiver user has the ability to see this information in the field during data collection, they have a level of confidence in the precision of the GPS data they are collecting. If you’ve used RTK before, you probably recall the familiar HRMS (horizontal RMS) and VRMS (vertical RMS) values displayed on your data collection device. The $GPGST message generates those values.

DD.MMMMMMM, DDMM.MMMMM, or DDMMSS.SSSSS

One of the challenges in dealing with raw NMEA data (data not using a software like VisualGPS to decode it for you) is the format of the GPS coordinate. It’s not user-friendly. It’s expressed in DDMM.MMMMM; degrees, minutes and decimal minutes. To display the coordinate in a different format, there’s a useful Excel spreadsheet published by the UK Ordnance Survey.

UK Ordnance Survey Coordinate Calculator

UK Ordnance Survey Coordinate Calculator

To use the spreadsheet, simply enter the GPS coordinate in the format you have, and the spreadsheet will calculate and display the GPS coordinate in the other two formats.

Download the spreadsheet by clicking here: UK Ordnance Survey Excel spreadsheet coordinate calculator.

Thanks, and see you next time.

Follow me on Twitter at https://twitter.com/GPSGIS_Eric

This article is tagged with , and posted in Opinions, Survey

About the Author: Eric Gakstatter

Eric Gakstatter has been involved in the GPS/GNSS industry for more than 20 years. For 10 years, he held several product management positions in the GPS/GNSS industry, managing the development of several medium- and high-precision GNSS products along with associated data-collection and post-processing software. Since 2000, he's been a power user of GPS/GNSS technology as well as consulted with capital management companies; federal, state and local government agencies; and private companies on the application and/or development of GPS technology. Since 2006, he's been a contributor to GPS World magazine, serving as editor of the monthly Survey Scene newsletter until 2015, and as editor of Geospatial Solutions monthly newsletter for GPS World's sister site Geospatial Solutions, which focuses on GIS and geospatial technologies.

6 Comments on "What Exactly Is GPS NMEA Data?"

Trackback | Comments RSS Feed

Inbound Links

  1. What Exactly Is GPS NMEA Data? | Top Ten King | February 6, 2015
  2. usanews.net | May 6, 2020
  1. Andrew Watson says:

    I see from your article that there is a 2 digit (?) Checksum field.

    Presumably, this is calculated by a simple, easily utilised by the average user, formula.

    Is there any NMEA field that gives a more robust, encrypted validation code that is impossible for the average user to generate that could be used to prove in court that, say:

    * in a disputed charge of exceeding the speed limit the speed calculated from the GPS data was correct; or

    * photos taken of a rental car at pickup to show that there was pre=existing damage were taken on the date and time claimed?

    If this data is available is it recorded by standard consumer NMEA recorders in software like GPSGate or OziExplorer?

    If this data isn’t available do you know of speed recorder, photo or raw NMEA recorder programs or apps for Windows, iOS or Android that generate an encrypted checksum that could be used in court?

    If the speed and date are “burnt” into the image recorded by a camera or dashcam is this sufficient proof for a court?

    • Eric Gakstatter says:

      Hi Andrew,

      See this as an example. http://nmeachecksum.eqth.net/

      I don’t know of a way to prevent someone from modifying NMEA data.

      However, I don’t think that NMEA data from PNDs is easily available to the average user. In fact, it may take a specific software tool to extract it. And in that case, it may not be NMEA-formatted. That may offer the perception of a higher level of data integrity.

      Sorry, I don’t have any experience with presenting speed/date stamped images in court to understand their value.

  2. Jeff Clark says:

    I have clients that want a NMEA string produced that issues State Plane Coordinate values instead of Geodetic coordinates, without having to use any software interface.

    • Eric Gakstatter says:

      Hi Jeff,

      I’ve heard the same request from people. In fact, I may have seen data like this before, but since it deviates from the NMEA specification, I doubt standard software would be able to read it.

      Eric