Skip to main content

A Python package for GNSS RINEX file reading and total electron content (TEC) calculation with Rust-accelerated performance.

Project description

PyGNSS-TEC

PyPI - Version Supported Python Versions License Test

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

Warning: This package is under active development and may undergo significant changes. It is not recommended for production use until it reaches a stable release (v1.0.0).

Features

  • RINEX File Reading: Efficient reading and parsing of RINEX GNSS observation files using rinex crate (see benchmarks for details).

  • Multiple File Formats: Support for RINEX versions 2.x and 3.x., as well as Hatanaka compressed files (e.g., .Z, .crx, .crx.gz).

  • TEC Calculation: Efficiently compute TEC from dual-frequency GNSS observations using polars DataFrames and lazy evaluation (see benchmarks for details).

  • Multi-GNSS Support: Process observations from multiple GNSS constellations (see Overview for constellation support).

  • Open-Source: Fully open-source under the MIT License, encouraging community contributions and collaboration.

Installation

Via pip

You can install PyGNSS-TEC via pip:

pip install pygnss-tec

Via uv (recommended)

uv is a modern Python package and project manager written in Rust. You can add PyGNSS-TEC to your uv project with:

uv add pygnss-tec

From Source

Building from source requires Rust and Cargo to be installed. Once you have both, run:

git clone https://github.com/Eureka-0/pygnss-tec.git
cd pygnss-tec
uv run maturin build --release

# Or enable custom memory allocator feature, which can improve performance in some scenarios (~10%) but may increase memory usage
uv run maturin build --release --features custom-alloc

The built package will be available in the target/wheels directory. You can then install it to your Python environment or uv project with:

# Using pip
pip install target/wheels/pygnss_tec-*.whl

# Or using uv
uv pip install target/wheels/pygnss_tec-*.whl

Usage

Overview

The following table summarizes the support for different GNSS constellations in PyGNSS-TEC:

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

RINEX file reading

Read a RINEX observation file (supports RINEX v2.x, v3.x, and Hatanaka compressed files):

import gnss_tec as gt

header, lf = gt.read_rinex_obs("./data/rinex_obs_v3/CIBG00IDN_R_20240100000_01D_30S_MO.crx.gz")

# You can read multiple files from the same station by passing a list of file paths
# header, lf = gt.read_rinex_obs(["./data/file1.crx.gz", "./data/file2.crx.gz"])

# header is a dataclass containing RINEX file header information
print(header)
# RinexObsHeader(
#     version='3.04',
#     constellation='MIXED',
#     marker_name='CIBG',
#     marker_type='GEODETIC',
#     rx_ecef=(-1837003.1909, 6065631.1631, -716184.055),
#     rx_geodetic=(-6.490367937958374, 106.84916836419953, 173.0000212144293),
#     sampling_interval=30,
#     leap_seconds=18,
# )

