Class ObserverSatellite

    • Constructor Detail

      • ObserverSatellite

        public ObserverSatellite​(String name,
                                 PVCoordinatesProvider pvCoordsProvider)
        Simple constructor.
        Parameters:
        name - name of receiver
        pvCoordsProvider - position/velocity coordinates provider for receiver
        Since:
        14.0
      • ObserverSatellite

        public ObserverSatellite​(String name,
                                 PVCoordinatesProvider pvCoordsProvider,
                                 QuadraticClockModel quadraticClock)
        Simple constructor.
        Parameters:
        name - name of receiver
        pvCoordsProvider - position/velocity coordinates provider for receiver
        quadraticClock - clock model for receiver
        Since:
        14.0
    • Method Detail

      • getFieldPVCoordinatesProvider

        public FieldPVCoordinatesProvider<Gradient> getFieldPVCoordinatesProvider​(int freeParameters,
                                                                                  Map<String,​Integer> parameterIndices)
        Return the FieldPVCoordinatesProvider.
        Specified by:
        getFieldPVCoordinatesProvider in interface Observer
        Parameters:
        freeParameters - number of estimated parameters
        parameterIndices - indices of the estimated parameters in derivatives computations, must be driver
        Returns:
        pos/vel coordinates provider for values with Gradient field
      • getOffsetToInertial

        public Transform getOffsetToInertial​(Frame inertial,
                                             AbsoluteDate date,
                                             boolean clockOffsetAlreadyApplied)
        Get the transform between offset frame and inertial frame.

        The offset frame takes the current position offset, polar motion and the meridian shift into account. The frame returned is disconnected from later changes in the parameters. When the parameters managing these offsets are changed, the method must be called again to retrieve a new offset frame.

        Specified by:
        getOffsetToInertial in interface Observer
        Parameters:
        inertial - inertial frame to transform to
        date - date of the transform
        clockOffsetAlreadyApplied - if true, the specified date is as read by the ground station clock (i.e. clock offset not compensated), if false, the specified date was already compensated and is a physical absolute date
        Returns:
        transform between offset frame and inertial frame, at real measurement date (i.e. with clock, Earth and station offsets applied)
      • getOffsetToInertial

        public FieldTransform<Gradient> getOffsetToInertial​(Frame inertial,
                                                            FieldAbsoluteDate<Gradient> offsetCompensatedDate,
                                                            int freeParameters,
                                                            Map<String,​Integer> indices)
        Get the transform between offset frame and inertial frame with derivatives.

        As the East and North vectors are not well defined at pole, the derivatives of these two vectors diverge to infinity as we get closer to the pole. So this method should not be used for stations less than 0.0001 degree from either poles.

        Specified by:
        getOffsetToInertial in interface Observer
        Parameters:
        inertial - inertial frame to transform to
        offsetCompensatedDate - date of the transform, clock offset and its derivatives already compensated
        freeParameters - total number of free parameters in the gradient
        indices - indices of the estimated parameters in derivatives computations, must be driver span name in map, not driver name or will not give right results (see ParameterDriver.getValue(int, Map))
        Returns:
        transform between offset frame and inertial frame, at specified date