pyMeteo is an open source Python module for meteorological support. It is developed for Python 3.x but also works in Python 2.7. The module features include:

Skew-T plotting

Skew-T plotting is supported from the module skewt and from command line scripts. Both thermodynamic sounding and hodographs can be plotted and various values calculated from the data including estimated storm motion, storm and environment relative helicity, CAPE, CIN, and more.

The plots can be plotted directly from numpy arrays, CSV data, WRF output, or CM1 output.

WRF / CM1 input sounding and wind data generation for model initialization

An extensible graphical utility (PyQT5) for algorithmic generation of thermodynamic soundings and wind profiles is provided by the cm_geninit script. The output files generated from this utility are suitable for input to both the WRF and CM1 weather models.

The thermodynamic sounding provided is the Weisman Klemp (1982) analytic sounding. The sounding parameters can be modified and displayed before the file is written. It is fairly straightforward to implement other analytic soundings and a future tutorial will be provided. I also welcome pull requests if you implement it yourself!

The wind profiles provided are straight, semicircle, quartercircle and "sickle".

General purpose meteorological routines

These routines are general conversion utilities and calculators. These support the skew-t plotting and can calculate many things. Full documentation of these will be available as pyMeteo approaches version 1.0

CM1 model output data access

Python classes in the pymeteo.cm1.read_hdf5 and pymeteo.cm1.read_grads modules allow accessing CM1 output data. The read_grads class reads native CM1 output and the read_hdf5 module reads re-tiled hdf5 output post-processed by ingest_cm1.

Getting pyMeteo

The easiest way to get the latest stable release of pyMeteo is from PyPi with pip

pip install pymeteo

To get the latest development version of pyMeteo, you can clone the github repository.

git clone
cd pyMeteo
python install

If you want to make modifications or additions to pyMeteo and contribute back to the project, you can fork the repo on github and submit pull requests. I welcome contributions!


Documentation is a work in progress and targeted for completion for the version 1.0 milestone. Current documentation can be viewed here.

Recent Tweets

  • Casey Webster

    Casey Webster @wxCasey

    @tomalak55 not until the second half, but otherwise agreed.
    7 months, 3 weeks ago

  • Casey Webster

    Casey Webster @wxCasey

    @hallettwx ring in 20170101T0000Z by giving zsh a try. % > $
    7 months, 3 weeks ago

  • Casey Webster

    Casey Webster @wxCasey

    @emm232 agreed. Was especially impressed with the one by the last minute italy sub whose first touch was in the shootout.
    1 year, 1 month ago