SounderPy

SounderPy: An atmospheric sounding visualization and analysis tool for Python - Published in JOSS (2025)

https://github.com/kylejgillett/sounderpy

Science Score: 93.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 18 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

atmospheric-science atmospheric-sciences data-analysis-python meteorology python weather weather-data
Last synced: 4 months ago · JSON representation

Repository

SounderPy is an open-source Python package for retrieving, processing, and visualizing atmospheric sounding data.

Basic Info
Statistics
  • Stars: 65
  • Watchers: 8
  • Forks: 22
  • Open Issues: 6
  • Releases: 15
Topics
atmospheric-science atmospheric-sciences data-analysis-python meteorology python weather weather-data
Created over 2 years ago · Last pushed 4 months ago
Metadata Files
Readme License Citation

README.md

SounderPy: An atmospheric sounding visualization and analysis tool for Python

LATEST VERSION: v3.0.9 | RELEASED: Aug, 2025 | COPYRIGHT Kyle J Gillett, 2023-2025

SounderPy is an open-source Python package for retrieving, processing, and visualizing atmospheric sounding data.

PyPI Package PyPI Downloads PyPI license PyPI pyversions GitHub commits Maintainer made-with-python DOI DOI

#### [VISIT SOUNDERPY DOCUMENTATION](https://kylejgillett.github.io/sounderpy/) | [CHECK OUT EXAMPLES & TUTORIALS](https://kylejgillett.github.io/sounderpy/examplescripts.html) ### [VISIT THE OPERATIONAL SOUNDERPY SOUNDING ANALYSIS SITE](https://sounderpysoundings.anvil.app/)

What is SounderPy:

ABSTRACT: SounderPy is a simple, open-source Python package for retrieving and plotting vertical profile (sounding) data. Built for simplicity and reliability for all uses and users, this projects goal is to provide a uniform method for sounding analysis across multiple data types. Severe weather analysis and forecasting requires a sound comprehension of thermodynamic and kinematic properties of the environment. SounderPy makes this possible with robust access to data and custom visualizations. The tool creates complex yet effective sounding and hodograph plots with high readability which are designed specifically for severe weather analysis and forecasting. SounderPy is capable of retrieving and plotting model forecast data, observed radiosonde data, Aircraft Communications Addressing and Reporting System (ACARS) observation data, and model reanalysis data. All of this functionality can be completed in three simple lines of code or less, making SounderPy an accessible tool for both Python experts and novices. A number of scientific Python libraries build the base of SounderPys efficient and durable functionality, such as NumPy, Matplotlib, xarray, Metpy, and SHARPpy. SounderPy is available through GitHub and PyPi and is distributed under an MIT license.

Read more about SounderPy in this article published in the Journal of Open Source Software: SounderPy: An atmospheric sounding visualization and analysis tool for Python

SounderPy has been used by several institutions. For example, this tool has been implemented by the Des Moines, Columbia, and Grand Rapids National Weather Service Offices, the State University of New York at Albany, Mississippi State University, the University of North Dakota, and others. Many students at various universities have used SounderPy in projects, posters, and papers, such as students at The University of Oklahoma, Ohio State University, Central Michigan University, Iowa State University, & Rizal Technological University.

Why SounderPy?

  • Sometimes data is tough to find, and often times its even tougher to get it in the format you like. SounderPy gets you this data!
  • The code needed for loading and parsing meteorological data, especially from models, can be large and messy. SounderPy keeps it hidden away in a PyPi package just import and call sounderPy functions to keep your code clean!
  • SounderPy functions are designed to be simple and quick making for reliable use in research, forecast/analysis operations, and simply for fun!

What kind of data?:

