# Orbits and Insolation

A collection of functions are available for working with general elliptical orbits and insolation patterns for planets orbiting stars.

Function arguments are defined below

Argument | Definition | Units |
---|---|---|

`a` | semi-major axis | m |

`e` | eccentricity | - |

`E` | eccentric anomaly | rad |

`f` | true anomaly or stellar longitude | rad |

`γ` | obliquity | rad |

`m` | star mass | kg |

`p` | precession angle | rad |

`θ` | latitude | rad |

`θₛ` | substellar latitude | rad |

`rₐ` | apoapsis distance | m |

`rₚ` | periapsis distance | m |

`t` | time | sec |

`T` | orbital period | sec |

The mass `m`

, most precisely, should be the sum of the star mass and planet mass, $m_s + m_p$. For most cases the planet mass is negligible, however, and $m_s + m_p \approx m_s$.

The precession angle `p`

is defined so that when $p=0$, the northern hemisphere is tilted directly toward the star at periapsis. This means that northern summer occurs when planet is closet to the star. Different values of $p ∈ [0,2π]$ control when in the orbital path the equinoxes and solstices occur. For example, if $p = π/2$, the vernal equinox occurs at periapsis and the northern hemisphere is moving into summer.

`ClearSky.apoapsis`

— Method`apoapsis(a, e)`

Compute the apoapsis (farthest distance) distance using semi-major axis and eccentricity

`ClearSky.eccentricanomaly`

— Method`eccentricanomaly(t, a, m, e)`

Numerically compute the eccentric anomaly using Kepler's equation

`ClearSky.eccentricity`

— Method`eccentricity(rₚ, rₐ)`

Compute eccentricity

`ClearSky.meananomaly`

— Method`meananomaly(E, e)`

Compute the mean anomaly

`ClearSky.orbit`

— Function`orbit(a, m, e, N=1000)`

Create a distance time-series of `N`

points for an elliptical orbit, returning vectors for time, distance, and true anomaly

`ClearSky.orbitaldistance`

— Method`orbitaldistance(t, a, m, e)`

Compute the distance of a planet from its host, assuming the planet is at periapsis at t=0

`ClearSky.orbitaldistance`

— Method`orbitaldistance(a, f, e)`

Compute the distance of a planet from its host

`ClearSky.orbitalperiod`

— Method`orbitalperiod(a, m)`

Kepler's Third Law describing the orbital period of an elliptical orbit

`ClearSky.periapsis`

— Method`periapsis(a, e)`

Compute the periapsis (closest approach) distance using semi-major axis and eccentricity

`ClearSky.semimajoraxis`

— Method`semimajoraxis(T, m)`

Compute the semi-major axis of an orbit

`ClearSky.trueanomaly`

— Method`trueanomaly(t, a, m, e)`

Compute the true anomaly

`ClearSky.trueanomaly`

— Method`trueanomaly(E, e)`

Compute the true anomaly

`ClearSky.annualfluxfactor`

— Method`annualfluxfactor(e, θ, γ, p)`

Compute the annually averaged flux factor for a latitude `θ`

on a planet in a general elliptical orbit.

`ClearSky.annualfluxfactors`

— Method`annualfluxfactors(e, γ, p; nθ=181)`

Compute a range of annually averaged flux factors for a planet in a general elliptical orbit. Returns a latitude vector (row values) and a vector of flux factors. `nθ`

indicates the number of latitude samples.

`ClearSky.diurnalfluxfactor`

— Method`diurnalfluxfactor(t, a, m, e, θ, γ, p)`

Compute the diurnally averaged fraction of incoming stellar flux received by a point at latitude `θ`

for a general elliptical orbit

`ClearSky.diurnalfluxfactor`

— Method`diurnalfluxfactor(θ, f, γ)`

Compute the diurnally averaged fraction of incoming stellar flux received by a point at latitude `θ`

when the planet is at solar longitude (true anomaly) `f`

, with obliquity `γ`

`ClearSky.diurnalfluxfactor`

— Method`diurnalfluxfactor(θ, θₛ)`

Compute the diurnally averaged fraction of incoming stellar flux received by a point at latitude `θ`

when the substellar latitude is `θₛ`

`ClearSky.diurnalfluxfactors`

— Method`diurnalfluxfactors(a, m, e, γ, p; nt=251, nθ=181)`

Compute a grid of diurnally averaged fractions of incoming stellar flux for a planet in a general elliptical orbit. Returns a time vector (column values) over one orbital period, latitude vector (row values), and the grid of flux factors. `nt`

indicates the number of time samples around the orbit and `nθ`

indicates the number of latitudes.

`ClearSky.diurnalfluxfactors`

— Method`diurnalfluxfactors(γ; nf=251, nθ=181)`

Compute a grid of diurnally averaged fractions of incoming stellar flux received by a point at latitude `θ`

for a planet with obliquity `γ`

in a circular orbit. Returns a solar longitude vector (column values), latitude vector (row values), and the grid of flux factors. `nf`

indicates the number of points around the orbit and `nθ`

indicates the number of latitudes.

`ClearSky.hourangle`

— Method`hourangle(θ, θₛ)`

Compute the hour angle

`ClearSky.substellarlatitude`

— Method`substellarlatitude(f, γ)`

Compute the latitude of the substellar point for a given solar longitude `f`

(true anomaly) and obliquity `γ`