# lf is a polars LazyFrame, you can collect it to get a DataFrame.
# By default, time is in UTC timezone. You can keep it in GPS time by passing `utc=False` to `read_rinex_obs`.
print(lf.collect())
# shape: (180_027, 71)
# ┌─────────────────────────┬─────────┬─────┬──────────┬──────────┬──────┬──────┬──────────┬───┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
# │ time                    ┆ station ┆ prn ┆ C1C      ┆ C1P      ┆ C1X  ┆ C1Z  ┆ C2C      ┆ … ┆ S5X  ┆ S6I  ┆ S6X  ┆ S7D  ┆ S7I  ┆ S7X  ┆ S8X  │
# │ ---                     ┆ ---     ┆ --- ┆ ---      ┆ ---      ┆ ---  ┆ ---  ┆ ---      ┆   ┆ ---  ┆ ---  ┆ ---  ┆ ---  ┆ ---  ┆ ---  ┆ ---  │
# │ datetime[ms, UTC]       ┆ cat     ┆ cat ┆ f64      ┆ f64      ┆ f64  ┆ f64  ┆ f64      ┆   ┆ f64  ┆ f64  ┆ f64  ┆ f64  ┆ f64  ┆ f64  ┆ f64  │
# ╞═════════════════════════╪═════════╪═════╪══════════╪══════════╪══════╪══════╪══════════╪═══╪══════╪══════╪══════╪══════╪══════╪══════╪══════╡
# │ 2024-01-09 23:59:42 UTC ┆ CIBG    ┆ C01 ┆ null     ┆ null     ┆ null ┆ null ┆ null     ┆ … ┆ null ┆ 42.9 ┆ null ┆ null ┆ 44.1 ┆ null ┆ null │
# │ 2024-01-09 23:59:42 UTC ┆ CIBG    ┆ C02 ┆ null     ┆ null     ┆ null ┆ null ┆ null     ┆ … ┆ null ┆ 43.0 ┆ null ┆ null ┆ 46.2 ┆ null ┆ null │
# │ 2024-01-09 23:59:42 UTC ┆ CIBG    ┆ C03 ┆ null     ┆ null     ┆ null ┆ null ┆ null     ┆ … ┆ null ┆ 44.5 ┆ null ┆ null ┆ 46.3 ┆ null ┆ null │
# │ 2024-01-09 23:59:42 UTC ┆ CIBG    ┆ C04 ┆ null     ┆ null     ┆ null ┆ null ┆ null     ┆ … ┆ null ┆ 39.9 ┆ null ┆ null ┆ 42.1 ┆ null ┆ null │
# │ 2024-01-09 23:59:42 UTC ┆ CIBG    ┆ C05 ┆ null     ┆ null     ┆ null ┆ null ┆ null     ┆ … ┆ null ┆ 41.1 ┆ null ┆ null ┆ 41.3 ┆ null ┆ null │
# │ …                       ┆ …       ┆ …   ┆ …        ┆ …        ┆ …    ┆ …    ┆ …        ┆ … ┆ …    ┆ …    ┆ …    ┆ …    ┆ …    ┆ …    ┆ …    │
# │ 2024-01-10 23:59:12 UTC ┆ CIBG    ┆ R16 ┆ 2.2936e7 ┆ 2.2936e7 ┆ null ┆ null ┆ 2.2936e7 ┆ … ┆ null ┆ null ┆ null ┆ null ┆ null ┆ null ┆ null │
# │ 2024-01-10 23:59:12 UTC ┆ CIBG    ┆ R21 ┆ 2.1521e7 ┆ 2.1521e7 ┆ null ┆ null ┆ 2.1521e7 ┆ … ┆ null ┆ null ┆ null ┆ null ┆ null ┆ null ┆ null │
# │ 2024-01-10 23:59:12 UTC ┆ CIBG    ┆ R22 ┆ 2.3833e7 ┆ 2.3833e7 ┆ null ┆ null ┆ 2.3833e7 ┆ … ┆ null ┆ null ┆ null ┆ null ┆ null ┆ null ┆ null │
# │ 2024-01-10 23:59:12 UTC ┆ CIBG    ┆ S32 ┆ 3.6030e7 ┆ null     ┆ null ┆ null ┆ null     ┆ … ┆ null ┆ null ┆ null ┆ null ┆ null ┆ null ┆ null │
# │ 2024-01-10 23:59:12 UTC ┆ CIBG    ┆ S37 ┆ 3.6282e7 ┆ null     ┆ null ┆ null ┆ null     ┆ … ┆ null ┆ null ┆ null ┆ null ┆ null ┆ null ┆ null │
# └─────────────────────────┴─────────┴─────┴──────────┴──────────┴──────┴──────┴──────────┴───┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘

If both observation and navigation files are provided, satellite azimuth and elevation angles will be calculated and included in the returned LazyFrame:

header, lf = gt.read_rinex_obs(
    "./data/rinex_obs_v3/CIBG00IDN_R_20240100000_01D_30S_MO.crx.gz",
    "./data/rinex_nav_v3/BRDC00IGS_R_20240100000_01D_MN.rnx.gz"
)

TEC calculation

From RINEX files

Directly calculate from RINEX files using calc_tec_from_rinex function:

