#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Tue Mar 28 19:47:00 EDT 2023 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 from misc.landmask import whereocean # if __name__ == '__main__': tt.check('end import') # #start from here daname = 'precip' norm_by_glbmean = [False, True][0] tspan = slice('0101', '0150') ifile = """ t_surf_AM2.5_CTL1860_florSST_plus2Kextr_tigercpu_intelmpi_18_540PE_0101-0150_annualmean.nc t_surf_AM2.5_CTL1860_florSST_plus2K_tigercpu_intelmpi_18_540PE_0101-0150_annualmean.nc t_surf_AM2.5_CTL1860_florSST_plus2Ktrop_tigercpu_intelmpi_18_540PE_0101-0150_annualmean.nc """.split()[-1] ifile_ctl = 't_surf_AM2.5_CTL1860_florSST_tigercpu_intelmpi_18_540PE_0101-0200_annualmean.nc' ifile = ifile.replace('t_surf', daname) ifile_ctl = ifile_ctl.replace('t_surf', daname) da = xr.open_dataarray(ifile).load().sel(time=tspan).mean('time', keep_attrs=True) units = da.attrs['units'] da_ctl = xr.open_dataarray(ifile_ctl).load().mean('time') daa = da - da_ctl if norm_by_glbmean: wgt = np.cos(daa.lat/180*np.pi) daa_glbmean = daa.weighted(wgt).mean(['lat', 'lon']) daa = daa/daa_glbmean units = 'glbmean' if __name__ == '__main__': from wyconfig import * #my plot settings from geoplots import mapplot fig,ax = plt.subplots() da_ = daa.assign_attrs(units=units) #da_.plot(cmap='turbo', levels=41, vmin=-2, vmax=2, extend='both') da_.plot.contourf(cmap='BrBG', levels=21, vmin=-4, vmax=4, extend='both') """ #ctl climatology da_ = da_ctl.pipe(whereocean) - 273.15 cs = da_.plot.contour(levels=[27.5,], colors='lightgray', linewidths=1, linestyles='--') ax.clabel(cs, cs.levels) """ mapplot() #ax.set_xlim(None, 250) title = ifile.split('_tigercpu')[0] + f'_{tspan.start}-{tspan.stop}' if norm_by_glbmean: title += '_norm' ax.set_title(title) #savefig if 'savefig' in sys.argv or 's' in sys.argv: figname = __file__.replace('.py', f'__{title}.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()