#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Wed Apr 17 15:34:24 EDT 2024 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 das = {} model = 'FLOR' # ifile = 'amoc_FLOR_CTL1860_newdiag_1-4-1xCO2_tigercpu_intelmpi_18_576PE_2001-2280.nc' expname = 'CTL1860_newdiag_1-4-1xCO2' da = xr.open_dataarray(ifile).load() das[expname] = da # """ ifile = 'amoc_FLOR_CTL1860_newdiag_tigercpu_intelmpi_18_576PE_1-3000.nc' expname = 'CTL1860_newdiag' da = xr.open_dataarray(ifile).load() das[expname] = da """ if __name__ == '__main__': from wyconfig import * #my plot settings fig,ax = plt.subplots() # depth/lat selection according to Curtis and Fedorov 2024: https://doi.org/10.1007/s00382-024-07185-3 z0 = 750 # m, below this depth lat0 = 30 #N, north of this lat expname = 'CTL1860_newdiag_1-4-1xCO2' da = das[expname] #raw da.groupby('time.year').mean('time', keep_attrs=True) \ .max(['depth', 'lat'], keep_attrs=True).plot(label='raw') #30N north only da.groupby('time.year').mean('time', keep_attrs=True) \ .sel(lat=slice(lat0, None)) \ .max(['depth', 'lat'], keep_attrs=True).plot(label=f'{lat0}N north') #750m below only da.groupby('time.year').mean('time', keep_attrs=True) \ .sel(depth=slice(z0, None)) \ .max(['depth', 'lat'], keep_attrs=True).plot(label=f'{z0}m below') #both da.groupby('time.year').mean('time', keep_attrs=True) \ .sel(depth=slice(z0, None), lat=slice(lat0, None)) \ .max(['depth', 'lat'], keep_attrs=True).plot(label=f'{z0}m below, {lat0}N north', ls='--') #20N north only lat0 = 20 da.groupby('time.year').mean('time', keep_attrs=True) \ .sel(lat=slice(lat0, None)) \ .max(['depth', 'lat'], keep_attrs=True).plot(label=f'{lat0}N north', ls=':') #0N north only lat0 = 0 da.groupby('time.year').mean('time', keep_attrs=True) \ .sel(lat=slice(lat0, None)) \ .max(['depth', 'lat'], keep_attrs=True).plot(label=f'{lat0}N north', ls='-') ax.set_title(f'AMOC from {model} {expname}') ax.legend() #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()