pub struct InterlinkTxSpacecraft {
pub traj: Trajectory,
pub measurement_types: IndexSet<MeasurementType>,
pub integration_time: Option<Duration>,
pub timestamp_noise_s: Option<StochasticNoise>,
pub stochastic_noises: Option<IndexMap<MeasurementType, StochasticNoise>>,
pub ab_corr: Option<Aberration>,
}Fields§
§traj: TrajectoryTrajectory of the transmitter spacercaft
measurement_types: IndexSet<MeasurementType>Measurement types supported by the link
integration_time: Option<Duration>Integration time used to generate the measurement.
timestamp_noise_s: Option<StochasticNoise>§stochastic_noises: Option<IndexMap<MeasurementType, StochasticNoise>>§ab_corr: Option<Aberration>Aberration correction used in the interlink
Implementations§
Trait Implementations§
Source§impl Clone for InterlinkTxSpacecraft
impl Clone for InterlinkTxSpacecraft
Source§fn clone(&self) -> InterlinkTxSpacecraft
fn clone(&self) -> InterlinkTxSpacecraft
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ConfigRepr for InterlinkTxSpacecraft
impl ConfigRepr for InterlinkTxSpacecraft
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 InterlinkTxSpacecraft
impl Debug for InterlinkTxSpacecraft
Source§impl<'de> Deserialize<'de> for InterlinkTxSpacecraft
impl<'de> Deserialize<'de> for InterlinkTxSpacecraft
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 ScalarSensitivityT<GroundAsset, GroundAsset, InterlinkTxSpacecraft> for ScalarSensitivity<GroundAsset, GroundAsset, InterlinkTxSpacecraft>
impl ScalarSensitivityT<GroundAsset, GroundAsset, InterlinkTxSpacecraft> for ScalarSensitivity<GroundAsset, GroundAsset, InterlinkTxSpacecraft>
Source§fn new(
msr_type: MeasurementType,
msr: &Measurement,
rx: &GroundAsset,
tx: &InterlinkTxSpacecraft,
almanac: Arc<Almanac>,
) -> Result<Self, ODError>
fn new( msr_type: MeasurementType, msr: &Measurement, rx: &GroundAsset, tx: &InterlinkTxSpacecraft, almanac: Arc<Almanac>, ) -> Result<Self, ODError>
First, we ensure that the transmitter vehicle is expressed in the same frame as the ground asset. Then we compute the AER as seen from the ground asset.
Source§impl Serialize for InterlinkTxSpacecraft
impl Serialize for InterlinkTxSpacecraft
Source§impl TrackerSensitivity<GroundAsset, GroundAsset> for InterlinkTxSpacecraftwhere
DefaultAllocator: Allocator<<Spacecraft as State>::Size> + Allocator<<Spacecraft as State>::VecLength> + Allocator<<Spacecraft as State>::Size, <Spacecraft as State>::Size>,
impl TrackerSensitivity<GroundAsset, GroundAsset> for InterlinkTxSpacecraftwhere
DefaultAllocator: Allocator<<Spacecraft as State>::Size> + Allocator<<Spacecraft as State>::VecLength> + Allocator<<Spacecraft as State>::Size, <Spacecraft as State>::Size>,
Source§fn h_tilde<M: DimName>(
&self,
msr: &Measurement,
msr_types: &IndexSet<MeasurementType>,
rx: &GroundAsset,
almanac: Arc<Almanac>,
) -> Result<OMatrix<f64, M, <GroundAsset as State>::Size>, ODError>
fn h_tilde<M: DimName>( &self, msr: &Measurement, msr_types: &IndexSet<MeasurementType>, rx: &GroundAsset, almanac: Arc<Almanac>, ) -> Result<OMatrix<f64, M, <GroundAsset as State>::Size>, ODError>
Source§impl TrackerSensitivity<Spacecraft, Spacecraft> for InterlinkTxSpacecraftwhere
DefaultAllocator: Allocator<<Spacecraft as State>::Size> + Allocator<<Spacecraft as State>::VecLength> + Allocator<<Spacecraft as State>::Size, <Spacecraft as State>::Size>,
impl TrackerSensitivity<Spacecraft, Spacecraft> for InterlinkTxSpacecraftwhere
DefaultAllocator: Allocator<<Spacecraft as State>::Size> + Allocator<<Spacecraft as State>::VecLength> + Allocator<<Spacecraft as State>::Size, <Spacecraft as State>::Size>,
Source§fn h_tilde<M: DimName>(
&self,
msr: &Measurement,
msr_types: &IndexSet<MeasurementType>,
rx: &Spacecraft,
almanac: Arc<Almanac>,
) -> Result<OMatrix<f64, M, <Spacecraft as State>::Size>, ODError>
fn h_tilde<M: DimName>( &self, msr: &Measurement, msr_types: &IndexSet<MeasurementType>, rx: &Spacecraft, almanac: Arc<Almanac>, ) -> Result<OMatrix<f64, M, <Spacecraft as State>::Size>, ODError>
Source§impl TrackingDevice<GroundAsset> for InterlinkTxSpacecraft
impl TrackingDevice<GroundAsset> for InterlinkTxSpacecraft
Source§fn measure_instantaneous(
&mut self,
rx: GroundAsset,
rng: Option<&mut Pcg64Mcg>,
almanac: Arc<Almanac>,
) -> Result<Option<Measurement>, ODError>
fn measure_instantaneous( &mut self, rx: GroundAsset, rng: Option<&mut Pcg64Mcg>, almanac: Arc<Almanac>, ) -> Result<Option<Measurement>, ODError>
Returns the Range and Doppler from pnt vehicle to ground asset (i.e. the opposed AER range and doppler data.)
Source§fn measurement_covar(
&self,
msr_type: MeasurementType,
epoch: Epoch,
) -> Result<f64, ODError>
fn measurement_covar( &self, msr_type: MeasurementType, epoch: Epoch, ) -> Result<f64, ODError>
Returns the measurement noise of this ground station.
§Methodology
Noises are modeled using a [StochasticNoise] process, defined by the sigma on the turn-on bias and on the steady state noise. The measurement noise is computed assuming that all measurements are independent variables, i.e. the measurement matrix is a diagonal matrix. The first item in the diagonal is the range noise (in km), set to the square of the steady state sigma. The second item is the Doppler noise (in km/s), set to the square of the steady state sigma of that Gauss Markov process.
Source§fn measurement_types(&self) -> &IndexSet<MeasurementType>
fn measurement_types(&self) -> &IndexSet<MeasurementType>
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>
Source§fn measure(
&mut self,
epoch: Epoch,
traj: &Traj<GroundAsset>,
rng: Option<&mut Pcg64Mcg>,
almanac: Arc<Almanac>,
) -> Result<Option<Measurement>, ODError>
fn measure( &mut self, epoch: Epoch, traj: &Traj<GroundAsset>, rng: Option<&mut Pcg64Mcg>, almanac: Arc<Almanac>, ) -> Result<Option<Measurement>, ODError>
fn measurement_bias( &self, msr_type: MeasurementType, _epoch: Epoch, ) -> Result<f64, ODError>
fn measurement_covar_matrix<M: DimName>(
&self,
msr_types: &IndexSet<MeasurementType>,
epoch: Epoch,
) -> Result<OMatrix<f64, M, M>, ODError>where
DefaultAllocator: Allocator<M, M>,
fn measurement_bias_vector<M: DimName>(
&self,
msr_types: &IndexSet<MeasurementType>,
epoch: Epoch,
) -> Result<OVector<f64, M>, ODError>where
DefaultAllocator: Allocator<M>,
Source§impl TrackingDevice<Spacecraft> for InterlinkTxSpacecraft
impl TrackingDevice<Spacecraft> for InterlinkTxSpacecraft
Source§fn measurement_covar(
&self,
msr_type: MeasurementType,
epoch: Epoch,
) -> Result<f64, ODError>
fn measurement_covar( &self, msr_type: MeasurementType, epoch: Epoch, ) -> Result<f64, ODError>
Returns the measurement noise of this ground station.
§Methodology
Noises are modeled using a StochasticNoise process, defined by the sigma on the turn-on bias and on the steady state noise. The measurement noise is computed assuming that all measurements are independent variables, i.e. the measurement matrix is a diagonal matrix. The first item in the diagonal is the range noise (in km), set to the square of the steady state sigma. The second item is the Doppler noise (in km/s), set to the square of the steady state sigma of that Gauss Markov process.
Source§fn measurement_types(&self) -> &IndexSet<MeasurementType>
fn measurement_types(&self) -> &IndexSet<MeasurementType>
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>
Source§fn measure(
&mut self,
epoch: Epoch,
traj: &Traj<Spacecraft>,
rng: Option<&mut Pcg64Mcg>,
almanac: Arc<Almanac>,
) -> Result<Option<Measurement>, ODError>
fn measure( &mut self, epoch: Epoch, traj: &Traj<Spacecraft>, rng: Option<&mut Pcg64Mcg>, almanac: Arc<Almanac>, ) -> Result<Option<Measurement>, ODError>
fn measure_instantaneous( &mut self, rx: Spacecraft, rng: Option<&mut Pcg64Mcg>, almanac: Arc<Almanac>, ) -> Result<Option<Measurement>, ODError>
fn measurement_bias( &self, msr_type: MeasurementType, _epoch: Epoch, ) -> Result<f64, ODError>
fn measurement_covar_matrix<M: DimName>(
&self,
msr_types: &IndexSet<MeasurementType>,
epoch: Epoch,
) -> Result<OMatrix<f64, M, M>, ODError>where
DefaultAllocator: Allocator<M, M>,
fn measurement_bias_vector<M: DimName>(
&self,
msr_types: &IndexSet<MeasurementType>,
epoch: Epoch,
) -> Result<OVector<f64, M>, ODError>where
DefaultAllocator: Allocator<M>,
Auto Trait Implementations§
impl Freeze for InterlinkTxSpacecraft
impl RefUnwindSafe for InterlinkTxSpacecraft
impl Send for InterlinkTxSpacecraft
impl Sync for InterlinkTxSpacecraft
impl Unpin for InterlinkTxSpacecraft
impl UnsafeUnpin for InterlinkTxSpacecraft
impl UnwindSafe for InterlinkTxSpacecraft
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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.