#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Sat Feb 17 23:58:51 EST 2024 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 # if __name__ == '__main__': tt.check('end import') # #start from here #obs ifile = '/tigress/wenchang/data/vecchi2021data/humh_adjusted.nc' da_obs = xr.open_dataset(ifile)['HU'] #noWarming ifile = '/tigress/wenchang/analysis/TC/AM2.5C360/amipHadISSTlong_chancorr_rmWarming_tigercpu_intelmpi_18_1080PE/netcdf/tc_counts.HU33life48h.NA.3ens.1871-2020.yearly.nc' da_noWarming = xr.open_dataarray(ifile) #rcp45 ifile = '/tigress/wenchang/analysis/TC/AM2.5C360/amipHadISSTrcp45_tigercpu_intelmpi_18_1080PE/netcdf/tc_counts.HU33life48h.NA.3ens.1871-2100.yearly.nc' da_rcp45 = xr.open_dataarray(ifile) if __name__ == '__main__': from wyconfig import * #my plot settings lp = lambda da: da.rolling(year=15, center=True).mean() fig, ax = plt.subplots() da_obs.pipe(lp).quantile(0.975, dim='sample').plot(color='k', lw=1) da_obs.pipe(lp).quantile(0.025, dim='sample').plot(color='k', lw=1) da_obs.pipe(lp).mean('sample').plot(color='k', label='obs') da_noWarming.pipe(lp).plot(hue='en', color='C0', alpha=0.3, lw=1, add_legend=False) da_noWarming.mean('en').pipe(lp).plot(color='C0', label='AM2.5C360 noWarming') da_rcp45.pipe(lp).plot(hue='en', color='C1', alpha=0.3, lw=1, add_legend=False) da_rcp45.mean('en').pipe(lp).plot(color='C1', label='AM2.5C360 historical+RCP45') ax.legend() ax.set_ylabel('HU#') #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) tt.check(f'**Done**') print() if 'notshowfig' in sys.argv or 'n' in sys.argv: pass else: if 'plt' in globals(): plt.show()