| DATA | FUNCTION | TYPE | TIME RANGE | |---------------------------------|--------------------|-------------------|----------------| | ECMWF CDS ERA5 reanalysis* | getmodeldata() | Reanalysis | 1940-present | | UNIDATA THREDDS TDS RAP | getmodeldata() | Reanalysis | 2005-present | | UNIDATA THREDDS TDS RUC | getmodeldata() | Reanalysis | 2005-2020 | | UNIDATA THREDDS NCEP-FNL | getmodeldata() | Reanalysis | 2005-2020 | | ISU's BUFKIT archive | getbufkitdata() | Model Forecast | 2011-present | | PSU's BUFKIT feed | getbufkitdata() | Model Forecast | Most recent runs | | UNIDATA THREDDS TDS RAP | getmodeldata() | Model Analysis | Most recent run | | OU ACARS Archive | acarsdata() | Observations | 2019-06/2024 | | The Unv. of WY RAOB Archive | getobsdata() | Observations | 1973-present | | IGRAv2 Observation archive | getobs_data() | Observations | 1905-present |


Installation

  1. #### Install the SounderPy software:
  • SounderPy is available on PyPi and can be installed via pip:

    pip install sounderpy

  • or via conda forge by first setting up the conda-forge channel:

    conda config --add channels conda-forge conda config --set channel_priority strict then conda install sounderpy or mamba install sounderpy

  1. Import SounderPy into your Python project:

    py import sounderpy as spy

  2. Lets declare a few simple variables we can use to get data:

    py year = '2014' month = '06' day = '16' hour = '18' station = 'OAX'

  3. Get some data!

    ```py

    this will get us 18z observations on June 16th, 2014 from OAX (Omaha, Neb)

    cleandata = spy.getobs_data(station, year, month, day, hour) ``` and boom! Now you have a callable dictionary of vertical profile reanalysis data including...

  • Temperature
  • Dewpoint
  • Pressure
  • Height
  • U-component Wind
  • V-component Wind
  • (model data comes with omega (vertical velocity)!)

SounderPy can also plot profile data on unique sounding and hodograph figures!

py spy.build_sounding(clean_data, color_blind=True)

py spy.build_hodograph(clean_data, dark_mode=True)

To learn more about what you can do with SounderPy, check out the documentation


AUTHORS AND CONTRIBUTORS

AUTHOR: Kyle J Gillett, University of North Dakota

CONTRIBUTOR: Scott Thomas, NWS Grand Rapids | VWP Hodograph, Buoy-sites listing
CONTRIBUTOR: Amelia R H Urquhart, University of Oklahoma | ecape-parcels library
CONTRIBUTOR: Daryl Herzmann, Iowa State University | SounderPy Feedstock for conda-forge
CONTRIBUTOR: Ryan Vandersmith | Stepwise CAPE/CIN plot

CITING SOUNDERPY

DOI

in AMS format:

- Gillett, K. J., 2025: SounderPy: An atmospheric sounding visualization and analysis tool for Python. J. Open Source Software, 10 (112), 8087, https://doi.org/10.21105/joss.08087

