Struct nyx_space::od::GroundStation
source · pub struct GroundStation {
pub name: String,
pub elevation_mask_deg: f64,
pub latitude_deg: f64,
pub longitude_deg: f64,
pub height_km: f64,
pub frame: Frame,
pub integration_time: Option<Duration>,
pub light_time_correction: bool,
pub timestamp_noise_s: Option<GaussMarkov>,
pub range_noise_km: Option<GaussMarkov>,
pub doppler_noise_km_s: Option<GaussMarkov>,
}
Expand description
GroundStation defines a two-way ranging and doppler station.
Fields§
§name: String
§elevation_mask_deg: f64
in degrees
latitude_deg: f64
in degrees
longitude_deg: f64
in degrees
height_km: f64
in km
frame: Frame
§integration_time: Option<Duration>
Duration needed to generate a measurement (if unset, it is assumed to be instantaneous)
light_time_correction: bool
Whether to correct for light travel time
timestamp_noise_s: Option<GaussMarkov>
Noise on the timestamp of the measurement
range_noise_km: Option<GaussMarkov>
Noise on the range data of the measurement
doppler_noise_km_s: Option<GaussMarkov>
Noise on the Doppler data of the measurement
Implementations§
source§impl GroundStation
impl GroundStation
sourcepub fn from_point(
name: String,
latitude_deg: f64,
longitude_deg: f64,
height_km: f64,
frame: Frame
) -> Self
pub fn from_point( name: String, latitude_deg: f64, longitude_deg: f64, height_km: f64, frame: Frame ) -> Self
Initializes a point on the surface of a celestial object. This is meant for analysis, not for spacecraft navigation.
pub fn dss65_madrid( elevation_mask: f64, range_noise_km: GaussMarkov, doppler_noise_km_s: GaussMarkov, iau_earth: Frame ) -> Self
pub fn dss34_canberra( elevation_mask: f64, range_noise_km: GaussMarkov, doppler_noise_km_s: GaussMarkov, iau_earth: Frame ) -> Self
pub fn dss13_goldstone( elevation_mask: f64, range_noise_km: GaussMarkov, doppler_noise_km_s: GaussMarkov, iau_earth: Frame ) -> Self
sourcepub fn azimuth_elevation_of(
&self,
rx: Orbit,
almanac: &Almanac
) -> AlmanacResult<AzElRange>
pub fn azimuth_elevation_of( &self, rx: Orbit, almanac: &Almanac ) -> AlmanacResult<AzElRange>
Computes the azimuth and elevation of the provided object seen from this ground station, both in degrees. Also returns the ground station’s orbit in the frame of the receiver
Trait Implementations§
source§impl Clone for GroundStation
impl Clone for GroundStation
source§fn clone(&self) -> GroundStation
fn clone(&self) -> GroundStation
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl ConfigRepr for GroundStation
impl ConfigRepr for GroundStation
source§fn load<P>(path: P) -> Result<Self, ConfigError>
fn load<P>(path: P) -> Result<Self, ConfigError>
source§fn load_many<P>(path: P) -> Result<Vec<Self>, ConfigError>
fn load_many<P>(path: P) -> Result<Vec<Self>, ConfigError>
source§fn load_named<P>(path: P) -> Result<BTreeMap<String, Self>, ConfigError>
fn load_named<P>(path: P) -> Result<BTreeMap<String, Self>, ConfigError>
source§fn loads_many(data: &str) -> Result<Vec<Self>, ConfigError>
fn loads_many(data: &str) -> Result<Vec<Self>, ConfigError>
source§fn loads_named(data: &str) -> Result<BTreeMap<String, Self>, ConfigError>
fn loads_named(data: &str) -> Result<BTreeMap<String, Self>, ConfigError>
source§impl Debug for GroundStation
impl Debug for GroundStation
source§impl<'de> Deserialize<'de> for GroundStation
impl<'de> Deserialize<'de> for GroundStation
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl Display for GroundStation
impl Display for GroundStation
source§impl<S: Interpolatable> EventEvaluator<S> for &GroundStation
impl<S: Interpolatable> EventEvaluator<S> for &GroundStation
source§fn eval(
&self,
rx_gs_frame: &S,
almanac: Arc<Almanac>
) -> Result<f64, EventError>
fn eval( &self, rx_gs_frame: &S, almanac: Arc<Almanac> ) -> Result<f64, EventError>
Compute the elevation in the SEZ frame. This call will panic if the frame of the input state does not match that of the ground station.
source§fn epoch_precision(&self) -> Duration
fn epoch_precision(&self) -> Duration
Epoch precision of the election evaluator is 1 ms
source§fn value_precision(&self) -> f64
fn value_precision(&self) -> f64
Angle precision of the elevation evaluator is 1 millidegree.
source§fn eval_string(
&self,
state: &S,
almanac: Arc<Almanac>
) -> Result<String, EventError>
fn eval_string( &self, state: &S, almanac: Arc<Almanac> ) -> Result<String, EventError>
fn eval_crossing( &self, prev_state: &S, next_state: &S, almanac: Arc<Almanac> ) -> Result<bool, EventError>
source§impl PartialEq for GroundStation
impl PartialEq for GroundStation
source§fn eq(&self, other: &GroundStation) -> bool
fn eq(&self, other: &GroundStation) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Serialize for GroundStation
impl Serialize for GroundStation
source§impl TrackingDeviceSim<Spacecraft, RangeDoppler> for GroundStation
impl TrackingDeviceSim<Spacecraft, RangeDoppler> for GroundStation
source§fn measure(
&mut self,
epoch: Epoch,
traj: &Traj<Spacecraft>,
rng: Option<&mut Pcg64Mcg>,
almanac: Arc<Almanac>
) -> Result<Option<RangeDoppler>, ODError>
fn measure( &mut self, epoch: Epoch, traj: &Traj<Spacecraft>, rng: Option<&mut Pcg64Mcg>, almanac: Arc<Almanac> ) -> Result<Option<RangeDoppler>, ODError>
Perform a measurement from the ground station to the receiver (rx).
source§fn location(
&self,
epoch: Epoch,
frame: Frame,
almanac: Arc<Almanac>
) -> AlmanacResult<Orbit>
fn location( &self, epoch: Epoch, frame: Frame, almanac: Arc<Almanac> ) -> AlmanacResult<Orbit>
fn measure_instantaneous( &mut self, rx: Spacecraft, rng: Option<&mut Pcg64Mcg>, almanac: Arc<Almanac> ) -> Result<Option<RangeDoppler>, ODError>
impl StructuralPartialEq for GroundStation
Auto Trait Implementations§
impl Freeze for GroundStation
impl RefUnwindSafe for GroundStation
impl Send for GroundStation
impl Sync for GroundStation
impl Unpin for GroundStation
impl UnwindSafe for GroundStation
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> FromDhall for Twhere
T: DeserializeOwned,
impl<T> FromDhall for Twhere
T: DeserializeOwned,
fn from_dhall(v: &Value) -> Result<T, Error>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.