Skip to content

Instantly share code, notes, and snippets.

@maxim75
Created February 15, 2022 21:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maxim75/32a61abbd9ea4a857bd18a174411bf63 to your computer and use it in GitHub Desktop.
Save maxim75/32a61abbd9ea4a857bd18a174411bf63 to your computer and use it in GitHub Desktop.
import pynmea2
nmea_data = open("data/gps_data_20220215-070028.nmea", "rb")
coordinates_data = []
for message_bytes in nmea_data.readlines():
try:
message = message_bytes.decode("utf-8").replace("\n", "").replace("\r", "")
parsed_message = pynmea2.parse(message)
except:
# skip invalid sentences
continue
cga_data = {}
# process only GGA messages
if parsed_message.sentence_type == "GGA":
for attr in ["timestamp", "latitude", "longitude", "latitude", "horizontal_dil", "num_sats", "gps_qual"]:
cga_data[attr] = getattr(parsed_message, attr)
coordinates_data.append(cga_data)
coordinates_data[0]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment