#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Mon Sep 19 13:41:47 EDT 2022 if __name__ == '__main__': import sys from misc.timer import Timer tt = Timer('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 from misc.seasons import sel_season import geoxarray from misc.landmask import whereland import xfilter from misc import get_kws_from_argv # if __name__ == '__main__': tt.check('end import') # #start from here model = 'AM2.1p1' model = get_kws_from_argv('model', model) season = 'JJA' lmr_version = '2019' if '2018' in sys.argv: lmr_version = '2018' lpwindow = 5 lowpass = lambda x: x.filter.lowpass(1/lpwindow, dim='year', padtype='even') def do_season_mean(da, season, region='NC'): if region == 'NC': lons = slice(100,120) lats = slice(30,40) elif region == 'NE': lons = slice(120,140) lats = slice(40,50) print(region, lons, lats) print() da = da.sel(lon=lons,lat=lats).pipe(whereland) #da.isel(time=0, ens=0).plot(); plt.show() #test da = da.geo.fldmean() \ .pipe(sel_season, season=season).groupby('time.year').mean('time') return da ifile = f'precip_{model}_LMR{lmr_version}SST1551_ens_tigercpu_intelmpi_18_30PE_5ens_1551-1650_monthly.nc' if model == 'AM2.5': ifile = ifile.replace('30PE', '540PE').replace('5ens', '3ens') da = xr.open_dataarray(ifile).load() da_nc = do_season_mean(da, season, region='NC') print(da_nc) da_ne = do_season_mean(da, season, region='NE') print(da_ne) title = f'{model} {season} precip {lpwindow}-year-LP LMR{lmr_version}SST' tag = '_' + '_'.join(title.split()).replace('.', 'p') def wyplot(da, **kws): da = da - da.mean('year') da = da.pipe(lowpass) color = kws.pop('color', 'gray') da.plot(hue='ens', add_legend=False, lw=1, color=color, alpha=0.2) da.mean('ens').plot(color=color, **kws) #plt.axhline(da.mean('ens').mean('year'), color='gray', ls='--') if __name__ == '__main__': from wyconfig import * #my plot settings #da.plot(hue='ens', add_legend=False, lw=1, color='gray', alpha=0.2) #da.mean('ens').plot(color='C0') #plt.axhline(da.mean('ens').mean('year'), color='gray', ls='--') wyplot(da_nc, color='C0', label='north-central') wyplot(da_ne, color='C1', label='northeast') plt.legend() plt.title(title) #savefig if 'savefig' in sys.argv or 's' in sys.argv: figname = __file__.replace('.py', f'{tag}.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: pass else: plt.show()