public final class FramesFactory extends Object implements Serializable
Several predefined reference frames are implemented in OREKIT. They are linked together in a tree with the
Geocentric Celestial Reference Frame (GCRF) as the root of the tree. The IERS frames require a
FramesConfiguration. If no configuration is specified by the user, a default one is used. The user can create a
configuration with the FramesConfigurationBuilder
, and pass it to
the FramesFactory
with the setConfiguration(FramesConfiguration)
method.
The user can retrieve those reference frames using various static methods (
getFrame(Predefined)
, getGCRF()
, getCIRF()
, getTIRF()
,
getITRF()
, getEME2000()
, getMOD(boolean)
, getTOD(boolean)
,
getGTOD(boolean)
, getITRFEquinox()
, getTEME()
and getVeis1950()
).
The frames defined by the IERS are available, and are described in the IERS conventions (2010). The are fully configurable. Using the
FramesConfigurationBuilder
, one can specify all models pertaining
to the transformations between the IERS frames.
This frame is used to define position on solid Earth. It rotates with the Earth and includes the pole motion with
respect to Earth crust as provided by the frames
configuration
. Its pole axis is the IERS Reference Pole (IRP).
The classical paradigm used prior to IERS conventions 2003 is equinox based and uses more intermediate frames. Only some of these frames are supported in Orekit.
Here is a schematic representation of the predefined reference frames tree:
GCRF │ ┌────────┴────┬────────────────────┐ │ │ Frame bias │ │ │ EME2000 │ │ │ │ │ Precession effects │ Bias, Precession and Nutation effects │ │ │ with or w/o EOP nutation correction │ MOD MOD (Mean equator Of Date) │ │ w/o EOP corrections │ ┌───────┤ Nutation effects ├───────────────────────────┐ (Celestial Intermediate Reference Frame) CIRF │ │ │ │ │ │ TOD TOD (True equator Of Date) │ Earth natural rotation │ │ │ w/o EOP corrections │ │ │ │ Sidereal Time │ │ │ │ │ │ │ (Terrestrial Intermediate Reference Frame) TIRF EOD GTOD GTOD (Green. True Of Date) EOD │ w/o EOP corrections Pole motion │ │ │ ├────────────┐ │ │ │ (International Terrestrial Reference Frame) ITRF ITRF VEIS1950 equinox-based
This is a utility class, so its constructor is private.
Modifier and Type | Method and Description |
---|---|
static FactoryManagedFrame |
getCIRF()
Get the CIRF reference frame.
|
static FramesConfiguration |
getConfiguration()
Getter for the current configuration.
|
static FactoryManagedFrame |
getEME2000()
Get the unique EME2000 frame.
|
static FactoryManagedFrame |
getEODFrame(boolean applyEOPCorr)
This class implements the EOD frame (mean ecliptic and equinox of the epoch).
|
static Frame |
getFrame(Predefined factoryKey)
Get one of the predefined frames.
|
static Frame |
getGCRF()
Get the unique GCRF frame.
|
static FactoryManagedFrame |
getGTOD(boolean applyEOPCorr)
Get the GTOD reference frame.
|
static Frame |
getH0MinusN(String name,
AbsoluteDate h0MinusN,
double longitude)
Get the "H0 - n" reference frame.
|
static Frame |
getH0MinusN(String name,
AbsoluteDate h0,
double n,
double longitude)
Get the "H0 - n" reference frame.
|
static Frame |
getICRF()
Get the unique ICRF frame.
|
static FactoryManagedFrame |
getITRF()
Get the ITRF reference frame.
|
static FactoryManagedFrame |
getITRFEquinox()
Get the equinox-based ITRF reference frame.
|
static FactoryManagedFrame |
getMOD(boolean applyEOPCorr)
Get the MOD reference frame.
|
static FactoryManagedFrame |
getTEME()
Get the TEME reference frame.
|
static FactoryManagedFrame |
getTIRF()
Get the TIRF reference frame.
|
static FactoryManagedFrame |
getTOD(boolean applyEOPCorr)
Get the TOD reference frame.
|
static FactoryManagedFrame |
getVeis1950()
Get the VEIS 1950 reference frame.
|
static void |
setConfiguration(FramesConfiguration newCfg)
Sets a new configuration.
|
public static Frame getFrame(Predefined factoryKey) throws PatriusException
factoryKey
- key of the frame within the factoryPatriusException
- if frame cannot be built due to missing datapublic static Frame getGCRF()
The GCRF frame is the root frame in the frame tree.
public static Frame getICRF() throws PatriusException
The ICRF frame is centered at solar system barycenter and aligned with GCRF.
PatriusException
- if solar system ephemerides cannot be loadedpublic static FactoryManagedFrame getCIRF()
public static FactoryManagedFrame getTIRF() throws PatriusException
PatriusException
- if the precession-nutation model data embedded in the library
cannot be read.public static FactoryManagedFrame getITRF() throws PatriusException
PatriusException
- if the precession-nutation model data embedded in the library
cannot be read.public static FactoryManagedFrame getEME2000()
The EME2000 frame is also called the J2000 frame. The former denomination is preferred in Orekit.
public static FactoryManagedFrame getVeis1950() throws PatriusException
Its parent frame is the GTOD frame without EOP corrections.
PatriusException
- if data embedded in the library cannot be readpublic static FactoryManagedFrame getITRFEquinox() throws PatriusException
PatriusException
- if data embedded in the library cannot be readpublic static FactoryManagedFrame getGTOD(boolean applyEOPCorr) throws PatriusException
The applyEOPCorr parameter is available mainly for testing purposes or for consistency with legacy software that
don't handle EOP correction parameters. Beware that setting this parameter to false
leads to crude
accuracy (order of magnitudes for errors might be above 1m in LEO and 10m in GEO).
applyEOPCorr
- if true, EOP corrections are applied (here, lod)PatriusException
- if data embedded in the library cannot be readpublic static FactoryManagedFrame getTOD(boolean applyEOPCorr) throws PatriusException
The applyEOPCorr parameter is available mainly for testing purposes or for consistency with legacy software that
don't handle EOP correction parameters. Beware that setting this parameter to false
leads to crude
accuracy (order of magnitudes for errors might be above 1m in LEO and 10m in GEO).
applyEOPCorr
- if true, EOP corrections are applied (here, nutation)PatriusException
- if data embedded in the library cannot be readpublic static FactoryManagedFrame getMOD(boolean applyEOPCorr) throws PatriusException
The applyEOPCorr parameter is available mainly for testing purposes or for consistency with legacy software that
don't handle EOP correction parameters. Beware that setting this parameter to false
leads to crude
accuracy (order of magnitudes for errors might be above 1m in LEO and 10m in GEO).
applyEOPCorr
- if true, EOP corrections are applied (EME2000/GCRF bias compensation)PatriusException
- if data embedded in the library cannot be readpublic static FactoryManagedFrame getTEME() throws PatriusException
The TEME frame is used for the SGP4 model in TLE propagation. This frame has no official definition and there are some ambiguities about whether it should be used as "of date" or "of epoch". This frame should therefore be used only for TLE propagation and not for anything else, as recommended by the CCSDS Orbit Data Message blue book.
PatriusException
- if data embedded in the library cannot be readpublic static FactoryManagedFrame getEODFrame(boolean applyEOPCorr) throws PatriusException
This class implements the EOD frame (mean ecliptic and equinox of the epoch).
See "Astronomical Algorithms", chapter 24 "Solar Coordinates", Jean Meeus, 1991.applyEOPCorr
- true to take into account EOP correctionsPatriusException
- if data embedded in the library cannot be readpublic static Frame getH0MinusN(String name, AbsoluteDate h0, double n, double longitude) throws PatriusException
name
- name of the frame.h0
- the H0 date.n
- the offset for the date (date = H0 - n).longitude
- the rotation angle around the ITRF Z axis (rad).PatriusException
- when the ITRF-GCRF transformation cannot be computedpublic static Frame getH0MinusN(String name, AbsoluteDate h0MinusN, double longitude) throws PatriusException
name
- name of the frame.h0MinusN
- the H0 - n date.longitude
- the rotation angle around the ITRF Z axis (rad).PatriusException
- when the ITRF-GCRF transformation cannot be computedpublic static void setConfiguration(FramesConfiguration newCfg)
newCfg
- the new configuration.public static FramesConfiguration getConfiguration()
Copyright © 2021 CNES. All rights reserved.