NMEA GPS Parser

Parse NMEA 0183 GPS logs to CSV, GPX (Google Earth compatible), or JSON. Converts raw $GPGGA/$GPRMC sentences into readable coordinate tables with altitude, speed, and satellite counts.

1.0.0
Version
Auth
Batch

About NMEA GPS Parser

Almost every GPS receiver, GNSS dongle, ship's chartplotter, drone black box and dashcam writes NMEA 0183 — comma- separated sentences like $GPGGA, $GPRMC, $GPVTG with a checksum on the end. The format is decades old, but it's still the lingua franca for GPS data export. The catch is that latitude and longitude come encoded as DDMM.mmmm with a hemisphere letter on the side (4807.038,N means 48° 07.038′ North), modern GNSS receivers use multiple talker IDs (GP for GPS, GN for mixed, GL for GLONASS, GA for Galileo, BD for BeiDou), and a raw .nmea log in a text editor is unreadable without parsing.

This NMEA 0183 GPS parser walks the file, validates each sentence's XOR checksum, decodes the position sentences ($GPGGA, $GPRMC, $GPGLL), converts DDMM.mmmm to decimal degrees, and emits three outputs in one pass: CSV (one row per fix with lat, lon, altitude, time, speed, course, satellite count), GPX (the Google Earth / Garmin standard for tracks — open it directly in Google Earth, Strava, Komoot or any GPX-aware tool), and JSON (full structured tree for scripted analysis). Multi-constellation talker IDs (GP/GN/GL/GA/BD) are all recognised. The bounding box of the track is computed for quick mapping. A summary panel reports total sentences, successfully decoded positions, checksum failures and a per- sentence-type breakdown so you can see what kinds of frames the receiver actually emitted.

Use it to convert a dashcam's GPS log into a GPX track you can drop on Google Earth, audit a drone or boat track for missing fixes, debug a GNSS receiver that's emitting suspicious checksum failures, prep a marine voyage log into a CSV for noon-position analysis, or just see what's actually in a raw .nmea file someone forwarded. Files up to 20 MB.

NMEA GPS Parser Use Cases

  • Drivers converting a dashcam GPS log into a GPX track for Google Earth playback
  • Drone and boat operators auditing tracks for missing fixes or checksum failures
  • Embedded engineers debugging a custom GNSS receiver's NMEA output stream
  • Maritime captains exporting a voyage log into CSV for noon-position analysis
  • Geocachers and hikers turning a handheld GPS dump into a shareable GPX
  • Telematics teams sanity-checking what sentences a fleet device actually emits
  • Hobbyists previewing a raw .nmea file someone forwarded without specialist software

NMEA GPS Parser Features

  • Parses NMEA 0183 — $GPGGA (fix data), $GPRMC (RMC), $GPGLL (lat/lon), $GPVTG (track/speed), $GPGSV (sats in view), $GPGSA (DOP)
  • Multi-constellation talker IDs — GP (GPS), GN (mixed GNSS), GL (GLONASS), GA (Galileo), BD (BeiDou), QZ (QZSS)
  • XOR checksum verified per sentence with a failure count reported, so you can spot a corrupted log
  • Three outputs in one pass — CSV for spreadsheets, GPX for Google Earth/Garmin/Strava, JSON for scripts
  • DDMM.mmmm to decimal-degree conversion automatic (with hemisphere letter resolved into a signed value)
  • Track bounding box (north/south/east/west) computed so you can see the geographic extent at a glance
  • Files up to 20 MB processed in a stateless serverless function and discarded immediately after the response

How to Use NMEA GPS Parser

Get a .nmea file

Dashcams, GPS loggers, GNSS dongles and marine chartplotters all export raw NMEA when set to log mode. Save the file to .nmea, .gps, .log or .txt. Mixed-content logs that include proprietary $PXXX sentences alongside standard ones are fine — those are skipped.

Upload to the parser

Drag-and-drop or click to select the log file (up to 20 MB). The parser walks the file line by line, validating the XOR checksum on each sentence and decoding the position sentences into a structured table.

Click Parse

The result panel shows sentence counts by type, decoded position count, checksum failure count and the track's bounding box. Confirm the type breakdown matches what the device should have emitted (mostly GGA + RMC for a standard logger).

Pick output format

CSV opens straight in Excel, Google Sheets or LibreOffice with lat, lon, altitude, time, speed, course and satellite count per row. GPX is the standard track format for mapping apps (Google Earth, Garmin BaseCamp, Strava, Komoot). JSON is the scripted-pipeline option.

