public class Earth extends Object implements CelestialBody
CelestialPoint.BodyNature
ECLIPTICJ2000_FRAME_NAME, EME2000_FRAME_NAME, ICRF_FRAME_NAME
Constructor and Description |
---|
Earth(String name,
double gm)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
CelestialBodyFrame |
getEclipticJ2000()
Get an Ecliptic J200, celestial point centered frame.
|
CelestialBodyFrame |
getEME2000()
Get an EME2000, celestial point centered frame.
|
CelestialBodyEphemeris |
getEphemeris()
Get the ephemeris of the celestial point.
|
double |
getGM()
Get the central attraction coefficient of the celestial point.
|
GravityModel |
getGravityModel()
Get the gravitational attraction model of the body.
|
CelestialBodyFrame |
getICRF()
Get an ICRF, celestial point centered frame.
|
CelestialBodyFrame |
getInertialFrame(IAUPoleModelType iauPole)
Get an inertially oriented, body centered frame.
|
String |
getName()
Get the name of the body.
|
Frame |
getNativeFrame(AbsoluteDate date)
Get the native frame, i.e.
|
CelestialBodyIAUOrientation |
getOrientation()
Get the celestial body orientation and primer meridians orientation.
|
PVCoordinates |
getPVCoordinates(AbsoluteDate date,
Frame frame)
Get the
PVCoordinates of the body in the selected frame. |
CelestialBodyFrame |
getRotatingFrame(IAUPoleModelType iauPole)
Get a body oriented, body centered frame.
|
BodyShape |
getShape()
Get the geometric shape of the body.
|
void |
setEphemeris(CelestialBodyEphemeris ephemerisIn)
Set an ephemeris to the celestial point.
|
void |
setGM(double gmIn)
Set a central attraction coefficient to the celestial point.
|
void |
setGravityModel(GravityModel modelIn)
Set a gravitational attraction model to the body.
|
void |
setOrientation(CelestialBodyOrientation celestialBodyOrientation)
Set a celestial body orientation to define the body frames.
|
void |
setShape(BodyShape shapeIn)
Set a geometric shape to the body.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getBodyNature
toString
public Earth(String name, double gm) throws PatriusException
name
- namegm
- gravitational parameterPatriusException
- thrown if failedpublic PVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame) throws PatriusException
PVCoordinates
of the body in the selected frame.getPVCoordinates
in interface PVCoordinatesProvider
date
- current dateframe
- the frame where to define the positionPatriusException
- if position cannot be computed in given framepublic CelestialBodyEphemeris getEphemeris()
getEphemeris
in interface CelestialPoint
public void setEphemeris(CelestialBodyEphemeris ephemerisIn)
setEphemeris
in interface CelestialPoint
ephemerisIn
- the ephemerispublic Frame getNativeFrame(AbsoluteDate date) throws PatriusException
getNativeFrame
in interface PVCoordinatesProvider
date
- a datePatriusException
- thrown if native frame is undefined or unknownpublic CelestialBodyFrame getICRF()
The frame is always bound to the celestial point, and its axes have a fixed orientation with respect to other inertial frames.
getICRF
in interface CelestialPoint
#getRotatingFrame(IAUPoleModelType.TRUE)
public CelestialBodyFrame getEME2000()
The frame is always bound to the celestial point center, and its axes are colinear to Earth EME2000 frame.
getEME2000
in interface CelestialPoint
public CelestialBodyFrame getEclipticJ2000() throws PatriusException
The frame is always bound to the celestial point center with constant rotation relative to the ICRF.
getEclipticJ2000
in interface CelestialPoint
PatriusException
- if frame cannot be retrievedpublic CelestialBodyFrame getInertialFrame(IAUPoleModelType iauPole) throws PatriusException
Warning: Inertiality of such frame depends on its definition and on its use: if related
CelestialBodyOrientation
includes strong precession/nutation effect and temporal horizon of use is long,
frame may not be considered inertial. As a rule of thumb, precession/nutation effects of Earth frames such as
CIRF/MOD are considered small enough on a horizon of a day to consider them pseudo-inertial. Also frames based on
IAUPoleModelType.CONSTANT
will be more inertial than IAUPoleModelType.MEAN
and than
IAUPoleModelType.TRUE
. Similarly, models including IAUPoleFunction.IAUTimeDependency.DAYS
with high values will
tend to be less inertial than models including IAUPoleFunction.IAUTimeDependency.CENTURIES
with high values. Definition
of sufficiently inertial precession/nutation effects remains on the user responsibility depending on the frame
usage.
getInertialFrame
in interface CelestialBody
iauPole
- the type of IAUPole used for the framePatriusException
- if frame cannot be retrievedpublic CelestialBodyFrame getRotatingFrame(IAUPoleModelType iauPole) throws PatriusException
getRotatingFrame
in interface CelestialBody
iauPole
- the type of IAUPole used for the framePatriusException
- if frame cannot be retrievedpublic String getName()
getName
in interface CelestialBody
getName
in interface CelestialPoint
public BodyShape getShape()
getShape
in interface CelestialBody
public void setShape(BodyShape shapeIn)
setShape
in interface CelestialBody
shapeIn
- the shape of the bodypublic GravityModel getGravityModel()
getGravityModel
in interface CelestialBody
public void setGravityModel(GravityModel modelIn)
setGravityModel
in interface CelestialBody
modelIn
- the gravitational attraction modelpublic double getGM()
Warning: attraction model should not be null (it is not null by default).
getGM
in interface CelestialPoint
public void setGM(double gmIn)
setGM
in interface CelestialPoint
gmIn
- the central attraction coefficient (m3/s2)public CelestialBodyIAUOrientation getOrientation()
getOrientation
in interface CelestialBody
public void setOrientation(CelestialBodyOrientation celestialBodyOrientation)
setOrientation
in interface CelestialBody
celestialBodyOrientation
- the celestial body orientationCopyright © 2023 CNES. All rights reserved.