Installation
============

The recommended way of installing stormtracks is in a `python virtualenv <http://docs.python-guide.org/en/latest/dev/virtualenvs/>`_. The instructions below show how to do this on a Debian based Linux system (e.g. Ubuntu, Linux Mint).


Install system dependencies
---------------------------

::

    sudo aptitude install python-pip
    sudo pip install virtualenv

Create virtualenv
-----------------

Creates and activates a virtualenv to run stormtracks from:

::

    virtualenv stormtracks
    cd stormtracks
    source bin/activate


Install stormtracks
-------------------

Installing stormtracks using pip will install `stormtracks-admin.py`, a utility which can help install stormtrack's dependencies. This will perform a complete install on Debian based linux computers.

::

    pip install stormtracks
    stormtracks-admin.py install-full
    

(Alternative) Install system dependencies
-----------------------------------------

Installs libraries required to build the python packages (Debian based Linux). Fixes a library so as basemap will build properly by symlinking the required library.

::

    sudo aptitude install git build-essential libhdf5-dev libgeos-dev libproj-dev libfreetype6-dev python-dev libblas-dev liblapack-dev gfortran libnetcdf-dev
    cd /usr/lib/
    sudo ln -s libgeos-3.4.2.so libgeos.so
    cd ~

Install python packages
-----------------------

This has to be done in two steps. This will build and install all packages (including numpy and scipy), so will take a while. Look at the contents of these two files to see what is required. Basemap and netcdf4 both need to be installed after the others (due to a dependency of setup.py on numpy), hence there are two requirements files. Basemap requires extra arguments when installing due to how the package is hosted.

::

    stormtracks-admin.py copy-files
    pip install -r requirements/requirements_a.txt
    pip install -r requirements/requirements_b.txt
    pip install -r requirements/requirements_c.txt
    pip install -r requirements/requirements_analysis.txt --allow-external basemap --allow-unverified basemap
