Class JB2008
- java.lang.Object
-
- org.orekit.models.earth.atmosphere.AbstractSunInfluencedAtmosphere
-
- org.orekit.models.earth.atmosphere.AbstractJacchiaBowmanModel
-
- org.orekit.models.earth.atmosphere.JB2008
-
- All Implemented Interfaces:
Atmosphere
public class JB2008 extends AbstractJacchiaBowmanModel
This is the realization of the Jacchia-Bowman 2008 atmospheric model.It is described in the paper:
A New Empirical Thermospheric Density Model JB2008 Using New Solar Indices
Bruce R. Bowman & al.
AIAA 2008-6438
Two computation methods are proposed to the user:
- one OREKIT independent and compliant with initial FORTRAN routine entry values:
getDensity(double, double, double, double, double, double, double, double, double, double, double, double, double, double, double)
. - one compliant with OREKIT Atmosphere interface, necessary to the
drag force model
computation.
This model provides dense output for all altitudes and positions. Output data are :
- Exospheric Temperature above Input Position (deg K)
- Temperature at Input Position (deg K)
- Total Mass-Density at Input Position (kg/m³)
The model needs geographical and time information to compute general values, but also needs space weather data : mean and daily solar flux, retrieved through different indices, and planetary geomagnetic indices.
More information on these indices can be found on the official JB2008 website.- Author:
- Bruce R Bowman (HQ AFSPC, Space Analysis Division), 2008: FORTRAN routine, Pascal Parraud (java translation)
-
-
Constructor Summary
Constructors Constructor Description JB2008(JB2008InputParameters parameters, ExtendedPositionProvider sun, BodyShape earth)
Constructor with space environment information for internal computation.JB2008(JB2008InputParameters parameters, ExtendedPositionProvider sun, BodyShape earth, TimeScale utc)
Constructor with space environment information for internal computation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected double
computeTc(AbsoluteDate date)
Computes the temperature equation.protected double
computeTInf(AbsoluteDate date, double tsubl, double dtclst)
Computes the local exospheric temperature.protected <T extends CalculusFieldElement<T>>
TcomputeTInf(AbsoluteDate date, T tsubl, T dtclst)
Computes the local exospheric temperature.double
getDensity(double dateMJD, double sunRA, double sunDecli, double satLon, double satLat, double satAlt, double f10, double f10B, double s10, double s10B, double xm10, double xm10B, double y10, double y10B, double dstdtc)
Get the local density with initial entries.<T extends CalculusFieldElement<T>>
TgetDensity(T dateMJD, T sunRA, T sunDecli, T satLon, T satLat, T satAlt, double f10, double f10B, double s10, double s10B, double xm10, double xm10B, double y10, double y10B, double dstdtc)
Get the local density with initial entries.protected double
getF10(AbsoluteDate date)
Get the 10.7-cm Solar flux (1e-22*Watt/(m²*Hertz))
(Tabular time 1.0 day earlier).protected double
getF10B(AbsoluteDate date)
Get the 10.7-cm Solar Flux, averaged 81-day centered on the input time
(Tabular time 1.0 day earlier).protected double
semian(AbsoluteDate date, double day, double altKm)
Computes the semi-annual variation (delta log(rho)).protected <T extends CalculusFieldElement<T>>
Tsemian(AbsoluteDate date, T day, T altKm)
Computes the semi-annual variation (delta log(rho)).-
Methods inherited from class org.orekit.models.earth.atmosphere.AbstractJacchiaBowmanModel
computeDensity, computeDensity, getDensity, getDensity, getEarth, getFrame, getUtc
-
Methods inherited from class org.orekit.models.earth.atmosphere.AbstractSunInfluencedAtmosphere
getSun, getSunPosition, getSunPosition
-
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
-
JB2008
@DefaultDataContext public JB2008(JB2008InputParameters parameters, ExtendedPositionProvider sun, BodyShape earth)
Constructor with space environment information for internal computation.This method uses the
default data context
.- Parameters:
parameters
- the solar and magnetic activity datasun
- the sun positionearth
- the earth body shape- See Also:
JB2008(JB2008InputParameters, ExtendedPositionProvider, BodyShape, TimeScale)
-
JB2008
public JB2008(JB2008InputParameters parameters, ExtendedPositionProvider sun, BodyShape earth, TimeScale utc)
Constructor with space environment information for internal computation.- Parameters:
parameters
- the solar and magnetic activity datasun
- the sun positionearth
- the earth body shapeutc
- UTC time scale. Used to computed the day fraction.- Since:
- 10.1
-
-
Method Detail
-
getDensity
public double getDensity(double dateMJD, double sunRA, double sunDecli, double satLon, double satLat, double satAlt, double f10, double f10B, double s10, double s10B, double xm10, double xm10B, double y10, double y10B, double dstdtc)
Get the local density with initial entries.The method creates a new instance of
JB2008
model and set the input solar activity data equal to the provided one. These data are then available formAbsoluteDate.PAST_INFINITY
toAbsoluteDate.FUTURE_INFINITY
.- Parameters:
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/(m²*Hertz))
(Tabular time 1.0 day earlier)f10B
- 10.7-cm Solar Flux, averaged 81-day centered on the input time
(Tabular time 1.0 day earlier)s10
- EUV index (26-34 nm) scaled to F10
(Tabular time 1 day earlier)s10B
- UV 81-day averaged centered index (Tabular time 1 day earlier)xm10
- MG2 index scaled to F10
(Tabular time 2.0 days earlier)xm10B
- MG2 81-day ave. centered index
(Tabular time 2.0 days earlier)y10
- Solar X-Ray & Lya index scaled to F10
(Tabular time 5.0 days earlier)y10B
- Solar X-Ray & Lya 81-day ave. centered index
(Tabular time 5.0 days earlier)dstdtc
- Temperature change computed from Dst index- Returns:
- total mass-Density at input position (kg/m³)
-
getDensity
public <T extends CalculusFieldElement<T>> T getDensity(T dateMJD, T sunRA, T sunDecli, T satLon, T satLat, T satAlt, double f10, double f10B, double s10, double s10B, double xm10, double xm10B, double y10, double y10B, double dstdtc)
Get the local density with initial entries.The method creates a new instance of
JB2008
model and set the input solar activity data equal to the provided one. These data are then available formAbsoluteDate.PAST_INFINITY
toAbsoluteDate.FUTURE_INFINITY
.- Type Parameters:
T
- type of the elements- Parameters:
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/(m²*Hertz))
(Tabular time 1.0 day earlier)f10B
- 10.7-cm Solar Flux, averaged 81-day centered on the input time
(Tabular time 1.0 day earlier)s10
- EUV index (26-34 nm) scaled to F10
(Tabular time 1 day earlier)s10B
- UV 81-day averaged centered index (Tabular time 1 day earlier)xm10
- MG2 index scaled to F10
(Tabular time 2.0 days earlier)xm10B
- MG2 81-day ave. centered index
(Tabular time 2.0 days earlier)y10
- Solar X-Ray & Lya index scaled to F10
(Tabular time 5.0 days earlier)y10B
- Solar X-Ray & Lya 81-day ave. centered index
(Tabular time 5.0 days earlier)dstdtc
- Temperature change computed from Dst index- Returns:
- total mass-Density at input position (kg/m³)
-
computeTInf
protected double computeTInf(AbsoluteDate date, double tsubl, double dtclst)
Computes the local exospheric temperature.- Specified by:
computeTInf
in classAbstractJacchiaBowmanModel
- Parameters:
date
- computation epochtsubl
- exospheric temperature ("tsubl" term), given by Equation (17)dtclst
- correction to dTc for local solar time and lat correction- Returns:
- the local exospheric temperature
-
computeTc
protected double computeTc(AbsoluteDate date)
Computes the temperature equation.- Specified by:
computeTc
in classAbstractJacchiaBowmanModel
- Parameters:
date
- computation epoch- Returns:
- the temperature equation
-
getF10
protected double getF10(AbsoluteDate date)
Get the 10.7-cm Solar flux (1e-22*Watt/(m²*Hertz))
(Tabular time 1.0 day earlier).- Specified by:
getF10
in classAbstractJacchiaBowmanModel
- Parameters:
date
- computation epoch- Returns:
- the 10.7-cm Solar flux from model input parameters
-
getF10B
protected double getF10B(AbsoluteDate date)
Get the 10.7-cm Solar Flux, averaged 81-day centered on the input time
(Tabular time 1.0 day earlier).- Specified by:
getF10B
in classAbstractJacchiaBowmanModel
- Parameters:
date
- computation epoch- Returns:
- the 10.7-cm Solar Flux, averaged 81-day centered on the input time
-
computeTInf
protected <T extends CalculusFieldElement<T>> T computeTInf(AbsoluteDate date, T tsubl, T dtclst)
Computes the local exospheric temperature.- Specified by:
computeTInf
in classAbstractJacchiaBowmanModel
- Type Parameters:
T
- type of the elements- Parameters:
date
- computation epochtsubl
- exospheric temperature ("tsubl" term), given by Equation (17)dtclst
- correction to dTc for local solar time and lat correction- Returns:
- the local exospheric temperature
-
semian
protected double semian(AbsoluteDate date, double day, double altKm)
Computes the semi-annual variation (delta log(rho)).- Specified by:
semian
in classAbstractJacchiaBowmanModel
- Parameters:
date
- computation epochday
- day of yearaltKm
- height (km)- Returns:
- semi-annual variation
-
semian
protected <T extends CalculusFieldElement<T>> T semian(AbsoluteDate date, T day, T altKm)
Computes the semi-annual variation (delta log(rho)).- Specified by:
semian
in classAbstractJacchiaBowmanModel
- Type Parameters:
T
- type of the elements- Parameters:
date
- computation epochday
- day of yearaltKm
- height (km)- Returns:
- semi-annual variation
-
-