kylejgillett / sounderpy

A python package that helps you to access and plot vertical profile data for meteorological analysis
https://kylejgillett.github.io/sounderpy/
MIT License
49 stars 13 forks source link
atmospheric-science atmospheric-sciences data-analysis-python meteorology python weather weather-data

SounderPy, the vertical profile data retrieval and analysis tool for Python

LATEST VERSION: v3.0.5 | RELEASED: Sept, 2024 | COPYRIGHT Kyle J Gillett, 2023, 2024

A Python package that helps you to access and plot vertical profile data for meteorological analysis

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


#### [VISIT SOUNDERPY DOCUMENTATION](https://kylejgillett.github.io/sounderpy/) | [CHECK OUT AN 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 project’s 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 SounderPy’s 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.

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?

What kind of data?:

DATA FUNCTION TYPE TIME RANGE
ECMWF CDS ERA5 reanalysis* get_model_data() Reanalysis 1940-present
UNIDATA THREDDS TDS RAP get_model_data() Reanalysis 2005-present
UNIDATA THREDDS TDS RUC get_model_data() Reanalysis 2005-2020
UNIDATA THREDDS NCEP-FNL get_model_data() Reanalysis 2005-2020
ISU's BUFKIT archive get_bufkit_data() Model Forecast 2011-present
PSU's BUFKIT feed get_bufkit_data() Model Forecast Most recent runs
UNIDATA THREDDS TDS RAP get_model_data() Model Analysis Most recent run
OU ACARS Archive acars_data() Observations 2019-06/2024
The Unv. of WY RAOB Archive get_obs_data() Observations 1973-present
IGRAv2 Observation archive get_obs_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
  2. Import SounderPy into your Python project:

    import sounderpy as spy
  3. Lets declare a few simple variables we can use to get data:

    year  = '2014' 
    month = '06'
    day   = '16'
    hour  = '18'
    station = 'OAX'
  4. Get some data!

    # this will get us 18z observations on June 16th, 2014 from OAX (Omaha, Neb)
    clean_data = spy.get_obs_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!

   spy.build_sounding(clean_data, color_blind=True)
   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

CITING SOUNDERPY

DOI

in AMS format:


REFERENCES