Class AbstractMeasurement<T extends ObservedMeasurement<T>>
- java.lang.Object
-
- org.orekit.estimation.measurements.AbstractMeasurement<T>
-
- Type Parameters:
T
- the type of the measurement
- All Implemented Interfaces:
Comparable<ComparableMeasurement>
,ComparableMeasurement
,ObservedMeasurement<T>
,TimeStamped
- Direct Known Subclasses:
AngularAzEl
,AngularRaDec
,InterSatellitesRange
,Phase
,Position
,PV
,Range
,RangeRate
,TurnAroundRange
public abstract class AbstractMeasurement<T extends ObservedMeasurement<T>> extends Object implements ObservedMeasurement<T>
Abstract class handling measurements boilerplate.- Since:
- 8.0
- Author:
- Luc Maisonobe
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractMeasurement(AbsoluteDate date, double[] observed, double[] sigma, double[] baseWeight, List<Integer> propagatorsIndices, ParameterDriver... supportedParameters)
Deprecated.since 9.3, replaced bewAbstractMeasurement(AbsoluteDate, double[], double[], double[], List)
followed byaddParameterDriver(ParameterDriver)
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<Integer> propagatorsIndices, ParameterDriver... supportedParameters)
Deprecated.since 9.3, replaced bewAbstractMeasurement(AbsoluteDate, double, double, double, List)
followed byaddParameterDriver(ParameterDriver)
protected
AbstractMeasurement(AbsoluteDate date, double observed, double sigma, double baseWeight, List<ObservableSatellite> satellites)
Simple constructor for mono-dimensional measurements.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method 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 measurementstatic TimeStampedFieldPVCoordinates<org.hipparchus.analysis.differentiation.DerivativeStructure>
getCoordinates(SpacecraftState state, int firstDerivative, org.hipparchus.analysis.differentiation.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()
Deprecated.as of 9.3, replaced bygetSatellites()
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 org.hipparchus.RealFieldElement<T>>
TsignalTimeOfFlight(TimeStampedFieldPVCoordinates<T> adjustableEmitterPV, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> receiverPosition, FieldAbsoluteDate<T> signalArrivalDate)
Compute propagation delay on a link leg (typically downlink or uplink).static double
signalTimeOfFlight(TimeStampedPVCoordinates adjustableEmitterPV, org.hipparchus.geometry.euclidean.threed.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.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.estimation.measurements.ComparableMeasurement
compareTo
-
-
-
-
Constructor Detail
-
AbstractMeasurement
@Deprecated protected AbstractMeasurement(AbsoluteDate date, double observed, double sigma, double baseWeight, List<Integer> propagatorsIndices, ParameterDriver... supportedParameters)
Deprecated.since 9.3, replaced bewAbstractMeasurement(AbsoluteDate, double, double, double, List)
followed byaddParameterDriver(ParameterDriver)
Simple constructor for mono-dimensional measurements.At construction, a measurement is enabled.
- Parameters:
date
- date of the measurementobserved
- observed valuesigma
- theoretical standard deviationbaseWeight
- base weightpropagatorsIndices
- indices of the propagators related to this measurementsupportedParameters
- supported parameters
-
AbstractMeasurement
protected AbstractMeasurement(AbsoluteDate date, double observed, double sigma, double baseWeight, List<ObservableSatellite> satellites)
Simple constructor for mono-dimensional measurements.At construction, a measurement is enabled.
- Parameters:
date
- date of the measurementobserved
- observed valuesigma
- theoretical standard deviationbaseWeight
- base weightsatellites
- satellites related to this measurement- Since:
- 9.3
-
AbstractMeasurement
@Deprecated protected AbstractMeasurement(AbsoluteDate date, double[] observed, double[] sigma, double[] baseWeight, List<Integer> propagatorsIndices, ParameterDriver... supportedParameters)
Deprecated.since 9.3, replaced bewAbstractMeasurement(AbsoluteDate, double[], double[], double[], List)
followed byaddParameterDriver(ParameterDriver)
Simple constructor, for multi-dimensional measurements.At construction, a measurement is enabled.
- Parameters:
date
- date of the measurementobserved
- observed valuesigma
- theoretical standard deviationbaseWeight
- base weightpropagatorsIndices
- indices of the propagators related to this measurementsupportedParameters
- supported parameters
-
AbstractMeasurement
protected AbstractMeasurement(AbsoluteDate date, double[] observed, double[] sigma, double[] baseWeight, List<ObservableSatellite> satellites)
Simple constructor, for multi-dimensional measurements.At construction, a measurement is enabled.
- Parameters:
date
- date of the measurementobserved
- observed valuesigma
- theoretical standard deviationbaseWeight
- base weightsatellites
- satellites related to this measurement- Since:
- 9.3
-
-
Method Detail
-
addParameterDriver
protected void addParameterDriver(ParameterDriver driver)
Add a parameter driver.- Parameters:
driver
- parameter driver to add- Since:
- 9.3
-
getParametersDrivers
public List<ParameterDriver> getParametersDrivers()
Get the drivers for this measurement parameters, including its modifiers parameters.- Specified by:
getParametersDrivers
in interfaceObservedMeasurement<T extends ObservedMeasurement<T>>
- Returns:
- drivers for this measurement parameters, including its modifiers parameters
-
setEnabled
public void setEnabled(boolean enabled)
Enable or disable a measurement.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).
- Specified by:
setEnabled
in interfaceObservedMeasurement<T extends ObservedMeasurement<T>>
- Parameters:
enabled
- if true the measurement will be enabled, otherwise it will be disabled
-
isEnabled
public boolean isEnabled()
Check if a measurement is enabled.- Specified by:
isEnabled
in interfaceObservedMeasurement<T extends ObservedMeasurement<T>>
- Returns:
- true if the measurement is enabled
-
getDimension
public int getDimension()
Get the dimension of the measurement.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.
- Specified by:
getDimension
in interfaceObservedMeasurement<T extends ObservedMeasurement<T>>
- Returns:
- dimension of the measurement
-
getTheoreticalStandardDeviation
public double[] getTheoreticalStandardDeviation()
Get the theoretical standard deviation.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).
- Specified by:
getTheoreticalStandardDeviation
in interfaceObservedMeasurement<T extends ObservedMeasurement<T>>
- Returns:
- expected standard deviation
- See Also:
ObservedMeasurement.getBaseWeight()
-
getBaseWeight
public double[] getBaseWeight()
Get the base weight associated with the measurementThe 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).- Specified by:
getBaseWeight
in interfaceObservedMeasurement<T extends ObservedMeasurement<T>>
- Returns:
- base weight
- See Also:
ObservedMeasurement.getTheoreticalStandardDeviation()
,EstimatedMeasurement.getCurrentWeight()
-
getPropagatorsIndices
@Deprecated public List<Integer> getPropagatorsIndices()
Deprecated.as of 9.3, replaced bygetSatellites()
Get the indices of thepropagators
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.- Specified by:
getPropagatorsIndices
in interfaceObservedMeasurement<T extends ObservedMeasurement<T>>
- Returns:
- indices of the
propagators
related to this measurement
-
getSatellites
public List<ObservableSatellite> getSatellites()
Get the satellites related to this measurement.- Specified by:
getSatellites
in interfaceObservedMeasurement<T extends ObservedMeasurement<T>>
- Returns:
- satellites related to this measurement
-
theoreticalEvaluation
protected abstract EstimatedMeasurement<T> theoreticalEvaluation(int iteration, int evaluation, SpacecraftState[] states)
Estimate the theoretical value.The theoretical value does not have any modifiers applied.
- Parameters:
iteration
- iteration numberevaluation
- evaluation numberstates
- orbital states at measurement date- Returns:
- theoretical value
- See Also:
estimate(int, int, SpacecraftState[])
-
estimate
public EstimatedMeasurement<T> estimate(int iteration, int evaluation, SpacecraftState[] states)
Estimate the theoretical value of the measurement.The estimated value is the combination of the raw estimated value and all the modifiers that apply to the measurement.
- Specified by:
estimate
in interfaceObservedMeasurement<T extends ObservedMeasurement<T>>
- Parameters:
iteration
- iteration numberevaluation
- evaluations numberstates
- orbital states at measurement date- Returns:
- estimated measurement
-
getDate
public AbsoluteDate getDate()
Get the date.- Specified by:
getDate
in interfaceTimeStamped
- Returns:
- date attached to the object
-
getObservedValue
public double[] getObservedValue()
Get the observed value.The observed value is the value that was measured by the instrument.
- Specified by:
getObservedValue
in interfaceComparableMeasurement
- Returns:
- observed value
-
addModifier
public void addModifier(EstimationModifier<T> modifier)
Add a modifier.The modifiers are applied in the order in which they are added in order to
estimate
the measurement.- Specified by:
addModifier
in interfaceObservedMeasurement<T extends ObservedMeasurement<T>>
- Parameters:
modifier
- modifier to add- See Also:
ObservedMeasurement.getModifiers()
-
getModifiers
public List<EstimationModifier<T>> getModifiers()
Get the modifiers that apply to a measurement.- Specified by:
getModifiers
in interfaceObservedMeasurement<T extends ObservedMeasurement<T>>
- Returns:
- modifiers that apply to a measurement
- See Also:
ObservedMeasurement.addModifier(EstimationModifier)
-
signalTimeOfFlight
public static double signalTimeOfFlight(TimeStampedPVCoordinates adjustableEmitterPV, org.hipparchus.geometry.euclidean.threed.Vector3D receiverPosition, AbsoluteDate signalArrivalDate)
Compute propagation delay on a link leg (typically downlink or uplink).- Parameters:
adjustableEmitterPV
- position/velocity of emitter that may be adjustedreceiverPosition
- fixed position of receiver atsignalArrivalDate
, in the same frame asadjustableEmitterPV
signalArrivalDate
- date at which the signal arrives to receiver- Returns:
- positive delay between signal emission and signal reception dates
-
signalTimeOfFlight
public static <T extends org.hipparchus.RealFieldElement<T>> T signalTimeOfFlight(TimeStampedFieldPVCoordinates<T> adjustableEmitterPV, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> receiverPosition, FieldAbsoluteDate<T> signalArrivalDate)
Compute propagation delay on a link leg (typically downlink or uplink).- Type Parameters:
T
- the type of the components- Parameters:
adjustableEmitterPV
- position/velocity of emitter that may be adjustedreceiverPosition
- fixed position of receiver atsignalArrivalDate
, in the same frame asadjustableEmitterPV
signalArrivalDate
- date at which the signal arrives to receiver- Returns:
- positive delay between signal emission and signal reception dates
-
getCoordinates
public static TimeStampedFieldPVCoordinates<org.hipparchus.analysis.differentiation.DerivativeStructure> getCoordinates(SpacecraftState state, int firstDerivative, org.hipparchus.analysis.differentiation.DSFactory factory)
Get Cartesian coordinates as derivatives.The position will correspond to variables
firstDerivative
,firstDerivative + 1
andfirstDerivative + 2
. The velocity will correspond to variablesfirstDerivative + 3
,firstDerivative + 4
andfirstDerivative + 5
. The acceleration will correspond to constants.- Parameters:
state
- state of the satellite consideredfirstDerivative
- index of the first derivativefactory
- factory for building the derivatives- Returns:
- Cartesian coordinates as derivatives
-
-