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,
List<ObservableSatellite> satellites)
Simple constructor, for multi-dimensional measurements.
|
protected |
AbstractMeasurement(AbsoluteDate date,
double observed,
double sigma,
double baseWeight,
List<ObservableSatellite> satellites)
Simple constructor for mono-dimensional measurements.
|
Modifier and Type | Method and Description |
---|---|
void |
addModifier(EstimationModifier<T> modifier)
Add a modifier.
|
protected void |
addParameterDriver(ParameterDriver driver)
Add a parameter driver.
|
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<ObservableSatellite> |
getSatellites()
Get the satellites 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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
compareTo
protected AbstractMeasurement(AbsoluteDate date, double observed, double sigma, double baseWeight, List<ObservableSatellite> satellites)
At construction, a measurement is enabled.
date
- date of the measurementobserved
- observed valuesigma
- theoretical standard deviationbaseWeight
- base weightsatellites
- satellites related to this measurementprotected AbstractMeasurement(AbsoluteDate date, double[] observed, double[] sigma, double[] baseWeight, List<ObservableSatellite> satellites)
At construction, a measurement is enabled.
date
- date of the measurementobserved
- observed valuesigma
- theoretical standard deviationbaseWeight
- base weightsatellites
- satellites related to this measurementprotected void addParameterDriver(ParameterDriver driver)
driver
- parameter driver to addpublic 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()
public List<ObservableSatellite> getSatellites()
getSatellites
in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
protected abstract EstimatedMeasurement<T> theoreticalEvaluation(int iteration, int evaluation, SpacecraftState[] states)
The theoretical value does not have any modifiers applied.
iteration
- iteration numberevaluation
- evaluation numberstates
- orbital states at measurement dateestimate(int, int, SpacecraftState[])
public EstimatedMeasurement<T> estimate(int iteration, int evaluation, SpacecraftState[] states)
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 datepublic 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
public void addModifier(EstimationModifier<T> modifier)
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 addObservedMeasurement.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-2019 CS Systèmes d'information. All rights reserved.