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-0.3.0.tar.gz (527.5 kB view details)

Uploaded Source

File details

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

File metadata

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

File hashes

Hashes for nequick-0.3.0.tar.gz
Algorithm Hash digest
SHA256 f66fb31d805ed30c847c77afec505471784e14c553b0398dcc3e38e7e5acb06b
MD5 617362fcdfd0585929870a01ff3f5d91
BLAKE2b-256 cf3bb8eefc47326a1f8a1063ce28e137c63f6aaa20a6fd846da5a27806501727

See more details on using hashes here.

Provenance

The following attestation bundles were made for nequick-0.3.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