tec_lf = gt.calc_tec_from_rinex(
    "./data/rinex_obs_v3/CIBG00IDN_R_20240100000_01D_30S_MO.crx.gz",
    "./data/rinex_nav_v3/BRDC00IGS_R_20240100000_01D_MN.rnx.gz",
    "./data/bias/CAS0OPSRAP_20240100000_01D_01D_DCB.BIA.gz",  # Optional DCB file, can be omitted if DCB correction is not needed
)

print(tec_lf.collect())
# shape: (50_147, 12)
# ┌─────────────────────────┬─────────┬─────┬───────────┬────────────┬─────────┬─────────┬───────────┬────────────┬─────────────┬────────────────────┬───────────┐
# │ time                    ┆ station ┆ prn ┆ rx_lat    ┆ rx_lon     ┆ C1_code ┆ C2_code ┆ ipp_lat   ┆ ipp_lon    ┆ stec        ┆ stec_dcb_corrected ┆ vtec      │
# │ ---                     ┆ ---     ┆ --- ┆ ---       ┆ ---        ┆ ---     ┆ ---     ┆ ---       ┆ ---        ┆ ---         ┆ ---                ┆ ---       │
# │ datetime[ms, UTC]       ┆ cat     ┆ cat ┆ f32       ┆ f32        ┆ cat     ┆ cat     ┆ f32       ┆ f32        ┆ f64         ┆ f64                ┆ f64       │
# ╞═════════════════════════╪═════════╪═════╪═══════════╪════════════╪═════════╪═════════╪═══════════╪════════════╪═════════════╪════════════════════╪═══════════╡
# │ 2024-01-09 23:59:42 UTC ┆ CIBG    ┆ C01 ┆ -6.490368 ┆ 106.849167 ┆ C2I     ┆ C6I     ┆ -6.021448 ┆ 110.041397 ┆ -65.178132  ┆ 37.369112          ┆ 28.186231 │
# │ 2024-01-09 23:59:42 UTC ┆ CIBG    ┆ C02 ┆ -6.490368 ┆ 106.849167 ┆ C2I     ┆ C6I     ┆ -5.874807 ┆ 105.12574  ┆ -92.766855  ┆ 30.478708          ┆ 27.233229 │
# │ 2024-01-09 23:59:42 UTC ┆ CIBG    ┆ C03 ┆ -6.490368 ┆ 106.849167 ┆ C2I     ┆ C6I     ┆ -5.987422 ┆ 107.10218  ┆ -99.906077  ┆ 27.888606          ┆ 27.553764 │
# │ 2024-01-09 23:59:42 UTC ┆ CIBG    ┆ C05 ┆ -6.490368 ┆ 106.849167 ┆ C2I     ┆ C6I     ┆ -5.77573  ┆ 102.127449 ┆ -80.838063  ┆ 37.301633          ┆ 23.284567 │
# │ 2024-01-09 23:59:42 UTC ┆ CIBG    ┆ C06 ┆ -6.490368 ┆ 106.849167 ┆ C2I     ┆ C6I     ┆ -2.625823 ┆ 105.790565 ┆ -117.679878 ┆ 30.499514          ┆ 20.802594 │
# │ …                       ┆ …       ┆ …   ┆ …         ┆ …          ┆ …       ┆ …       ┆ …         ┆ …          ┆ …           ┆ …                  ┆ …         │
# │ 2024-01-10 23:59:12 UTC ┆ CIBG    ┆ G18 ┆ -6.490368 ┆ 106.849167 ┆ C1C     ┆ C2W     ┆ -9.357401 ┆ 107.007019 ┆ 74.830984   ┆ 23.49472           ┆ 18.498105 │
# │ 2024-01-10 23:59:12 UTC ┆ CIBG    ┆ G23 ┆ -6.490368 ┆ 106.849167 ┆ C1C     ┆ C2W     ┆ -5.178424 ┆ 108.647789 ┆ 76.563659   ┆ 25.358676          ┆ 21.648637 │
# │ 2024-01-10 23:59:12 UTC ┆ CIBG    ┆ G25 ┆ -6.490368 ┆ 106.849167 ┆ C1C     ┆ C2W     ┆ -5.254835 ┆ 109.935173 ┆ 110.055906  ┆ 37.104073          ┆ 27.626465 │
# │ 2024-01-10 23:59:12 UTC ┆ CIBG    ┆ G28 ┆ -6.490368 ┆ 106.849167 ┆ C1C     ┆ C2W     ┆ -5.297853 ┆ 104.2929   ┆ 72.823386   ┆ 23.382123          ┆ 18.556846 │
# │ 2024-01-10 23:59:12 UTC ┆ CIBG    ┆ G31 ┆ -6.490368 ┆ 106.849167 ┆ C1C     ┆ C2W     ┆ -7.392913 ┆ 102.960022 ┆ 73.01637    ┆ 30.59289           ┆ 20.97296  │
# └─────────────────────────┴─────────┴─────┴───────────┴────────────┴─────────┴─────────┴───────────┴────────────┴─────────────┴────────────────────┴───────────┘

