Skip to content

Density

Harris-Priester atmospheric density model.

Computes the atmospheric density using the modified Harris-Priester model, which accounts for diurnal density variations caused by solar heating. Valid for altitudes between 100 km and 1000 km.

All inputs and outputs use SI base units (metres, kg/m^3).

References
  1. O. Montenbruck and E. Gill, Satellite Orbits: Models, Methods and Applications, 2012.

density_harris_priester(r_tod, r_sun)

Atmospheric density using the Harris-Priester model.

Computes density accounting for diurnal bulge caused by solar heating. Returns zero outside the valid 100-1000 km altitude range.

Both r_tod and r_sun must be in the same frame — the true-of-date (TOD) frame, obtained by applying bias-precession- nutation to the GCRF (ECI) vectors. Geodetic altitude is invariant under z-axis rotation, so the TOD position works correctly with position_ecef_to_geodetic without Earth-rotation correction.

Parameters:

Name Type Description Default
r_tod ArrayLike

Satellite position in the true-of-date frame [m]. Shape (3,).

required
r_sun ArrayLike

Sun position in the true-of-date frame [m]. Shape (3,). Used only for computing the right ascension and declination of the Sun.

required

Returns:

Type Description
Array

Atmospheric density [kg/m^3] (scalar).

Examples:

import jax.numpy as jnp
from astrojax.orbit_dynamics import density_harris_priester
r_tod = jnp.array([0.0, 0.0, -6466752.314])
r_sun = jnp.array([24622331959.58, -133060326832.922, -57688711921.833])
rho = density_harris_priester(r_tod, r_sun)