Welcome to the PyDDA documentation!

alternate text https://zenodo.org/badge/DOI/10.5281/zenodo.3942686.svg

This is the main page for the documentation of PyDDA. Below are links that provide documentation on the installation and use of PyDDA as well as description of each of PyDDA’s subroutines.

System Requirements

This works on any modern version of Linux, Mac OS X, and Windows. For Windows, HRRR data integration is not supported. In addition, since PyDDA takes advtange of parallelism we recommend:

An Intel machine with at least 4 cores
1 GB hard drive space

While PyDDA will work on less than this, you may run into performance issues. In addition, we do not support Python versions less than 3.6. If you have an older version installed, PyDDA may work just fine but we will not provide support for any issues unless you are using at least Python 3.6.

Installation instructions

The GitHub repository for PyDDA is available at:


Before you install PyDDA, ensure that the following dependencies are installed:

Python 3.6+
Py-ART 1.9.0+
scipy 1.0.1+
numpy 1.13.1+
matplotlib 1.5.3+
cartopy 0.16.0+

In order to use the HRRR data constraint, cfgrib needs to be installed. cfgrib currently only works on Mac OS and Linux, so this is an optional dependency of PyDDA so that Windows users can still use PyDDA. In order to install cfgrib, simply do:

pip install cfgrib

There are multiple ways to install PyDDA. The recommended way to install PyDDA is through the use of the Anaconda package manager. If you have anaconda installed simply type:

conda install -c conda-forge pydda

This will install PyDDA and all of the required dependencies. You still need to install cfgrib if you wish to read HRRR data. If you do not have anaconda, you can still install PyDDA using pip. Running this command will install PyDDA and the required dependencies:

pip install pydda

If you wish to contribute to PyDDA, you should install PyDDA from source. To do this, just type in the following commands assuming you have the above dependencies installed.

git clone https://github.com/openradar/PyDDA
cd PyDDA
python setup.py install

Finally, PyDDA now supports using Jax <jax.readthedocs.io> and TensorFlow <tensorflow.org> for solving the three dimensional wind field. PyDDA requries TensorFlow 2.6 and the tensorflow-probability package for TensorFlow to be enabled. Both the Jax and TensorFlow-based engines now use automatic differentiation to solve for the gradients of each cost function. This therefore will create gradients that are less susceptible to boundary artifacts and rounding errors. In addition, both of these packages can utilize CUDA-enabled GPUs for much faster processing. These two dependencies are optional as the user can still use PyDDA with the SciPy ecosystem.


Indices and tables