#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Sat May 7 11:36:44 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.modelout import get_modelout_data from misc import get_kws_from_argv #from misc import roll_lon # if __name__ == '__main__': tt.check('end import') # #start from here #daname = 't_ref_max' #if 't_ref' in sys.argv: # daname = 't_ref' #default is t_ref_max daname = 'precip' daname = get_kws_from_argv('daname', daname) #dsname = 'atmos_daily' dsname = 'atmos_month' dsname = get_kws_from_argv('dsname', dsname) #specific event definition #funcname = 'Pernambuco' #5S-10S, 34.5-36W #func = lambda x: x.sel(grid_xt=slice(360-36, 360-34.5), grid_yt=slice(-10, -5)).load() #funcname = 'UK' #51.25-54N, 3.5W-0.5E #func = lambda x: xr.concat([x.sel(grid_xt=slice(360-3.5, None), grid_yt=slice(51.25, 54)).load(), # x.sel(grid_xt=slice(None,0.5), grid_yt=slice(51.25, 54)).load()], dim='grid_lon') #func = lambda x: x.isel(grid_xt=(x.grid_xt>=(360-3.5))|(x.grid_xt<=0.5)).sel(grid_yt=slice(51.25, 54)).load() #func = lambda x: x.sel(grid_yt=slice(20,40), grid_xt=slice(60,90)).load() #funcname = 'WAfrica' #West Africa #func = lambda da: da.sel(grid_yt=slice(14,16)).load().rename(grid_xt='lon', grid_yt='lat').pipe(roll_lon).sel(lon=slice(-3,24)) #funcname = 'CSA' # #func = lambda x: x.sel(grid_xt=slice(360-75, 360-40), grid_yt=slice(-45, -10)).load() #funcname = 'NewZealand' # #func = lambda x: x.sel(grid_xt=slice(170, 180), grid_yt=slice(-43, -32)).load() region = 'largeRegion' latslice = slice(5,35) lonslice = slice(105,135) funcname = f'{region}' func = lambda x: x.sel(grid_xt=lonslice, grid_yt=latslice).load() #model and experiment model = os.path.basename(os.getcwd()) # 'AM2.5C360' model = get_kws_from_argv('model', model) """ if 'AM2.5C360' in sys.argv: model = 'AM2.5C360' """ if model == 'FLOR': expname = 'HistRCP45_tigercpu_intelmpi_18_576PE' ens = range(1,10+1) #years = range(1860,2100+1) years = range(1991,2020+1) elif model == 'AM2.5C360': #expname = 'amipHadISSTlong_chancorr_tigercpu_intelmpi_18_1080PE' #ens = range(1,11)# range(1,6) #years = range(1871, 2019+1)# range(1981,2011)# range(1860,2101) expname = 'amipHadISSTrcp45_tigercpu_intelmpi_18_1080PE' ens = range(6,8+1)# range(1,6) #years = range(1871, 2100+1)# range(1981,2011)# range(1860,2101) years = range(1991,2020+1) else: print('please select a right model: either FLOR or AM2.5C60') sys.exit() #overwrite the default ens if en=* appears in the input argument aa = [s for s in sys.argv if s.startswith('en=')] if aa: ii = int( aa[-1].split('=')[-1] ) ens = range(ii,ii+1) #get data #da = get_modelout_data_ens(daname=daname, model=model, expname=expname, ens=ens, years=years, func=func, funcname=funcname, # dsname=dsname, loop_files=True) da = get_modelout_data(daname=daname, model=model, expname=expname, ens=ens, years=years, func=func, funcname=funcname, dsname=dsname) if __name__ == '__main__': #from wyconfig import * #my plot settings #savefig if len(sys.argv)>1 and 'savefig' in sys.argv[1:]: figname = __file__.replace('.py', f'.png') if 'overwritefig' in sys.argv[1:]: wysavefig(figname, overwritefig=True) else: wysavefig(figname) tt.check(f'**Done**') print() #plt.show()