Class NRLMSISE00
- java.lang.Object
-
- org.orekit.forces.drag.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 org.hipparchus.RealFieldElement<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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
getDensity(AbsoluteDate date, org.hipparchus.geometry.euclidean.threed.Vector3D position, Frame frame)
Get the local density.<T extends org.hipparchus.RealFieldElement<T>>
TgetDensity(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.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.orekit.forces.drag.atmosphere.Atmosphere
getVelocity, getVelocity
-
-
-
-
Constructor Detail
-
NRLMSISE00
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.- Parameters:
parameters
- the solar and magnetic activity datasun
- the Sun positionearth
- the Earth body shape
-
-
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, org.hipparchus.geometry.euclidean.threed.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 org.hipparchus.RealFieldElement<T>> T getDensity(FieldAbsoluteDate<T> date, org.hipparchus.geometry.euclidean.threed.FieldVector3D<T> position, Frame frame)
Get the local density.- Specified by:
getDensity
in interfaceAtmosphere
- Type Parameters:
T
- instance of RealFieldElement- Parameters:
date
- current dateposition
- current position in frameframe
- the frame in which is defined the position- Returns:
- local density (kg/m³)
-
-