A Python library for spherical harmonic computations on vector winds.
Clone or download


windspharm - spherical harmonic vector wind analysis in Python

Build Status DOI (paper) DOI (latest release)


windspharm is a Python package for computing quantities derived from global wind fields using spherical harmonics, licensed under the MIT license. windspharm provides a user-friendly interface for vector wind computations on the sphere (e.g., divergence, streamfunction etc.). It is based on the pyspharm module. windspharm provides a replacement for the windfield package from CDAT.


windspharm only requires numpy and pyspharm (version 1.0.8 or higher), but for full functionality (meta-data interfaces) one or more of iris, xarray or the cdms2 module (from UV-CDAT is required. The setuptools package is required for installation. windspharm runs on Python 2 and 3.


Documentation is available online. The package docstrings are also very complete and can be used as a source of reference when working interactively.


If you use windspharm in published research, please cite it by referencing the peer-reviewed paper. You can additionally cite the Zenodo DOI if you need to cite a particular version (but please also cite the paper, it helps me justify my time working on this and similar projects).

Frequently asked questions

  • Do I need UV-CDAT/iris/xarray to use windspharm? No. All the computation code uses numpy only. The iris, xarray and cdms2 modules are only required for the meta-data preserving interfaces.
  • Is windspharm a drop in replacement for windfield? No. Because windspharm was written from scratch the naming conventions for methods are different. Some new methods have been added compared to windfield, and some methods from windfield do not exist in windspharm.


The easiest way to install is via conda or pip:

conda install -c conda-forge windspharm


pip install windspharm

You can also install from the source distribution. Just download the archive, unpack it, then enter the source directory and use:

python setup.py install