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 CalculusFieldElement<T>>
This class is a placeholder for the computed densities and temperatures.
|
Constructor and Description |
---|
NRLMSISE00(NRLMSISE00InputParameters parameters,
PVCoordinatesProvider sun,
BodyShape earth)
Constructor.
|
NRLMSISE00(NRLMSISE00InputParameters parameters,
PVCoordinatesProvider sun,
BodyShape earth,
TimeScale ut)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
double |
getDensity(AbsoluteDate date,
Vector3D position,
Frame frame)
Get the local density.
|
<T extends CalculusFieldElement<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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getVelocity, getVelocity
@DefaultDataContext 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.
This constructor uses the default data context
.
parameters
- the solar and magnetic activity datasun
- the Sun positionearth
- the Earth body shapeNRLMSISE00(NRLMSISE00InputParameters, PVCoordinatesProvider, BodyShape,
TimeScale)
public NRLMSISE00(NRLMSISE00InputParameters parameters, PVCoordinatesProvider sun, BodyShape earth, TimeScale ut)
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 shapeut
- UT time scale. The original documentation for NRLMSISE00 does not
distinguish between UTC and UT1. In Orekit 10.0 TimeScalesFactory.getUT1(IERSConventions.IERS_2010, true)
was used.public NRLMSISE00 withSwitch(int number, int value)
This method creates a new instance, the current instance is not changed at all!
number
- switch number between 1 and 23value
- switch valuepublic Frame getFrame()
getFrame
in interface Atmosphere
public double getDensity(AbsoluteDate date, Vector3D position, Frame frame)
getDensity
in interface Atmosphere
date
- current dateposition
- current position in frameframe
- the frame in which is defined the positionpublic <T extends CalculusFieldElement<T>> T getDensity(FieldAbsoluteDate<T> date, FieldVector3D<T> position, Frame frame)
getDensity
in interface Atmosphere
T
- instance of CalculusFieldElementdate
- current dateposition
- current position in frameframe
- the frame in which is defined the positionCopyright © 2002-2022 CS GROUP. All rights reserved.