public class MeeusSun extends AbstractCelestialBody
This class implements the Sun ephemerides according to the algorithm of Meeus, it only provides the position. Note that it is not possible to build this Sun from the CelestialBodyFactory.
See "Astronomical Algorithms", chapter 24 "Solar Coordinates", Jean Meeus, 1991. This class allows the use of three different Meeus model : the standard Meeus model, the STELA one and the on board model (used for CERES mission for instance). About Stela's implementation of this model :
This class contains methods to store AbstractCelestialBody.getInertiallyOrientedFrame()
to integration frame (CIRF) transform to
speed up computation during the integration process if Stela model have been chosen. As this transform varies slowly
through time, it has been shown it is not necessary to recompute it every time. Warning: these methods should not be
used in a stand-alone use (unless you known what you are doing). There are two methods:
updateTransform(AbsoluteDate, Frame)
: store transform from AbstractCelestialBody.getInertiallyOrientedFrame()
to
provided frame at provided date.resetTransform()
: reset stored transform.
Note that pole information allowing to define inertially-centered frame and rotating frame are defined in
IAUPoleFactory
since Meeus model does not provide the information.
CelestialBody
,
Serialized FormModifier and Type | Class and Description |
---|---|
static class |
MeeusSun.MODEL
Enumerate to choose the used Meeus model : standard, Stela or board model.
|
Constructor and Description |
---|
MeeusSun()
Simple constructor for standard Meeus model.
|
MeeusSun(MeeusSun.MODEL model)
Constructor to build wished Meeus model : standard model,
STELA model or board model.
|
Modifier and Type | Method and Description |
---|---|
PVCoordinates |
getPVCoordinates(AbsoluteDate date,
Frame frame)
Get the
PVCoordinates of the body in the selected frame. |
static void |
resetTransform()
Reset cached transform.
|
static void |
updateTransform(AbsoluteDate date,
Frame frame)
Update cached transform from
FramesFactory.getMOD(boolean) to provided frame. |
getBodyOrientedFrame, getGM, getInertiallyOrientedFrame, getName
public MeeusSun() throws PatriusException
PatriusException
- if data embedded in the library cannot be readpublic MeeusSun(MeeusSun.MODEL model) throws PatriusException
model
- Meeus model to be usedPatriusException
- if data embedded in the library cannot be readpublic PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame) throws PatriusException
PVCoordinates
of the body in the selected frame.getPVCoordinates
in interface PVCoordinatesProvider
getPVCoordinates
in class AbstractCelestialBody
date
- current dateframe
- the frame where to define the positionPatriusException
- if position cannot be computed in given framepublic static void updateTransform(AbsoluteDate date, Frame frame) throws PatriusException
FramesFactory.getMOD(boolean)
to provided frame.
Once called, this transform will always be used when calling getPVCoordinates(AbsoluteDate, Frame)
unless a call to resetTransform()
has been made.
Warning : this method must only be called if the chosen model is the Meeus STELA model.
date
- a dateframe
- a framePatriusException
- thrown if transformation failedpublic static void resetTransform()
Warning : this method must only be called if the chosen model is the Meeus STELA model.
Copyright © 2019 CNES. All rights reserved.