Class JPLEphemeridesLoader
- java.lang.Object
-
- org.orekit.data.AbstractSelfFeedingLoader
-
- org.orekit.bodies.JPLEphemeridesLoader
-
- All Implemented Interfaces:
CelestialBodyLoader
public class JPLEphemeridesLoader extends AbstractSelfFeedingLoader implements CelestialBodyLoader
Loader for JPL ephemerides binary files (DE 4xx) and similar formats (INPOP 06/08/10).JPL ephemerides binary files contain ephemerides for all solar system planets.
The JPL ephemerides binary files are recognized thanks to their base names, which must match the pattern
[lu]nx[mp]####.ddd
(or[lu]nx[mp]####.ddd.gz
for gzip-compressed files) where # stands for a digit character and where ddd is an ephemeris type (typically 405 or 406).The loader supports files encoded in big-endian as well as in little-endian notation. Usually, big-endian files are named
unx[mp]####.ddd
, while little-endian files are namedlnx[mp]####.ddd
.The IMCCE ephemerides binary files are recognized thanks to their base names, which must match the pattern
inpop*.dat
(orinpop*.dat.gz
for gzip-compressed files) where * stands for any string.The loader supports files encoded in big-endian as well as in little-endian notation. Usually, big-endian files contain
bigendian
in their names, while little-endian files containlittleendian
in their names.The loader supports files in TDB or TCB time scales.
- Author:
- Luc Maisonobe
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
JPLEphemeridesLoader.EphemerisType
List of supported ephemerides types.static interface
JPLEphemeridesLoader.RawPVProvider
Interface for raw position-velocity retrieval.
-
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_DE_SUPPORTED_NAMES
Default supported files name pattern for JPL DE files.static String
DEFAULT_INPOP_SUPPORTED_NAMES
Default supported files name pattern for IMCCE INPOP files.
-
Constructor Summary
Constructors Constructor Description JPLEphemeridesLoader(String supportedNames, JPLEphemeridesLoader.EphemerisType generateType)
Create a loader for JPL ephemerides binary files.JPLEphemeridesLoader(String supportedNames, JPLEphemeridesLoader.EphemerisType generateType, DataProvidersManager dataProvidersManager, TimeScales timeScales, Frame gcrf)
Create a loader for JPL ephemerides binary files.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
getLoadedAstronomicalUnit()
Get astronomical unit.double
getLoadedConstant(String... names)
Get a constant defined in the ephemerides headers.double
getLoadedEarthMoonMassRatio()
Get Earth/Moon mass ratio.double
getLoadedGravitationalCoefficient(JPLEphemeridesLoader.EphemerisType body)
Get the gravitational coefficient of a body.double
getMaxChunksDuration()
Get the maximal chunks duration.CelestialBody
loadCelestialBody(String name)
Load celestial body.-
Methods inherited from class org.orekit.data.AbstractSelfFeedingLoader
feed, getDataProvidersManager, getSupportedNames, setSupportedNames
-
-
-
-
Field Detail
-
DEFAULT_DE_SUPPORTED_NAMES
public static final String DEFAULT_DE_SUPPORTED_NAMES
Default supported files name pattern for JPL DE files.- See Also:
- Constant Field Values
-
DEFAULT_INPOP_SUPPORTED_NAMES
public static final String DEFAULT_INPOP_SUPPORTED_NAMES
Default supported files name pattern for IMCCE INPOP files.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
JPLEphemeridesLoader
@DefaultDataContext public JPLEphemeridesLoader(String supportedNames, JPLEphemeridesLoader.EphemerisType generateType)
Create a loader for JPL ephemerides binary files. This constructor uses thedefault data context
.- Parameters:
supportedNames
- regular expression for supported files namesgenerateType
- ephemeris type to generate- See Also:
JPLEphemeridesLoader(String, EphemerisType, DataProvidersManager, TimeScales, Frame)
-
JPLEphemeridesLoader
public JPLEphemeridesLoader(String supportedNames, JPLEphemeridesLoader.EphemerisType generateType, DataProvidersManager dataProvidersManager, TimeScales timeScales, Frame gcrf)
Create a loader for JPL ephemerides binary files.- Parameters:
supportedNames
- regular expression for supported files namesgenerateType
- ephemeris type to generatedataProvidersManager
- provides access to the ephemeris files.timeScales
- used to access the TCB and TDB time scales while loading data.gcrf
- Earth centered frame aligned with ICRF.- Since:
- 10.1
-
-
Method Detail
-
loadCelestialBody
public CelestialBody loadCelestialBody(String name)
Load celestial body.- Specified by:
loadCelestialBody
in interfaceCelestialBodyLoader
- Parameters:
name
- name of the celestial body- Returns:
- loaded celestial body
-
getLoadedAstronomicalUnit
public double getLoadedAstronomicalUnit()
Get astronomical unit.- Returns:
- astronomical unit in meters
-
getLoadedEarthMoonMassRatio
public double getLoadedEarthMoonMassRatio()
Get Earth/Moon mass ratio.- Returns:
- Earth/Moon mass ratio
-
getLoadedGravitationalCoefficient
public double getLoadedGravitationalCoefficient(JPLEphemeridesLoader.EphemerisType body)
Get the gravitational coefficient of a body.- Parameters:
body
- body for which the gravitational coefficient is requested- Returns:
- gravitational coefficient in m³/s²
-
getLoadedConstant
public double getLoadedConstant(String... names)
Get a constant defined in the ephemerides headers.Note that since constants are defined in the JPL headers files, they are available as soon as one file is available, even if it doesn't match the desired central date. This is because the header must be parsed before the dates can be checked.
There are alternate names for constants since for example JPL names are different from INPOP names (Sun gravity: GMS or GM_Sun, Mars gravity: GM4 or GM_Mar...).
- Parameters:
names
- alternate names of the constant- Returns:
- value of the constant of NaN if the constant is not defined
-
getMaxChunksDuration
public double getMaxChunksDuration()
Get the maximal chunks duration.- Returns:
- chunks maximal duration in seconds
-
-