From DataFrame or LazyFrame

If you wish to calculate TEC from an existing polars DataFrame or LazyFrame (e.g., after some custom preprocessing), you can use the calc_tec_from_df function:

header, lf = gt.read_rinex_obs(
    "./data/rinex_obs_v3/CIBG00IDN_R_20240100000_01D_30S_MO.crx.gz",
    "./data/rinex_nav_v3/BRDC00IGS_R_20240100000_01D_MN.rnx.gz"
)

# ...
# Perform any custom preprocessing on lf if needed
# ...

tec_lf = gt.calc_tec_from_df(lf, header, "./data/bias/CAS0OPSRAP_20240100000_01D_01D_DCB.BIA.gz")

From parquet file

Reading RINEX files is time-consuming, accounting for at least 90% of the total calculation time. Thus, if you need to perform TEC calculation multiple times on the same RINEX files (e.g., when tuning configuration), it is recommended to save the parsed LazyFrame to a parquet file after the first read, and then use calc_tec_from_parquet for subsequent TEC calculations:

header, lf = gt.read_rinex_obs(
    "./data/rinex_obs_v3/CIBG00IDN_R_20240100000_01D_30S_MO.crx.gz",
    "./data/rinex_nav_v3/BRDC00IGS_R_20240100000_01D_MN.rnx.gz"
)

# ...
# Perform any custom preprocessing on lf if needed
# ...

# Note: Make sure to include header information when saving to parquet. Polars also
# preserves whether the time column is timezone-aware UTC or timezone-naive GPS time.
lf.sink_parquet("./data/cibg_obs_2024010.parquet", metadata=header.to_metadata())

tec_lf = gt.calc_tec_from_parquet(
    "./data/cibg_obs_2024010.parquet",
    "./data/bias/CAS0OPSRAP_20240100000_01D_01D_DCB.BIA.gz"
)

Configuration

You can customize the TEC calculation process using the TECConfig dataclass:

# To see the default configuration
print(gt.TECConfig())
# TECConfig(
#     constellations='CG',
#     ipp_height=400,
#     min_elevation=30.0,
#     min_snr=30.0,
#     c1_codes={
#         '2': {
#             'G': ['C1']
#         },
#         '3': {
#             'C': ['C2I', 'C2D', 'C2X', 'C1I', 'C1D', 'C1X', 'C2W', 'C1C'],
#             'G': ['C1W', 'C1C', 'C1X']
#         },
#     },
#     c2_codes={
#         '2': {
#             'G': ['C2', 'C5']
#         },
#         '3': {
#             'C': ['C6I', 'C6D', 'C6X', 'C7I', 'C7D', 'C7X', 'C5I', 'C5D', 'C5X'],
#             'G': ['C2W', 'C2C', 'C2X', 'C5W', 'C5C', 'C5X']
#         },
#     },
#     rx_bias='external',
#     mapping_function='slm',
#     retain_intermediate=None,
#     missing_bias='drop'
# )

