#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Fri Jun 20 11:34:40 AM EDT 2025 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 year = 2024 ifiles_max = f'/projects/w/wenchang/data/era5/analysis_wy/2m_temperature_max/daily/era5.2m_temperature_max.daily.{year}-??.nc' ifiles_min = f'/projects/w/wenchang/data/era5/analysis_wy/2m_temperature_min/daily/era5.2m_temperature_min.daily.{year}-??.nc' latlons = dict( Chicago=(41.8781, 360-87.6298), Manaus=(-3.1190, 360-60.0217), ) #tmax print('tmax...') ds = xr.open_mfdataset(ifiles_max) daname = list(ds.data_vars)[0] print('load...') da = ds[daname].load() #chicago print('Chicago...') lat, lon = latlons['Chicago'] da_chicago_max = da.interp(latitude=lat, longitude=lon) #manaus print('Manaus...') lat, lon = latlons['Manaus'] da_manaus_max = da.interp(latitude=lat, longitude=lon) #tmin print('tmin...') ds = xr.open_mfdataset(ifiles_min) daname = list(ds.data_vars)[0] print('load...') da = ds[daname].load() #chicago print('Chicago...') lat, lon = latlons['Chicago'] da_chicago_min = da.interp(latitude=lat, longitude=lon) #manaus print('Manaus...') lat, lon = latlons['Manaus'] da_manaus_min = da.interp(latitude=lat, longitude=lon) def wyplot(ax=None, **kws): if ax is None: fig,ax = plt.subplots() func = lambda da: (da - 273.15).assign_attrs(units='degC') da_chicago_min.pipe(func).plot(label='Chicago Tmin', ax=ax) da_chicago_max.pipe(func).plot(label='Chicago Tmax', ax=ax) da_manaus_min.pipe(func).plot(label='Manaus Tmin', ax=ax) da_manaus_max.pipe(func).plot(label='Manaus Tmax', ax=ax) ax.legend() title = 'daily tasmax and tasmin of Chicago and Manaus' ax.set_title(title) ax.set_ylabel('degC') if __name__ == '__main__': from wyconfig import * #my plot settings wyplot() #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()