MetPy
MetPy is a collection of tools in Python for reading, visualizing and performing calculations with weather data.
MetPy follows semantic versioning in its version number. This means
that any MetPy 1.x release will be backwards compatible with an earlier 1.y release. By
"backward compatible", we mean that correct code that works on a 1.y version will work
on a future 1.x version.
For additional MetPy examples not included in this repository, please see the MetPy Cookbook on Project Pythia.
We support Python >= 3.10.
Need Help?
Need help using MetPy? Found an issue? Have a feature request? Checkout our support page.
Important Links
- HTML Documentation
- MetPy Cookbook on Project Pythia
- "metpy" tagged questions on Stack Overflow
- Gitter chat room
Dependencies
Other required packages:
- Numpy
- Scipy
- Matplotlib
- Pandas
- Pint
- Xarray
There is also an optional dependency on the pyproj library for geographic projections (used with cross sections, grid spacing calculation, and the GiniFile interface).
See the installation guide for more information.
Code of Conduct
We want everyone to feel welcome to contribute to MetPy and participate in discussions. In that spirit please have a look at our Code of Conduct.
Contributing
Imposter syndrome disclaimer: We want your help. No, really.
There may be a little voice inside your head that is telling you that you're not ready to be an open source contributor; that your skills aren't nearly good enough to contribute. What could you possibly offer a project like this one?
We assure you - the little voice in your head is wrong. If you can write code at all, you can contribute code to open source. Contributing to open source projects is a fantastic way to advance one's coding skills. Writing perfect code isn't the measure of a good developer (that would disqualify all of us!); it's trying to create something, making mistakes, and learning from those mistakes. That's how we all improve, and we are happy to help others learn.
Being an open source contributor doesn't just mean writing code, either. You can help out by writing documentation, tests, or even giving feedback about the project (and yes - that includes giving feedback about the contribution process). Some of these contributions may be the most valuable to the project as a whole, because you're coming to the project with fresh eyes, so you can see the errors and assumptions that seasoned contributors have glossed over.
For more information, please read the see the contributing guide.
Philosophy
The space MetPy aims for is GEMPAK (and maybe NCL)-like functionality, in a way that plugs easily into the existing scientific Python ecosystem (numpy, scipy, matplotlib). So, if you take the average GEMPAK script for a weather map, you need to:
- read data
- calculate a derived field
- show on a map/skew-T
One of the benefits hoped to achieve over GEMPAK is to make it easier to use these routines for any meteorological Python application; this means making it easy to pull out the LCL calculation and just use that, or reuse the Skew-T with your own data code. MetPy also prides itself on being well-documented and well-tested, so that on-going maintenance is easily manageable.
The intended audience is that of GEMPAK: researchers, educators, and any one wanting to script up weather analysis. It doesn't even have to be scripting; all python meteorology tools are hoped to be able to benefit from MetPy. Conversely, it's hoped to be the meteorological equivalent of the audience of scipy/scikit-learn/skimage.
Release files for MetPy 1.7.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| metpy-1.7.1.tar.gz | 13.4 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| metpy-1.7.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.8 MB
Release files / metpy-1.7.1.tar.gz
| Download URL | metpy-1.7.1.tar.gz |
|---|---|
| Size | 13.4 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cdfd8fdab58bc092a1974c016f2ea3a7715ffdf6a4660b28b0de7049328bce75
|
|
BLAKE2b-256 checksum How to use checksums |
e7662745f03139abda190010ed94c4f6722688304896ad28b4d02e0455b0263e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 29, 2025.
Transparency logRelease files / metpy-1.7.1-py3-none-any.whl
| Download URL | metpy-1.7.1-py3-none-any.whl |
|---|---|
| Size | 424.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b184a1786a730f7926ec5fa58618cd0935a21f8088a13b268dd7267f9e104efc
|
|
BLAKE2b-256 checksum How to use checksums |
89c36b05cc23afc9c466634ba815bfddf529677f8c7e03f5814ccd387dac0ade
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 29, 2025.
Transparency log