===================================== The Python ARM Radar Toolkit - Py-ART ===================================== .. toctree:: :maxdepth: 1 :hidden: :caption: Documentation API/index.rst source/auto_examples/index.rst INSTALL setting_up_an_environment contributors_guide .. toctree:: :maxdepth: 1 :hidden: :caption: Downloads Anaconda Cloud GitHub Repo Zip File of Repository .. toctree:: :maxdepth: 1 :hidden: :caption: Notebooks notebooks/basic_ingest_using_test_radar_object.ipynb notebooks/changing_fields_and_saving.ipynb notebooks/dealiasing_velocity.ipynb notebooks/mapping_data_to_a_cartesian_grid.ipynb notebooks/masking_data_with_gatefilters.ipynb notebooks/the_pyart_radar_object_and_indexing.ipynb .. toctree:: :maxdepth: 1 :hidden: :caption: Getting Help GitHub Issue Tracker Mailing List .. toctree:: :maxdepth: 1 :hidden: :caption: Science Lead Scott Collis What is Py-ART? =============== The Python ARM Radar Toolkit, Py-ART, is a Python module containing a collection of weather radar algorithms and utilities. Py-ART is used by the `Atmospheric Radiation Measurement (ARM) Climate Research Facility `_ for working with data from a number of its `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. Citing Py-ART ============= If you use Py-ART in your work please cite it in your paper. While the developers appreciate mentions in the text and acknowledgements citing the paper helps more. For Py-ART cite our paper in the `Journal of Open Research Software `_ 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 For a general citation on Open Radar Software please cite Maik Heistermann in `BAMS `_ M. Heistermann, S. Collis, M. J. Dixon, S. Giangrande, J. J. Helmus, B. Kelley, J. Koistinen, D. B. Michelson, M. Peura, T. Pfaff, and D. B. Wolff, 2015: The Emergence of Open-Source Software for the Weather Radar Community. Bull. Amer. Meteor. Soc. 96, 117–128, doi: 10.1175/BAMS-D-13-00240.1. What can Py-ART do? =================== Py-ART has the ability to ingest (read) from a number of common weather radar formats including Sigmet/IRIS, MDV, CF/Radial, UF, and NEXRAD Level II archive files. Radar data can be written to NetCDF files which conform to the CF/Radial convention. Py-ART also contains routines which can produce common radar plots including PPIs and RHIs. |PPI| |RHI| .. |PPI| image:: _static/ppi.png .. |RHI| image:: _static/rhi.png Algorithms in the module are able to performs a number of corrections on the radar moment data in antenna coordinate including attenuation correction of the reflectivity, velocity dealiasing, and correction of the specific (Kdp) and differential (PhiDP) phases. A sophisticated mapping routines is able to efficiently create uniform Cartesian grids of radar fields from one or more radars. Routines exist in Py-ART for plotting these grids as well as saving them to NetCDF files. Short Courses ============= Various short courses on Py-ART and open source radar software have been given which contain tutorial like materials and additional examples. * `2015 AMS, Open Source Radar Short Course `_ * `2015 ARM/ASR Meeting, PyART, the Python ARM Radar Toolkit `_ * `2014 ARM/ASM Meeting, Py-ART tutorial `_ * `2014 ERAD, Open Source Radar Short Course `_ 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.8 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 do not wish to use Anaconda or Miniconda as a Python environment or want to use the latest, unreleased version of Py-ART clone the git repository or download the repositories zip file and extract the file. Then run: $ python setup.py install Additional detail on installing Py-ART can be found in the installation section. Dependencies ============ Py-ART is tested to work under Python 3.6, 3.7 and 3.8 The required dependencies to install Py-ART in addition to Python are: * `NumPy `_ * `SciPy `_ * `matplotlib `_ * `netCDF4 `_ 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 Compilers `_ 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 t`o 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. * `xarray `_. If installed, gives the ability to work with the grid dataset used in grid plotting. * `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. Getting help ============ Py-ART has a `mailing list `_ where you can ask questions and request help. Contributing ============ Py-ART is an open source software package distributed under the `New BSD License `_ Source code for the package is available on `GitHub `_. Feature requests and bug reports can be submitted to the `Issue tracker `_, posting to the pyart-users `mailing list `_. Contributions of source code, documentation or additional example are always appreciated from both developers and users. To learn more on contributing to Py-ART, see the contributor's guide.