skillfed

pynmeagps

NMEA protocol parser and generator

pynmeagps v1.1.7 381.7K downloads/30d#7,094 on PyPI105
Permissive license BSD-3-Clause Active released

What it is and what it does

pynmeagps is a Python 3 parser for NMEA 0183 protocol messages, primarily targeting GNSS/GPS and maritime receivers. It reads, parses, and generates NMEA messages with no external runtime dependencies, making it lightweight and straightforward to integrate into applications that need to consume positioning data from GPS hardware or log files.

The library handles both standard and proprietary NMEA message types, with support for user-defined message definitions for custom applications. It provides stream-based reading (from serial ports, files, or sockets), static parsing of individual messages, and message generation. Latitude and longitude are exposed as signed decimal values for convenience, with helper methods to convert to other formats. The package is actively maintained, supports modern Python versions (3.10–3.14), and carries no external dependencies.

Use it for:

  • Read real-time GPS coordinates from a stream-connected receiver for vehicle tracking or navigation applications.
  • Parse NMEA log files to extract historical positioning data for analysis or replay.
  • Integrate GNSS message handling into maritime or drone control systems that need to decode receiver output.
  • Validate and transform NMEA messages between different formats or protocols in data pipelines.
  • Develop custom GPS applications with support for proprietary receiver extensions via user-defined message definitions.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Parses and generates NMEA 0183 GPS/GNSS protocol messages, enabling Python applications to read and work with positioning data from GPS receivers and maritime devices.

Yes. The package is actively maintained, has zero known vulnerabilities, low install friction, and a permissive license. It solves a specific, well-defined problem (NMEA parsing) with no external dependencies. Install it if you need to work with GPS/GNSS protocol data in Python; skip it only if you need support for Python versions below 3.10 or have no use for NMEA message handling.

Install

pynmeagps on PyPI

pip

pip install pynmeagps

uv

uv add pynmeagps

poetry

poetry add pynmeagps

Installing pynmeagps

Before you install

Low friction installation with no runtime dependencies. Active maintenance with a recent release (4 days old) and steady repository activity. Supports Python 3.10 through 3.14.

License in practice

BSD-3-Clause permissive license allows commercial and private use with minimal restrictions; attribution required.

Quickstart

from pynmeagps import NMEAReader

msg = NMEAReader.parse('$GNGLL,5327.04319,S,00214.41396,E,223232.00,A,A*68\r\n')
print(msg)

Requires Python >=3.10; stream-based reading requires a data source supporting read(n) -> bytes method.

Verify before relying

  • Whether the package handles all NMEA 0183 v4 message types or only a documented subset beyond GNSS/GPS.
  • Performance characteristics when parsing high-frequency streams from multiple concurrent receivers.
  • Availability and completeness of proprietary NMEA message definitions mentioned in the documentation.

Package facts

License BSD-3-Clause (permissive)
Python support supports the current Python release (>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies none
Maintenance actively maintained — 4 days since the last release
Last repo commit
First released
Downloads 381,728/month — #7,094 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: pynmeagps-1.1.7-py3-none-any.whl

Development Status :: 5 - Production/StableEnvironment :: ConsoleEnvironment :: MacOS XEnvironment :: Win32 (MS Windows)Environment :: X11 ApplicationsIntended Audience :: DevelopersIntended Audience :: End Users/DesktopIntended Audience :: Science/ResearchOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Scientific/Engineering :: GISTopic :: Software Development :: Libraries :: Python ModulesTopic :: Utilities

Tags

NMEA GPS parserGNSS message parsingGPS protocol decoderNMEA 0183 readersatellite positioning datamaritime GPS protocollocation data extraction
gps-gnssprotocol-parsinggeolocation

More Python Modules packages