#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Fri Sep 15 09:51:11 EDT 2023 if __name__ == '__main__': import sys,os from misc.timer import Timer tt = Timer(f'[{os.getcwd()}] start ' + ' '.join(sys.argv)) 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 ##old way #from tc_monitor_AM2p5_amipLMR2019SST0850ic_tigercpu_intelmpi_18_540PE import ds_counts_yearly as ds_am2p5 #from tc_monitor_HIRAM_amipLMR2019SST0850ic_tigercpu_intelmpi_18_540PE import ds_counts_yearly as ds_hiram from modelout.getTC import getTC # if __name__ == '__main__': tt.check('end import') # #start from here minWindmax = 33 if '33' in sys.argv else 17 #default is 17m/s model = 'FLOR' labels = [] dss = [] label = 'FLOR_ctl_1990_v201905' expname = 'CTL1990_v201905_tigercpu_intelmpi_18_576PE' ds = getTC(model=model, expname=expname, minWindmax=minWindmax) labels.append(label) dss.append(ds) label = 'FLOR_ctl_1990_v201905_FA' expname = 'CTL1990_v201905_FA_tigercpu_intelmpi_18_576PE' ds = getTC(model=model, expname=expname, minWindmax=minWindmax) labels.append(label) dss.append(ds) label = 'FLOR_ctl_1990_v201905_FA05' expname = 'CTL1990_v201905_FA05_tigercpu_intelmpi_18_576PE' ds = getTC(model=model, expname=expname, minWindmax=minWindmax) labels.append(label) dss.append(ds) label = 'FLOR_ctl_1990_v201905_FA05trop' expname = 'CTL1990_v201905_FA05trop_tigercpu_intelmpi_18_576PE' ds = getTC(model=model, expname=expname, minWindmax=minWindmax) labels.append(label) dss.append(ds) label = 'FLOR_ctl_1990_v201905_FAtrop' expname = 'CTL1990_v201905_FAtrop_tigercpu_intelmpi_18_576PE' ds = getTC(model=model, expname=expname, minWindmax=minWindmax) labels.append(label) dss.append(ds) if __name__ == '__main__': from wyconfig import * #my plot settings n_window = 15#50 lowpass = lambda da: da.rolling(year=n_window, min_periods=1, center=True).mean() if da.year.size>n_window else da #basin = get_kws_from_argv('basin', 'global') basins = ('global', 'NA', 'WP', 'EP', 'NI', 'SI', 'AU') for basin in basins: fig,ax = plt.subplots() for ds,label in zip(dss, labels): ds[basin].sel(year=slice(1901,2100)).pipe(lowpass).plot(label=label, ax=ax) #ax.legend(loc='upper left') ax.legend() title = f'{basin} TC #' if minWindmax == 33: title = title.replace('TC', 'HU') if n_window > 1: title += f', {n_window}-lowpass' ax.set_title(title) #savefig if 'savefig' in sys.argv or 's' in sys.argv: figname = __file__.replace('.py', f'__TS{minWindmax}_{basin}.png') if n_window > 1: figname = figname.replace('.png', f'_{n_window}lp.png') if 'overwritefig' in sys.argv or 'o' in sys.argv: wysavefig(figname, overwritefig=True) else: wysavefig(figname) tt.check(f'**Done**') print() if 'notshowfig' in sys.argv or 'n' in sys.argv: pass else: if 'plt' in globals(): plt.show()