REFERENCES

  • Harris, C.R., Millman, K.J., van der Walt, S.J. et al. Array programming with NumPy. Nature 585, 357362 (2020). DOI: 10.1038/s41586-020-2649-2.

  • Hoyer, S. & Hamman, J., (2017). xarray: N-D labeled Arrays and Datasets in Python. Journal of Open Research Software. 5(1), p.10. DOI: https://doi.org/10.5334/jors.148

  • J. D. Hunter, "Matplotlib: A 2D Graphics Environment", Computing in Science & Engineering, vol. 9, no. 3, pp. 90-95, 2007.

  • Ryan M. May, Sean C. Arms, Patrick Marsh, Eric Bruning, John R. Leeman, Kevin Goebbert, Jonathan E. Thielen, Zachary S Bruick, and M. Drew. Camron. Metpy: a Python package for meteorological data. 2023. URL: Unidata/MetPy, doi:10.5065/D6WW7G29.

  • Ryan M. May, Sean C. Arms, John R. Leeman, and Chastang, J. Siphon: A collection of Python Utilities for Accessing Remote Atmospheric and Oceanic Datasets. Unidata. 2017. [Available online at https://github.com/Unidata/siphon.] doi:10.5065/D6CN72NW.

  • Pauli Virtanen, Ralf Gommers, Travis E. Oliphant, Matt Haberland, Tyler Reddy, David Cournapeau, Evgeni Burovski, Pearu Peterson, Warren Weckesser, Jonathan Bright, Stfan J. van der Walt, Matthew Brett, Joshua Wilson, K. Jarrod Millman, Nikolay Mayorov, Andrew R. J. Nelson, Eric Jones, Robert Kern, Eric Larson, CJ Carey, lhan Polat, Yu Feng, Eric W. Moore, Jake VanderPlas, Denis Laxalde, Josef Perktold, Robert Cimrman, Ian Henriksen, E.A. Quintero, Charles R Harris, Anne M. Archibald, Antnio H. Ribeiro, Fabian Pedregosa, Paul van Mulbregt, and SciPy 1.0 Contributors. (2020) SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python. Nature Methods, 17(3), 261-272.

  • Marsh, P., Halbert, K., Blumberg, G., Supinie, T., Esmaili, R., Szkodzinski, J., "SHARPpy: Sounding/Hodograph Analysis and Research Program in Python." GitHub. Available at: https://github.com/sharppy/SHARPpy.

Owner

  • Name: KyleJGillett
  • Login: kylejgillett
  • Kind: user

JOSS Publication

SounderPy: An atmospheric sounding visualization and analysis tool for Python
Published
August 23, 2025
Volume 10, Issue 112, Page 8087
Authors
Kyle J. Gillett ORCID
John D. Odegard College of Aerospace Sciences, University of North Dakota, United States
Editor
Pierre de Buyl ORCID
Tags
meteorology atmospheric sciences data analysis weather data

GitHub Events

Total
  • Create event: 5
  • Release event: 2
  • Issues event: 12
  • Watch event: 14
  • Delete event: 2
  • Issue comment event: 25
  • Push event: 67
  • Pull request review event: 2
  • Pull request review comment event: 1
  • Pull request event: 9
  • Fork event: 8
Last Year
  • Create event: 5
  • Release event: 2
  • Issues event: 12
  • Watch event: 14
  • Delete event: 2
  • Issue comment event: 25
  • Push event: 67
  • Pull request review event: 2
  • Pull request review comment event: 1
  • Pull request event: 9
  • Fork event: 8

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 74
  • Total Committers: 2
  • Avg Commits per committer: 37.0
  • Development Distribution Score (DDS): 0.014
Past Year
  • Commits: 74
  • Committers: 2
  • Avg Commits per committer: 37.0
  • Development Distribution Score (DDS): 0.014
Top Committers
Name Email Commits
Kyle Gillett k****0@g****m 73
Ryan Vandersmith r****h@g****m 1

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 32
  • Total pull requests: 9
  • Average time to close issues: 24 days
  • Average time to close pull requests: 3 days
  • Total issue authors: 14
  • Total pull request authors: 4
  • Average comments per issue: 1.81
  • Average comments per pull request: 1.22
  • Merged pull requests: 5
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 11
  • Pull requests: 6
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 2 days
  • Issue authors: 9
  • Pull request authors: 2
  • Average comments per issue: 1.73
  • Average comments per pull request: 1.17
  • Merged pull requests: 4
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • kylejgillett (8)
  • AstroCGHA (4)
  • akrherz (3)
  • MagicalDrizzle (2)
  • wxguy (2)
  • zhiris-wx (1)
  • RavenV-tiff (1)
  • ethankerrwx (1)
  • blaylockbk (1)
  • anadape (1)
  • VortDude (1)
  • CocoasColas (1)
  • wreed1989 (1)
  • Alan-Birnbaum (1)
Pull Request Authors
  • kylejgillett (6)
  • rvanasa (4)
  • akrherz (3)
  • adamorgler (1)
Top Labels
Issue Labels
psbl-future-addition (9) bug (8) enhancement (3)
Pull Request Labels
psbl-future-addition (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 1,187 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 50
  • Total maintainers: 1
proxy.golang.org: github.com/kylejgillett/sounderpy
  • Versions: 14
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 4 months ago
pypi.org: sounderpy

Vertical Profile Data Retrieval and Analysis Tool For Python

  • Versions: 36
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 1,187 Last month
Rankings
Dependent packages count: 7.4%
Stargazers count: 19.5%
Average: 27.0%
Forks count: 30.4%
Dependent repos count: 50.7%
Maintainers (1)
Last synced: 4 months ago