Overview of Orbital Parameters
Introduce the fundamentals of orbital mechanics.
We'll cover the following
Overview
Python is a perfect candidate for modeling simple 2-body orbits, like a satellite orbiting the Earth. (It is also a good candidate for complicated 3-body orbits, but we will not get into 3-body orbits in this course.) You want to be able to model basic circular and elliptical orbits in two and three dimensions. You will take advantage of Matplotlib
’s FuncAnimation()
function to animate the 2D orbit to show how the orbital velocity increases at the closest point to Earth and decreases at the farthest point from Earth. You can also use Matplotlib
’s 3D plotting functionality to plot orbits in 3D, which will help to illustrate the effects of the different orbital parameters.
Solving the 2-body problem requires some form of ordinary differential equations to solve for time and position. These methods usually require a type of numerical method (Newton’s Method, Runge-Kutta methods, Kepler’s Method, or lots of others) to numerically solve position as a function of time. You could write these differential equation solvers yourself, but you can use existing libraries with this functionality. You will use PyAstronomy
’s KeplerEllipse
class to create x, y, and z coordinates of a satellite’s position over a period of time, then use Matplotlib
to plot these points. The documentation for PyAstronomy
can be found in footnote [1] at the end of this chapter.
Basics of orbital mechanics
The particulars of the hows and whys of orbital mechanics are beyond the scope of this course; however, this will serve as a crash course in orbital mechanics. A satellite’s orbit around a body (i.e., Earth) can be described and calculated based on the following parameters:
Get hands-on with 1400+ tech skills courses.