SkillAgentSearch skills...

Pyart

The Python-ARM Radar Toolkit. A data model driven interactive toolkit for working with weather radar data.

Install / Use

/learn @ARM-DOE/Pyart
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

.. -- mode: rst -- The Python ARM Radar Toolkit (Py-ART)

|GithubCI| |CodeCovStatus|

|AnacondaCloud| |PyPiDownloads| |CondaDownloads|

|DocsUsers| |DocsGuides|

|ARM| |Tweet|

.. |GithubCI| image:: https://github.com/ARM-DOE/pyart/actions/workflows/ci.yml/badge.svg :target: https://github.com/ARM-DOE/pyart/actions?query=workflow%3ACI

.. |CodeCovStatus| image:: https://img.shields.io/codecov/c/github/ARM-DOE/pyart.svg?logo=codecov :target: https://codecov.io/gh/ARM-DOE/pyart

.. |AnacondaCloud| image:: https://anaconda.org/conda-forge/arm_pyart/badges/version.svg :target: https://anaconda.org/conda-forge/arm_pyart

.. |PyPiDownloads| image:: https://img.shields.io/pypi/dm/arm_pyart.svg :target: https://pypi.org/project/arm-pyart/

.. |CondaDownloads| image:: https://anaconda.org/conda-forge/arm_pyart/badges/downloads.svg :target: https://anaconda.org/conda-forge/arm_pyart/files

.. |DocsUsers| image:: https://img.shields.io/badge/docs-users-4088b8.svg :target: http://arm-doe.github.io/pyart/API/index.html

.. |DocsGuides| image:: https://img.shields.io/badge/docs-guides-4088b8.svg :target: https://github.com/ARM-DOE/pyart/tree/main/guides/

.. |ARM| image:: https://img.shields.io/badge/Sponsor-ARM-blue.svg?colorA=00c1de&colorB=00539c :target: https://www.arm.gov/

.. |Tweet| image:: https://img.shields.io/twitter/url/http/shields.io.svg?style=social :target: https://twitter.com/Py_ART

The Python ARM Radar Toolkit, Py-ART, is an open source Python module containing a growing collection of weather radar algorithms and utilities build on top of the Scientific Python stack and distributed under the 3-Clause BSD license. Py-ART is used by the Atmospheric Radiation Measurement (ARM) User Facility <http://www.arm.gov>_ for working with data from a number of precipitation and cloud radars, but has been designed so that it can be used by others in the radar and atmospheric communities to examine, processes, and analyze data from many types of weather radars.

Important Links

  • Official source code repository: https://github.com/ARM-DOE/pyart
  • HTML documentation: https://arm-doe.github.io/pyart/
  • Examples: https://arm-doe.github.io/pyart/examples
  • Mailing List: https://openradar.discourse.group/tag/py-art
  • Issue Tracker: https://github.com/ARM-DOE/pyart/issues

Citing

If you use the Python ARM Radar Toolkit (Py-ART) to prepare a publication please cite:

Helmus, J.J. & Collis, S.M., (2016). The Python ARM Radar Toolkit
(Py-ART), a Library for Working with Weather Radar Data in the Python
Programming Language. Journal of Open Research Software. 4(1), p.e25.
DOI: http://doi.org/10.5334/jors.119

Py-ART implements many published scientific methods which should also be cited if you make use of them. Refer to the References section in the documentation of the functions used for information on these citations.

Install

The easiest method for installing Py-ART is to use the conda packages from the latest release and use Python 3, as Python 2 support ended January 1st, 2020 and many packages including Py-ART no longer support Python 2. To do this you must download and install Anaconda <https://www.anaconda.com/download/#>_ or Miniconda <https://conda.io/miniconda.html>. With Anaconda or Miniconda install, it is recommended to create a new conda environment when using Py-ART or even other packages. To create a new environment based on the environment.yml <https://github.com/ARM-DOE/pyart/blob/master/environment.yml>::

conda env create -f environment.yml

Or for a basic environment and downloading optional dependencies as needed::

conda create -n pyart_env -c conda-forge python=3.13 arm_pyart

Basic command in a terminal or command prompt to install the latest version of Py-ART::

conda install -c conda-forge arm_pyart

To update an older version of Py-ART to the latest release use::

conda update -c conda-forge arm_pyart

If you are using mamba::

mamba install -c conda-forge arm_pyart

If you do not wish to use Anaconda or Miniconda as a Python environment or want to use the latest, unreleased version of Py-ART see the section below on Installing from source.

Configuration

The configuration file in Py-ART specifies the default metadata, field names, colormaps and plot limits. A custom configuration can be loaded automatically be setting the environmental variable PYART_CONFIG to point to a custom configuration file. For additional details on this process see the documentation on the pyart.load_config function.

Extensions and related software

A number of projects are available which extend the functionality of Py-ART. These include:

  • ARTView <https://github.com/nguy/artview>_ : Interactive radar viewing browser.

  • pyrad <https://github.com/MeteoSwiss/pyrad>_ : A real-time data processing framework developed by MeteoSwiss and MeteoFrance.

  • PyTDA <https://github.com/nasa/PyTDA>_ : Python Turbulence Detection Algorithm.

  • SingleDop <https://github.com/nasa/SingleDop>_ : Single Doppler Retrieval Toolkit.

  • DualPol <https://github.com/nasa/DualPol>_ : Python Interface to Dual-Pol Radar Algorithms.

  • PyBlock <https://github.com/nasa/PyBlock>_: Python Polarimetric Radar Beam Blockage Calculation