Download and use

For Google Earth, double-click the .gpx and it opens with the track laid over satellite imagery. For Strava or Komoot, upload the .gpx through their import flow. For a quick map, drop the file into geojson.io after a GPX-to-GeoJSON conversion.

NMEA GPS Parser FAQ

No. The file is uploaded to a stateless serverless function, parsed, and discarded immediately after the response. Nothing is logged to durable storage. GPS tracks can be sensitive (commute routes, vessel operations, drone surveys) so for maximum paranoia, the Python pynmea2 library parses NMEA in a few lines and runs locally.

The core position and status sentences: $..GGA (3D fix with altitude), $..RMC (recommended minimum), $..GLL (lat/lon), $..VTG (track/speed), $..GSV (satellites in view), $..GSA (dilution of precision). Vendor-specific $P sentences are not decoded but don't cause errors. Track summary fixes come from GGA and RMC where both are present.

Modern GNSS receivers blend multiple constellations (GPS, GLONASS, Galileo, BeiDou) into a single fix and emit the GN talker ID for the combined output, while keeping GP, GL, GA, BD for per-constellation diagnostics. This parser treats GN sentences the same as GP for fix decoding, so you don't have to special-case them.

GPX is XML wrapped around your track points (lat, lon, elevation, time) with track-level metadata. It's the standard for mapping apps — Google Earth, Garmin BaseCamp, Strava, Komoot and OsmAnd all import GPX natively. CSV is flat — better for Excel pivots and ML feature engineering. Both come out in the same pass, so you don't have to choose upfront.

Each NMEA sentence ends with an XOR-computed two-hex-digit checksum. If the parser computes a different value, the sentence is treated as corrupt and skipped. Occasional failures (less than 1% of sentences) are normal for serial-line logs. Frequent failures usually mean a noisy UART connection, a baud-rate mismatch, or a corrupted file. The summary counts these so you can decide whether the log is usable.

20 MB. This covers many hours of GPS logging at typical 1 Hz output (a 20 MB log is roughly 10+ hours of GGA + RMC at 1 Hz). For multi-day logger archives, split the file by day before uploading, or use pynmea2 in a local script.

Indirectly — Google Earth opens GPX directly, so the GPX output already works. If you need KML specifically (for a tool that doesn't accept GPX), the easiest path is to open the GPX in Google Earth and use File → Save As → KML, or run a GPX-to-KML conversion in GPSBabel.

Upload your NMEA GPS log

.nmea, .gps, .log, .txt • from GPS receivers, dashcams, marine equipment • Max 20MB

Requires login • 1 credit

NMEA GPS Parser Tutorial

What is NMEA 0183?

NMEA 0183 is the standard language spoken by GPS receivers, marine electronics, and dashcams. Every GPS module outputs these comma-separated sentences:

$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4,230394,003.1,W*6A

The raw format is machine-readable but useless for humans — lat/lon is stored as DDMM.mmmm, time is UTC, and you can't open it in Google Earth.

What This Tool Does

  • Converts DDMM.mmmm coordinates to decimal degrees (48.1173, 11.5167)
  • Parses UTC time and DDMMYY date into standard formats
  • Converts knots to km/h
  • Extracts altitude and satellite count from GGA sentences
  • Bundles all positions into a GPX track you can drop into Google Earth, GPX Viewer, or Strava

Supported Sentence Types

  • GGA — Fix data (time, position, altitude, satellites)
  • RMC — Recommended Minimum (time, date, position, speed, course)
  • VTG — Track and speed over ground
  • GSV — Satellites in view
  • GSA — Active satellites and fix type

All talker IDs work: $GP (GPS), $GN (multi-GNSS), $GL (GLONASS), $GA (Galileo), $BD (BeiDou).

Where NMEA Logs Come From

  • Dashcams: Many GPS-enabled dashcams log NMEA alongside video (.nmea file in memory card)
  • USB GPS receivers: u-blox, Garmin GPS mice stream NMEA over serial/USB
  • Marine electronics: chartplotters, AIS receivers
  • Android apps: "NMEA Logger", "GPSLogger" output raw NMEA files
  • Raspberry Pi GPS HATs: output NMEA to /dev/ttyAMA0

Output Formats

  • CSV — Positions table in Excel/Sheets friendly format
  • GPX — Load directly into Google Earth, Strava, GPX Viewer, OsmAnd
  • JSON — Structured data including all parsed fields