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, ParameterDriversProvider
Direct Known Subclasses:
MultiplexedMeasurement, PseudoMeasurement, SignalBasedMeasurement

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 Details

    • 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 measurement
      observed - observed value
      sigma - theoretical standard deviation
      baseWeight - base weight
      satellites - satellites related to this measurement
      Since:
      14.0
    • 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 measurement
      observed - observed value
      sigma - theoretical standard deviation
      baseWeight - base weight
      satellites - satellites related to this measurement
      Since:
      14.0
    • AbstractMeasurement

      protected AbstractMeasurement(AbsoluteDate date, double[] observed, MeasurementQuality measurementQuality, List<ObservableSatellite> satellites)
      Simple constructor, for multi-dimensional measurements.

      At construction, a measurement is enabled.

      Parameters:
      date - date of the measurement
      observed - observed value
      measurementQuality - measurement quality data
      satellites - satellites related to this measurement
      Since:
      14.0
  • Method Details

    • setObservedValue

      public void setObservedValue(double[] newObserved)
      Set the observed value.

      The observed value is the value that was measured by the instrument.

      Specified by:
      setObservedValue in interface ComparableMeasurement
      Parameters:
      newObserved - observed value
    • addParameterDriver

      protected void addParameterDriver(ParameterDriver driver)
      Add a parameter driver.
      Parameters:
      driver - parameter driver to add
      Since:
      9.3
    • addParametersDrivers

      protected void addParametersDrivers(List<ParameterDriver> drivers)
      Add a list of parameter drivers all at once.
      Parameters:
      drivers - list of parameter drivers to add
      Since:
      14.0
    • getParametersDrivers

      public List<ParameterDriver> getParametersDrivers()
      Get the drivers for parameters.
      Specified by:
      getParametersDrivers in interface ParameterDriversProvider
      Returns:
      drivers for parameters
    • setEnabled

      public final 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 interface ObservedMeasurement<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 interface ObservedMeasurement<T extends ObservedMeasurement<T>>
      Returns:
      true if the measurement is enabled
    • getMeasurementQuality

      public MeasurementQuality getMeasurementQuality()
      Getter for the measurement quality data as used in estimation. Note that in Orekit the crossed-terms of the covariance matrix are only used by Kalman filters, not least squares.
      Specified by:
      getMeasurementQuality in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
      Returns:
      measurement quality
    • getSatellites

      public List<ObservableSatellite> getSatellites()
      Get the satellites related to this measurement.
      Specified by:
      getSatellites in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
      Returns:
      satellites related to this measurement
    • theoreticalEvaluationWithoutDerivatives

      protected EstimatedMeasurementBase<T> theoreticalEvaluationWithoutDerivatives(int iteration, int evaluation, SpacecraftState[] states)
      Estimate the theoretical value without derivatives. The default implementation uses the computation with derivatives and ought to be overwritten for performance.

      The theoretical value does not have any modifiers applied.

      Parameters:
      iteration - iteration number
      evaluation - evaluation number
      states - orbital states at measurement date
      Returns:
      theoretical value
      Since:
      12.0
      See Also:
    • 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 number
      evaluation - evaluation number
      states - orbital states at measurement date
      Returns:
      theoretical value
      See Also:
    • estimateWithoutDerivatives

      public EstimatedMeasurementBase<T> estimateWithoutDerivatives(int iteration, int evaluation, SpacecraftState[] states)
      Estimate the theoretical value of the measurement, without derivatives. For use in orbit determination.

      The estimated value is the combination of the raw estimated value and all the modifiers that apply to the measurement.

      Specified by:
      estimateWithoutDerivatives in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
      Parameters:
      iteration - iteration number
      evaluation - evaluations number
      states - orbital states corresponding to ObservedMeasurement.getSatellites() at measurement date
      Returns:
      estimated measurement
    • estimate

      public EstimatedMeasurement<T> estimate(int iteration, int evaluation, SpacecraftState[] states)
      Estimate the theoretical value of the measurement, with derivatives.

      The estimated value is the combination of the raw estimated value and all the modifiers that apply to the measurement.

      Specified by:
      estimate in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
      Parameters:
      iteration - iteration number
      evaluation - evaluations number
      states - orbital states corresponding to ObservedMeasurement.getSatellites() at measurement date
      Returns:
      estimated measurement
    • getDate

      public AbsoluteDate getDate()
      Get the date.
      Specified by:
      getDate in interface TimeStamped
      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 interface ComparableMeasurement
      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 interface ObservedMeasurement<T extends ObservedMeasurement<T>>
      Parameters:
      modifier - modifier to add
      See Also:
    • getModifiers

      public List<EstimationModifier<T>> getModifiers()
      Get the modifiers that apply to a measurement.
      Specified by:
      getModifiers in interface ObservedMeasurement<T extends ObservedMeasurement<T>>
      Returns:
      modifiers that apply to a measurement
      See Also:
    • getCoordinates

      public static TimeStampedFieldPVCoordinates<Gradient> getCoordinates(SpacecraftState state, int firstDerivative, int freeParameters)
      Get Cartesian coordinates as derivatives.

      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.

      Parameters:
      state - state of the satellite considered
      firstDerivative - index of the first derivative
      freeParameters - total number of free parameters in the gradient
      Returns:
      Cartesian coordinates as derivatives
      Since:
      10.2
    • getParameterIndices

      protected Map<String,Integer> getParameterIndices(SpacecraftState[] states)
      Form the mapping between parameters' names and derivatives' indices.
      Parameters:
      states - observables
      Returns:
      map
      Since:
      14.0