AviPy
As part of a university course, there were multiple projects that required the use of common aviation related equations. This course came with a restriction: you may not use 3rd party libraries for project related code. To avoid code duplication between projects, I created AviPy: a Python library that simplifies the usage of aviation related calculations for projects in Python.
The library comes with a module that takes care of automatic unit conversion
called qty. Too many projects in the past have had major issues due to to
incorrect conversion of units, this was the primary reason for the creation of
AviPy. Most notably, the incident with Air Canada Flight 143, famously dubbed
the Gimli Glider, which ran out
of fuel mid-flight due to a conversion error between kilograms and pounds. Such
incidents can be avoided using code that makes clear what units are being used,
and that simplifies the process of unit conversions. To give an example of the
capabilities of AviPy: one can instantiate a distance unit in kilometers (or
any other distance unit) by declaring distance = qty.Distance.Km(50), and
then express that distance in nautical miles by declaring distance.n_mile,
which converts the 50 kilometers to nautical miles. The qty module contains
distance, mass, time, velocity, temperature and more.
AviPy also contains many functions that incorporate equations for the
calculation of temperature, pressure and density at any altitude in the
atmoshere in the atmosphere module. For the calculation of flight distance,
both the Haversine and
Vincenty formulae have
been incorporated into the geo module.