public abstract class AbstractIAUCelestialBody extends AbstractCelestialBody implements IAUCelestialBody
IAUCelestialBody interface.
This abstract implementation provides basic services that can be shared by most implementations of the
IAUCelestialBody interface. It holds the gravitational attraction coefficient and build the body-centered
frames automatically using the definitions of pole and prime meridian specified by the IAU/IAG Working Group on
Cartographic Coordinates and Rotational Elements of the Planets and Satellites (WGCCRE).
CelestialPoint.BodyNature| Modifier and Type | Field and Description |
|---|---|
static String |
CONSTANT
Constant model string.
|
static String |
INERTIAL_FRAME_CONSTANT_MODEL
Constant (equator) inertial, body-centered frame name.
|
static String |
INERTIAL_FRAME_MEAN_MODEL
Mean (equator) inertial, body-centered frame name.
|
static String |
INERTIAL_FRAME_TRUE_MODEL
True (equator) inertial, body-centered frame name.
|
static String |
MEAN
Mean model string.
|
static String |
ROTATING_FRAME_CONSTANT_MODEL
Constant rotating, body-centered frame name.
|
static String |
ROTATING_FRAME_MEAN_MODEL
Mean rotating, body-centered frame name.
|
static String |
ROTATING_FRAME_TRUE_MODEL
True rotating, body-centered frame name.
|
static String |
TRUE
True model string.
|
INERTIAL_FRAME, ROTATING_FRAME, SPACEECLIPTICJ2000_FRAME_NAME, EME2000_FRAME_NAME, ICRF_FRAME_NAME| Modifier | Constructor and Description |
|---|---|
protected |
AbstractIAUCelestialBody(String name,
double gm,
CelestialBodyIAUOrientation celestialBodyIAUOrientation,
Frame parentFrame)
Constructor without ephemeris.
|
protected |
AbstractIAUCelestialBody(String name,
double gm,
CelestialBodyIAUOrientation celestialBodyIAUOrientation,
Frame parentFrame,
CelestialBodyEphemeris ephemeris)
Constructor.
|
protected |
AbstractIAUCelestialBody(String name,
GravityModel gravityModel,
CelestialBodyIAUOrientation celestialBodyIAUOrientation,
Frame parentFrame,
BSPEphemerisLoader.SpiceJ2000ConventionEnum convention,
CelestialBodyEphemeris ephemeris)
Constructor.
|
| Modifier and Type | Method and Description |
|---|---|
CelestialBodyFrame |
getInertialFrame()
Getter for an inertially oriented, body centered frame.
|
CelestialBodyFrame |
getInertialFrame(IAUPoleModelType iauPoleIn)
Getter for an inertially oriented, body centered frame.
|
CelestialBodyIAUOrientation |
getOrientation()
Getter for the celestial body orientation and primer meridians orientation.
|
CelestialBodyFrame |
getRotatingFrame()
Getter for a body oriented, body centered frame.
|
CelestialBodyFrame |
getRotatingFrame(IAUPoleModelType iauPoleIn)
Getter for a body oriented, body centered frame.
|
void |
setOrientation(CelestialBodyOrientation celestialBodyIAUOrientation)
Set a celestial body IAU orientation to define the body frames.
|
String |
toString()
Returns a string representation of the celestial point and its attributes.
|
getGM, getGravityModel, getShape, setGM, setGravityModel, setShapegetEclipticJ2000, getEME2000, getEphemeris, getICRF, getName, getNativeFrame, getPVCoordinates, setEphemerisclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetBodyNature, getGravityModel, getName, getShape, setGravityModel, setShapegetEclipticJ2000, getEME2000, getEphemeris, getGM, getICRF, setEphemeris, setGMgetNativeFrame, getPVCoordinatespublic static final String CONSTANT
public static final String MEAN
public static final String TRUE
public static final String INERTIAL_FRAME_CONSTANT_MODEL
public static final String INERTIAL_FRAME_MEAN_MODEL
public static final String INERTIAL_FRAME_TRUE_MODEL
public static final String ROTATING_FRAME_CONSTANT_MODEL
public static final String ROTATING_FRAME_MEAN_MODEL
public static final String ROTATING_FRAME_TRUE_MODEL
protected AbstractIAUCelestialBody(String name, GravityModel gravityModel, CelestialBodyIAUOrientation celestialBodyIAUOrientation, Frame parentFrame, BSPEphemerisLoader.SpiceJ2000ConventionEnum convention, CelestialBodyEphemeris ephemeris)
name - name of the bodygravityModel - gravity modelcelestialBodyIAUOrientation - celestial body IAU orientationparentFrame - parent frame (usually it should be the ICRF centered on the parent body)convention - spice convention for BSP framesephemeris - ephemerisIllegalStateException - if the celestial body orientation is nor a CelestialBodyIAUOrientation or a
CelestialBodyTabulatedOrientation implementationprotected AbstractIAUCelestialBody(String name, double gm, CelestialBodyIAUOrientation celestialBodyIAUOrientation, Frame parentFrame)
name - name of the bodygm - gravitational attraction coefficient (in m3/s2)celestialBodyIAUOrientation - celestial body orientationparentFrame - parent frame (usually it should be the ICRF centered on the parent body)IllegalStateException - if the celestial body orientation is nor a CelestialBodyIAUOrientation or a
CelestialBodyTabulatedOrientation implementationprotected AbstractIAUCelestialBody(String name, double gm, CelestialBodyIAUOrientation celestialBodyIAUOrientation, Frame parentFrame, CelestialBodyEphemeris ephemeris)
name - name of the bodygm - gravitational attraction coefficient (in m3/s2)celestialBodyIAUOrientation - celestial body orientationparentFrame - parent frame (usually it should be the ICRF centered on the parent body)ephemeris - ephemerisIllegalStateException - if the celestial body orientation is nor a CelestialBodyIAUOrientation or a
CelestialBodyTabulatedOrientation implementationpublic CelestialBodyFrame getInertialFrame(IAUPoleModelType iauPoleIn) 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 IAUCelestialBodyiauPoleIn - the type of IAUPole used for the framePatriusException - if frame cannot be retrievedpublic CelestialBodyFrame getInertialFrame() throws PatriusException
getInertialFrame in interface CelestialBodygetInertialFrame in interface IAUCelestialBodygetInertialFrame in class AbstractCelestialBodyPatriusException - if frame cannot be retrievedpublic CelestialBodyFrame getRotatingFrame(IAUPoleModelType iauPoleIn) throws PatriusException
getRotatingFrame in interface IAUCelestialBodyiauPoleIn - the type of IAUPole used for the framePatriusException - if frame cannot be retrievedpublic final CelestialBodyFrame getRotatingFrame() throws PatriusException
getRotatingFrame in interface CelestialBodygetRotatingFrame in interface IAUCelestialBodygetRotatingFrame in class AbstractCelestialBodyPatriusException - if frame cannot be retrievedpublic CelestialBodyIAUOrientation getOrientation()
getOrientation in interface CelestialBodygetOrientation in interface IAUCelestialBodygetOrientation in class AbstractCelestialBodypublic void setOrientation(CelestialBodyOrientation celestialBodyIAUOrientation)
setOrientation in interface CelestialBodysetOrientation in class AbstractCelestialBodycelestialBodyIAUOrientation - the celestial body IAU orientationIllegalArgumentException - if the celestial body orientation isn't an instance of CelestialBodyIAUOrientationpublic String toString()
toString in interface CelestialPointtoString in class AbstractCelestialBodyCopyright © 2025 CNES. All rights reserved.