#!/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 # if __name__ == '__main__': tt.check('end import') # #start from here daname = 't_surf' norm_by_glbmean = False #True ifile = """ t_surf_FLOR_co2x4_CTL1860_tigercpu_intelmpi_18_576PE_0101-0250_zonalmean.nc t_surf_FLOR_co2xp5_CTL1860_tigercpu_intelmpi_18_576PE_0101-0600_zonalmean.nc t_surf_FLOR_co2xp25_CTL1860_tigercpu_intelmpi_18_576PE_0101-0250_zonalmean.nc t_surf_FLOR_p2p0sol_CTL1860_tigercpu_intelmpi_18_576PE_0101-0400_zonalmean.nc t_surf_FLOR_p6p0sol_CTL1860_tigercpu_intelmpi_18_576PE_0101-0600_zonalmean.nc t_surf_FLOR_m2p0sol_CTL1860_tigercpu_intelmpi_18_576PE_0101-0400_zonalmean.nc t_surf_FLOR_m6p0sol_CTL1860_tigercpu_intelmpi_18_576PE_0101-0597_zonalmean.nc t_surf_FLOR_co2x2_CTL1860_tigercpu_intelmpi_18_576PE_0101-0600_zonalmean.nc """.split()[-1] ifile_ctl = 't_surf_FLOR_CTL1860_newdiag_tigercpu_intelmpi_18_576PE_0101-0200_zonalmean.nc' ifile = ifile.replace('t_surf', daname) ifile_ctl = ifile_ctl.replace('t_surf', daname) da = xr.open_dataarray(ifile).load().groupby('time.year').mean('time') da_ctl = xr.open_dataarray(ifile_ctl).load().groupby('time.year').mean('time') daa = da - da_ctl.mean('year') if norm_by_glbmean: wgt = np.cos(daa.lat/180*np.pi) daa_glbmean = daa.weighted(wgt).mean('lat') daa = daa/daa_glbmean if __name__ == '__main__': from wyconfig import * #my plot settings fig,ax = plt.subplots() da_ = daa.rolling(year=5, center=True, min_periods=1).mean() da_.plot(y='lat', cmap='turbo', levels=21, vmin=0) #da_.plot(y='lat', cmap='magma', levels=21, vmin=0) ax.set_xlim(None, 250) ax.set_title(ifile.split('_0101')[0]) #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 or 'n' in sys.argv: pass else: if 'plt' in globals(): plt.show()