Jacchia 1977
The Jacchia 1977 model [1] is the last of the static models developed by L. G. Jacchia. It models the atmosphere between 90 km and 2000 km using per-species diffusion equations for N₂, O₂, O, Ar, He, and H, together with empirical corrections for the diurnal, geomagnetic, seasonal-latitudinal, and semiannual variations. Its signature feature is the per-species pseudo exospheric temperature that shifts the diurnal density maximum according to the molecular mass of each species.
Unlike the Jacchia-Roberts 1971 model, the Jacchia 1977 model does not have a closed-form solution. Hence, this package numerically integrates the barometric and diffusion equations, making this model considerably slower than AtmosphericModels.jr1971. The implementation follows the reference Fortran code developed at INPE [2] and is validated against its outputs.
In this package, we can evaluate the model using the following functions:
AtmosphericModels.jacchia1977(instant::DateTime, ϕ_gd::Number, λ::Number, h::Number[, F10::Number, F10ₐ::Number, Kp::Number]; kwargs...) -> Jacchia1977Output
AtmosphericModels.jacchia1977(jd::Number, ϕ_gd::Number, λ::Number, h::Number[, F10::Number, F10ₐ::Number, Kp::Number]; kwargs...) -> Jacchia1977Outputwhere:
jd::Number: Julian day to compute the model.instant::DateTime: Instant to compute the model represented usingDateTime.ϕ_gd::Number: Geodetic latitude [rad].λ::Number: Longitude [rad].h::Number: Altitude [m], which must be between 90 km and 2000 km.F10::Number: 10.7-cm solar flux [sfu], evaluated with the lag prescribed in [1] (from 0.9 day to 1.6 days, depending on the local solar time).F10ₐ::Number: 10.7-cm averaged solar flux, Gaussian-weighted mean centered on the input time with a standard width of 71 days [sfu].Kp::Number: Kp geomagnetic index, delayed by 0.1 day to 0.3 day depending on the geomagnetic latitude, as prescribed in [1].
If we omit all space indices, the system tries to obtain them automatically for the selected day jd or instant using the prescriptions in [1]. However, the indices must be already initialized using the function SpaceIndices.init(), and the Gaussian-weighted mean requires the indices to be available up to 213 days after the input time.
These functions return an object of type Jacchia1977Output that contains the following fields:
total_density::T: Total atmospheric density [kg / m³].temperature::T: Temperature at the selected position [K].exospheric_temperature::T: Mean exospheric temperatureT½above the selected position [K].N2_number_density::T: Number density of N₂ [1 / m³].O2_number_density::T: Number density of O₂ [1 / m³].O_number_density::T: Number density of O [1 / m³].Ar_number_density::T: Number density of Ar [1 / m³].He_number_density::T: Number density of He [1 / m³].H_number_density::T: Number density of H [1 / m³].
Examples
julia> AtmosphericModels.jacchia1977( DateTime("2018-06-19T18:35:00"), deg2rad(-22), deg2rad(-45), 700e3, 100, 100, 3 )Jacchia 1977 Atmospheric Model Result: Total density : 2.21635e-14 kg / m³ Temperature : 859.73 K Exospheric Temp. : 860.48 K N₂ number density : 2.28548e+08 1 / m³ O₂ number density : 1.43744e+06 1 / m³ O number density : 4.05086e+11 1 / m³ Ar number density : 156.635 1 / m³ He number density : 1.68323e+12 1 / m³ H number density : 1.21378e+11 1 / m³
julia> SpaceIndices.init()julia> AtmosphericModels.jacchia1977( DateTime("2023-01-01T10:00:00"), deg2rad(-22), deg2rad(-45), 700e3 )Jacchia 1977 Atmospheric Model Result: Total density : 4.93664e-14 kg / m³ Temperature : 1119.10 K Exospheric Temp. : 1120.48 K N₂ number density : 3.79122e+09 1 / m³ O₂ number density : 3.47883e+07 1 / m³ O number density : 1.64816e+12 1 / m³ Ar number density : 8069.47 1 / m³ He number density : 7.90695e+11 1 / m³ H number density : 8.68475e+10 1 / m³
If we use the automatic space index fetching mechanism, it is possible to obtain the fetched values by turning on the debugging logs according to the Julia documentation:
julia> using Loggingjulia> with_logger(ConsoleLogger(stderr, Logging.Debug)) do AtmosphericModels.jacchia1977( DateTime("2023-01-01T10:00:00"), deg2rad(-22), deg2rad(-45), 700e3 ) end┌ Debug: Jacchia 1977 - Fetched Space Indices │ Lagged daily F10.7 : 178.3 sfu (lag = 1.1821357920055 days) │ Gaussian averaged F10.7 : 155.76634372870583 sfu │ Delayed Kp : 2.333 (lag = 0.2923920210717513 days) └ @ SatelliteToolboxAtmosphericModels.AtmosphericModels ~/work/SatelliteToolboxAtmosphericModels.jl/SatelliteToolboxAtmosphericModels.jl/src/jacchia1977/jacchia1977.jl:155 Jacchia 1977 Atmospheric Model Result: Total density : 4.93664e-14 kg / m³ Temperature : 1119.10 K Exospheric Temp. : 1120.48 K N₂ number density : 3.79122e+09 1 / m³ O₂ number density : 3.47883e+07 1 / m³ O number density : 1.64816e+12 1 / m³ Ar number density : 8069.47 1 / m³ He number density : 7.90695e+11 1 / m³ H number density : 8.68475e+10 1 / m³
References
- [1] Jacchia, L. G (1977). Thermospheric temperature, density and composition: New models. SAO Special Report #375.
- [2] de Matos, B. S., Carrara, V (1985-1987). Fortran implementation of the Jacchia 1977 model. INPE, São José dos Campos, BR. Available in INPE-atmosphere-models.