pub trait Measurement: Copy + TimeTagged {
type MeasurementSize: DimName;
// Required methods
fn fields() -> Vec<Field>;
fn from_observation(
epoch: Epoch,
obs: OVector<f64, Self::MeasurementSize>,
) -> Self
where DefaultAllocator: Allocator<Self::MeasurementSize>;
fn observation(&self) -> OVector<f64, Self::MeasurementSize>
where DefaultAllocator: Allocator<Self::MeasurementSize>;
}
Expand description
A trait defining a measurement that can be used in the orbit determination process.
Required Associated Types§
Sourcetype MeasurementSize: DimName
type MeasurementSize: DimName
Defines how much data is measured. For example, if measuring range and range rate, this should be of size 2 (nalgebra::U2).
Required Methods§
Sourcefn fields() -> Vec<Field>
fn fields() -> Vec<Field>
Returns the fields for this kind of measurement.
The metadata must include a unit
field with the unit.
Sourcefn from_observation(
epoch: Epoch,
obs: OVector<f64, Self::MeasurementSize>,
) -> Self
fn from_observation( epoch: Epoch, obs: OVector<f64, Self::MeasurementSize>, ) -> Self
Initializes a new measurement from the provided data.
Sourcefn observation(&self) -> OVector<f64, Self::MeasurementSize>
fn observation(&self) -> OVector<f64, Self::MeasurementSize>
Returns the measurement/observation as a vector.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.