astro.NonSphericalEarth#

Caution

This class has a singularity at geodetic colatitudes \(\phi\) of \(0, \pi\) due to needing to divide by \(\sin\phi\) to compute the colatitudinal acceleration in curvilinear Earth-centered Earth-fixed coordinates.

class hohmannpy.astro.NonSphericalEarth(degree, zonal=False)#

Perturbation caused by the deviations of the Earth’s math distribution from a point-mass.

The zonal, tesseral, and sectorial geopotential coefficients are taken from the 1985 Earth Gravitational Model (EGM84).

Parameters:
  • degree (int) – Maximum degree of harmonics to include.

  • zonal (bool) – Disable sectoral and tesseral harmonics to only look at zonal ones (such as J2). Does this by capping the maximum order summed to when computing the acceleration terms to 0.

Notes

The following assumptions are made for this implementation:

  1. The gravitational potential field of the Earth is given by the solution to the geopotential partial-differential equation.

  2. The first-order zonal harmonic is not needed since point-mass gravity is implemented by the propagator.

  3. The GMST of the Earth is initially accurately computed wrt. the Vernal equinox (ignoring nutation) and is then said to linearly rotate at the Earth’s mean rotation rate without precession.

evaluate(time, state, satellite)#

Computes the perturbing acceleration using a geopotential model of the Earth’s gravitational field.

Parameters:
  • time (float) – Current time in seconds since propagation began.

  • state (np.ndarray) – Current translational state in ECI coordinates given as (position, velocity).

  • satellite (Satellite) – Unused parameter simply based due to @abstractmethod requirements.

Returns:

acceleration (np.ndarray) – Current translational acceleration in ECI coordinates.