public class MSISE2000 extends Object implements ExtendedAtmosphere
NRLMSISE00
class - adapted from Fortran - and the SIRIUS data
structures.
Warning: this model is not continuous. There is a discontinuity every day (at 0h in UTC time scale). Discontinuities are however very small (1E-3 on a relative scale).
This class is restricted to be used with EllipsoidBodyShape
.
Constructor and Description |
---|
MSISE2000(MSISE2000InputParameters data,
EllipsoidBodyShape earthBody,
CelestialPoint sun)
Simple constructor for class MSIS00Adapter.
|
Modifier and Type | Method and Description |
---|---|
void |
checkSolarActivityData(AbsoluteDate start,
AbsoluteDate end)
This methods throws an exception if the user did not provide solar activity on the provided interval [start,
end].
|
Atmosphere |
copy()
A copy of the atmosphere.
|
AtmosphereData |
getData(AbsoluteDate date,
Vector3D position,
Frame frame)
Get detailed atmospheric data.
|
double |
getDensity(AbsoluteDate date,
Vector3D position,
Frame frame)
Get the local density.
|
BodyShape |
getEarthBody()
Getter for the earth body.
|
MSISE2000InputParameters |
getParameters()
Getter for the solar parameters.
|
double |
getPressure(AbsoluteDate date,
Vector3D position,
Frame frame)
Getter for the pressure.
|
double |
getSpeedOfSound(AbsoluteDate date,
Vector3D position,
Frame frame)
Get the local speed of sound.
|
CelestialPoint |
getSun()
Getter for the Sun.
|
Vector3D |
getVelocity(AbsoluteDate date,
Vector3D position,
Frame frame)
Get the spacecraft velocity relative to the atmosphere.
|
public MSISE2000(MSISE2000InputParameters data, EllipsoidBodyShape earthBody, CelestialPoint sun)
data
- solar dataearthBody
- earth bodysun
- the sunpublic double getDensity(AbsoluteDate date, Vector3D position, Frame frame) throws PatriusException
getDensity
in interface Atmosphere
date
- current dateposition
- current position in frameframe
- the frame in which is defined the positionPatriusException
- if date is out of range of solar activity model or if some frame
conversion cannot be performedpublic double getPressure(AbsoluteDate date, Vector3D position, Frame frame) throws PatriusException
date
- dateposition
- positionframe
- framePatriusException
- if pressure could not be computedpublic Vector3D getVelocity(AbsoluteDate date, Vector3D position, Frame frame) throws PatriusException
getVelocity
in interface Atmosphere
date
- current dateposition
- current position in frameframe
- the frame in which is defined the positionPatriusException
- if some conversion cannot be performedpublic double getSpeedOfSound(AbsoluteDate date, Vector3D position, Frame frame) throws PatriusException
getSpeedOfSound
in interface Atmosphere
date
- current dateposition
- current position in frameframe
- the frame in which is defined the positionPatriusException
- if some conversion cannot be performedpublic AtmosphereData getData(AbsoluteDate date, Vector3D position, Frame frame) throws PatriusException
MSISE2000 provides all data mentioned in AtmosphereData
.
getData
in interface ExtendedAtmosphere
date
- current dateposition
- current position in frameframe
- the frame in which is defined the positionPatriusException
- if some atmospheric data cannot be retrieved (because date is out of
range of solar activity model or if some frame conversion cannot be performed)public MSISE2000InputParameters getParameters()
public BodyShape getEarthBody()
public CelestialPoint getSun()
public Atmosphere copy()
The following attributes are not deeply copied:
MSISE2000InputParameters
PVCoordinatesProvider
BodyShape
copy
in interface Atmosphere
public void checkSolarActivityData(AbsoluteDate start, AbsoluteDate end) throws PatriusException
checkSolarActivityData
in interface Atmosphere
start
- range start dateend
- range end datePatriusException
- thrown if some solar activity data is missingCopyright © 2023 CNES. All rights reserved.