#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Fri Jul 5 11:29:41 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 import geoxarray # if __name__ == '__main__': try: tt.check('end import') except: pass # #start from here get_nino34 = lambda x: x.rename(grid_xt='lon', grid_yt='lat').sel(lon=slice(360-170, 360-120), lat=slice(-5,5)).geo.fldmean() - 273.15 #ctl1990 print('CTL1990_v201905...') years = range(1901,2000+1) ifiles = [f'/tigress/wenchang/MODEL_OUT/CTL1990_v201905_tigercpu_intelmpi_18_576PE/POSTP/{year:04}0101.atmos_month.nc' for year in years] da = xr.open_mfdataset(ifiles)['t_surf'] da_raw = da.pipe(get_nino34) #ctl1990 FA print('CTL1990_v201905_FA...') ifiles = '/home/wenchang/scratch/FLOR/work/CTL1990_v201905_FA_tigercpu_intelmpi_18_576PE/POSTP/*0101.atmos_month.nc' da = xr.open_mfdataset(ifiles)['t_surf'] da_fa = da.pipe(get_nino34) time_start = da_fa.time[0].item() time_stop = da_fa.time[-1].item() """ print(time_start) print('to') print(time_stop) """ #ctl1990 FA05 print('CTL1990_v201905_FA05...') ifiles = '/home/wenchang/scratch/FLOR/work/CTL1990_v201905_FA05_tigercpu_intelmpi_18_576PE/POSTP/*0101.atmos_month.nc' da = xr.open_mfdataset(ifiles)['t_surf'] da_fa05 = da.pipe(get_nino34) #time_start = da_fa.time[0].item() time_stop_fa05 = da_fa05.time[-1].item() if __name__ == '__main__': from wyconfig import * #my plot settings fig,ax = plt.subplots(figsize=(8,3)) da_raw.plot(ax=ax, label='CTL1990_v201905') da_fa.plot(ax=ax, label='CTL1990_v201905_FA') da_fa05.plot(ax=ax, label='CTL1990_v201905_FA05') ax.set_xlim(time_start, time_stop) ax.legend() ax.set_ylabel('Nino3.4 [degC]') ax.set_title(f'FA: {time_start.year}-{time_stop.year}; FA05: {time_start.year}-{time_stop_fa05.year}') #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) 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()