org.orekit.frames.configuration.precessionnutation
Class PrecessionNutationCache

java.lang.Object
  extended by org.orekit.frames.configuration.precessionnutation.PrecessionNutationCache
All Implemented Interfaces:
PrecessionNutationModel

public class PrecessionNutationCache
extends Object
implements PrecessionNutationModel

Cache for precession nutation correction computation.

This implementation includes a caching/interpolation feature to tremendously improve efficiency. The IAU-2000 model involves lots of terms (1600 components for x, 1275 components for y and 66 components for s). Recomputing all these components for each point is really slow. The shortest period for these components is about 5.5 days (one fifth of the moon revolution period), hence the pole motion is smooth at the day or week scale. This implies that these motions can be computed accurately using a few reference points per day or week and interpolated between these points. This implementation uses 12 points separated by 1/2 day (43200 seconds) each, the resulting maximal interpolation error on the frame is about 1.3×10-10 arcseconds. -- Orekit

This class has been adapted from the CIRF2000Frame Orekit class.

Since:
1.2
Version:
$Id: PrecessionNutationCache.java 17602 2017-05-18 08:25:23Z bignon $
Author:
Rami Houdroge

Constructor Summary
PrecessionNutationCache(PrecessionNutationModel pnModel)
           
PrecessionNutationCache(PrecessionNutationModel pnModel, double span, int interpolationPoints)
           
 
Method Summary
 double[] getCIPMotion(AbsoluteDate date)
          Compute the Celestial Intermediate pole motion in the GCRS.
 double[] getCIPMotionTimeDerivative(AbsoluteDate date)
          Compute the Celestial Intermediate pole motion in the GCRS.
 FrameConvention getOrigin()
          Get IERS model origin.
 boolean isConstant()
          Returns true if model uses constant rotation.
 boolean isDirect()
          Return computation type : direct or interpolated.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PrecessionNutationCache

public PrecessionNutationCache(PrecessionNutationModel pnModel,
                               double span,
                               int interpolationPoints)
Parameters:
pnModel - IERS model to use
span - time spane between interpolation points
interpolationPoints - number of interpolation points to use

PrecessionNutationCache

public PrecessionNutationCache(PrecessionNutationModel pnModel)
Parameters:
pnModel - IERS model to use
Method Detail

getCIPMotion

public double[] getCIPMotion(AbsoluteDate date)
Compute the Celestial Intermediate pole motion in the GCRS.

Specified by:
getCIPMotion in interface PrecessionNutationModel
Parameters:
date - date
Returns:
CIP motion as an array of doubles

getCIPMotionTimeDerivative

public double[] getCIPMotionTimeDerivative(AbsoluteDate date)
Compute the Celestial Intermediate pole motion in the GCRS.

Specified by:
getCIPMotionTimeDerivative in interface PrecessionNutationModel
Parameters:
date - date
Returns:
CIP motion time derivatives as an array of doubles

isDirect

public boolean isDirect()
Return computation type : direct or interpolated.

Specified by:
isDirect in interface PrecessionNutationModel
Returns:
true if direct computation, false if interpolated

getOrigin

public FrameConvention getOrigin()
Get IERS model origin.

Specified by:
getOrigin in interface PrecessionNutationModel
Returns:
IERS model origin

isConstant

public boolean isConstant()
Returns true if model uses constant rotation.

Specified by:
isConstant in interface PrecessionNutationModel
Returns:
true if model uses constant rotation


Copyright © 2017 CNES. All Rights Reserved.