The meaning of each parameter is as follows:

  • constellations: A string specifying which GNSS constellations to consider for TEC calculation. 'C' for Beidou, 'G' for GPS.
  • ipp_height: The assumed height of the ionospheric pierce point (IPP) in kilometers.
  • min_elevation: The minimum satellite elevation angle (in degrees) for observations to be considered in the TEC calculation.
  • min_snr: The minimum signal-to-noise ratio (in dB-Hz) for observations to be considered in the TEC calculation.
  • c1_codes: A dictionary specifying the preferred observation codes for the first frequency (C1) for each RINEX version and constellation. The codes are prioritized in the order they are listed, with the first available code being used. This parameter supports partial setting (e.g., c1_codes={'3': {'C': [...]} } to only set for Beidou in RINEX version 3, and use default for others).
  • c2_codes: A dictionary specifying the preferred observation codes for the second frequency (C2) for each RINEX version and constellation, similar to c1_codes.
  • rx_bias: Specifies how to handle receiver bias. It can be set to 'external' to use an external DCB file for correction, 'mstd' to use the minimum standard deviation method for estimation, 'lsq' to use least squares estimation, or None to skip receiver bias correction. Note that the receiver bias estimation is only applicable after the satellite bias has been corrected using an external DCB file (e.g., from IGS). If no external DCB file is provided, this parameter will be ignored. The 'mstd' and 'lsq' methods are for stations that are not included in the external DCB file.
  • mapping_function: The mapping function to use for converting slant TEC to vertical TEC. It can be set to 'slm' for the Single Layer Model or 'mslm' for the Modified Single Layer Model.
  • retain_intermediate: Names of intermediate columns to retain in the output DataFrame. It can be set to None to discard all intermediate columns, 'all' to retain all intermediate columns, or a list of column names to keep specific ones.
  • missing_bias: Specifies how to handle observations whose satellite or receiver bias cannot be matched from the provided DCB file. It can be set to 'drop' to keep the previous behavior, 'warn' to drop and emit a warning, 'keep_uncorrected' to retain observations and treat missing bias as zero, or 'error' to fail fast.

When using calc_tec_from_df or calc_tec_from_parquet, the time scale is expressed by the Polars time column type. Use timezone-aware datetime[ms, UTC] for UTC time, and timezone-naive datetime[ms] for GPS time. Parquet preserves this timezone information, so saved observation files keep the same UTC/GPS semantics when read back. Other timezones are rejected to avoid ambiguous UTC/GPS conversions.

Benchmarks (on M2 Pro 12-Core CPU)

