πŸ› οΈ Helper Tools

A collection of helper tools included within SounderPy.


Printing data to the console

spy.print_variables(clean_data, storm_motion='right_moving', modify_sfc=None)
Parameters:
  • clean_data (dict, required) – the dictionary of profile data to calculate profile parameters for (see 🌐 Tools for Getting Data)

  • storm_motion (str or list of floats, optional) – the storm motion used for calculations. Default is β€˜right_moving’. Custom storm motions are accepted as a list of floats representing direction and speed. Ex: [270.0, 25.0] where β€˜270.0’ is the direction in degrees and β€˜25.0’ is the speed in kts. See the Storm Motion Logic section for more details.

  • modify_sfc (None or dict, optional, default is None) – a dict in the format {'T': 25, 'Td': 21, 'ws': 20, 'wd': 270} to modify the surface values of the clean_data dict.

Returns:

prints a number of thermodynamic and kinematic variables to the console.

Return type:

data print out to the console

> THERMODYNAMICS ---------------------------------------------
--- SBCAPE: 2090.8 | MUCAPE: 2090.8 | MLCAPE: 1878.3 | MUECAPE: 1651.9
--- MU 0-3: 71.1 | MU 0-6: 533.0 | SB 0-3: 71.1 | SB 0-6: 533.0

> KINEMATICS -------------------------------------------------
--- 0-500 SRW: 35.0 knot | 0-500 SWV: 0.019 | 0-500 SHEAR: 21.8 | 0-500 SRH: 186.2
--- 1-3km SRW: 20.9 knot | 1-3km SWV: 0.005 | 1-3km SHEAR: 14.1 | | 1-3km SRH: 54.0

Returning a dictionary of profile parameters

Return a dictionary of common calculated sounding paramters and special variables for a given vertical profile.

Data returned in this dictionary include…
  • an interpolated version of the profile

  • basic parameters such as mixing ratio, theta-e, wet-bulb, etc

  • Thermodynamic parameters such as SB, MU, ML parcel properties (LCL, LFC, EL, CAPE, CIN, etc), Entrainment CAPE, etc

  • Kinematic parameters such as storm motion, storm-relative wind, streamwise vorticity, SRH, composite parameters, etc

class sounding_params(clean_data, storm_motion='right_moving', modify_sfc=None)
Parameters:
  • clean_data (dict, required) – the dictionary of profile data to calculate profile parameters for (see 🌐 Tools for Getting Data)

  • storm_motion (str or list of floats, optional) – the storm motion used for calculations. Default is β€˜right_moving’. Custom storm motions are accepted as a list of floats representing direction and speed. Ex: [270.0, 25.0] where β€˜270.0’ is the direction in degrees and β€˜25.0’ is the speed in kts. See the Storm Motion Logic section for more details.

  • modify_sfc (None or dict, optional, default is None) – a dict in the format {'T': 25, 'Td': 21, 'ws': 20, 'wd': 270} to modify the surface values of the clean_data dict.

.calc()
Returns:

special sounding parameters

Return type:

dict

Note

These calculated parameters are the same used on SounderPy plots. This function simply returns the master dictionary of all of these values.


Finding site lat/lon pairs

spy.get_latlon(station_type, station_id)

Return a latitude-longitude float pair in a list

Parameters:
  • station_type (str, required) – the station β€˜type’ that corresponds with the given station ID

  • station_id (str, required) – the station ID for the given station type

Returns:

lat/lon float pair

Return type:

list

Example:

spy.get_latlon('metar', 'kmop')
spy.get_latlon('bufkit', 'apx')
spy.get_latlon('raob', 'oun')
spy.get_latlon('buoy', '45210')
  • note: you can use this lat/lon pair list when calling the function get_model_data


Saving data to a file

spy.to_file(file_type, clean_data, filename=None)

Create a file of β€˜cleaned’ SounderPy data

Parameters:
  • file_type (str, required) – a str representing the file type you’d like to export data to.

  • clean_data (dict, required) – β€˜cleaned’ SounderPy data dict

  • filename (str, required) – the name you’d like to give the file

Returns:

a file of SounderPy data.

Example:
  • File options include csv, cm1, & sharppy

spy.to_file('csv', clean_data)
spy.to_file('cm1', clean_data)
spy.to_file('sharppy', clean_data)

Interpolating a vertical profile

spy.interp_data(variable, heights, step=100)

Interpolate a 1D array of data (such as a temperature profile) over a given interval (step) based on a corresponding array of height values.

Parameters:
  • variable (arr, required) – an array of data to be interpolated. Must be same length as height array.

  • heights (arr, required) – heights corresponding to the vertical profile used to interpolate. Must be same length as variable array.

  • step (int, optional) – the resolution of interpolation. Default is 100 (recommended value is 100)

Returns:

interp_var, an array of interpolated data.

Return type:

arr

Example:

spy.interp_data(temperature_array, height_array, step=100)

Finding a β€˜nearest’ value

spy.find_nearest(array, value)

Return a value of an index of an array who’s value is closest to a define value.

Parameters:
  • array (arr, required) – an array of data to be searched through

  • heights (int or float, required) – the value used to compare against the array of data

Returns:

nearest_idx, index of the data array that corresponds with the nearest value to the given value

Return type:

int

Example:

z_equals_500m = spy.interp_data(z, 500)