Crate geoveil_mp

Crate geoveil_mp 

Source
Expand description

§GeoVeil-MP: GNSS Multipath Analysis Library

A high-performance Rust library for analyzing multipath effects in GNSS observations. Part of the GeoVeil suite for GNSS signal quality analysis.

§Features

  • RINEX Support: Full support for RINEX v2.xx, v3.xx, and v4.xx observation files
  • Navigation Files: Support for broadcast ephemerides (RINEX NAV) and precise orbits (SP3)
  • Multi-GNSS: GPS, GLONASS, Galileo, BeiDou, QZSS, NavIC/IRNSS, SBAS
  • Multipath Analysis: Code multipath estimation using linear combinations
  • Cycle Slip Detection: Ionospheric residuals and code-phase combinations
  • Position Estimation: Least squares positioning from pseudoranges
  • R Plotting: Integration with R for high-quality visualizations
  • Python Bindings: Full Python API via PyO3

§Quick Start

use geoveil_mp::prelude::*;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Load RINEX observation file
    let obs = RinexObsReader::new().read("observation.24o")?;
     
    // Configure analysis
    let config = AnalysisConfig::default()
        .with_elevation_cutoff(10.0)
        .with_systems(&["G", "E", "R", "C"]);
     
    // Run multipath analysis
    let analyzer = MultipathAnalyzer::new(obs, config);
    let results = analyzer.analyze()?;
     
    // Export results
    results.to_csv("results.csv")?;
     
    Ok(())
}

Re-exports§

pub use rinex::RinexObsReader;
pub use rinex::ObservationData;
pub use rinex::Satellite;
pub use rinex::GnssSystem;
pub use rinex::SignalCode;
pub use rinex::ObservationType;
pub use rinex::EpochObservations;
pub use rinex::ObservationValue;
pub use rinex::Header;
pub use navigation::Sp3Data;
pub use navigation::Sp3Reader;
pub use navigation::Ephemeris;
pub use navigation::SatellitePosition;
pub use navigation::Kepler2Ecef;
pub use navigation::GlonassInterpolator;
pub use navigation::NevilleInterpolator;
pub use navigation::SatellitePositionProvider;
pub use analysis::MultipathAnalyzer;
pub use analysis::MultipathEstimate;
pub use analysis::MultipathStatistics;
pub use analysis::CycleSlipDetector;
pub use analysis::CycleSlip;
pub use analysis::CycleSlipMethod;
pub use analysis::IonosphericAnalyzer;
pub use analysis::PositionEstimator;
pub use analysis::PositionSolution;
pub use analysis::AnalysisConfig;
pub use analysis::AnalysisResults;
pub use analysis::Statistics;
pub use plotting::RPlotter;
pub use plotting::PlotConfig;
pub use plotting::ColorScheme;
pub use utils::Ecef;
pub use utils::Geodetic;
pub use utils::AzEl;
pub use utils::Epoch;
pub use utils::GpsTime;
pub use utils::calculate_azel;
pub use utils::ecef_to_geodetic;
pub use utils::geodetic_to_ecef;
pub use utils::elevation_weight;
pub use utils::ionospheric_mapping;
pub use utils::tropospheric_mapping;
pub use utils::Error;
pub use utils::Result;

Modules§

analysis
GNSS analysis algorithms.
navigation
Navigation and ephemeris processing.
plotting
R plotting integration for GNSS multipath visualization.
prelude
Prelude module for common imports
rinex
RINEX file parsing and handling.
utils
Utility modules for the GNSS multipath library.

Constants§

VERSION
Library version