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

      • 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()
      • 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.

        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 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
      • 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 adjusted
        receiverPosition - fixed position of receiver at signalArrivalDate, in the same frame as adjustableEmitterPV
        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 adjusted
        receiverPosition - fixed position of receiver at signalArrivalDate, in the same frame as adjustableEmitterPV
        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 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
        factory - factory for building the derivatives
        Returns:
        Cartesian coordinates as derivatives