Hi guys!
The master
branch of SatelliteToolbox.jl has now the atmospheric model NRLMSISE-00. I need this because it will be integrated into the numerical orbit propagator that I am coding. However, since I am no expert in this area, the codification was almost “blind”. The values seems accurate (I have to add the tests…), but if anyone can test, I will appreciate!
It has the usual functions of NRLMSISE-00 gtd7
and gtd7d
with possibilities to select flags to enable/disable computations, but most of the time people can use the API function nrlmsise00
, which takes care about the internal configuration.
The density can be computed as follows:
out = nrlmsise00(DatetoJD(2016, 6, 14, 00, 46, 19), # Julian Day
700, # Altitude [m]
-22*pi/180, # Latitude [rad]
-45*pi/180, # Longitude [rad]
83.7, # 81 day average F10.7 flux
102.5, # Daily F10.7 for previous day
15; # Magnetic index (daily)
output_si = false # Output in cm^-3 and g/cm^-3
)
SatelliteToolbox.NRLMSISE00_Output{Float64}
den_N: Float64 0.0
den_N2: Float64 1.7911798343113382e19
den_O: Float64 0.0
den_aO: Float64 0.0
den_O2: Float64 4.805198141507027e18
den_H: Float64 0.0
den_He: Float64 1.2020106337709783e14
den_Ar: Float64 2.1425197588115072e17
den_Total: Float64 0.0011020196415983325
T_exo: Float64 1027.3184649
T_alt: Float64 292.3967045943127
flags: Dict{Symbol,Bool}
Here is how the results compare the the online version of MSIS:
Value | SatelliteToolbox.jl | Online NRLMSISE-00 |
---|---|---|
Density O | 0.0 | 0.0 |
Density N2 | 1.7911798343113382e19 | 1.792E+19 |
Density O2 | 4.805198141507027e18 | 4.806E+18 |
Density He | 1.2020106337709783e14 | 1.202E+14 |
Density Ar | 2.1425197588115072e17 | 2.143E+17 |
Density H | 0.0 | 0.0 |
Density N | 0.0 | 0.0 |
Density Anom. O | 0.0 | 0.0 |
Total Density | 0.0011020196415983325 | 1.102E-03 |
Neutral Temperature | 292.3967045943127 | 292.4 |
Exospheric Temperature | 1027.3184649 | 1027 |
So, it seems to be working OK for some cases. However, additional tests are required.
Next steps in SatelliteToolbox.jl are:
- Tag a new version with the modifications…
- Learn how to use JPLEphemeris package to compute the planets position so that the acceleration can be added into the numerical orbit propagator.
- Test different integrators from DifferentialEquations.jl to select the most appropriate for the numerical orbit propagation.
- Starts coding the numerical orbit propagator.