org.orekit.frames
Class FramesFactory

java.lang.Object
  extended by org.orekit.frames.FramesFactory
All Implemented Interfaces:
Serializable

public class FramesFactory
extends Object
implements Serializable

Factory for predefined reference frames.

FramesFactory Presentation

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.

Reference Frames

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()).

International Earth Rotation Service Frames

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).

Classical paradigm: equinox-based transformations

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  (Greenwich True Of Date)     EOD (Mean ecliptic and
                                                 │                                       w/o EOP corrections                             equinox of the epoch)
                                     Pole motion │                                              │
                                                 │                                              ├────────────┐
                                                 │                                              │            │
    (International Terrestrial Reference Frame) ITRF                                           ITRF        VEIS1950
                                                                                          equinox-based

 

This is a utility class, so its constructor is private.

Author:
Guylaine Prat, Luc Maisonobe, Pascal Parraud
See Also:
Serialized Form

Method Summary
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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getFrame

public static Frame getFrame(Predefined factoryKey)
                      throws OrekitException
Get one of the predefined frames.

Parameters:
factoryKey - key of the frame within the factory
Returns:
the predefined frame
Throws:
OrekitException - if frame cannot be built due to missing data

getGCRF

public static Frame getGCRF()
Get the unique GCRF frame.

The GCRF frame is the root frame in the frame tree.

Returns:
the unique instance of the GCRF frame

getICRF

public static Frame getICRF()
                     throws OrekitException
Get the unique ICRF frame.

The ICRF frame is centered at solar system barycenter and aligned with EME2000.

Returns:
the unique instance of the ICRF frame
Throws:
OrekitException - if solar system ephemerides cannot be loaded

getCIRF

public static FactoryManagedFrame getCIRF()
Get the CIRF reference frame.

Returns:
the selected reference frame singleton.

getTIRF

public static FactoryManagedFrame getTIRF()
                                   throws OrekitException
Get the TIRF reference frame.

Returns:
the selected reference frame singleton.
Throws:
OrekitException - if the precession-nutation model data embedded in the library cannot be read.

getITRF

public static FactoryManagedFrame getITRF()
                                   throws OrekitException
Get the ITRF reference frame.

Returns:
the selected reference frame singleton.
Throws:
OrekitException - if the precession-nutation model data embedded in the library cannot be read.

getEME2000

public static FactoryManagedFrame getEME2000()
Get the unique EME2000 frame.

The EME2000 frame is also called the J2000 frame. The former denomination is preferred in Orekit.

Returns:
the unique instance of the EME2000 frame

getVeis1950

public static FactoryManagedFrame getVeis1950()
                                       throws OrekitException
Get the VEIS 1950 reference frame.

Its parent frame is the GTOD frame without EOP corrections.

Returns:
the selected reference frame singleton.
Throws:
OrekitException - if data embedded in the library cannot be read

getITRFEquinox

public static FactoryManagedFrame getITRFEquinox()
                                          throws OrekitException
Get the equinox-based ITRF reference frame.

Returns:
the selected reference frame singleton.
Throws:
OrekitException - if data embedded in the library cannot be read

getGTOD

public static FactoryManagedFrame getGTOD(boolean applyEOPCorr)
                                   throws OrekitException
Get the GTOD reference frame.

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).

Parameters:
applyEOPCorr - if true, EOP corrections are applied (here, lod)
Returns:
the selected reference frame singleton.
Throws:
OrekitException - if data embedded in the library cannot be read

getTOD

public static FactoryManagedFrame getTOD(boolean applyEOPCorr)
                                  throws OrekitException
Get the TOD reference frame.

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).

Parameters:
applyEOPCorr - if true, EOP corrections are applied (here, nutation)
Returns:
the selected reference frame singleton.
Throws:
OrekitException - if data embedded in the library cannot be read

getMOD

public static FactoryManagedFrame getMOD(boolean applyEOPCorr)
                                  throws OrekitException
Get the MOD reference frame.

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).

Parameters:
applyEOPCorr - if true, EOP corrections are applied (EME2000/GCRF bias compensation)
Returns:
the selected reference frame singleton.
Throws:
OrekitException - if data embedded in the library cannot be read

getTEME

public static FactoryManagedFrame getTEME()
                                   throws OrekitException
Get the TEME reference frame.

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.

Returns:
the selected reference frame singleton.
Throws:
OrekitException - if data embedded in the library cannot be read

getEODFrame

public static FactoryManagedFrame getEODFrame(boolean applyEOPCorr)
                                       throws OrekitException

This class implements the EOD frame (mean ecliptic and equinox of the epoch).

See "Astronomical Algorithms", chapter 24 "Solar Coordinates", Jean Meeus, 1991.

Parameters:
applyEOPCorr - true to take into account EOP corrections
Returns:
the EOD frame
Throws:
OrekitException - if data embedded in the library cannot be read

getH0MinusN

public static Frame getH0MinusN(String name,
                                AbsoluteDate h0,
                                double n,
                                double longitude)
                         throws OrekitException
Get the "H0 - n" reference frame. The "H0 - n" frame is a pseudo-inertial frame, built from the GCRF-ITRF transformation at the date H0 - n; this transformation is "frozen" in time, and it is combined to a rotation of an angle "longitude" around the Z axis of the ITRF frame.

Parameters:
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).
Returns:
the selected reference frame.
Throws:
OrekitException - when the ITRF-GCRF transformation cannot be computed

getH0MinusN

public static Frame getH0MinusN(String name,
                                AbsoluteDate h0MinusN,
                                double longitude)
                         throws OrekitException
Get the "H0 - n" reference frame. The "H0 - n" frame is a pseudo-inertial frame, built from the GCRF-ITRF transformation at the date H0 - n; this transformation is "frozen" in time, and it is combined to a rotation of an angle "longitude" around the Z axis of the ITRF frame.

Parameters:
name - name of the frame.
h0MinusN - the H0 - n date.
longitude - the rotation angle around the ITRF Z axis (rad).
Returns:
the selected reference frame.
Throws:
OrekitException - when the ITRF-GCRF transformation cannot be computed

setConfiguration

public static void setConfiguration(FramesConfiguration newCfg)
Sets a new configuration. Replaces the current instance of the configuration by the provided parameter.

Parameters:
newCfg - the new configuration.

getConfiguration

public static FramesConfiguration getConfiguration()
Getter for the current configuration.

Returns:
configuration the current configuration


Copyright © 2017 CNES. All Rights Reserved.