MetPy
Collection of tools for reading, visualizing and performing calculations with weather data.
What it is and what it does
MetPy is a Python library for meteorological and atmospheric science workflows, designed to bring GEMPAK-like functionality into the scientific Python ecosystem. It handles the three core tasks of weather analysis: reading meteorological data, performing thermodynamic and kinematic calculations, and visualizing results on maps and specialized diagrams such as Skew-T plots. The library is built on top of numpy, scipy, matplotlib, and xarray, so it integrates naturally with existing scientific Python workflows.
MetPy is intended for researchers, educators, and operational meteorologists who want to script weather analysis and visualization. Its design emphasizes modularity—you can extract individual calculations and reuse them in your own applications—and it prioritizes clear documentation and test coverage to ensure long-term maintainability. The package has been actively maintained since its first release in 2015 and follows semantic versioning, so code written for version 1.y will work on future 1.x releases.
Use it for:
- Plot weather maps with geographic projections and overlay meteorological fields from gridded data
- Calculate thermodynamic indices from radiosonde or model output
- Create Skew-T log-P diagrams for analyzing atmospheric stability and convection
- Extract and reuse individual meteorological calculations in custom analysis scripts
- Visualize cross-sections of atmospheric data with proper coordinate transformations
- Process and analyze gridded datasets with numpy and xarray integration
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
MetPy provides tools for reading, visualizing, and performing calculations on weather data, integrating with the scientific Python ecosystem (NumPy, SciPy, Matplotlib).
Yes. MetPy is a mature, actively maintained library with no known vulnerabilities, low install friction, and a permissive license. It fills a clear niche for meteorological analysis in Python and integrates well with the broader scientific ecosystem. Install it if you work with weather or atmospheric data.
Install
metpy on PyPI
pip
pip install metpyuv
uv add metpypoetry
poetry add metpyInstalling MetPy
Before you install
Low install friction with a pure-wheel distribution. Active maintenance with a recent release and ongoing repository activity. Supports current Python versions (3.10–3.13).
License in practice
BSD-3-Clause permissive license allows use in both open-source and commercial projects with minimal restrictions.
Quickstart
pip install metpy
import metpy.calc as mpcalc
from metpy.units import units
# Calculate lifted condensation level
lcl_pressure, lcl_temperature = mpcalc.lcl(pressure, temperature, dewpoint)
Requires Python >= 3.10; nine runtime dependencies (matplotlib, numpy, pandas, pint, pooch, pyproj, scipy, traitlets, xarray) will be installed automatically.
Verify before relying
- Whether pyproj is installed by default or only on demand for geographic projections
- Performance characteristics when working with large gridded datasets
- Specific example values for thermodynamic calculations in the library
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 9 — matplotlib, numpy, pandas, pint, pooch, pyproj, scipy, traitlets, xarray |
| Maintenance | actively maintained — 350 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 221,366/month — #9,281 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: metpy-1.7.1-py3-none-any.whl
Keywords: meteorology, weather
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
earthkit-meteoComputes meteorological quantities (potential…
permissive · top 15,000 on PyPI
arm-pyartPy-ART provides weather radar data processing,…
permissive · top 15,000 on PyPI
cmweathercmweather provides a collection of colormaps…
permissive · top 15,000 on PyPI
metarParses METAR and SPECI coded aviation weather…
permissive · top 15,000 on PyPI
meteostatMeteostat provides access to historical weather…
unclear · top 15,000 on PyPI
earthkit-dataearthkit-data provides a unified Python…
permissive · top 15,000 on PyPI
nc-time-axisEnables matplotlib to plot data using cftime…
permissive · top 15,000 on PyPI
pygribReads and writes GRIB meteorological data files…
permissive · top 15,000 on PyPI
pm4pyPM4Py implements process mining algorithms to…
agpl · top 15,000 on PyPI
AEMET-OpenDataPython client for the AEMET OpenData Rest API…
copyleft · top 15,000 on PyPI