#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Mon Jul 1 14:00:12 EDT 2024 if __name__ == '__main__': import sys,os try: from misc.timer import Timer tt = Timer(f'[{os.getcwd()}] start ' + ' '.join(sys.argv)) except: pass 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__': try: tt.check('end import') except: pass # #start from here daname = get_kws_from_argv('daname', 't_surf') dsname = get_kws_from_argv('dsname', 'atmos_month') years = range(1901,2000+1) ifiles = [f'/tiger/scratch/gpfs/wenchang/FLOR/work/CTL1990_v201905_FA_tigercpu_intelmpi_18_576PE/POSTP/{yyyy}0101.{dsname}.nc' for yyyy in years] ds_fa = xr.open_mfdataset(ifiles) ifiles = [f'/tigress/wenchang/MODEL_OUT/CTL1990_v201905_tigercpu_intelmpi_18_576PE/POSTP/{yyyy}0101.{dsname}.nc' for yyyy in years] ds = xr.open_mfdataset(ifiles) if __name__ == '__main__': from wyconfig import * #my plot settings from geoplots import mapplot with xr.set_options(keep_attrs=True): da = ds[daname].mean('time') da_fa = ds_fa[daname].mean('time') #daa = ds_fa[daname].mean('time') - ds[daname].mean('time') daa = da_fa - da if daname == 'precip': da *= 24*3600 da.attrs['units'] = 'mm/day' da_fa *= 24*3600 da_fa.attrs['units'] = 'mm/day' daa *= 24*3600 daa.attrs['units'] = 'mm/day' cmap = 'YlGnBu' if daname == 'precip' else None fig,ax = plt.subplots() da.plot(robust=True, levels=21, cmap=cmap) if dsname == 'atmos_month': mapplot() ax.set_title('FLOR') fig,ax = plt.subplots() da_fa.plot(robust=True, levels=21, cmap=cmap) if dsname == 'atmos_month': mapplot() ax.set_title('FLOR_FA') cmap = 'BrBG' if daname == 'precip' else None fig,ax = plt.subplots() daa.plot(robust=True, levels=21, cmap=cmap) if dsname == 'atmos_month': mapplot() ax.set_title('FLOR_FA $-$ FLOR') #savefig if 'savefig' in sys.argv or 's' in sys.argv: figname = __file__.replace('.py', f'__{daname}.png') if dsname != 'atmos_month': figname = figname.replace('.png', f'_{dsname}.png') if 'overwritefig' in sys.argv or 'o' in sys.argv: wysavefig(figname, overwritefig=True) else: wysavefig(figname) try: tt.check(f'**Done**') except: pass print() if 'notshowfig' in sys.argv or 'n' in sys.argv: pass else: if 'plt' in globals(): plt.show()