Class YawCompensation

  • All Implemented Interfaces:
    Serializable, AttitudeProvider, AttitudeProviderModifier

    public class YawCompensation
    extends GroundPointing
    implements AttitudeProviderModifier
    This class handles yaw compensation attitude provider.

    Yaw compensation is mainly used for Earth observation satellites. As a satellites moves along its track, the image of ground points move on the focal point of the optical sensor. This motion is a combination of the satellite motion, but also on the Earth rotation and on the current attitude (in particular if the pointing includes Roll or Pitch offset). In order to reduce geometrical distortion, the yaw angle is changed a little from the simple ground pointing attitude such that the apparent motion of ground points is along a prescribed axis (orthogonal to the optical sensors rows), taking into account all effects.

    This attitude is implemented as a wrapper on top of an underlying ground pointing law that defines the roll and pitch angles.

    Instances of this class are guaranteed to be immutable.

    Author:
    Véronique Pommier-Maurussane
    See Also:
    GroundPointing, Serialized Form
    • Constructor Detail

      • YawCompensation

        public YawCompensation​(Frame inertialFrame,
                               GroundPointing groundPointingLaw)
        Creates a new instance.
        Parameters:
        inertialFrame - frame in which orbital velocities are computed
        groundPointingLaw - ground pointing attitude provider without yaw compensation
        Since:
        7.1
    • Method Detail

      • getTargetPV

        public TimeStampedPVCoordinates getTargetPV​(PVCoordinatesProvider pvProv,
                                                    AbsoluteDate date,
                                                    Frame frame)
        Compute the target point position/velocity in specified frame.

        This method is public only to allow users to subclass this abstract class from other packages. It is not intended to be used directly.

        Specified by:
        getTargetPV in class GroundPointing
        Parameters:
        pvProv - provider for PV coordinates
        date - date at which target point is requested
        frame - frame in which observed ground point should be provided
        Returns:
        observed ground point position (element 0) and velocity (at index 1) in specified frame
      • getTargetPV

        public <T extends org.hipparchus.RealFieldElement<T>> TimeStampedFieldPVCoordinates<T> getTargetPV​(FieldPVCoordinatesProvider<T> pvProv,
                                                                                                           FieldAbsoluteDate<T> date,
                                                                                                           Frame frame)
        Compute the target point position/velocity in specified frame.
        Specified by:
        getTargetPV in class GroundPointing
        Type Parameters:
        T - type of the fiels elements
        Parameters:
        pvProv - provider for PV coordinates
        date - date at which target point is requested
        frame - frame in which observed ground point should be provided
        Returns:
        observed ground point position (element 0) and velocity (at index 1) in specified frame
      • getBaseState

        public Attitude getBaseState​(PVCoordinatesProvider pvProv,
                                     AbsoluteDate date,
                                     Frame frame)
        Compute the base system state at given date, without compensation.
        Parameters:
        pvProv - provider for PV coordinates
        date - date at which state is requested
        frame - reference frame from which attitude is computed
        Returns:
        satellite base attitude state, i.e without compensation.
      • getBaseState

        public <T extends org.hipparchus.RealFieldElement<T>> FieldAttitude<T> getBaseState​(FieldPVCoordinatesProvider<T> pvProv,
                                                                                            FieldAbsoluteDate<T> date,
                                                                                            Frame frame)
        Compute the base system state at given date, without compensation.
        Type Parameters:
        T - type of the field elements
        Parameters:
        pvProv - provider for PV coordinates
        date - date at which state is requested
        frame - reference frame from which attitude is computed
        Returns:
        satellite base attitude state, i.e without compensation.
        Since:
        9.0
      • getAttitude

        public Attitude getAttitude​(PVCoordinatesProvider pvProv,
                                    AbsoluteDate date,
                                    Frame frame)
        Compute the attitude corresponding to an orbital state.
        Specified by:
        getAttitude in interface AttitudeProvider
        Overrides:
        getAttitude in class GroundPointing
        Parameters:
        pvProv - local position-velocity provider around current date
        date - current date
        frame - reference frame from which attitude is computed
        Returns:
        attitude attitude on the specified date and position-velocity state
      • getAttitude

        public <T extends org.hipparchus.RealFieldElement<T>> FieldAttitude<T> getAttitude​(FieldPVCoordinatesProvider<T> pvProv,
                                                                                           FieldAbsoluteDate<T> date,
                                                                                           Frame frame)
        Compute the attitude corresponding to an orbital state.
        Specified by:
        getAttitude in interface AttitudeProvider
        Overrides:
        getAttitude in class GroundPointing
        Type Parameters:
        T - type of the field elements
        Parameters:
        pvProv - local position-velocity provider around current date
        date - current date
        frame - reference frame from which attitude is computed
        Returns:
        attitude attitude on the specified date and position-velocity state
      • getYawAngle

        public double getYawAngle​(PVCoordinatesProvider pvProv,
                                  AbsoluteDate date,
                                  Frame frame)
        Compute the yaw compensation angle at date.
        Parameters:
        pvProv - provider for PV coordinates
        date - date at which compensation is requested
        frame - reference frame from which attitude is computed
        Returns:
        yaw compensation angle for orbit.
      • getYawAngle

        public <T extends org.hipparchus.RealFieldElement<T>> T getYawAngle​(FieldPVCoordinatesProvider<T> pvProv,
                                                                            FieldAbsoluteDate<T> date,
                                                                            Frame frame)
        Compute the yaw compensation angle at date.
        Type Parameters:
        T - type of the field elements
        Parameters:
        pvProv - provider for PV coordinates
        date - date at which compensation is requested
        frame - reference frame from which attitude is computed
        Returns:
        yaw compensation angle for orbit.
        Since:
        9.0