Sounderpy

Latest version: v3.0.8

Safety actively analyzes 701558 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

3.0.2

![example-sounding_dark](https://github.com/kylejgillett/sounderpy/assets/100786530/beb3e8d1-2783-4722-b99b-6bc7f5f2f271)


The Scoop:

Additions
1. ``ecape-parcel-py`` specialized parcel calculation and plotting logic
2. Relative humidity w/ height annotations on 'full' sounding plot
3. 6-9km kinematic parameters added to the 'kinematics' parameter print-out box on 'full' sounding and hodograph plots
4. User-defined and custom storm motion support using the kwarg ``storm_motion``
5. Accept Matplotlib colormaps for composite-sounding plots using the ``cmap`` kwarg
6. VAD hodograph plot function and data retrieval function added, but dependency issues exist -- full release of these features will be delayed.

Changed
1. Composite-sounding plots now default to matplotlib colormap 'viridis' instead of a hard-coded list of colors. Users can still use the ``color_to_use`` kwarg or the new ``cmap`` kwarg to override the colors used.
2. The thermodynamics section of the 'full' sounding plot was rearranged. 'SR-ECAPE' (SB, MU & ML) replaced the 'NCAPE' section.
3. Storm motion logic was reworked in the ``.calc`` module to use 'sm_u'/'sm_v' instead of 'rm_u'/'rm_v' so that all calculations and plotting responds to user-defined storm motion.
4. Some aspects of the skew-t plot layout were adjusted for improved readability. DGZ, HGZ, Max-lapse rate, and EIL annotations are now located on the left of the plot.

Bug Fixes
1. Band-aid-ed missing BUFKIT dewpoints so parcel calculations stop failing on BUFKIT forecast model data
5. Fixed ERA5 data parsing issue

Removed
None

3.0.1

A primarily bug-fix release for v3.0.0 with a few additions for improved functionality of existing tools.

The Scoop:

Additions
1. First implementation of VAD Hodograph plot function that plots NEXRAD VWP VAD data on a hodograph: `build_vad_hodograph()`. Currently still in development. This tool will not yet be fully included in v3.0.1, but likely will be in the next release.
2. Ability to target specific RAP-RUC datasets when using `get_model_data()` using the `dataset` kwarg.
3. Ability to determine a 'box average' size when using `get_model_data()` using the `box_avg_size` kwarg. See the **Changed** section for more info.

Changed
1. Model reanalysis data now uses an 'area-average' or 'box-sounding' approach to build a vertical profile of reanalysis data. I.e., by default, a user must pass a lat/lon point to `get_model_data()`, SounderPy will extract data for a 0.1x0.1 degree box and average the data together to build an averaged-point profile. Users may declare a desired box size using the `box_avg_size` kwarg.

Bug Fixes
1. Corrected EIL-SRH plot on hodographs
2. Corrected 0-1km Streamwise Vorticity value on sounding and hodograph plots
3. Improved Freezing-Point calculation using interpolation scheme.
4. Corrected last-forecast-hour BUFKIT data retrieval issue and created an error message for when an invalid forecast hour is requested.
5. Corrected RAOB site ID issue -- users can now request data using a WMO ID or ICAO ID.

Removed
None


Looking ahead to the future
1. *IN THE WORKS*: New ECAPE operations, allowing for the plotting of different ECAPE parcel traces and user-specified parcel-types
2. VAD VWP Hodograph plots.

3.0.0

Some major upgrades include... a number of new and improved plotting tools that create one-of-a-kind sounding and hodograph plots, new parameter calculations utilizing [Sharrpy](https://github.com/sharppy/SHARPpy/blob/main/README.md) functionality and a new [documentation site](https://kylejgillett.github.io/sounderpy/).

The Scoop:

Additions
1. New plot creation abilities using the new `build_sounding()` and `build_hodograph()` functions.
2. Composite sounding plots using the new `build_composite()` function. This will allow users to analyze several profiles at once.
3. A 'Dark Mode' setting for sounding, hodograph, and composite plots.
4. A color-blind friendly setting for sounding plots that turns the green dewpoint trace to blue.
5. Redesigned package structure, including the base sounderpy.py module, a calc.py module, and a plot.py module.
6. A new stand-alone documentation site that offers clear, easy-to-find documentation for SounderPy's funtionality. [Available, under construction, here.](https://kylejgillett.github.io/sounderpy/)
7. A print out of general thermodynamic and kinematic parameters of a given profile to the console when data is retrieved by SounderPy.

Changed
1. Functions `build_sounding()` and `build_hodograph()` replace `metpy_sounding()` and `metpy_hodograph()`
2. `get_model_data()` keyword argument `method` changed to `model`
3. Some warnings were changed to exceptions and other warnings were made more concise to address specific issues and improve the code's user-interface.
4. Computed thermodynamic and kinematic properties of a profile were changed to the widely accepted Sharppy calculation methods. This allows for increased reliability in functioning calculations and for more parameters that can be included in plots. SounderPy now directly uses the Sharrpy package for calculations of profile properties.

Bug Fixes
1. Minor bugs were addressed throughout the code. Some of these include...
+ The NWS-hosted METAR site list was removed from its online location a couple months ago. SounderPy now has its only METAR site list for finding METAR lat/lon sites.
+ Some data retrieval functions would only like station ID's in upper-case ('APX'), this bug was fixed so lines like the following will be accepted: `spy.get_obs_data('apx', '2022', '05', '20', '18')`

Removed
1. The `parse_data()` function is depreciated. Its functionality was simply added to the `get_model_data()` function.

------

Examples of new plots available with SounderPy functionality:

New Full Sounding Plot:
![example-sounding_light](https://github.com/kylejgillett/sounderpy/assets/100786530/70d7209f-bc99-45c7-8999-952f26e60dba)

New Composite Sounding Plot using 'Dark Mode'
![example-composite_dark](https://github.com/kylejgillett/sounderpy/assets/100786530/12d545d1-1518-4cbf-82d8-7062626c42e7)

New Hodograph Plot in 'Dark Mode'
![example-hodograph_dark](https://github.com/kylejgillett/sounderpy/assets/100786530/3d3e3995-e915-49b5-850d-03c7981eccb6)

**Full Changelog**: https://github.com/kylejgillett/sounderpy/compare/v3.0.0...v3.0.0

2.0.6

Fixed
- Erroneous dewpoint data from the NCEP-FNL and BUFKIT archived forecasts have been removed. I.e., bad data (considered less than -130C in this case) are set to nans to improve calculations. This is considered a 'test' and may be slightly modified in later updates.
- MetPy CAPE/CIN calculations were changed from MetPy's `surface_based_cape_cin()` to MetPy's `cape_cin()` which seems to both perform better and handle possibly erroneous data better. This was done for SB, ML & MU CAPE/CIN.
- An improved way to set the temperature axis bounds was created to ensure that the profile plots somewhat in the 'middle' of the skew-t for the best possible readability.

An example of the dewpoint corrections with correct MetPy CAPE/CIN calculations:

![yayyyy](https://github.com/kylejgillett/sounderpy/assets/100786530/88301581-a075-4d5d-af80-825a712fb0db)

2.0.5

LATEST VERSION: v2.0.5 | RELEASED: September 29, 2023 | COPYRIGHT Kyle J Gillett, 2023

[VISIT SOUNDERPY DOCUMENTATION HERE](https://github.com/kylejgillett/sounderpy/wiki)

</div>

CHANGELOG:
New Features
- Access to Aircraft Communications, Addressing and Reporting System (ACARS) vertical profile data with `acars_data()`
- Listing recent profiles for a given date and time: `acars_data(year, month, day, hour).list_profiles()`
- Getting a profile after using `.list_profiles`: `acars_data(year, month, day, hour).get_profile(profile)`
- NCEP FNL 0.25deg Gridded Reanalysis Dataset using the `get_model_data()` function by setting the `method` kwarg to '`ncep`'.
- Ability to output SounderPy data to a SHARPPY input file.


Changed
- Finding station lat-lon data is now condensed into a single function: `get_latlon(station_type, station_id)` where `station_type` can be `buoy`, `raob`, `igra`, `metar`, or `bufkit`.
- This change depreciates the following functions: `buoy_latlon()`, `metar_latlon()`, `raob_latlon()`, `igra_latlon()`, `metar_latlon()` and `bufkit_latlon()`.
- Outputting data to a file is now condensed into a single function: `to_file(file_type, filename)`, where `file_type` can be `csv`, `cm1`, or `sharppy`.
- This change depreciates the following functions: `to_csv()` and `to_cm1`.
- MetPy sounding and hodograph plots are now more advanced.


Fixed
- Improved Docs
- Corrected Bufkit data output lat-lon data

EXAMPLE PLOTS:

<div align="center">
<img src="https://raw.githubusercontent.com/kylejgillett/sounderpy/main/images/sounderpy_v2-1-0_example-sounding.png" width="600">

<img src="https://raw.githubusercontent.com/kylejgillett/sounderpy/main/images/sounderpy_v2-1-0_example-hodograph.png" width="600">
</div>

2.0.0

Release number 2 of SounderPy!

* NOTE: this version of SounderPy is **2.0.4**

![sounderpyv204_release](https://github.com/kylejgillett/sounderpy/assets/100786530/c23d9252-037a-4de9-9233-ecea5a417453)


New Features
- IGRAv2 Archive Access via `get_obs_data()` -- just specify an IRGA station ID for the kwarg `station`!
- Most-recent RAP analysis data access via `get_model_data()` -- specify the `method` kwarg as `'rap-now'`
- Most-recent & archive BUFKIT data access via `get_bufkit_data()` -- GFS, NAM, NAMNEST, RAP, HRRR, SREF, & HIRESW data
- Ability to find a lat/lon pair of a US buoy/CMAN site -- `buoy_latlon('site-id')`
- Ability to find a lot/lon pair for a IGRA site -- `igra_latlon('site-id')`
- Ability to save plots to a file -- `metpy_sounding(clean_data, 'save')`
- Ability to save parsed data as a csv -- `to_csv(clean_data)`
- Ability to save parsed data to CM1 input file -- `to_cm1(clean_data)`
- Ability to plot profile data on a MetPy Hodograph! `metpy_hodograph(clean_data, 'show')`
- GitHub Wiki Documentation


Changed
- `metpy_sounding()` function now offers two rendering options, a user can specify kwarg `method` as `'show'` to display the plot inline, or as `'save'` to save the plot as a .png image. If `'save'` is chosen, the kwarg `filename` can be set to a user-specified file location and name.
- Example: `metpy_sounding(clean_data, 'save', '/your-file-path/your-file-name')`
- all `clean_data` dicts now include the key `site-info` which include site information, model/data information and time information.

Fixed
- Improved Docs
- Made minor corrections to `get_docs()` function
- Added `CHANGLOG.md`
- fixed `requirements.txt`, thus allowing dependencies to automatically load upon installing SounderPy

Page 2 of 3

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.