#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Wed Dec 14 09:50:06 EST 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 import geoxarray from misc.seasons import sel_season # if __name__ == '__main__': tt.check('end import') # #start from here ndays = 4 season = 'JJAS' daname = f'rx{ndays}day{season}' units = 'mm' long_name = f'{season} Rx{ndays}day precip' ifile = glob.glob('precip_*_atmos_daily.landfldmean.20_28.5_36_42.5.nc')[0] print(f'{ifile = }') ofile = 'index.' + ifile.replace('atmos_daily.landfldmean.20_28.5_36_42.5.nc', f'{daname}.nc') print(f'{ofile = }') if os.path.exists(ofile): print('[exists]:', ofile) da = xr.open_dataarray(ofile) else: #make index print('loading...') da = xr.open_dataarray(ifile).load() #daname = da.name print('making index...') #rx2day da = da.rolling(time=ndays).sum().pipe(sel_season, season).groupby('time.year').max('time') \ .assign_attrs(units=units, long_name=long_name) #print(da); sys.exit() #save print('saving...') da.to_dataset(name=daname).to_netcdf(ofile) print('[saved]:', ofile) if __name__ == '__main__': from wyconfig import * #my plot settings for ii in da.ens.values: da.sel(ens=ii).plot(lw=1, color='C0', alpha=0.1) da.mean('ens', keep_attrs=True).plot(color='C0', ls='-') #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: pass else: plt.show()