Class AbstractMeasurement<T extends ObservedMeasurement<T>>

    • Constructor Detail

      • 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:
        9.3
      • 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:
        9.3
    • Method Detail

      • 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
      • 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 interface ObservedMeasurement<T extends ObservedMeasurement<T>>
        Parameters:
        enabled - if true the measurement will be enabled, otherwise it will be disabled
      • 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 interface ObservedMeasurement<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 interface ObservedMeasurement<T extends ObservedMeasurement<T>>
        Returns:
        expected standard deviation
        See Also:
        ObservedMeasurement.getBaseWeight()
      • 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:
        estimate(int, int, SpacecraftState[])
      • 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:
        estimate(int, int, SpacecraftState[])
      • 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
      • 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
      • signalTimeOfFlightAdjustableEmitter

        public static double signalTimeOfFlightAdjustableEmitter​(TimeStampedPVCoordinates adjustableEmitterPV,
                                                                 Vector3D receiverPosition,
                                                                 AbsoluteDate signalArrivalDate,
                                                                 Frame frame)
        Compute propagation delay on a link leg (typically downlink or uplink).
        Parameters:
        adjustableEmitterPV - position/velocity of emitter that may be adjusted
        receiverPosition - fixed position of receiver at signalArrivalDate
        frame - inertial frame in which both adjustableEmitterPV and receiverPosition are defined
        signalArrivalDate - date at which the signal arrives to receiver
        Returns:
        positive delay between signal emission and signal reception dates
        Since:
        13.0
      • signalTimeOfFlightAdjustableEmitter

        public static double signalTimeOfFlightAdjustableEmitter​(PVCoordinatesProvider adjustableEmitter,
                                                                 AbsoluteDate approxEmissionDate,
                                                                 Vector3D receiverPosition,
                                                                 AbsoluteDate signalArrivalDate,
                                                                 Frame frame)
        Compute propagation delay on a link leg (typically downlink or uplink).
        Parameters:
        adjustableEmitter - position/velocity provider of emitter
        approxEmissionDate - approximate emission date
        receiverPosition - fixed position of receiver at signalArrivalDate
        signalArrivalDate - date at which the signal arrives to receiver
        frame - inertial frame in which receiver is defined
        Returns:
        positive delay between signal emission and signal reception dates
        Since:
        13.0
      • signalTimeOfFlightAdjustableReceiver

        public static double signalTimeOfFlightAdjustableReceiver​(Vector3D emitterPosition,
                                                                  AbsoluteDate emissionDate,
                                                                  TimeStampedPVCoordinates adjustableReceiverPV,
                                                                  AbsoluteDate approxReceptionDate,
                                                                  Frame frame)
        Compute propagation delay on a link leg (typically downlink or uplink).
        Parameters:
        emitterPosition - fixed position of emitter
        emissionDate - emission date
        adjustableReceiverPV - position/velocity of receiver that may be adjusted
        approxReceptionDate - approximate reception date
        frame - inertial frame in which both emitterPosition and adjustableReceiverPV are defined
        Returns:
        positive delay between signal emission and signal reception dates
        Since:
        13.0
      • signalTimeOfFlightAdjustableReceiver

        public static double signalTimeOfFlightAdjustableReceiver​(Vector3D emitterPosition,
                                                                  AbsoluteDate emissionDate,
                                                                  PVCoordinatesProvider adjustableReceiver,
                                                                  AbsoluteDate approxReceptionDate,
                                                                  Frame frame)
        Compute propagation delay on a link leg (typically downlink or uplink).
        Parameters:
        emitterPosition - fixed position of emitter
        emissionDate - emission date
        adjustableReceiver - provider for adjusting receiver position
        approxReceptionDate - approximate reception date
        frame - inertial frame in which emitter is defined
        Returns:
        positive delay between signal emission and signal reception dates
        Since:
        13.0
      • signalTimeOfFlightAdjustableEmitter

        public static <T extends CalculusFieldElement<T>> T signalTimeOfFlightAdjustableEmitter​(TimeStampedFieldPVCoordinates<T> adjustableEmitterPV,
                                                                                                FieldVector3D<T> receiverPosition,
                                                                                                FieldAbsoluteDate<T> signalArrivalDate,
                                                                                                Frame frame)
        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 adjusted
        receiverPosition - fixed position of receiver at signalArrivalDate, in the same frame as adjustableEmitterPV
        signalArrivalDate - date at which the signal arrives to receiver
        frame - inertial frame in which both adjustableEmitterPV and receiverPosition are defined
        Returns:
        positive delay between signal emission and signal reception dates
        Since:
        13.0
      • signalTimeOfFlightAdjustableEmitter

        public static <T extends CalculusFieldElement<T>> T signalTimeOfFlightAdjustableEmitter​(FieldPVCoordinatesProvider<T> adjustableEmitter,
                                                                                                FieldAbsoluteDate<T> approxEmissionDate,
                                                                                                FieldVector3D<T> receiverPosition,
                                                                                                FieldAbsoluteDate<T> signalArrivalDate,
                                                                                                Frame frame)
        Compute propagation delay on a link leg (typically downlink or uplink).
        Type Parameters:
        T - the type of the components
        Parameters:
        adjustableEmitter - position/velocity provider of emitter
        approxEmissionDate - approximate emission date
        receiverPosition - fixed position of receiver at signalArrivalDate, in the same frame as adjustableEmitterPV
        signalArrivalDate - date at which the signal arrives to receiver
        frame - inertial frame in which receiver is defined
        Returns:
        positive delay between signal emission and signal reception dates
        Since:
        13.0
      • signalTimeOfFlightAdjustableReceiver

        public static <T extends CalculusFieldElement<T>> T signalTimeOfFlightAdjustableReceiver​(FieldVector3D<T> emitterPosition,
                                                                                                 FieldAbsoluteDate<T> emissionDate,
                                                                                                 TimeStampedFieldPVCoordinates<T> adjustableReceiverPV,
                                                                                                 FieldAbsoluteDate<T> approxReceptionDate,
                                                                                                 Frame frame)
        Compute propagation delay on a link leg (typically downlink or uplink).
        Type Parameters:
        T - the type of the components
        Parameters:
        emitterPosition - fixed position of emitter
        emissionDate - emission date
        adjustableReceiverPV - position/velocity of emitter that may be adjusted
        approxReceptionDate - approximate reception date
        frame - inertial frame in which both emitterPosition and adjustableReceiverPV are defined
        Returns:
        positive delay between signal emission and signal reception dates
        Since:
        13.0
      • signalTimeOfFlightAdjustableReceiver

        public static <T extends CalculusFieldElement<T>> T signalTimeOfFlightAdjustableReceiver​(FieldVector3D<T> emitterPosition,
                                                                                                 FieldAbsoluteDate<T> emissionDate,
                                                                                                 FieldPVCoordinatesProvider<T> adjustableReceiver,
                                                                                                 FieldAbsoluteDate<T> approxReceptionDate,
                                                                                                 Frame frame)
        Compute propagation delay on a link leg (typically downlink or uplink).
        Type Parameters:
        T - the type of the components
        Parameters:
        emitterPosition - fixed position of emitter
        emissionDate - emission date
        adjustableReceiver - provider for adjusting receiver position
        approxReceptionDate - approximate reception date
        frame - inertial frame in which emitter is defined
        Returns:
        positive delay between signal emission and signal reception dates
        Since:
        13.0
      • 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