#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Tue Jun 17 02:31:53 PM EDT 2025 if __name__ == '__main__': import sys,os try: from misc.timer import Timer tt = Timer(f'[{os.getcwd()}] start ' + ' '.join(sys.argv)) except: pass import sys, os.path, os, glob, datetime import xarray as xr, numpy as np, pandas as pd, matplotlib.pyplot as plt #more imports wython = '/tigress/wenchang/wython' if wython not in sys.path: sys.path.append(wython); print('added to python path:', wython) #from misc import get_kws_from_argv # if __name__ == '__main__': try: tt.check('end import') except: pass # #start from here ifile = 'tracks.hurdat2.1851-2024.nc' ofile = ifile.replace('tracks', 'huDaysWA') if os.path.exists(ofile): da = xr.open_dataarray(ofile) print('[loaded]:', ofile) else: ds = xr.open_dataset(ifile) da = ds.lon.where(ds.stormStatus=='HU').where(ds.lon<-62.5).count(['stage', 'storm']).pipe(lambda x: x/4) da.attrs['long_name'] = 'hurricane-days per year' da.name = 'hurricane_days_per_year' da.to_dataset().to_netcdf(ofile) print('[saved]:', ofile) ofile_csv = ofile.replace('.nc', '.csv') da.to_pandas().to_csv(ofile_csv) print('[saved]:', ofile_csv) if __name__ == '__main__': from wyconfig import * #my plot settings da.plot(label='annual') da.rolling(year=5, center=True).mean().plot(label='5-year running average') plt.legend() #savefig if 'savefig' in sys.argv or 's' in sys.argv: figname = __file__.replace('.py', f'.png') if 'overwritefig' in sys.argv or 'o' in sys.argv: wysavefig(figname, overwritefig=True) else: wysavefig(figname) try: tt.check(f'**Done**') except: pass print() if 'notshowfig' in sys.argv or 'n' in sys.argv: pass else: if 'plt' in globals(): plt.show()