Skip to content

PyGNSS-TEC

PyPI - Version Supported Python Versions License Tests Publish Documentation

PyGNSS-TEC is a high-performance Python package leveraging Rust acceleration, designed for calculating and processing Total Electron Content (TEC) data from Global Navigation Satellite System (GNSS) observations. The package provides tools for RINEX observation/navigation reading, azimuth/elevation calculation, TEC calculation, and DCB correction to support ionospheric studies.

Features

  • High-Performance: Efficiently read GNSS RINEX files using rinex crate, calculate and calibrate TEC from dual-frequency GNSS observations using Rust and polars lazy evaluation (see benchmarks).
  • Multiple File Formats: Support for RINEX versions 2.x and 3.x, as well as Hatanaka compressed files (e.g., .rnx, .crx, .crx.gz).
  • Automatic Code Selection: Select dual-frequency code and carrier-phase pairs based on observation quality, DCB coverage, and configurable priorities, with per-epoch fallback when preferred signals are unavailable.
  • Multi-GNSS Support: Process observations from multiple GNSS constellations.

    Constellation RINEX Reading TEC Calculation
    GPS (G) Yes Yes
    Beidou (C) Yes Yes
    Galileo (E) Yes No
    GLONASS (R) Yes No
    QZSS (J) Yes No
    IRNSS (I) Yes No
    SBAS (S) Yes No
  • Open-Source: Fully open-source under the MIT License, encouraging community contributions and collaboration.

Start here

  • Quick Start: get up and running with the package.
  • Documentation: comprehensive guides and examples for using the package.
  • API Reference: detailed reference for all public classes, functions, and modules.
  • Contributing: guidelines for contributing to the project, including development setup and testing.