#!/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_ens # 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' #dsname = 'atmos_daily' daname = 'soil_liq' dsname = 'land_month' #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 = 'NHE_surface' #NH extratropics, surface soil moisture func = lambda da: da.sel(grid_yt=slice(23.5,None)).isel(zfull_soil=0).load() #model and experiment model = 'FLOR' 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) else: 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) #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) #extended years for AM2.5C360 if model in ('AM2.5C360',): for year_extend in (2020,2021): years = range(year_extend, year_extend+1) expname = f'amipHadISSTlong_chancorr_tigercpu_intelmpi_18_1080PE_extend{year_extend}' da = get_modelout_data_ens(daname=daname, model=model, expname=expname, ens=ens, years=years, func=func, funcname=funcname, dsname=dsname, loop_files=True) 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()