Installation

This library has a number of dependencies, most notably the traffic library, for which you can find installation instructions here.

The library also relies on scipy and numpy for data types and mathematical functions, and pandas, geopandas, and Shapely for processing airspace data.

Visualisations are provided through matplotlib, cartopy, pyproj, and hvplot. The simplejson library enables data exporting, and networkx is used to build directed graphs.

Warning

Certain dependencies (particularly cartopy and shapely) require access to libraries which may not be present on the system. The Anaconda platform is much better at handling these dependencies - if possible, install it first then run the following:

conda install cartopy shapely
pip install flight_processing

Additional dependencies can also be installed using Anaconda if desired.

Installation using pip

This package is not yet available on PyPI but on certain compatible systems may be able to be installed using pip:

wget https://github.com/jsmailes/flight_processing/releases/download/v1.0.0/flight_processing-1.0.0-cp37-cp37m-linux_x86_64.whl
pip install flight_processing-1.0.0-cp37-cp37m-linux_x86_64.whl

Manual build and installation

We can also build and install the package manually using python’s setuptools.

Install prerequisites

Building the package requires a number of prerequisites, both to compile the C++ component and to install the python library itself.

First install the following using your package manager:

git
cmake
gcc-c++
python3
boost-devel
boost-python3-devel
boost-numpy3

Note

The above package names are correct on Fedora Linux, but they may differ depending on your operating system. The following package names can be used on Ubuntu:

git
cmake
g++
python3-dev
libboost-all-dev

Next we need to install some python prerequisites:

pip install setuptools wheel

Clone repository

Now we clone the repository from Github:

git clone --recurse-submodules https://github.com/jsmailes/flight_processing
cd flight_processing

Build wheel (optional)

To build a wheel and/or source tarball using setuptools, run the following:

python3 setup.py sdist bdist_wheel

These can then be installed using pip if desired.

Install

Installation is fairly straightforward, since pip installs the prerequisites and runs setup.py for us:

pip install .

Note

Instead of cloning and building the repository, you can download and build the tarball distributed on the releases page. This will have the same result as cloning and building the source repository but does not require the use of git. The C++ dependencies will still need to be installed for this method of installation.

wget https://github.com/jsmailes/flight_processing/releases/download/v1.0.0/flight_processing-1.0.0.tar.gz
pip install flight_processing-1.0.0.tar.gz

Troubleshooting

Issues with python dependencies can usually be fixed by installing them using Anaconda.

Cryptic issues with CMake are usually caused by having an incorrect version of Python and/or Boost installed.

If you’re having any more problems, please create an issue on the Github repo with some details about your system and the problem you’re having.