Class NRLMSISE00
- java.lang.Object
-
- org.orekit.models.earth.atmosphere.NRLMSISE00
-
- All Implemented Interfaces:
Serializable
,Atmosphere
public class NRLMSISE00 extends Object implements Atmosphere
This class implements the mathematical representation of the 2001 Naval Research Laboratory Mass Spectrometer and Incoherent Scatter Radar Exosphere (NRLMSISE-00) of the MSIS® class model.NRLMSISE-00 calculates the neutral atmosphere empirical model from the surface to lower exosphere (0 to 1000 km) and provides:
- Exospheric Temperature above Input Position (K)
- Local Temperature at Input Position (K)
- Total Mass-Density at Input Position (kg/m³)
- Partial Densities at Input Position (1/m³) for:
- He,
- H,
- N,
- O,
- Ar,
- N2,
- O2,
- anomalous oxygen.
The model needs geographical and time information to compute general values, but also needs space weather data:
- mean and daily solar flux,
- geomagnetic indices.
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:- #1 - F10.7 effect on mean
- #2 - Independent of time
- #3 - Symmetrical annual
- #4 - Symmetrical semiannual
- #5 - Asymmetrical annual
- #6 - Asymmetrical semiannual
- #7 - Diurnal
- #8 - Semidiurnal
- #9 - Daily Ap [**]
- #10 - All UT, longitudinal effects
- #11 - Longitudinal
- #12 - UT and mixed UT, longitudinal
- #13 - Mixed AP, UT, longitudinal
- #14 - Terdiurnal
- #15 - Departures from diffusive equilibrium
- #16 - All exospheric temperature variations
- #17 - All variations from 120 km temperature (TLB)
- #18 - All lower thermosphere (TN1) temperature variations
- #19 - All 120 km gradient (S) variations
- #20 - All upper stratosphere (TN2) temperature variations
- #21 - All variations from 120 km values (ZLB)
- #22 - All lower mesosphere temperature (TN3) variations
- #23 - Turbopause scale height variations
- set to 1, the daily Ap only is used (first element of ap array),
- set to -1, the entire array of ap is used, including 3 hr ap indices.
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.htmlInstances of this class are immutable.
- Since:
- 8.1
- Author:
- Mike Picone & al (Naval Research Laboratory), 2001: FORTRAN routine, Dominik Brodowski, 2004: C routine, Pascal Parraud, 2016: Java translation
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
NRLMSISE00.FieldOutput<T extends CalculusFieldElement<T>>
This class is a placeholder for the computed densities and temperatures.
-
Constructor Summary
Constructors Constructor Description NRLMSISE00(NRLMSISE00InputParameters parameters, PVCoordinatesProvider sun, BodyShape earth)
Constructor.NRLMSISE00(NRLMSISE00InputParameters parameters, PVCoordinatesProvider sun, BodyShape earth, TimeScale ut)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
getDensity(AbsoluteDate date, Vector3D position, Frame frame)
Get the local density.<T extends CalculusFieldElement<T>>
TgetDensity(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.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.models.earth.atmosphere.Atmosphere
getVelocity, getVelocity
-
-
-
-
Constructor Detail
-
NRLMSISE00
@DefaultDataContext public NRLMSISE00(NRLMSISE00InputParameters parameters, PVCoordinatesProvider sun, BodyShape earth)
Constructor.The model is constructed with all switches set to 1.
Parameters are mandatory only for the
getDensity()
andgetVelocity()
methods.This constructor uses the
default data context
.- Parameters:
parameters
- the solar and magnetic activity datasun
- the Sun positionearth
- the Earth body shape- See Also:
NRLMSISE00(NRLMSISE00InputParameters, PVCoordinatesProvider, BodyShape, TimeScale)
-
NRLMSISE00
public NRLMSISE00(NRLMSISE00InputParameters parameters, PVCoordinatesProvider sun, BodyShape earth, TimeScale ut)
Constructor.The model is constructed with all switches set to 1.
Parameters are mandatory only for the
getDensity()
andgetVelocity()
methods.- Parameters:
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.0TimeScalesFactory.getUT1(IERSConventions.IERS_2010, true)
was used.- Since:
- 10.1
-
-
Method Detail
-
withSwitch
public NRLMSISE00 withSwitch(int number, int value)
Change a switch.This method creates a new instance, the current instance is not changed at all!
- Parameters:
number
- switch number between 1 and 23value
- switch value- Returns:
- a new instance, with switch changed
-
getFrame
public Frame getFrame()
Get the frame of the central body.- Specified by:
getFrame
in interfaceAtmosphere
- Returns:
- frame of the central body.
-
getDensity
public double getDensity(AbsoluteDate date, Vector3D position, Frame frame)
Get the local density.- Specified by:
getDensity
in interfaceAtmosphere
- Parameters:
date
- current dateposition
- current position in frameframe
- the frame in which is defined the position- Returns:
- local density (kg/m³)
-
getDensity
public <T extends CalculusFieldElement<T>> T getDensity(FieldAbsoluteDate<T> date, FieldVector3D<T> position, Frame frame)
Get the local density.- Specified by:
getDensity
in interfaceAtmosphere
- Type Parameters:
T
- instance of CalculusFieldElement- Parameters:
date
- current dateposition
- current position in frameframe
- the frame in which is defined the position- Returns:
- local density (kg/m³)
-
-