12. Appendix A METplus Components Python Packages

12.1. Overview

Note

The information below is a union of the Python package requirements across the following METplus components: METplus (including use cases), MET Python Embedding, METcalcpy, METplotpy, and METdataio. Many of the Python packages listed below are OPTIONAL and not required.

For information regarding the Python package requirements for each of the METplus components, see the documentation links below for the desired METplus component. Please note that the documentation for the METplus Use Cases lists the required Python packages in the individual Use Cases documentation.

12.2. METplus Components Python Packages

Python 3.10.4 +
METplus Component:
METplus wrappers,
METcalcpy,
METplotpy,
METdataio
cartopy >=0.21.1
METplus Component:
Select METplus Use Cases,
METcalcpy,
METplotpy
Source:

https://scitools.org.uk/cartopy/docs/latest/

Description:

Designed for geospatial data processing in order to produce maps and other geospatial data analyses

Use Cases:
cfgrib
METplus Component:

Select METplus Use Cases

Source:

https://pypi.org/project/cfgrib/

Description:

Map GRIB files to the NetCDF Common Data Model following the CF Convention using ecCodes

Use Cases:

Multi_Tool: Feature Relative by Lead using Multiple User-Defined Fields

cmocean
METplus Component:
METcalcpy,
METplotpy
Source:

https://pypi.org/project/cmocean/

Description:

Contains colormaps for commonly-used oceanographic variables

dateutil >=2.8.2
METplus Component:

METplus wrappers

Source:

https://github.com/dateutil/dateutil/releases

Description:

Provides powerful extensions to the standard datetime module

Use Cases:

Most

eofs
METplus Component:
Select METplus Use Cases,
METcalcpy,
METplotpy
Source:

https://pypi.org/project/eofs/

Description:

Empirical orthogonal functions analysis of spatial-temporal data

Use Cases:
h5py
METplus Component:

Select METplus Use Cases

Source:

https://github.com/h5py/h5py

Description:

Pythonic interface to the HDF5 binary data format

Use Case:

PCPCombine: Python Embedding Use Case

imutils >=0.5.4
METplus Component:

METplotpy

Source:

https://pypi.org/project/imutils/

Description:

A series of convenience functions to make basic image processing functions such as translation, rotation, resizing, skeletonization, displaying Matplotlib images, sorting contours, detecting edges, and much more easier

imageio
METplus Component:
METcalcpy,
METplotpy
Source:

https://pypi.org/project/imageio/

Description:

Provides an easy interface to read and write a wide range of image data, including animated images, volumetric data, and scientific formats

lxml >=4.9.1
METplus Component:
METcalcpy,
METplotpy,
METdataio
Source:

https://pypi.org/project/lxml/

Description:

A Pythonic binding for the C libraries libxml2 and libxslt

matplotlib >=3.6.3
metcalcpy
METplus Component:
Select METplus Use Cases,
METcalcpy,
METplotpy
Source:

https://github.com/dtcenter/METcalcpy/releases

Description:

A Python version of the statistics calculation functionality of METviewer, METexpress, plotting packages in METplotpy and is a stand-alone package for any other application

Use Case:
metplotpy
METplus Component:

Select METplus Use Cases

Source:

https://github.com/dtcenter/METplotpy/releases

Description:

Contains packages for plotting in METplus as stand-alone, or part of METplus use case, Select METplus Use Cases, METexpress, or METviewer

Use Case:
metpy >=1.4.0
METplus Component:

Select METplus Use Cases

Source:

https://www.unidata.ucar.edu/software/metpy/

Description:

A collection of tools in Python for reading, visualizing, and performing calculations with weather data

Use Case:

Multi_Tool: Feature Relative by Lead using Multiple User-Defined Fields

nc-time-axis 1.4
METplus Component:
METplotpy
stratosphere_diagnostics
Source:
Description:

Extension to cftime - **REQUIRES Python 3.7**

netCDF4 >=1.6.2
METplus Component:
Select METplus Use Cases,
METcalcpy,
METplotpy
Source:

https://unidata.github.io/netcdf4-python/

Description:

A Python interface to the netCDF C library

Use Case:

For using MET Python embedding functionality in use cases

numpy >=1.24.2
METplus Component:
Select METplus Use Cases,
METcalcpy,
METplotpy,
METdataio
Source:

https://numpy.org/

Description:

NumPy offers comprehensive mathematical functions, random number generators, linear algebra routines, Fourier transforms, and more.

Use Case:

For using MET Python embedding functionality in use cases

pandas >=1.5.2
METplus Component:
Select METplus Use Cases,
METcalcpy,
METplotpy,
METdataio
Source:

https://pypi.org/project/pandas

Description:

A fast, powerful, flexible and easy to use open source data analysis and manipulation tool, built on top of the Python programming language

Use Case:

For using MET Python embedding functionality in use cases

pint >=0.20.1
METplus Component:

METcalcpy

Source:

https://github.com/hgrecco/pint

Description:

Python package to define, operate and manipulate physical quantities

plotly >=5.13.0
METplus Component:
METcalcpy,
METplotpy
Source:

https://github.com/plotly/plotly.py

Description:

Makes interactive, publication-quality graphs

pygrib
pylab
METplus Component:

Select METplus Use Cases

Source:

https://pypi.org/project/matplotlib/

Description:

A convenience module that bulk imports matplotlib.pyplot (for plotting) and NumPy (for Mathematics and working with arrays) in a single name space

Use Case:
pymysql >=1.0.2
METplus Component:
METcalcpy,
METplotpy,
METdataio
Source:

https://pypi.org/project/psutil/

Description:

A pure-Python MySQL client library, based on PEP 249

pyproj >=2.3.1
METplus Component:

Select METplus Use Cases

Source:

https://github.com/pyproj4/pyproj/archive/v2.3.1rel.tar.gz

Description:

Python interface to PROJ (cartographic projections and coordinate transformations library)

Use Case:
pyresample
pytest >=7.2.1
METplus Component:
METcalcpy,
METplotpy,
METdataio
Source:

https://github.com/pytest-dev/pytest/archive/5.2.1.tar.gz

Description:

A mature full-featured Python testing tool that helps to write better programs

python-kaleido >=0.2.1
METplus Component:
METcalcpy,
METplotpy
Source:

https://pypi.org/project/kaleido/

Description:

Provides a low-level Python API that is designed to be used by high-level plotting libraries like Plotly

pyyaml >=6.0
METplus Component:
METcalcpy,
METplotpy,
METdataio
Source:

https://github.com/yaml/pyyaml

Description:

A full-featured YAML framework for the Python programming language

scikit-image >=0.19.3
METplus Component:
METcalcpy,
METplotpy
Source:

https://scikit-image.org

Description:

A collection of algorithms for image processing

scikit-learn >=1.2.2
scipy >=1.9.3
sklearn
xarray >=2023.1.0
METplus Component:
Select METplus Use Cases,
METcalcpy,
METplotpy
Source:

https://xarray.pydata.org/en/v0.17.0/

Description:

Makes working with labelled multi-dimensional arrays simple, efficient, and fun

Use Case:

For using MET Python embedding functionality in use cases

xesmf
METplus Component:

Select METplus Use Cases

Source:

NOTE: The xesmf package will not be installed on WCOSS2 and there is an open GitHub issue to replace the package in the use case that uses it: https://github.com/dtcenter/METplus/issues/1314

Description:

For regridding

Use Case:

PlotDataPlane: Python Embedding of tripolar coordinate file

yaml
METplus Component:
METcalcpy,
METplotpy
Source:

https://pypi.org/project/PyYAML/

Description:

To load, read, and write YAML files with PyYAML