Class AbstractFrames
- java.lang.Object
-
- org.orekit.frames.AbstractFrames
-
- All Implemented Interfaces:
Frames
- Direct Known Subclasses:
LazyLoadedFrames
public abstract class AbstractFrames extends Object implements Frames
This class is an implementation ofFrames
that creates frames when they are first used and uses synchronization to ensure that each frame is only created once.- Since:
- 10.1
- Author:
- Guylaine Prat, Luc Maisonobe, Pascal Parraud, Evan Ward
- See Also:
LazyLoadedFrames
,Frames.getEOPHistory(IERSConventions, boolean)
-
-
Constructor Summary
Constructors Constructor Description AbstractFrames(TimeScales timeScales, Supplier<Frame> icrfSupplier)
Simple constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Frame
buildUncachedITRF(UT1Scale ut1)
Build an uncached International Terrestrial Reference Frame with specificEOP history
.FactoryManagedFrame
getCIRF(IERSConventions conventions, boolean simpleEOP)
Get the CIRF2000 reference frame.Frame
getEcliptic(IERSConventions conventions)
Get the ecliptic frame.FactoryManagedFrame
getEME2000()
Get the unique EME2000 frame.Frame
getFrame(Predefined factoryKey)
Get one of the predefined frames.Frame
getGCRF()
Get the unique GCRF frame.FactoryManagedFrame
getGTOD(boolean applyEOPCorr)
Get the GTOD reference frame.FactoryManagedFrame
getGTOD(IERSConventions conventions, boolean simpleEOP)
Get the GTOD reference frame.Frame
getICRF()
Get the unique ICRF frame.VersionedITRF
getITRF(ITRFVersion version, IERSConventions conventions, boolean simpleEOP)
Get an specific International Terrestrial Reference Frame.FactoryManagedFrame
getITRF(IERSConventions conventions, boolean simpleEOP)
Get an unspecified International Terrestrial Reference Frame.FactoryManagedFrame
getITRFEquinox(IERSConventions conventions, boolean simpleEOP)
Get the equinox-based ITRF reference frame.FactoryManagedFrame
getMOD(boolean applyEOPCorr)
Get the MOD reference frame.FactoryManagedFrame
getMOD(IERSConventions conventions)
Get the MOD reference frame.FactoryManagedFrame
getPZ9011(IERSConventions convention, boolean simpleEOP)
Get the PZ-90.11 (Parametry Zemly – 1990.11) reference frame.FactoryManagedFrame
getTEME()
Get the TEME reference frame.protected TimeScales
getTimeScales()
Get the time scales.FactoryManagedFrame
getTIRF(IERSConventions conventions)
Get the TIRF reference frame, ignoring tidal effects.FactoryManagedFrame
getTIRF(IERSConventions conventions, boolean simpleEOP)
Get the TIRF reference frame.FactoryManagedFrame
getTOD(boolean applyEOPCorr)
Get the TOD reference frame.FactoryManagedFrame
getTOD(IERSConventions conventions, boolean simpleEOP)
Get the TOD reference frame.FactoryManagedFrame
getVeis1950()
Get the VEIS 1950 reference frame.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.frames.Frames
getEOPHistory
-
-
-
-
Constructor Detail
-
AbstractFrames
public AbstractFrames(TimeScales timeScales, Supplier<Frame> icrfSupplier)
Simple constructor.- Parameters:
timeScales
- to use when creating frames.icrfSupplier
- used to implementgetICRF()
;
-
-
Method Detail
-
getFrame
public Frame getFrame(Predefined factoryKey)
Description copied from interface:Frames
Get one of the predefined frames.
-
getGCRF
public Frame getGCRF()
Description copied from interface:Frames
Get the unique GCRF frame.The GCRF frame is the root frame in the frame tree.
-
getICRF
public Frame getICRF()
Description copied from interface:Frames
Get the unique ICRF frame.The ICRF frame is centered at solar system barycenter and aligned with GCRF.
-
getEcliptic
public Frame getEcliptic(IERSConventions conventions)
Description copied from interface:Frames
Get the ecliptic frame. The IAU defines the ecliptic as "the plane perpendicular to the mean heliocentric orbital angular momentum vector of the Earth-Moon barycentre in the BCRS (IAU 2006 Resolution B1)." The +z axis is aligned with the angular momentum vector, and the +x axis is aligned with +x axis ofMOD
.This implementation agrees with the JPL 406 ephemerides to within 0.5 arc seconds.
- Specified by:
getEcliptic
in interfaceFrames
- Parameters:
conventions
- IERS conventions to apply- Returns:
- the selected reference frame singleton.
-
getEME2000
public FactoryManagedFrame getEME2000()
Description copied from interface:Frames
Get the unique EME2000 frame.The EME2000 frame is also called the J2000 frame. The former denomination is preferred in Orekit.
- Specified by:
getEME2000
in interfaceFrames
- Returns:
- the unique instance of the EME2000 frame
-
getITRF
public FactoryManagedFrame getITRF(IERSConventions conventions, boolean simpleEOP)
Description copied from interface:Frames
Get an unspecified International Terrestrial Reference Frame.The frame returned uses the
Earth Orientation Parameters
blindly. So if for example one loads only EOP 14 C04 files to retrieve the parameters, the frame will be anITRFVersion.ITRF_2014
. However, if parameters are loaded from different files types, or even for file types that changed their reference (like Bulletin A switching fromITRFVersion.ITRF_2008
toITRFVersion.ITRF_2014
starting with Vol. XXXI No. 013 published on 2018-03-29), then the ITRF returned by this method will jump from one version to another version.IF a specific version of ITRF is needed, then
Frames.getITRF(ITRFVersion, IERSConventions, boolean)
should be used instead.- Specified by:
getITRF
in interfaceFrames
- Parameters:
conventions
- IERS conventions to applysimpleEOP
- if true, tidal effects are ignored when interpolating EOP- Returns:
- the selected reference frame singleton.
- See Also:
Frames.getITRF(ITRFVersion, IERSConventions, boolean)
-
getITRF
public VersionedITRF getITRF(ITRFVersion version, IERSConventions conventions, boolean simpleEOP)
Description copied from interface:Frames
Get an specific International Terrestrial Reference Frame.Note that if a specific version of ITRF is required, then
simpleEOP
should most probably be set tofalse
, as ignoring tidal effects has an effect of the same order of magnitude as the differences between the variousITRF versions
.
-
buildUncachedITRF
public Frame buildUncachedITRF(UT1Scale ut1)
Description copied from interface:Frames
Build an uncached International Terrestrial Reference Frame with specificEOP history
.This frame and its parent frames (TIRF and CIRF) will not be cached, they are rebuilt from scratch each time this method is called. This factory method is intended to be used when EOP history is changed at run time. For regular ITRF use, the
Frames.getITRF(IERSConventions, boolean)
and {linkFrames.getITRF(ITRFVersion, IERSConventions, boolean)
are more suitable.- Specified by:
buildUncachedITRF
in interfaceFrames
- Parameters:
ut1
- UT1 time scale (contains theEOP history
)- Returns:
- an ITRF frame with specified time scale and embedded EOP history
-
getTIRF
public FactoryManagedFrame getTIRF(IERSConventions conventions)
Description copied from interface:Frames
Get the TIRF reference frame, ignoring tidal effects.
-
getTIRF
public FactoryManagedFrame getTIRF(IERSConventions conventions, boolean simpleEOP)
Description copied from interface:Frames
Get the TIRF reference frame.
-
getCIRF
public FactoryManagedFrame getCIRF(IERSConventions conventions, boolean simpleEOP)
Description copied from interface:Frames
Get the CIRF2000 reference frame.
-
getVeis1950
public FactoryManagedFrame getVeis1950()
Description copied from interface:Frames
Get the VEIS 1950 reference frame.Its parent frame is the GTOD frame with IERS 1996 conventions without EOP corrections.
- Specified by:
getVeis1950
in interfaceFrames
- Returns:
- the selected reference frame singleton.
-
getITRFEquinox
public FactoryManagedFrame getITRFEquinox(IERSConventions conventions, boolean simpleEOP)
Description copied from interface:Frames
Get the equinox-based ITRF reference frame.- Specified by:
getITRFEquinox
in interfaceFrames
- Parameters:
conventions
- IERS conventions to applysimpleEOP
- if true, tidal effects are ignored when interpolating EOP- Returns:
- the selected reference frame singleton.
-
getGTOD
public FactoryManagedFrame getGTOD(boolean applyEOPCorr)
Description copied from interface:Frames
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 250m in LEO and 1400m in GEO). For this reason, setting this parameter to false is restricted toIERS 1996
conventions, and hence theIERS conventions
cannot be freely chosen here.
-
getGTOD
public FactoryManagedFrame getGTOD(IERSConventions conventions, boolean simpleEOP)
Description copied from interface:Frames
Get the GTOD reference frame.
-
getTOD
public FactoryManagedFrame getTOD(boolean applyEOPCorr)
Description copied from interface:Frames
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). For this reason, setting this parameter to false is restricted toIERS 1996
conventions, and hence theIERS conventions
cannot be freely chosen here.
-
getTOD
public FactoryManagedFrame getTOD(IERSConventions conventions, boolean simpleEOP)
Description copied from interface:Frames
Get the TOD reference frame.
-
getMOD
public FactoryManagedFrame getMOD(boolean applyEOPCorr)
Description copied from interface:Frames
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). For this reason, setting this parameter to false is restricted toIERS 1996
conventions, and hence theIERS conventions
cannot be freely chosen here.
-
getMOD
public FactoryManagedFrame getMOD(IERSConventions conventions)
Description copied from interface:Frames
Get the MOD reference frame.
-
getTEME
public FactoryManagedFrame getTEME()
Description copied from interface:Frames
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.
-
getPZ9011
public FactoryManagedFrame getPZ9011(IERSConventions convention, boolean simpleEOP)
Description copied from interface:Frames
Get the PZ-90.11 (Parametry Zemly – 1990.11) reference frame.The PZ-90.11 reference system was updated on all operational GLONASS satellites starting from 3:00 pm on December 31, 2013.
The transition between parent frame (ITRF-2008) and PZ-90.11 frame is performed using a seven parameters Helmert transformation.
From To ΔX(m) ΔY(m) ΔZ(m) RX(mas) RY(mas) RZ(mas) Epoch ITRF-2008 PZ-90.11 +0.003 +0.001 -0.000 +0.019 -0.042 +0.002 2010
- Specified by:
getPZ9011
in interfaceFrames
- Parameters:
convention
- IERS conventions to applysimpleEOP
- if true, tidal effects are ignored when interpolating EOP- Returns:
- the selected reference frame singleton.
- See Also:
- "Springer Handbook of Global Navigation Satellite Systems, Peter Teunissen & Oliver Montenbruck"
-
getTimeScales
protected TimeScales getTimeScales()
Get the time scales.- Returns:
- time scales used to define these frames.
-
-