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...) -> Jacchia1977Output

where:

  • jd::Number: Julian day to compute the model.
  • instant::DateTime: Instant to compute the model represented using DateTime.
  • ϕ_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 temperature 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 Logging
julia> 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.