pyart

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

https://github.com/arm-doe/pyart

Science Score: 59.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: science.org
  • Committers with academic emails
    32 of 84 committers (38.1%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.3%) to scientific vocabulary

Keywords

closember data-visualization hacktoberfest pyart python radar-processing weather-radars

Keywords from Contributors

meteorology atmospheric-science weather retrieval meteorological-data corrections radar qt transformers hydrology
Last synced: 6 months ago · JSON representation

Repository

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

Basic Info
Statistics
  • Stars: 568
  • Watchers: 60
  • Forks: 277
  • Open Issues: 53
  • Releases: 65
Topics
closember data-visualization hacktoberfest pyart python radar-processing weather-radars
Created over 13 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Codeowners Roadmap

README.rst

.. -*- 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
`_ 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 `_ or
`Miniconda `_.
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 `_::

    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 `_ :
  Interactive radar viewing browser.

* `pyrad `_ :
  A real-time data processing framework developed by MeteoSwiss and MeteoFrance.

* `PyTDA `_ :
  Python Turbulence Detection Algorithm.

* `SingleDop `_ :
  Single Doppler Retrieval Toolkit.

* `DualPol `_ :
  Python Interface to Dual-Pol Radar Algorithms.

* `PyBlock `_:
  Python Polarimetric Radar Beam Blockage Calculation


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

* `wradlib `_ :
  An open source library for weather radar data processing.

* `BALTRAD `_ : Community-based weather radar networking.

* `MMM-Py `_ :
  Marshall MRMS Mosaic Python Toolkit.

* `CSU_RadarTools `_ :
  Colorado State University Radar Tools.

* `TRMM RSL `_ :
  TRMM Radar Software Library.

* `RadX `_ :
  Radx C++ Software Package for Radial Radar Data.

