org.orekit.attitudes
Class GroundPointingWrapper

java.lang.Object
  extended by org.orekit.attitudes.AbstractAttitudeLaw
      extended by org.orekit.attitudes.GroundPointing
          extended by org.orekit.attitudes.GroundPointingWrapper
All Implemented Interfaces:
Serializable, AttitudeLaw, AttitudeLawModifier, AttitudeProvider
Direct Known Subclasses:
YawCompensation, YawSteering

public abstract class GroundPointingWrapper
extends GroundPointing
implements AttitudeLawModifier

This class leverages common parts for compensation modes around ground pointing attitudes.

Author:
Véronique Pommier-Maurussane, Luc Maisonobe
See Also:
Serialized Form

Constructor Summary
GroundPointingWrapper(GroundPointing pGroundPointingLaw)
          Creates a new instance.
 
Method Summary
 Attitude getBaseState(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
          Compute the base system state at given date, without compensation.
abstract  TimeStampedAngularCoordinates getCompensation(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame, Attitude base)
          Compute the TimeStampedAngularCoordinates at a given time.
protected  Vector3D getTargetPoint(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
          Compute the target point in specified frame.
protected  TimeStampedPVCoordinates getTargetPV(PVCoordinatesProvider pvProv, AbsoluteDate date, Frame frame)
          Compute the target point position/velocity in specified frame.
 AttitudeLaw getUnderlyingAttitudeLaw()
          Get the underlying (ground pointing) attitude provider.
 void setSpinDerivativesComputation(boolean computeSpinDerivatives)
          Method to activate spin derivative computation.
 
Methods inherited from class org.orekit.attitudes.GroundPointing
getAttitude, getBodyFrame, getBodyShape
 
Methods inherited from class org.orekit.attitudes.AbstractAttitudeLaw
getAttitude, getSpinDerivativesComputation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.orekit.attitudes.AttitudeProvider
getAttitude, getAttitude
 

Constructor Detail

GroundPointingWrapper

public GroundPointingWrapper(GroundPointing pGroundPointingLaw)
Creates a new instance.

Parameters:
pGroundPointingLaw - ground pointing attitude provider without compensation
Method Detail

getUnderlyingAttitudeLaw

public final AttitudeLaw getUnderlyingAttitudeLaw()
Get the underlying (ground pointing) attitude provider.

Specified by:
getUnderlyingAttitudeLaw in interface AttitudeLawModifier
Returns:
underlying attitude provider, which in this case is a GroundPointing instance

getTargetPoint

protected final Vector3D getTargetPoint(PVCoordinatesProvider pvProv,
                                        AbsoluteDate date,
                                        Frame frame)
                                 throws OrekitException
Compute the target point in specified frame.

Specified by:
getTargetPoint 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 in specified frame
Throws:
OrekitException - if some specific error occurs, such as no target reached

getTargetPV

protected final TimeStampedPVCoordinates getTargetPV(PVCoordinatesProvider pvProv,
                                                     AbsoluteDate date,
                                                     Frame frame)
                                              throws OrekitException
Compute the target point position/velocity in specified frame.

The default implementation use a simple centered two points finite differences scheme, it may be replaced by more accurate models in specialized implementations.

In the case where the point is computed at a date corresponding to the lower/upper bound of the ephemeris, the finite differences scheme used is either 1st order forward or backward.

Overrides:
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/velocity in specified frame
Throws:
OrekitException - if some specific error occurs, such as no target reached

getBaseState

public final Attitude getBaseState(PVCoordinatesProvider pvProv,
                                   AbsoluteDate date,
                                   Frame frame)
                            throws OrekitException
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.
Throws:
OrekitException - if some specific error occurs

getCompensation

public abstract TimeStampedAngularCoordinates getCompensation(PVCoordinatesProvider pvProv,
                                                              AbsoluteDate date,
                                                              Frame frame,
                                                              Attitude base)
                                                       throws OrekitException
Compute the TimeStampedAngularCoordinates at a given time.

Parameters:
pvProv - provider for PV coordinates
date - date at which rotation is requested
frame - reference frame from which attitude is computed
base - base satellite attitude in given frame.
Returns:
compensation rotation at date, i.e rotation between non compensated attitude state and compensated state.
Throws:
OrekitException - if some specific error occurs

setSpinDerivativesComputation

public void setSpinDerivativesComputation(boolean computeSpinDerivatives)
                                   throws OrekitException
Method to activate spin derivative computation.

Spin derivatives computation applies to provided law groundPointingLaw.

Specified by:
setSpinDerivativesComputation in interface AttitudeProvider
Overrides:
setSpinDerivativesComputation in class AbstractAttitudeLaw
Parameters:
computeSpinDerivatives - true if spin derivatives should be computed
Throws:
OrekitException - if spin derivatives can not be computed


Copyright © 2017 CNES. All Rights Reserved.