Atmospheric density via the NRLMSISE-00 empirical model.
NRLMSISE-00 computes total mass density and temperature from the surface to the lower exosphere (~1000 km). It is the standard model used for satellite drag prediction.
Quick example
position = %{latitude: 0.0, longitude: 0.0, altitude_km: 400.0}
{:ok, result} = Orbis.Atmosphere.density(position, ~U[2024-06-20 12:00:00Z])
result.density # kg/m^3 (e.g., ~3e-12 at ISS altitude)
result.temperature # KSolar/geomagnetic indices
The model depends on space weather conditions. You can supply these via
the :f107, :f107a, and :ap options. If omitted, moderate defaults
are used (F10.7 = F10.7A = 150.0, Ap = 4.0).
For operational use, fetch current indices from NOAA/SWPC.
Summary
Functions
Compute atmospheric density and temperature at a given position and time.
Functions
Compute atmospheric density and temperature at a given position and time.
Parameters
position- geodetic position as%{latitude: deg, longitude: deg, altitude_km: km}datetime- observation time asDateTimeor{{y,m,d},{h,m,s}}tupleopts- keyword list of optional space weather indices::f107- daily 10.7 cm solar radio flux (default 150.0):f107a- 81-day average of F10.7 (default 150.0):ap- daily geomagnetic Ap index (default 4.0)
Returns
{:ok, %{density: kg_per_m3, temperature: kelvin}} or {:error, reason}.
Examples
# ISS altitude with default solar activity
pos = %{latitude: 28.5, longitude: -80.6, altitude_km: 408.0}
{:ok, result} = Orbis.Atmosphere.density(pos, ~U[2024-06-20 12:00:00Z])
# With explicit solar indices
{:ok, result} = Orbis.Atmosphere.density(pos, ~U[2024-06-20 12:00:00Z],
f107: 180.0, f107a: 160.0, ap: 15.0)