* `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 `_
* `SciPy `_
* `matplotlib `_
* `netCDF4 `_
* `pooch `_
* `Cython `_
* `setuptools `_
* `cartopy `_
* `cmweather `_
* `xradar `_
* `xarray `_
* `mda-xdrlib `_
* `fsspec `_
* `s3fs `_
* `pandas `_

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 `_.
`Anaconda `_ 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)
  `_.
  If installed Py-ART will be able to read in radar data in a number of
  additional formats (Lassen, McGill, Universal Format, and RADTEC) and
  perform automatic dealiasing of Doppler velocities.  RSL should be
  install prior to installing Py-ART. The environmental variable `RSL_PATH`
  should point to the location where RSL was installed if RSL was not
  installed in the default location (/usr/local/trmm), such as a anaconda path
  (/usr/anaconda3/envs/pyart_env/.

* In order to read files which are stored in HDF5 files the
  `h5py `_ package and related libraries must be
  installed.

* A linear programming solver and Python wrapper to use the LP phase
  processing method. `CyLP `_ is recommended as
  it gives the fastest results, but
  `PyGLPK `_ and
  `CVXOPT `_ are also supported. The underlying LP
  solvers `CBC `_ or
  `GLPK `_ will also be required depending
  on which wrapper is used. When using `CyLP `_
  a path to coincbc is needed by setting the `COIN_INSTALL_DIR` path, such as
  (/usr/anaconda3/envs/pyart_env/).

* `Cartopy `_. If installed,
  the ability to plot grids on geographic maps is available.

* `Basemap `_. If installed, also gives the
  ability to plot grids on geographic maps, but Cartopy is recommended over
  Basemap.

* `wradlib `_.  Needed to calculate the texture
  of a differential phase field.

* `pytest `_.
  Required to run the Py-ART unit tests.

* `gdal `_.
  Required to output GeoTIFFs from `Grid` objects.

* `metpy `_.
  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 the
`zip file `_ of
the source code or use git to checkout the repository::

    git clone https://github.com/ARM-DOE/pyart.git

To install in your home directory, use::

    python setup.py install --user

To install for all users on Unix/Linux::

    python setup.py build
    sudo python setup.py install

Development install using pip from within Py-ART directory::

    pip install -e .


Development
===========

Py-ART is an open source, community software project. Contributions to
the package are welcomed from all users.

Code
----
The latest source code can be obtained with the command::

    git clone https://github.com/ARM-DOE/pyart.git

If you are planning on making changes that you would like included in Py-ART,
forking the repository is highly recommended.

Getting help
------------
Py-ART has a `Discussion Forum `_ where you can ask questions and request help.

Contributing
-------------

We welcome contributions for all uses of Py-ART, provided the code can be
distributed under the BSD 3-clause license. A copy of this license is
available in the **LICENSE.txt** file in this directory. For more on
contributing, see the `contributor's guide. `_

Testing
-------

For testing, we use pytest for running the unit tests and open-test-data for
test files that are used for Py-ART's example gallery. To install pytest::

   $ conda install -c conda-forge pytest

To install open-radar-data::

   $ conda install -c conda-forge open-radar-data

After installation of pytest you can launch the test
suite from outside the source directory (you will need to have pytest
installed)::

   $ pytest --pyargs pyart

In-place installs can be tested using the `pytest` command from within
the source directory.

Owner

  • Name: ARM User Facility
  • Login: ARM-DOE
  • Kind: organization

GitHub Events

Total
  • Create event: 29
  • Release event: 7
  • Issues event: 53
  • Watch event: 52
  • Delete event: 19
  • Issue comment event: 130
  • Push event: 161
  • Pull request review comment event: 16
  • Pull request event: 128
  • Pull request review event: 85
  • Fork event: 15
Last Year
  • Create event: 29
  • Release event: 7
  • Issues event: 53
  • Watch event: 52
  • Delete event: 19
  • Issue comment event: 130
  • Push event: 161
  • Pull request review comment event: 16
  • Pull request event: 128
  • Pull request review event: 85
  • Fork event: 15

Committers

Last synced: 6 months ago

All Time
  • Total Commits: 2,431
  • Total Committers: 84
  • Avg Commits per committer: 28.94
  • Development Distribution Score (DDS): 0.563
Past Year
  • Commits: 105
  • Committers: 15
  • Avg Commits per committer: 7.0
  • Development Distribution Score (DDS): 0.695
Top Committers
Name Email Commits
Jonathan J. Helmus j****s@g****m 1,062
Zachary Sherman z****n@a****v 404
Max Grover m****2@g****m 229
Scott Collis s****f@g****m 214
Robert Jackson r****n@a****v 45
Kirk North k****h@g****m 45
Gama Anderson g****2@g****m 36
Anderson Gama a****a@s****r 35
dependabot[bot] 4****] 34
jhemedin j****r@g****m 28
Nick Guy n****r@g****m 27
Timothy Lang t****g@n****v 19
lauratomkins l****n@n****u 17
Jordi Figueras f****j@z****h 15
Joseph C. Hardin j****e@g****m 15
Cory C Weber c****r@a****v 13
Kai Muehlbauer k****r@u****e 13
dcedgren d****n@g****m 13
Israel Silber 5****r 12
Valentin Louf v****f@b****u 10
Joe O'Brien o****j@a****v 10
Steve Nesbitt s****t@i****u 9
Julia Signell j****l@g****m 8
Quba1 j****d@g****m 6
Hamid Ali Syed 3****i 6
Daniel Wolfensberger d****r@e****h 5
freemansw1 f****1@g****m 4
Marco Aurelio da Costa c****a@g****m 4
Rish Shadra w****0 4
Daniel Wolfensberger d****r@m****h 4
and 54 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 138
  • Total pull requests: 459
  • Average time to close issues: about 1 year
  • Average time to close pull requests: 7 days
  • Total issue authors: 73
  • Total pull request authors: 26
  • Average comments per issue: 3.07
  • Average comments per pull request: 1.23
  • Merged pull requests: 375
  • Bot issues: 0
  • Bot pull requests: 75
Past Year
  • Issues: 32
  • Pull requests: 167
  • Average time to close issues: 3 days
  • Average time to close pull requests: 2 days
  • Issue authors: 22
  • Pull request authors: 13
  • Average comments per issue: 1.5
  • Average comments per pull request: 0.66
  • Merged pull requests: 132
  • Bot issues: 0
  • Bot pull requests: 50
Top Authors
Issue Authors
  • mgrover1 (34)
  • zssherman (6)
  • isilber (4)
  • jjhelmus (4)
  • RBhupi (4)
  • MohitDahliya (4)
  • nawendt (3)
  • scollis (3)
  • neutrinoceros (3)
  • Vforcell (3)
  • vlouf (2)
  • adelmoral2 (2)
  • AdamTheisen (2)
  • joshua-wx (2)
  • dopplershift (2)
