#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Wed Oct 5 11:09:59 EDT 2022 if __name__ == '__main__': import sys from misc.timer import Timer tt = Timer('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 from modelout import get_modelout_data, update_modelout_data import xfilter #nwindow, dimlp = 1, 'year' nwindow, dimlp = 9, 'year' #lowpass = lambda x: x.filter.lowpass(1/nwindow, dim=dimlp, padtype='odd') lowpass = lambda x: x.rolling(year=nwindow, center=True, min_periods=1).mean() if x.year.size>nwindow else x import geoxarray # if __name__ == '__main__': tt.check('end import') # #start from here daname = 't_surf' func = lambda x: x.load().geo.fldmean() funcname = 'glbmean' cleanup = False #remove cache or not das = [] labels = [] model = 'FLOR' #ctl1990_v201905 label = 'FLOR_ctl_1990_v201905' expname = 'CTL1990_v201905_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1990_v201905_FA label = 'FLOR_ctl_1990_v201905_FA' expname = 'CTL1990_v201905_FA_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1990_v201905_FA05 label = 'FLOR_ctl_1990_v201905_FA05' expname = 'CTL1990_v201905_FA05_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1990_v201905_FA05trop label = 'FLOR_ctl_1990_v201905_FA05trop' expname = 'CTL1990_v201905_FA05trop_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1990_v201905_FAtrop label = 'FLOR_ctl_1990_v201905_FAtrop' expname = 'CTL1990_v201905_FAtrop_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #wy2024-07-20 #ctl1990_v201905_aerosol1970 label = 'FLOR_ctl_1990_v201905_aerosol1970' expname = 'CTL1990_v201905_aerosol1970_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1990_v201905_FA_aerosol1970 label = 'FLOR_ctl_1990_v201905_FA_aerosol1970' expname = 'CTL1990_v201905_FA_aerosol1970_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #wy2024-07-22 #ctl1860_newdiag label = 'FLOR_ctl_1860_newdiag' expname = 'CTL1860_newdiag_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1860_v202407 label = 'FLOR_ctl_1860_v202407' expname = 'CTL1860_v202407_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1860_v202407_FA label = 'FLOR_ctl_1860_v202407_FA' expname = 'CTL1860_v202407_FA_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1860_v202407_FAtrop label = 'FLOR_ctl_1860_v202407_FAtrop' expname = 'CTL1860_v202407_FAtrop_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #wy2024-07-25 #ctl1990_v201905_FA_aerosol2010 label = 'FLOR_ctl_1990_v201905_FA_aerosol2010' expname = 'CTL1990_v201905_FA_aerosol2010_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1990_v201905_aerosol2010 label = 'FLOR_ctl_1990_v201905_aerosol2010' expname = 'CTL1990_v201905_aerosol2010_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) """ #wy2024-08-06, shenzhen #ctl1860_v202407_2xCO2 label = 'FLOR_ctl_1860_v202407_2xCO2' expname = 'CTL1860_v202407_2xCO2_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1860_v202407_1pct2xCO2 label = 'FLOR_ctl_1860_v202407_1pct2xCO2' expname = 'CTL1860_v202407_1pct2xCO2_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1860_v202407_FA_2xCO2 label = 'FLOR_ctl_1860_v202407_FA_2xCO2' expname = 'CTL1860_v202407_FA_2xCO2_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1860_v202407_FA_1pct2xCO2 label = 'FLOR_ctl_1860_v202407_FA_1pct2xCO2' expname = 'CTL1860_v202407_FA_1pct2xCO2_tigercpu_intelmpi_18_576PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) """ #wy2024-10-22 model = 'CM2.1p1' #ctl1860_v202410 label = 'CM2.1_ctl_1860_v202410' expname = 'CTL1860_v202410_tigercpu_intelmpi_18_80PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1860_v202410_FAtrop label = 'CM2.1_ctl_1860_v202410_FAtrop' expname = 'CTL1860_v202410_FAtrop_tigercpu_intelmpi_18_80PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1860_v202410_FAtropV2 label = 'CM2.1_ctl_1860_v202410_FAtropV2' expname = 'CTL1860_v202410_FAtropV2_tigercpu_intelmpi_18_80PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) #ctl1860_v202410_FAtropPlus label = 'CM2.1_ctl_1860_v202410_FAtropPlus' expname = 'CTL1860_v202410_FAtropPlus_tigercpu_intelmpi_18_80PE' da = update_modelout_data(daname=daname, model=model, expname=expname, func=func, funcname=funcname)#, years=range(100,201)) labels.append(label) das.append(da) def wyplot(da, label,**kws): da = da.groupby('time.year').mean('time') da = da - 273.15 #K -> degC da = da.pipe(lowpass) da = da.sel(year=slice(1901,2700)) da.plot(label=label, **kws) if __name__ == '__main__': from wyconfig import * #my plot settings #ctl fig,ax = plt.subplots(figsize=(8,4.5)) for da,label in zip(das, labels): wyplot(da, label, ax=ax) ax.legend(ncol=1) ax.set_ylabel(f'GMST [degC], {nwindow}-{dimlp}-RunAvg') ax.set_xlim(1900, 3300) #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: pass else: plt.show()