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 and Description |
---|---|
class |
NRLMSISE00.FieldOutput<T extends org.hipparchus.RealFieldElement<T>>
This class is a placeholder for the computed densities and temperatures.
|
Constructor and Description |
---|
NRLMSISE00(NRLMSISE00InputParameters parameters,
PVCoordinatesProvider sun,
BodyShape earth)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
double |
getDensity(AbsoluteDate date,
org.hipparchus.geometry.euclidean.threed.Vector3D position,
Frame frame)
Get the local density.
|
<T extends org.hipparchus.RealFieldElement<T>> |
getDensity(FieldAbsoluteDate<T> date,
org.hipparchus.geometry.euclidean.threed.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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
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, org.hipparchus.geometry.euclidean.threed.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 org.hipparchus.RealFieldElement<T>> T getDensity(FieldAbsoluteDate<T> date, org.hipparchus.geometry.euclidean.threed.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-2017 CS Systèmes d'information. All rights reserved.