Skip to main content

Package that wraps NeQuick in Python

Project description

NeQuickG and Python package

Background

Galileo is the European global navigation satellite system providing a highly accurate and global positioning service under civilian control. Galileo, and in general current GNSS, are based on the broadcasting of electromagnetic ranging signals in the L frequency band. Those satellite signals suffer from a number of impairments when propagating through the Earth’s ionosphere. Receivers operating in single frequency mode may use the single frequency ionospheric correction algorithm NeQuickG to estimate the ionospheric delay on each satellite link.

The implementation has been written in the C programming language with a Python extension and is divided in:

  • The NeQuickG JRC library (lib)
  • The test driver program (app)
  • A Python module that is built using the C code

Basic usage of the Python module

The Python library provides an interface to work with the NeQuick model. Below is an example of how to use the library to compute VTEC and STEC values.

The Python module can be installed with:

pip install nequick

Example

The following script will output the computed STEC and VTEC values for the given epoch and coordinates.

This example demonstrates how to initialize the NeQuick model, set the model coefficients, and compute the STEC and VTEC.

from datetime import datetime
from nequick import NeQuick

# Initialize the NeQuick model with coefficients
nequick = NeQuick(236.831641, -0.39362878, 0.00402826613)

# Define the epoch and coordinates
epoch = datetime(2025, 3, 21, 12, 0, 0)
station_lon, station_lat, station_alt = 40.0, -3.0, 0.0
sat_lon, sat_lat, sat_alt = 45.0, -2.0, 20000000.0

# Compute STEC (Slant Total Electron Content) between the station and the satellite
stec = nequick.compute_stec(epoch, station_lat, station_lon, station_alt, sat_lat, sat_lon, sat_alt)
print(f"STEC: {stec}")

# Compute VTEC (Vertical Total Electron Content) at the station location
vtec = nequick.compute_vtec(epoch, station_lat, station_lon)
print(f"VTEC: {vtec}")

References

  • European GNSS (Galileo) Open Service. Ionospheric Correction Algorithm for Galileo Single Frequency Users, 1.2 September 2016
  • C standard ISO/IEC 9899:2011

Compilation options

The library has been refactored so that CMake is used as the compiler manager.

Note that the FTR_MODIP_CCIR_AS_CONSTANTS has been set, therefore the CCIR grid and the MODIP files are preloaded as constants in the library

To compile the library using CMAKE, follow these instructions)

cd build
cmake [-DCMAKE_BUILD_TYPE=Debug] ..
make
make install  # optional to make the executables and library system-wide

This will create a library file libnequick.a, that can be used for other programs. To use the exeecutable:

# Execute the program to show a list of available options
NeQuickG_JRC.exe -h

Acknowledgements

The NeQuick electron density model was developed by the Abdus Salam International Center of Theoretical Physics (ICTP) and the University of Graz. The adaptation of NeQuick for the Galileo single-frequency ionospheric correction algorithm (NeQuick G) has been performed by the European Space Agency (ESA) involving the original authors and other European ionospheric scientists under various ESA contracts. The step-by-step algorithmic description of NeQuick for Galileo has been a collaborative effort of IC TP, ESA and the European Commission, including JRC.

This code is based on a fork from the code published in Github by odrisci

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

nequick-1.0.0.tar.gz (528.9 kB view details)

Uploaded Source

File details

Details for the file nequick-1.0.0.tar.gz.

File metadata

  • Download URL: nequick-1.0.0.tar.gz
  • Upload date:
  • Size: 528.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nequick-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d9b56c2d0082846053ef6437e173e85de01b824d4333f06f1a323ad393d5f5c7
MD5 8cb2e9ceaab7ba2b021fe4d89f836cc2
BLAKE2b-256 5ea3860bb2311277e0a61583cba9f007b046019b48769f275edf0f0ba45d4481

See more details on using hashes here.

Provenance

The following attestation bundles were made for nequick-1.0.0.tar.gz:

Publisher: publish.yml on mgfernan/NeQuickJRC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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