arm-pyart
Py-ART: Python ARM Radar Toolkit
What it is and what it does
Py-ART is a Python library for working with weather radar data, developed and used by the ARM User Facility for processing data from precipitation and cloud radars. It sits on top of NumPy, SciPy, matplotlib, and xarray to provide radar-specific algorithms for data correction, retrieval, and visualization. The package handles reading multiple radar file formats, applying quality control and correction algorithms, and producing publication-ready plots with geographic context via cartopy. It's designed for atmospheric scientists and radar engineers but is general enough to work with many radar types beyond ARM's own instruments.
The library bundles published scientific methods for radar processing—wind retrieval, beam blockage calculation, turbulence detection—and integrates with the broader open-radar ecosystem through xradar and open-radar-data. Installation is straightforward via conda or pip, though the dependency stack (netcdf4, cartopy, xarray, scipy) means setup time and potential compilation on some platforms. The package is actively maintained, supports current Python versions (3.11–3.13), and carries no known security vulnerabilities.
Use it for:
- Read and quality-control raw radar data from multiple file formats (cfradial, netCDF4, HDF5) for scientific analysis.
- Apply published correction algorithms (attenuation, clutter removal, velocity dealiasing) to radar reflectivity and velocity fields.
- Generate publication-ready radar plots with geographic overlays, colormaps, and custom field metadata.
- Retrieve wind kinematics or precipitation estimates from single or dual-Doppler radar observations.
- Integrate radar data into larger atmospheric science workflows using xarray and pandas for time-series or spatial analysis.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Py-ART provides weather radar data processing, analysis, and visualization algorithms built on the Scientific Python stack for examining precipitation and cloud radar data.
Yes, if you work with weather radar data in research or operational settings. Py-ART is production-stable (Development Status 5), actively maintained, carries no vulnerabilities, and integrates well with the Scientific Python ecosystem. The medium install friction is justified by the comprehensive radar algorithm library and active community. Not necessary for general atmospheric modeling or visualization work that doesn't involve radar-specific corrections or retrievals.
Install
arm-pyart on PyPI
pip
pip install arm-pyartuv
uv add arm-pyartpoetry
poetry add arm-pyartInstalling arm-pyart
Before you install
Medium install friction due to 15 runtime dependencies including compiled packages (netcdf4, cartopy) and optional C/C++ compiler requirements. Active maintenance with recent release (38 days ago) and steady repository activity (597 stars) reduces adoption risk.
License in practice
BSD-3-Clause (permissive) allows commercial and private use with minimal restrictions, requiring only license and copyright notice retention.
Quickstart
pip install arm-pyart
import pyart
radar = pyart.io.read_cfradial('radar_file.nc')
radar.fields.keys()
Requires Python 3.11 or later; netcdf4 and cartopy have compiled dependencies that may need system libraries (HDF5, GEOS, PROJ).
Verify before relying
- Whether optional dependencies (h5py, CyLP, PyGLPK, CVXOPT, wradlib) are commonly needed for typical workflows.
- Performance characteristics when processing large radar datasets or real-time data streams.
- Compatibility with non-standard radar formats beyond cfradial and netCDF4.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.11) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 15 — cartopy, cftime, fsspec, matplotlib, mda-xdrlib, netcdf4, numpy, open-radar-data, pandas, pint, pooch, s3fs, scipy, xarray, xradar |
| Maintenance | actively maintained — 38 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 156,959/month — #10,770 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: arm_pyart-2.2.5-cp311-cp311-macosx_10_9_x86_64.whl; arm_pyart-2.2.5-cp311-cp311-macosx_11_0_arm64.whl; arm_pyart-2.2.5-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; arm_pyart-2.2.5-cp311-cp311-win_amd64.whl; arm_pyart-2.2.5-cp312-cp312-macosx_10_13_x86_64.whl; arm_pyart-2.2.5-cp312-cp312-macosx_11_0_arm64.whl; arm_pyart-2.2.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; arm_pyart-2.2.5-cp312-cp312-win_amd64.whl; arm_pyart-2.2.5-cp313-cp313-macosx_10_13_x86_64.whl; arm_pyart-2.2.5-cp313-cp313-macosx_11_0_arm64.whl; arm_pyart-2.2.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl; arm_pyart-2.2.5-cp313-cp313-win_amd64.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
xradarXradar reads and writes weather radar data in…
permissive · top 15,000 on PyPI
MetPyMetPy provides tools for reading, visualizing,…
permissive · top 15,000 on PyPI
cmweathercmweather provides a collection of colormaps…
permissive · top 15,000 on PyPI
open-radar-dataProvides a registry and download utility for…
permissive · top 15,000 on PyPI
env_canadaProvides async access to Environment Canada…
permissive · top 15,000 on PyPI
irm-kmi-apiAsync Python client to fetch current weather,…
permissive · top 15,000 on PyPI
earthkit-meteoComputes meteorological quantities (potential…
permissive · top 15,000 on PyPI
metarParses METAR and SPECI coded aviation weather…
permissive · top 15,000 on PyPI
openmeteo-requestsFetches weather data from the Open-Meteo API…
permissive · top 15,000 on PyPI
herbie-dataHerbie downloads numerical weather prediction…
permissive · top 15,000 on PyPI