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.