Other related open source software for working with weather radar data:

  • wradlib <https://wradlib.org>_ : An open source library for weather radar data processing.

  • BALTRAD <https://baltrad.eu/>_ : Community-based weather radar networking.

  • MMM-Py <https://github.com/nasa/MMM-Py>_ : Marshall MRMS Mosaic Python Toolkit.

  • CSU_RadarTools <https://github.com/CSU-Radarmet/CSU_RadarTools>_ : Colorado State University Radar Tools.

  • RadX <https://www.ral.ucar.edu/projects/titan/docs/radial_formats/radx.html>_ : Radx C++ Software Package for Radial Radar Data.

  • PyDDA <https://openradarscience.org/PyDDA/>_ : Software designed to retrieve wind kinematics in precipitation storm systems from one or more Doppler weather radars.

Dependencies

Py-ART is tested to work under Python 3.11, 3.12, and 3.13.

The required dependencies to install Py-ART in addition to Python are:

  • NumPy <https://www.numpy.org/>_
  • SciPy <https://www.scipy.org>_
  • matplotlib <https://matplotlib.org/>_
  • netCDF4 <https://github.com/Unidata/netcdf4-python>_
  • pooch <https://pypi.org/project/pooch/>_
  • Cython <https://cython.readthedocs.io/en/latest/>_
  • setuptools <https://setuptools.pypa.io/en/latest/index.html>_
  • cartopy <https://scitools.org.uk/cartopy/docs/latest/>_
  • cmweather <https://cmweather.readthedocs.io/en/latest/>_
  • xradar <https://docs.openradarscience.org/projects/xradar/en/stable/>_
  • xarray <https://docs.xarray.dev/en/stable/>_
  • mda-xdrlib <https://github.com/MDAnalysis/mda-xdrlib>_
  • fsspec <https://filesystem-spec.readthedocs.io/en/latest/>_
  • s3fs <https://s3fs.readthedocs.io/en/latest/>_
  • pandas <https://pandas.pydata.org/>_

A working C/C++ compiler is required for some optional modules. An easy method to install these dependencies is by using a Scientific Python distributions <http://scipy.org/install.html>. Anaconda <https://www.anaconda.com/distribution/> will install all of the above packages by default on Windows, Linux and Mac computers and is provided free of charge by Anaconda. Anaconda also has their own compilers, which may be required for optional dependencies such as CyLP. These compilers can be found here: https://docs.conda.io/projects/conda-build/en/latest/resources/compiler-tools.html

Optional Dependences

The above Python modules are require before installing Py-ART, additional functionality is available of the following modules are installed.

  • TRMM Radar Software Library (RSL) TRMM RSL is no longer supported by NASA and Py-ART. If using files such as DORADE, please consider using radx instead to convert the files to cfradial.

  • In order to read files which are stored in HDF5 files the h5py <https://www.h5py.org/>_ package and related libraries must be installed.

  • A linear programming solver and Python wrapper to use the LP phase processing method. CyLP <https://github.com/mpy/CyLP>_ is recommended as it gives the fastest results, but PyGLPK <https://tfinley.net/software/pyglpk/>_ and CVXOPT <https://cvxopt.org/>_ are also supported. The underlying LP solvers CBC <https://projects.coin-or.org/Cbc>_ or GLPK <https://www.gnu.org/software/glpk/>_ will also be required depending on which wrapper is used. When using CyLP <https://github.com/mpy/CyLP>_ a path to coincbc is needed by setting the COIN_INSTALL_DIR path, such as (/usr/anaconda3/envs/pyart_env/).

  • Cartopy <https://scitools.org.uk/cartopy/docs/latest/>_. If installed, the ability to plot grids on geographic maps is available.

  • Basemap <https://matplotlib.org/basemap/>_. If installed, also gives the ability to plot grids on geographic maps, but Cartopy is recommended over Basemap. Basemap is deprecated in favour of cartopy.

  • wradlib <https://docs.wradlib.org/en/latest/>_. Needed to calculate the texture of a differential phase field.

  • pytest <https://docs.pytest.org/en/latest/>_. Required to run the Py-ART unit tests.

  • gdal <https://pypi.python.org/pypi/GDAL/>_. Required to output GeoTIFFs from Grid objects.

  • metpy <https://unidata.github.io/MetPy/latest/>_. Required for plotting gridded cross sections.

Installing from source

Installing Py-ART from source is the only way to get the latest updates and enhancement to the software that have not yet made it into a release. The latest source code for Py-ART can be obtained from the GitHub repository, https://github.com/ARM-DOE/pyart. Either download and unpack

Related Skills

View on GitHub
GitHub Stars580
CategoryDevelopment
Updated6d ago
Forks285

Languages

Python

Security Score

85/100

Audited on Mar 16, 2026

No findings