org.orekit.utils
Class EphemerisPvHermite

java.lang.Object
  extended by org.orekit.utils.AbstractBoundedPVProvider
      extended by org.orekit.utils.EphemerisPvHermite
All Implemented Interfaces:
PVCoordinatesProvider

public class EphemerisPvHermite
extends AbstractBoundedPVProvider

This class extends AbstractBoundedPVProvider which implements PVCoordinatesProvider and so provides a position velocity for a given date. The provided position velocity is based on a Hermite interpolation in a given position velocity ephemeris.

The interpolation extracts position, velocity and eventually acceleration from the ephemeris depending on the polynome order and the date to interpolate. Points extraction is based on an implementation of the ISearchIndex interface. This implementation should be based on a table of duration created from the date table with the duration = 0 at the first index.

Since:
3.1
Version:
$Id: EphemerisPvHermite.java 17619 2017-05-18 13:16:01Z bignon $
Author:
chabaudp
Concurrency :
not thread-safe
Concurrency comment :
internal mutable attributes

Field Summary
 
Fields inherited from class org.orekit.utils.AbstractBoundedPVProvider
polyOrder, tDate, tPVCoord
 
Constructor Summary
EphemerisPvHermite(PVCoordinates[] tabPV, int order, Vector3D[] tabAcc, Frame frame, AbsoluteDate[] tabDate, ISearchIndex algo)
          Creates an instance of EphemerisPvHermite.
EphemerisPvHermite(PVCoordinates[] tabPV, Vector3D[] tabAcc, Frame frame, AbsoluteDate[] tabDate, ISearchIndex algo)
          Creates an instance of EphemerisPvHermite with default interpolation order = 2.
EphemerisPvHermite(SpacecraftState[] tabState, int order, Vector3D[] tabAcc, ISearchIndex algo)
          Creates an instance of EphemerisPvHermite from a SpacecraftState table
EphemerisPvHermite(SpacecraftState[] tabState, Vector3D[] tabAcc, ISearchIndex algo)
          Creates an instance of EphemerisPvHermite from a SpacecraftState table with default interpolation order = 2.
 
Method Summary
 PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame)
          Get the PVCoordinates of the body in the selected frame.
 
Methods inherited from class org.orekit.utils.AbstractBoundedPVProvider
getDateRef, getFrame, getMaxDate, getMinDate, getPreviousIndex, getSearchIndex, indexValidity, setPreviousIndex
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EphemerisPvHermite

public EphemerisPvHermite(PVCoordinates[] tabPV,
                          int order,
                          Vector3D[] tabAcc,
                          Frame frame,
                          AbsoluteDate[] tabDate,
                          ISearchIndex algo)
Creates an instance of EphemerisPvHermite.

Parameters:
tabPV - position velocity coordinates table
order - orderHermite interpolation order. It must be even.
tabAcc - acceleration table (can be null)
frame - coordinates expression frame
tabDate - table of dates for each position velocity
algo - class to find the nearest date index from a given date in the date table (If null, algo will be, by default, a BinarySearchIndexOpenClosed based on a table of duration since the first date of the dates table)

EphemerisPvHermite

public EphemerisPvHermite(SpacecraftState[] tabState,
                          int order,
                          Vector3D[] tabAcc,
                          ISearchIndex algo)
Creates an instance of EphemerisPvHermite from a SpacecraftState table

Parameters:
tabState - SpacecraftState table
order - interpolation order. It must be even.
tabAcc - Acceleration table (can be null)
algo - class to find the nearest date index from a given date (If null, algo will be BinarySearchIndexOpenClosed by default based on a table of duration since the first date of the dates table)
Throws:
IllegalArgumentException - spacecraftState table should contains elements, and if tabacc not null should be of the same size

EphemerisPvHermite

public EphemerisPvHermite(PVCoordinates[] tabPV,
                          Vector3D[] tabAcc,
                          Frame frame,
                          AbsoluteDate[] tabDate,
                          ISearchIndex algo)
Creates an instance of EphemerisPvHermite with default interpolation order = 2.

Parameters:
tabPV - position velocity coordinates table
tabAcc - acceleration table (can be null)
frame - coordinates expression frame
tabDate - table of dates for each position velocity
algo - class to find the nearest date index from a given date in the date table (If null, algo will be, by default, a BinarySearchIndexOpenClosed based on a table of duration since the first date of the dates table)

EphemerisPvHermite

public EphemerisPvHermite(SpacecraftState[] tabState,
                          Vector3D[] tabAcc,
                          ISearchIndex algo)
Creates an instance of EphemerisPvHermite from a SpacecraftState table with default interpolation order = 2.

Parameters:
tabState - SpacecraftState table
tabAcc - Acceleration table (can be null)
algo - class to find the nearest date index from a given date (If null, algo will be BinarySearchIndexOpenClosed by default based on a table of duration since the first date of the dates table)
Throws:
IllegalArgumentException - spacecraftState table should contains elements, and if tabacc not null should be of the same size
Method Detail

getPVCoordinates

public PVCoordinates getPVCoordinates(AbsoluteDate date,
                                      Frame frame)
                               throws OrekitException
Get the PVCoordinates of the body in the selected frame.

Parameters:
date - current date
frame - the frame where to define the position
Returns:
position/velocity of the body (m and m/s)
Throws:
OrekitException - if position cannot be computed in given frame


Copyright © 2017 CNES. All Rights Reserved.