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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f66fb31d805ed30c847c77afec505471784e14c553b0398dcc3e38e7e5acb06b
|
|
| MD5 |
617362fcdfd0585929870a01ff3f5d91
|
|
| BLAKE2b-256 |
cf3bb8eefc47326a1f8a1063ce28e137c63f6aaa20a6fd846da5a27806501727
|
Provenance
The following attestation bundles were made for nequick-0.3.0.tar.gz:
Publisher:
publish.yml on mgfernan/NeQuickJRC
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nequick-0.3.0.tar.gz -
Subject digest:
f66fb31d805ed30c847c77afec505471784e14c553b0398dcc3e38e7e5acb06b - Sigstore transparency entry: 212871870
- Sigstore integration time:
-
Permalink:
mgfernan/NeQuickJRC@f7ec78ff2adb226c53b54d13ba12296b7b8a248c -
Branch / Tag:
refs/heads/master - Owner: https://github.com/mgfernan
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f7ec78ff2adb226c53b54d13ba12296b7b8a248c -
Trigger Event:
workflow_dispatch
-
Statement type: