5 stable releases
2.1.3 | Jan 5, 2024 |
---|---|
2.1.2 | Nov 2, 2023 |
2.1.1 | Nov 1, 2023 |
2.1.0 | Oct 14, 2023 |
2.0.0 | Oct 11, 2023 |
#125 in Geospatial
357 downloads per month
Used in 12 crates
(9 directly)
29KB
574 lines
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)
Dependencies
~2.4–5MB
~100K SLoC