GNSS
High level definitions to work with GNSS in Rust
- Space Vehicles definitions:
SV - GNSS Constellations:
Constellation - GNSS Timescales:
Constellation.timescale()
Getting started
Add "gnss" to your Cargo.toml
= "2"
Import "gnss-rs":
extern crate gnss_rs as gnss;
Space Vehicles
A small library to define and handle satellite vehicles and constellation.
use sv;
use *;
use FromStr;
use ;
// This method lets you construct satellites that may not exist
let sv = SVnew;
assert_eq!;
assert_eq!;
assert_eq!; // only for SBAS vehicles
SBAS (Geostationary) vehicles
The library integrates a smart SBAS constellation identifier. We use the RINEX convention (PRN ranging from 0..100), therefore the true satellite number of SBAS vehicles is the PRN we use +100.
use sv;
use *;
use FromStr;
use ;
// This only works if satellite do exist in our database
assert!;
let egnos_geo23 = SVnew_sbas
.unwrap; // GEO #123
assert_eq!;
assert!; // obviously
assert_eq!; // smart builder
let launch_date = egnos_geo23.launch_date
.unwrap; // only for detailed SBAS
assert_eq!;
assert_eq!;
Other definitions and features
Other definitions and features exist. Use compilation options (crate features) to unlock them. The idea is to maintain a very minimal default library.
-
The SERDE features unlocks serialization/deserialization of the main structures defined here.
-
The DOMES features unlocks the definition of DOMES GNSS/IGS reference station, that are widely used in GNSS data processing. This number identifies a station uniquely.
-
The COSPAR features unlocks the definition of the COSPAR (Launch) ID number. This number identifies the launch of a vehicule uniquely. It is used in RINEX and other files format.
-
The SBAS feature will create a static database that defines each SBAS service areas, projected on ground as WKT/GEO objects, with one method to select a SBAS service based on Latitude and Longitude coordinates.
Relevant Ecosystems
Many libraries exist nowadays to process GNSS data or perform typical GNSS processing tasks.
Amongst them, be sure to checkout:
- Nyx: Orbital navigation
- ANISE: Earth orientation modeling and Orbital navigation
- GNSS-RTK: Precise Point Positioning, related calculations and modeling
- RINEX: files processing and management
- SP3: files processing and management
- Hifitime: Timescale and related calculations
- CGGTTS: files production and processing
License
This library is part of the NAV-Solutions framework which is licensed under Mozilla V2 Public license.