Serializable
, Atmosphere
public class NRLMSISE00 extends Object implements Atmosphere
NRLMSISE-00 calculates the neutral atmosphere empirical model from the surface to lower exosphere (0 to 1000 km) and provides:
The model needs geographical and time information to compute general values, but also needs space weather data:
Switches can be used to turn on and off particular variations:
0 is off, 1 is on, and 2 is main effects off but cross terms on.
The standard value is 1 for all the 23 available switches.
Function of each switch according to its number:
The NRLMSISE-00 model was developed by Mike Picone, Alan Hedin, and Doug Drob.
They also wrote a NRLMSISE-00 distribution package in FORTRAN available at:
ftp://hanna.ccmc.gsfc.nasa.gov/pub/modelweb/atmospheric/msis/nrlmsise00/
Dominik Brodowski implemented a C version of the NRLMSISE-00 model available at:
http://www.brodo.de/space/nrlmsise/index.html
Instances of this class are immutable.
Modifier and Type | Class | Description |
---|---|---|
class |
NRLMSISE00.FieldOutput<T extends RealFieldElement<T>> |
This class is a placeholder for the computed densities and temperatures.
|
Constructor | Description |
---|---|
NRLMSISE00(NRLMSISE00InputParameters parameters,
PVCoordinatesProvider sun,
BodyShape earth) |
Constructor.
|
Modifier and Type | Method | Description |
---|---|---|
double |
getDensity(AbsoluteDate date,
Vector3D position,
Frame frame) |
Get the local density.
|
<T extends RealFieldElement<T>> |
getDensity(FieldAbsoluteDate<T> date,
FieldVector3D<T> position,
Frame frame) |
Get the local density.
|
Frame |
getFrame() |
Get the frame of the central body.
|
NRLMSISE00 |
withSwitch(int number,
int value) |
Change a switch.
|
getVelocity, getVelocity
public NRLMSISE00(NRLMSISE00InputParameters parameters, PVCoordinatesProvider sun, BodyShape earth)
The model is constructed with all switches set to 1.
Parameters are mandatory only for the
getDensity()
and
getVelocity()
methods.
parameters
- the solar and magnetic activity datasun
- the Sun positionearth
- the Earth body shapepublic NRLMSISE00 withSwitch(int number, int value) throws OrekitException
This method creates a new instance, the current instance is not changed at all!
number
- switch number between 1 and 23value
- switch valueOrekitException
- if switch number is not between 1 and 23public Frame getFrame()
getFrame
in interface Atmosphere
public double getDensity(AbsoluteDate date, Vector3D position, Frame frame) throws OrekitException
getDensity
in interface Atmosphere
date
- current dateposition
- current position in frameframe
- the frame in which is defined the positionOrekitException
- if date is out of range of solar activity model
or if some frame conversion cannot be performedpublic <T extends RealFieldElement<T>> T getDensity(FieldAbsoluteDate<T> date, FieldVector3D<T> position, Frame frame) throws OrekitException
getDensity
in interface Atmosphere
T
- instance of RealFieldElementdate
- current dateposition
- current position in frameframe
- the frame in which is defined the positionOrekitException
- if date is out of range of solar activity model
or if some frame conversion cannot be performedCopyright © 2002-2018 CS Systèmes d'information. All rights reserved.