NMEA to CSV

Paste raw NMEA 0183 GPS sentences and export a clean CSV track table with merged GGA/RMC/GLL/VTG/ZDA/GSA data.

Try:
CSV track

Convert NMEA GPS logs to CSV

Paste raw NMEA 0183 GPS/GNSS sentences and convert them into a spreadsheet-ready CSV track. The converter accepts common $GPGGA, $GNRMC, $GPGLL, $GPVTG, $GPZDA, and $GPGSA sentences from any talker prefix, then merges sentences that share the same UTC time into one row.

The output includes time or ISO timestamp, latitude, longitude, altitude, fix quality, satellite count, HDOP, speed, and course. Choose decimal degrees or DMS coordinates, metres or feet, knots, km/h or mph, comma/semicolon/tab/pipe delimiters, and whether to keep a header row. Enable checksum validation when you want lines with a bad *XX checksum dropped.

Worked example

Input:

$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

Default output:

timestamp,time,latitude,longitude,altitude_m,fix,satellites,hdop,speed_knots,course
1994-03-23T12:35:19Z,12:35:19,48.1173,11.516667,545.4,gps,8,0.9,22.4,84.4

Limits and edge cases

FAQ

Which NMEA sentences are supported?

The converter reads GGA, RMC, GLL, VTG, ZDA, and GSA sentences. It accepts common talker prefixes such as GP, GN, GL, GA, and GB because the sentence type is the last three characters before the first comma.

How are multiple sentences merged into one CSV row?

Sentences with the same UTC time-of-day are treated as one cycle. For example, GGA supplies altitude, fix quality, satellite count, and HDOP, while RMC supplies date, speed, and course for the same point.

What happens when a date is missing?

If RMC or ZDA provides a date, the CSV includes an ISO timestamp column. If the log only has time-only sentences such as GGA, the timestamp column is omitted and the time column remains.

Should I enable checksum validation?

Enable it for recorded logs where the trailing *XX checksum is present and you want corrupt lines dropped. Leave it off when pasting logs from devices or examples that omit checksums.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool nmea-to-csv '$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'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/nmea-to-csv/?nmea=%24GPGGA%2C123519%2C4807.038%2CN%2C01131.000%2CE%2C1%2C08%2C0.9%2C545.4%2CM%2C46.9%2CM%2C%2C%2A47%0A%24GPRMC%2C123519%2CA%2C4807.038%2CN%2C01131.000%2CE%2C022.4%2C084.4%2C230394%2C003.1%2CW%2A6A&coordinates=decimal&altitude_unit=m&speed_unit=knots&delimiter=comma&header=true&validate_checksum=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.