#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Mon Sep 23 15:51:51 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 from misc.landmask import whereocean # if __name__ == '__main__': try: tt.check('end import') except: pass # #start from here model = 'CIESM' member = 'r1i1p1f1' ifile = '/tigress/wenchang/data/cmip6/variables/ts/historical_v202401/wy_regrid/ts.historical.CIESM.r1i1p1f1.1850-2014.nc' da = xr.open_dataarray(ifile) da.load() ifile = '/tigress/wenchang/data/cmip6/variables/ts/ssp245_v202401/wy_regrid/ts.ssp245.CIESM.r1i1p1f1.2015-2100.nc' da1 = xr.open_dataarray(ifile) da1.load() ifile ='/tigress/wenchang/data/cmip6/variables/ts/ssp585_v202401/wy_regrid/ts.ssp585.CIESM.r1i1p1f1.2015-2100.nc' da2 = xr.open_dataarray(ifile) da2.load() if __name__ == '__main__': from wyconfig import * #my plot settings #tropical mean sst da.groupby('time.year').mean('time').sel(lat=slice(-30,30)).pipe(whereocean).geo.fldmean().plot(label='historical') da1.groupby('time.year').mean('time').sel(lat=slice(-30,30)).pipe(whereocean).geo.fldmean().plot(label='ssp245') da2.groupby('time.year').mean('time').sel(lat=slice(-30,30)).pipe(whereocean).geo.fldmean().plot(label='ssp585') ax = plt.gca() ax.legend() ax.set_title(f'{model} {member} tropmean SST') ax.set_ylabel('K') #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()