#!/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 = 't_surf' norm_by_glbmean = [False, True][-1] tspan = slice('0231', '0250') ifile = """ t_surf_FLOR_co2x2_CTL1860_tigercpu_intelmpi_18_576PE_0101-0600_annualmean.nc t_surf_FLOR_co2x4_CTL1860_tigercpu_intelmpi_18_576PE_0101-0250_annualmean.nc t_surf_FLOR_co2xp5_CTL1860_tigercpu_intelmpi_18_576PE_0101-0600_annualmean.nc t_surf_FLOR_co2xp25_CTL1860_tigercpu_intelmpi_18_576PE_0101-0250_annualmean.nc t_surf_FLOR_p2p0sol_CTL1860_tigercpu_intelmpi_18_576PE_0101-0400_annualmean.nc t_surf_FLOR_p6p0sol_CTL1860_tigercpu_intelmpi_18_576PE_0101-0785_annualmean.nc t_surf_FLOR_m2p0sol_CTL1860_tigercpu_intelmpi_18_576PE_0101-0400_annualmean.nc t_surf_FLOR_m6p0sol_CTL1860_tigercpu_intelmpi_18_576PE_0101-0597_annualmean.nc """.split()[-1] ifile_ctl = 't_surf_FLOR_CTL1860_newdiag_tigercpu_intelmpi_18_576PE_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_ = 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()