Class ObserverSatellite

java.lang.Object
org.orekit.estimation.measurements.AbstractParticipant
org.orekit.estimation.measurements.ObserverSatellite
All Implemented Interfaces:
MeasurementParticipant, Observer, ParameterDriversProvider

public class ObserverSatellite extends AbstractParticipant implements Observer
Class that accepts a PVCoordinatesProvider for a space- based measurement receiver.
Since:
14.0
Author:
Brianna Aubin
  • Constructor Details

    • ObserverSatellite

      public ObserverSatellite(String name, PVCoordinatesProvider pvCoordsProvider)
      Simple constructor.
      Parameters:
      name - name of receiver
      pvCoordsProvider - satellite propagator
    • 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
  • Method Details

    • isSpaceBased

      public final boolean isSpaceBased()
      Get the type of object being used in measurement observations.
      Specified by:
      isSpaceBased in interface Observer
      Returns:
      boolean
    • getPVCoordinatesProvider

      public final PVCoordinatesProvider getPVCoordinatesProvider()
      Return the PVCoordinatesProvider.
      Specified by:
      getPVCoordinatesProvider in interface Observer
      Returns:
      pos/vel coordinates provider
    • 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