storm_assess

Introduction

storm_assess is a Python module to read ascii-format output from the TRACK and TempestExtremes cyclone-tracking algorithms, originally developed by Joanne Camp (Met Office & Bureau of Meteorology), and is available on JASMIN at: /gws/nopw/j04/huracan/tools/python/storm_assess/

A version of storm_assess, developed by Malcolm Roberts (Met Office), was developed for reading NetCDF-format track output data (from HighResMIP), which is available here.

A simple example: load a TRACK output file and plot a pressure-wind relationship

import numpy as np
import matplotlib.pyplot as plt
from storm_assess import track

# Load a list of storms and get the wind speed and central pressure data
track_fn = ‘track_filename’

storms = list(track.load(track_fn))
mslp_minima = [storm.mslp_min for storm in storms]
vmax_maxima = [storm.vmax for storm in storms]

# Fit
coeff = np.polyfit(vmax_maxima,mslp_minima,2.)

poly1d = np.poly1d(coeff)
fit_x = np.linspace(min(vmax_maxima),max(vmax_maxima),len(vmax_maxima))
fit_y = poly1d(fit_x)

# Plot
plt.scatter(vmax_maxima,mslp_minima,color=’r’,marker=’.’,alpha=0.5)

plt.plot(fit_x,fit_y,color=’r’,label=’dataset name’)
plt.ylabel(r’p$_{min}$’)
plt.xlabel(r’v$_{max}$’)
plt.legend()
plt.show()

Each storm object contains attributes that describe the location and additional fields (i.e., wind speed, central pressure etc) for each track. For example:

storm = storms[i]
storm.obs
storm.vmax

storm.mslp_min
storm.obs[t].date
storm.obs[t].lon
storm.obs[t].lat
storm.obs_at_vmax()
storm.obs_at_min_mslp().date

Any suggestions to improve the functionality of storm_assess may be sent to Alex Baker or Leo Saffin.