T
- the type of the measurementpublic abstract class AbstractMeasurement<T extends ObservedMeasurement<T>> extends Object implements ObservedMeasurement<T>
Modifier | Constructor and Description |
---|---|
protected |
AbstractMeasurement(AbsoluteDate date,
double[] observed,
double[] sigma,
double[] baseWeight,
ParameterDriver... supportedParameters)
Simple constructor, for multi-dimensional measurements.
|
protected |
AbstractMeasurement(AbsoluteDate date,
double observed,
double sigma,
double baseWeight,
ParameterDriver... supportedParameters)
Simple constructor for mono-dimensional measurements.
|
Modifier and Type | Method and Description |
---|---|
void |
addModifier(EstimationModifier<T> modifier)
Add a modifier.
|
EstimatedMeasurement<T> |
estimate(int iteration,
int evaluation,
SpacecraftState state)
Estimate the theoretical value of the measurement.
|
double[] |
getBaseWeight()
Get the base weight associated with the measurement
|
AbsoluteDate |
getDate()
Get the date.
|
int |
getDimension()
Get the dimension of the measurement.
|
List<EstimationModifier<T>> |
getModifiers()
Get the modifiers that apply to a measurement.
|
double[] |
getObservedValue()
Get the observed value.
|
List<ParameterDriver> |
getParametersDrivers()
Get the drivers for this measurement parameters, including its modifiers parameters.
|
double[] |
getTheoreticalStandardDeviation()
Get the theoretical standard deviation.
|
boolean |
isEnabled()
Check if a measurement is enabled.
|
void |
setEnabled(boolean enabled)
Enable or disable a measurement.
|
protected abstract EstimatedMeasurement<T> |
theoreticalEvaluation(int iteration,
int evaluation,
SpacecraftState state)
Estimate the theoretical value.
|
protected AbstractMeasurement(AbsoluteDate date, double observed, double sigma, double baseWeight, ParameterDriver... supportedParameters)
At construction, a measurement is enabled.
date
- date of the measurementobserved
- observed valuesigma
- theoretical standard deviationbaseWeight
- base weightsupportedParameters
- supported parametersprotected AbstractMeasurement(AbsoluteDate date, double[] observed, double[] sigma, double[] baseWeight, ParameterDriver... supportedParameters)
At construction, a measurement is enabled.
date
- date of the measurementobserved
- observed valuesigma
- theoretical standard deviationbaseWeight
- base weightsupportedParameters
- supported parameterspublic List<ParameterDriver> getParametersDrivers()
getParametersDrivers
in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
public void setEnabled(boolean enabled)
Disabling a measurement allow to not consider it at one stage of the orbit determination (for example when it appears to be an outlier as per current estimated covariance).
setEnabled
in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
enabled
- if true the measurement will be enabled,
otherwise it will be disabledpublic boolean isEnabled()
isEnabled
in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
public int getDimension()
Dimension is the size of the array containing the value. It will be one for a scalar measurement like a range or range-rate, but 6 for a position-velocity measurement.
getDimension
in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
public double[] getTheoreticalStandardDeviation()
The theoretical standard deviation is a theoretical value used for normalizing the residuals. It acts as a weighting factor to mix appropriately measurements with different units and different accuracy. The value has the same dimension as the measurement itself (i.e. when a residual is divided by this value, it becomes dimensionless).
getTheoreticalStandardDeviation
in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
ObservedMeasurement.getBaseWeight()
public double[] getBaseWeight()
The base weight is used on residuals already normalized thanks to
ObservedMeasurement.getTheoreticalStandardDeviation()
to increase or
decrease relative effect of some measurements with respect to
other measurements. It is a dimensionless value, typically between
0 and 1 (but it can really have any non-negative value).
getBaseWeight
in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
ObservedMeasurement.getTheoreticalStandardDeviation()
,
EstimatedMeasurement.getCurrentWeight()
protected abstract EstimatedMeasurement<T> theoreticalEvaluation(int iteration, int evaluation, SpacecraftState state) throws OrekitException
The theoretical value does not have any modifiers applied.
iteration
- iteration numberevaluation
- evaluation numberstate
- orbital state at measurement dateOrekitException
- if value cannot be computedestimate(int, int, SpacecraftState)
public EstimatedMeasurement<T> estimate(int iteration, int evaluation, SpacecraftState state) throws OrekitException
The estimated value is the combination of the raw estimated value and all the modifiers that apply to the measurement.
estimate
in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
iteration
- iteration numberevaluation
- evaluations numberstate
- orbital state at measurement dateOrekitException
- if value cannot be computedpublic AbsoluteDate getDate()
getDate
in interface TimeStamped
public double[] getObservedValue()
The observed value is the value that was measured by the instrument.
getObservedValue
in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
ObservedMeasurement.getDimension()
public void addModifier(EstimationModifier<T> modifier) throws OrekitException
The modifiers are applied in the order in which they are added in order to
evaluate
the measurement.
addModifier
in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
modifier
- modifier to addOrekitException
- if there is a conflict between measurement and
modifiers parametersObservedMeasurement.getModifiers()
public List<EstimationModifier<T>> getModifiers()
getModifiers
in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
ObservedMeasurement.addModifier(EstimationModifier)
Copyright © 2002-2016 CS Systèmes d'information. All rights reserved.