T
- the type of the measurementComparable<T>
, ComparableMeasurement
, ObservedMeasurement<T>
, TimeStamped
AngularAzEl
, AngularRaDec
, InterSatellitesRange
, Phase
, PV
, Range
, RangeRate
, TurnAroundRange
public abstract class AbstractMeasurement<T extends ObservedMeasurement<T>> extends Object implements ObservedMeasurement<T>
Modifier | Constructor | Description |
---|---|---|
protected |
AbstractMeasurement(AbsoluteDate date,
double[] observed,
double[] sigma,
double[] baseWeight,
List<Integer> propagatorsIndices,
ParameterDriver... supportedParameters) |
Simple constructor, for multi-dimensional measurements.
|
protected |
AbstractMeasurement(AbsoluteDate date,
double observed,
double sigma,
double baseWeight,
List<Integer> propagatorsIndices,
ParameterDriver... supportedParameters) |
Simple constructor for mono-dimensional measurements.
|
Modifier and Type | Method | Description |
---|---|---|
void |
addModifier(EstimationModifier<T> modifier) |
Add a modifier.
|
EstimatedMeasurement<T> |
estimate(int iteration,
int evaluation,
SpacecraftState[] states) |
Estimate the theoretical value of the measurement.
|
double[] |
getBaseWeight() |
Get the base weight associated with the measurement
|
static TimeStampedFieldPVCoordinates<DerivativeStructure> |
getCoordinates(SpacecraftState state,
int firstDerivative,
DSFactory factory) |
Get Cartesian coordinates as derivatives.
|
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.
|
List<Integer> |
getPropagatorsIndices() |
Get the indices of the
propagators
related to this measurement. |
double[] |
getTheoreticalStandardDeviation() |
Get the theoretical standard deviation.
|
boolean |
isEnabled() |
Check if a measurement is enabled.
|
void |
setEnabled(boolean enabled) |
Enable or disable a measurement.
|
static <T extends RealFieldElement<T>> |
signalTimeOfFlight(TimeStampedFieldPVCoordinates<T> adjustableEmitterPV,
FieldVector3D<T> receiverPosition,
FieldAbsoluteDate<T> signalArrivalDate) |
Compute propagation delay on a link leg (typically downlink or uplink).
|
static double |
signalTimeOfFlight(TimeStampedPVCoordinates adjustableEmitterPV,
Vector3D receiverPosition,
AbsoluteDate signalArrivalDate) |
Compute propagation delay on a link leg (typically downlink or uplink).
|
protected abstract EstimatedMeasurement<T> |
theoreticalEvaluation(int iteration,
int evaluation,
SpacecraftState[] states) |
Estimate the theoretical value.
|
compareTo
protected AbstractMeasurement(AbsoluteDate date, double observed, double sigma, double baseWeight, List<Integer> propagatorsIndices, ParameterDriver... supportedParameters) throws OrekitException
At construction, a measurement is enabled.
date
- date of the measurementobserved
- observed valuesigma
- theoretical standard deviationbaseWeight
- base weightpropagatorsIndices
- indices of the propagators related to this measurementsupportedParameters
- supported parametersOrekitException
- may be used in classes that extends this oneprotected AbstractMeasurement(AbsoluteDate date, double[] observed, double[] sigma, double[] baseWeight, List<Integer> propagatorsIndices, ParameterDriver... supportedParameters) throws OrekitException
At construction, a measurement is enabled.
date
- date of the measurementobserved
- observed valuesigma
- theoretical standard deviationbaseWeight
- base weightpropagatorsIndices
- indices of the propagators related to this measurementsupportedParameters
- supported parametersOrekitException
- may be used in classes that extends this onepublic 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()
public List<Integer> getPropagatorsIndices()
propagators
related to this measurement.
The propagators are indexed starting from 0 and ordered according to
the order of the propagators builders
in the orbit determination engine used.
getPropagatorsIndices
in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
propagators
related to this measurementprotected abstract EstimatedMeasurement<T> theoreticalEvaluation(int iteration, int evaluation, SpacecraftState[] states) throws OrekitException
The theoretical value does not have any modifiers applied.
iteration
- iteration numberevaluation
- evaluation numberstates
- orbital states at measurement dateOrekitException
- if value cannot be computedestimate(int, int, SpacecraftState[])
public EstimatedMeasurement<T> estimate(int iteration, int evaluation, SpacecraftState[] states) 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 numberstates
- orbital states 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 ComparableMeasurement
#getDimension()
public void addModifier(EstimationModifier<T> modifier) throws OrekitException
The modifiers are applied in the order in which they are added in order to
estimate
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)
public static double signalTimeOfFlight(TimeStampedPVCoordinates adjustableEmitterPV, Vector3D receiverPosition, AbsoluteDate signalArrivalDate)
adjustableEmitterPV
- position/velocity of emitter that may be adjustedreceiverPosition
- fixed position of receiver at signalArrivalDate
,
in the same frame as adjustableEmitterPV
signalArrivalDate
- date at which the signal arrives to receiverpublic static <T extends RealFieldElement<T>> T signalTimeOfFlight(TimeStampedFieldPVCoordinates<T> adjustableEmitterPV, FieldVector3D<T> receiverPosition, FieldAbsoluteDate<T> signalArrivalDate)
T
- the type of the componentsadjustableEmitterPV
- position/velocity of emitter that may be adjustedreceiverPosition
- fixed position of receiver at signalArrivalDate
,
in the same frame as adjustableEmitterPV
signalArrivalDate
- date at which the signal arrives to receiverpublic static TimeStampedFieldPVCoordinates<DerivativeStructure> getCoordinates(SpacecraftState state, int firstDerivative, DSFactory factory)
The position will correspond to variables firstDerivative
,
firstDerivative + 1
and firstDerivative + 2
.
The velocity will correspond to variables firstDerivative + 3
,
firstDerivative + 4
and firstDerivative + 5
.
The acceleration will correspond to constants.
state
- state of the satellite consideredfirstDerivative
- index of the first derivativefactory
- factory for building the derivativesCopyright © 2002-2018 CS Systèmes d'information. All rights reserved.