# Installing pysteps¶

## Dependencies¶

The pysteps package needs the following dependencies

Additionally, the following packages can be installed for better computational efficiency:

• dask and toolz (for code parallelization)
• pyfftw (for faster FFT computation)

Other optional dependencies include:

• cartopy (for geo-referenced visualization)
• h5py (for importing HDF5 data)
• pygrib (for importing MRMS data)
• pywavelets (for intensity-scale verification)

## Install from source¶

The recommended way to install pysteps from the source is using pip to adhere to the [PEP517 standards](https://www.python.org/dev/peps/pep-0517/). Using pip instead of setup.py guarantees that all the package dependencies are properly handled during the installation process.

### OSX users¶

pySTEPS uses Cython extensions that need to be compiled with multi-threading support enabled. The default Apple Clang compiler does not support OpenMP. Hence, using the default compiler would have disabled multi-threading and may raise the following error during the installation:

clang: error: unsupported option '-fopenmp'
error: command 'gcc' failed with exit status 1


To solve this issue, obtain the latest gcc version with Homebrew that has multi-threading enabled:

brew install gcc


To make sure that the installer uses the homebrew’s gcc, export the following environmental variables in the terminal (supposing that gcc version 8 was installed):

export CC=gcc-8
export CXX=g++-8


First, check that the homebrew’s gcc is detected:

which gcc-8


This should point to the homebrew’s gcc installation.

Under certain circumstances, Homebrew does not add the symbolic links for the gcc executables under /usr/local/bin. If that is the case, specify the CC and CCX variables using the full path to the homebrew installation. For example:

export CC=/usr/local/Cellar/gcc/8.3.0/bin/gcc-8
export CXX=/usr/local/Cellar/gcc/8.3.0/bin/g++-8


Then, you can continue with the normal installation procedure described next.

### Installation¶

The latest pysteps version in the repository can be installed using pip by simply running in a terminal:

pip install git+https://github.com/pySTEPS/pysteps


Or, from a local copy of the repo (global installation):

git clone https://github.com/pySTEPS/pysteps
cd pysteps
pip install .


The above commands install the latest version of the master branch, which is continuously under development.

#### Development mode¶

The latest version can also be installed in Development Mode, i.e., in such a way that the project appears to be installed, but yet is still editable from the source tree:

pip install -e <path to local pysteps repo>


## Setting up the user-defined configuration file¶

The pysteps package allows the users to customize the default settings and configuration. The configuration parameters used by default are loaded from a user-defined JSON file and then stored in the pysteps.rcparams, a dictionary-like object that can be accessed as attributes or as items.