Task Time (s)
Read RINEX v2 (3.65 MB) 0.1362
Read RINEX v3 (14.02 MB) 0.7397
Read RINEX v3 (6.05 MB Hatanaka-compressed) 1.2468
Read RINEX v3 (2.34 MB Hatanaka-compressed) 0.5653
Calculate TEC from RINEX v2 (3.65 MB) 0.1457
Calculate TEC from RINEX v3 (14.02 MB) 0.7532
Calculate TEC from RINEX v3 (6.05 MB Hatanaka-compressed) 1.3067
Calculate TEC from RINEX v3 (2.34 MB Hatanaka-compressed) 0.5908

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pygnss_tec-0.4.2.tar.gz (28.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pygnss_tec-0.4.2-cp314-cp314t-win_amd64.whl (570.1 kB view details)

Uploaded CPython 3.14tWindows x86-64

pygnss_tec-0.4.2-cp314-cp314t-win32.whl (585.1 kB view details)

Uploaded CPython 3.14tWindows x86

pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_x86_64.whl (687.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_i686.whl (759.7 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ i686

pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_armv7l.whl (714.2 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARMv7l

pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_aarch64.whl (659.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

pygnss_tec-0.4.2-cp314-cp314t-macosx_11_0_arm64.whl (608.9 kB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

pygnss_tec-0.4.2-cp314-cp314t-macosx_10_12_x86_64.whl (645.4 kB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

pygnss_tec-0.4.2-cp310-abi3-win_amd64.whl (572.4 kB view details)

Uploaded CPython 3.10+Windows x86-64

pygnss_tec-0.4.2-cp310-abi3-win32.whl (587.8 kB view details)

Uploaded CPython 3.10+Windows x86

pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_x86_64.whl (690.1 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ x86-64

pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_i686.whl (763.0 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ i686

pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_armv7l.whl (716.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARMv7l

pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_aarch64.whl (662.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

pygnss_tec-0.4.2-cp310-abi3-macosx_11_0_arm64.whl (611.2 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pygnss_tec-0.4.2-cp310-abi3-macosx_10_12_x86_64.whl (647.8 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file pygnss_tec-0.4.2.tar.gz.

File metadata

  • Download URL: pygnss_tec-0.4.2.tar.gz
  • Upload date:
  • Size: 28.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2.tar.gz
Algorithm Hash digest
SHA256 6e415f721d5f1461fe23485d4a9280de2ca352e022c4b46477a71536b8cac3a4
MD5 7d739ba280604a935e3d1a55788c7cee
BLAKE2b-256 6afb0a3e2c0c10552a199e8d69694f7f2dfd7ce3289b39f3b6ef5f40a7c56ab7

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 570.1 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 69335a4efcbba91febbccb72b1d4fbc26f98c110fa3fe785d0bfbc1988a95243
MD5 b200b5d9643596de87a63ec38d3f6e74
BLAKE2b-256 4854e87462a47d8409ba1785ee69021acef38c5e6617eafdf98d75f9d3a28e6b

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp314-cp314t-win32.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp314-cp314t-win32.whl
  • Upload date:
  • Size: 585.1 kB
  • Tags: CPython 3.14t, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp314-cp314t-win32.whl
Algorithm Hash digest
SHA256 e86165ad35c629a4dc087886670eeac6c5058d1d09bf6589678057b0ffc454aa
MD5 9b3fa0fd4f85b0d80d5e29b7d3bded1b
BLAKE2b-256 0600f1b393dbfb4a2f6cd1c0ca132ee85aa71cee21ace7266002b97c3fd99cf7

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 687.6 kB
  • Tags: CPython 3.14t, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3f20d3a08df307e82a2f724100a4b99ea517e06db31c71f2bf2fd97119c34a92
MD5 e815eb9b84e32e5842441be13c7f9556
BLAKE2b-256 ca22f13e05be29f7017d4af13733c988751b0e576a57f251061dc649cd8f53ba

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_i686.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_i686.whl
  • Upload date:
  • Size: 759.7 kB
  • Tags: CPython 3.14t, manylinux: glibc 2.28+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_i686.whl
Algorithm Hash digest
SHA256 2be2cc25e212980ad4e3bfe50531e6d9e0f4fb7510595a120ce31d727284f6ad
MD5 57fb67a9fd34cdcc5ed3d38a0d3d97bf
BLAKE2b-256 e90842ff3ad8c6167f14d2e084df54d2025ec8ef03dd78d1c57afb4ccecc4e23

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_armv7l.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_armv7l.whl
  • Upload date:
  • Size: 714.2 kB
  • Tags: CPython 3.14t, manylinux: glibc 2.28+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 4b3ef13b821919148006709caf54dea3a48654f8ebda3ba559ea88cde26fdfca
MD5 a2f9c42a1c54eb1e1b1c929b0fa5b36f
BLAKE2b-256 a720172f43e41ff6e4ca2bf481212071891a5339c0a2abc2c160896a3e77556a

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 659.6 kB
  • Tags: CPython 3.14t, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ed50bfc478dc1e6bd5c906132b9625d21864838b097962eabbcc81c9f1fb25a3
MD5 db79e03d0c4939ba2084e251282991ce
BLAKE2b-256 e00da20ce691223196d82ad6de69931bdef81ed02b7abe7c9dbb762e60128b3f

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp314-cp314t-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 608.9 kB
  • Tags: CPython 3.14t, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 233192f2dcbd4842f74b214abf8ea5540f84aabcc0ee8b20cd40f53bab5bee03
MD5 d0d3f62e8448ee2c96592d191bdfd14e
BLAKE2b-256 0ef057497c7614c37a28659b43b6e83afa96ca9aa67feea28c971d3e2779a8b5

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp314-cp314t-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp314-cp314t-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 645.4 kB
  • Tags: CPython 3.14t, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6b28bef1ecfe381e65075e5cc6c80e2fa94065466f823bfc9dea467c3f5296f5
MD5 ac6bff56bfca1c256fe1a6619311835c
BLAKE2b-256 9634ecdd8d28ed9e4866488026ba83d86ff7269a4454299aa352fbfba8de4f37

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 572.4 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 80ea027216b07cb2590bd8c5a2f71edabc5e3fb273a455fb5e2e809a00243ba7
MD5 769fcb4c73efd22edcfeb1e4affd2b55
BLAKE2b-256 f9bebb4a078b09922f5e561e256797389a5cb9d0d8a1948cf09f1c0ab220c9f4

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp310-abi3-win32.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp310-abi3-win32.whl
  • Upload date:
  • Size: 587.8 kB
  • Tags: CPython 3.10+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 8699c9fffd4e522001d72d23398371074833f9d90352b65d9bd2ea31bfe227a7
MD5 179af89aec444cd3975ff9599098d866
BLAKE2b-256 3fbb1682664493ceb3689b6088ca59d5e5ed847f9f798de3f20c062a997fe525

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 690.1 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.28+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 99418dc186e2b6677048e2d4b794d1c91274e6d6b0e38eda4f85d05950f26135
MD5 2a6152e095fab1488ed0a50b6082cd93
BLAKE2b-256 1740da1cba514fb154def0e20c5b56de14a7799a7df337f92bcd042d0a7e108a

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_i686.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_i686.whl
  • Upload date:
  • Size: 763.0 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.28+ i686
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_i686.whl
Algorithm Hash digest
SHA256 8aeb3fc54fbea1df30940d5ab99eda7fdddc3ea6ce8dd6d38382347f90a377b5
MD5 cecdeebc21ce311369e74d34b109d2bd
BLAKE2b-256 11cede34a2739ee57cd62f625b6c4a9010b761704854f1a1269c4763d8de29ae

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_armv7l.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_armv7l.whl
  • Upload date:
  • Size: 716.4 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.28+ ARMv7l
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_armv7l.whl
Algorithm Hash digest
SHA256 0a95d1170779a102ffa4c0d126acf1fb9730143cc09363dd66470e8d989d3294
MD5 3adfe70a1248739f61bcc7dcd65eaabf
BLAKE2b-256 6b2b814b49e9fdde991fd045cb8cc4e0693da91d713bc8d4e6ff87c29aa23b61

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 662.3 kB
  • Tags: CPython 3.10+, manylinux: glibc 2.28+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d8aa692c25d3c79292caabca267ea5ae756b61fa2e0e49abb7816af9a86029cf
MD5 fa13ba1e13745cae4f5c1b53b19cba47
BLAKE2b-256 efbfa27f864a25635b716053710bc717d5a7afbb913229361688d13986752c4e

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp310-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 611.2 kB
  • Tags: CPython 3.10+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c4a6299bcd6b2c899dd28e2f9f2c9abe31ae6437e8ddd4af9012deb5cbe38e08
MD5 38d82425707887dce0d580cdf1ecae51
BLAKE2b-256 86b1dd275b3b6e5d714ed391c9b571a294a014fea9c180ac37d9334b24a49ee6

See more details on using hashes here.

File details

Details for the file pygnss_tec-0.4.2-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: pygnss_tec-0.4.2-cp310-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 647.8 kB
  • Tags: CPython 3.10+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for pygnss_tec-0.4.2-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5891a302b05e554225e541bef90399edb6ca845f8380fc87b0029e7f56402928
MD5 a51bb6092a8dc0c4e0fd8afd42e450d9
BLAKE2b-256 5a15b42caaab66a72c2b8312b7243189946f9d3784cfdad3cf72ba7ce549c355

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page