Expand description
GNSS
High level definitions to work with GNSS in Rust
- Space Vehicles:
SV
- GNSS Constellations:
Constellation
- GNSS Timescales:
Constellation.timescale()
Getting started
Add “gnss” to your Cargo.toml
gnss-rs = "2.1"
Import “gnss-rs”:
extern crate gnss_rs as gnss;
Space Vehicles
extern crate gnss_rs as gnss;
use gnss::sv;
use gnss::prelude::*;
use std::str::FromStr;
use hifitime::TimeScale;
let sv = SV::new(Constellation::GPS, 1);
assert_eq!(sv.constellation, Constellation::GPS);
assert_eq!(sv.prn, 1);
assert_eq!(sv.timescale(), Some(TimeScale::GPST));
assert_eq!(sv, sv!("G01"));
assert_eq!(sv.launched_date(), None);
SBAS support
We support SBAS (geostationary augmentations) systems.
extern crate gnss_rs as gnss;
use gnss::sv;
use gnss::prelude::*;
use std::str::FromStr;
use hifitime::{Epoch, TimeScale};
let sv = sv!("S23");
assert_eq!(sv.constellation, Constellation::EGNOS);
let launched_date = Epoch::from_str("2021-11-01T00:00:00 UTC")
.unwrap();
assert_eq!(sv.launched_date(), Some(launched_date));
License
Licensed under either of:
- Apache Version 2.0 (LICENSE-APACHE)
- MIT (LICENSE-MIT)
Modules
- GNSS constellations
- Space vehicles
Macros
- Crates a [Constellation] from given string description.
- Creates a [SV] from given string description.
Functions
- Select an augmentation system conveniently, based on given location in decimal degrees