Pull Request Authors
  • mgrover1 (181)
  • zssherman (108)
  • dependabot[bot] (75)
  • isilber (19)
  • syedhamidali (15)
  • RBhupi (10)
  • lauratomkins (7)
  • rcjackson (6)
  • jrobrien91 (6)
  • wx4stg (3)
  • AdamTheisen (3)
  • gewitterblitz (2)
  • BrandonWeart (2)
  • wolfidan (2)
  • gransen312 (2)
Top Labels
Issue Labels
Bug (17) Enhancement (16) component: pyart.io (8) Moderate (5) Question (5) help wanted (4) component: pyart.graph (4) Docs (4) good first issue (3) High Priority (3) component: pyart.correct (3) component: Example (3) Low Priority (2) component: pyart.map (2) CI (2) component: pyart.retrieve (2) Install (2) Great First Pull Request (2) Easy Fix (1) Large Scale (1) Defect (1) Information (1) component: pyart.core (1) component: Other (1) component: pyart.aux_io (1)
Pull Request Labels
dependencies (75) github_actions (19) Enhancement (7) Docs (5) component: pyart.retrieve (1) component: pyart.io (1) component: pyart.graph (1)

Packages

  • Total packages: 5
  • Total downloads:
    • pypi 350,253 last-month
  • Total docker downloads: 1,117
  • Total dependent packages: 13
    (may contain duplicates)
  • Total dependent repositories: 29
    (may contain duplicates)
  • Total versions: 223
  • Total maintainers: 4
pypi.org: arm-pyart

Py-ART: Python ARM Radar Toolkit

  • Versions: 65
  • Dependent Packages: 7
  • Dependent Repositories: 9
  • Downloads: 350,253 Last month
  • Docker Downloads: 1,117
Rankings
Dependent packages count: 1.1%
Docker downloads count: 1.4%
Average: 2.7%
Downloads: 2.8%
Stargazers count: 2.9%
Forks count: 3.3%
Dependent repos count: 4.9%
Maintainers (3)
Last synced: 6 months ago
proxy.golang.org: github.com/ARM-DOE/pyart
  • Versions: 64
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
proxy.golang.org: github.com/arm-doe/pyart
  • Versions: 64
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
conda-forge.org: arm_pyart

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) Climate Research Facility 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, process, and analyze data from many types of weather radars.

  • Versions: 29
  • Dependent Packages: 6
  • Dependent Repositories: 20
Rankings
Dependent repos count: 7.9%
Dependent packages count: 9.0%
Forks count: 11.2%
Average: 11.8%
Stargazers count: 19.2%
Last synced: 6 months ago
spack.io: py-arm-pyart

Python ARM Radar Toolkit. 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) Climate Research Facility 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 analyse data from many types of weather radars.

  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 0.0%
Forks count: 6.6%
Stargazers count: 11.4%
Average: 18.8%
Dependent packages count: 57.3%
Maintainers (1)
Last synced: about 1 year ago

Dependencies

requirements.txt pypi
  • Cython *
  • cftime >=1.6.0
  • fsspec *
  • matplotlib *
  • netCDF4 *
  • numpy *
  • pooch *
  • s3fs *
  • scipy *
  • xarray >=0.21.1
.github/workflows/antivirus.yml actions
  • actions/checkout v3 composite
  • djdefi/gitavscan main composite
.github/workflows/build_docs.yml actions
  • actions/checkout v2 composite
  • mamba-org/provision-with-micromamba main composite
  • peaceiris/actions-gh-pages v3.8.0 composite
.github/workflows/ci.yml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v2.1.0 composite
  • conda-incubator/setup-miniconda v2 composite
.github/workflows/linting.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • fkirc/skip-duplicate-actions master composite
  • pre-commit/action v2.0.3 composite
  • styfle/cancel-workflow-action 0.9.1 composite
.github/workflows/wheels.yml actions
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/upload-artifact v3 composite
  • pypa/cibuildwheel v2.9.0 composite
  • pypa/gh-action-pypi-publish v1.4.2 composite
.github/workflows/codeql.yml actions
  • actions/checkout v3 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/autobuild v2 composite
  • github/codeql-action/init v2 composite
environment.yml conda
  • arm_pyart
  • cartopy
  • matplotlib
  • netcdf4
  • numpy
  • pip
  • python 3.9.*
  • scipy
  • wradlib
  • xarray
  • xradar
doc/environment.yml pypi
  • ablog *
  • pooch *
  • versioneer *