public class JB2006 extends Object implements Atmosphere
It is described in the paper:
A New Empirical Thermospheric
Density Model JB2006 Using New Solar Indices
Bruce R. Bowman, W. Kent Tobiska and Frank A. Marcos
AIAA 2006-6166
Two computation methods are proposed to the user:
getDensity(double, double, double, double, double, double, double, double, double, double,
double, double, double)
.drag force model
computation.This model provides dense output for any position with altitude larger than 90km. Output data are :
The model needs geographical and time information to compute general values, but also needs space weather data : mean
and daily solar flux, retrieved threw different indices, and planetary geomagnetic indices.
More information on these indices can be found on the official JB2006 website.
Constructor and Description |
---|
JB2006(JB2006InputParameters parameters,
PVCoordinatesProvider sunIn,
BodyShape earthIn)
Constructor with space environment information for internal computation.
|
Modifier and Type | Method and Description |
---|---|
void |
checkSolarActivityData(AbsoluteDate start,
AbsoluteDate end)
This methods throws an exception if the user did not provide solar activity on the provided interval [start,
end].
|
Atmosphere |
copy()
A copy of the atmosphere.
|
double |
getDensity(AbsoluteDate date,
Vector3D position,
Frame frame)
Get the local density.
|
double |
getDensity(double dateMJD,
double sunRA,
double sunDecli,
double satLon,
double satLat,
double satAlt,
double f10,
double f10B,
double ap,
double s10,
double s10B,
double xm10,
double xm10B)
Get the local density with initial entries.
|
double |
getExosphericTemp()
Get the exospheric temperature above input position.
|
double |
getLocalTemp()
Get the temperature at input position.
|
double |
getSpeedOfSound(AbsoluteDate date,
Vector3D position,
Frame frame)
Get the local speed of sound.
|
Vector3D |
getVelocity(AbsoluteDate date,
Vector3D position,
Frame frame)
Get the inertial velocity of atmosphere molecules.
|
public JB2006(JB2006InputParameters parameters, PVCoordinatesProvider sunIn, BodyShape earthIn)
parameters
- the solar and magnetic activity datasunIn
- the sun positionearthIn
- the earth body shapepublic double getDensity(double dateMJD, double sunRA, double sunDecli, double satLon, double satLat, double satAlt, double f10, double f10B, double ap, double s10, double s10B, double xm10, double xm10B)
dateMJD
- date and time, in modified julian days and fractionsunRA
- Right Ascension of Sun (radians)sunDecli
- Declination of Sun (radians)satLon
- Right Ascension of position (radians)satLat
- Geocentric latitude of position (radians)satAlt
- Height of position (m)f10
- 10.7-cm Solar flux (1e-22*Watt/(m2*Hertz)). Tabular time 1.0
day earlierf10B
- 10.7-cm Solar Flux, averaged 81-day centered on the input timeap
- Geomagnetic planetary 3-hour index Ap for a tabular time 6.7 hours
earliers10
- EUV index (26-34 nm) scaled to F10. Tabular time 1 day earlier.s10B
- UV 81-day averaged centered indexxm10
- MG2 index scaled to F10xm10B
- MG2 81-day ave. centered index. Tabular time 5.0 days earlier.public double getExosphericTemp()
getDensity(double, double, double, double, double, double, double, double, double, double,
double, double, double)
must must be called before calling this function.public double getLocalTemp()
getDensity(double, double, double, double, double, double, double, double, double, double,
double, double, double)
must must be called before calling this function.public double getDensity(AbsoluteDate date, Vector3D position, Frame frame) throws PatriusException
getDensity
in interface Atmosphere
date
- current dateposition
- current position in frameframe
- the frame in which is defined the positionPatriusException
- if date is out of range of solar activitypublic Vector3D getVelocity(AbsoluteDate date, Vector3D position, Frame frame) throws PatriusException
getVelocity
in interface Atmosphere
date
- current dateposition
- current position in frameframe
- the frame in which is defined the positionPatriusException
- if some frame conversion cannot be performedpublic double getSpeedOfSound(AbsoluteDate date, Vector3D position, Frame frame) throws PatriusException
getSpeedOfSound
in interface Atmosphere
date
- current dateposition
- current position in frameframe
- the frame in which is defined the positionPatriusException
- if some conversion cannot be performedpublic Atmosphere copy()
The following attributes are not deeply copied:
JB2006InputParameters
PVCoordinatesProvider
BodyShape
copy
in interface Atmosphere
public void checkSolarActivityData(AbsoluteDate start, AbsoluteDate end) throws PatriusException
checkSolarActivityData
in interface Atmosphere
start
- range start dateend
- range end datePatriusException
- thrown if some solar activity data is missingCopyright © 2021 CNES. All rights reserved.