#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Thu Jul 13 10:53:54 EDT 2023 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 from misc.landmask import whereland # if __name__ == '__main__': tt.check('end import') # #start from here #ifile = '/tigress/wenchang/data/LMR/v2.1/prate_MCruns_ensemble_mean_LMRv2.1.nc' #ifile = '/tigress/wenchang/data/LMR/v2.1/pdsi_MCruns_ensemble_mean_LMRv2.1.nc' ifile = '/tigress/wenchang/data/MADA/mada.nc' ds = xr.open_dataset(ifile) da = ds.pdsi #da = ds.pdsi.sel(time=slice('1551', '1650')).mean('MCrun') #da = da.groupby('time.year').mean('time') #daa = da - da.mean('year') #daa = (daa*24*3600).assign_attrs(units='mm/day') daa = da def plot_lonlatbox(region='North China', ax=None, **kws): if ax is None: fig, ax = plt.subplots() if region == 'North China': lonlatbox = 106, 120, 33, 40 elif region == 'Northeast China': lonlatbox = 122, 130, 40, 46 elif region == 'Mongolia': lonlatbox = 107, 122, 40, 47 lonmin, lonmax, latmin, latmax = lonlatbox ax.plot([lonmin, lonmax, lonmax, lonmin, lonmin], [latmin, latmin, latmax, latmax, latmin], ls='--', **kws) ax.text((lonmin+lonmax)/2, (latmin+latmax)/2, region, ha='center', va='center', color='gray') if __name__ == '__main__': from wyconfig import * #my plot settings from geoplots import mapplot fig,ax = plt.subplots() lonspan = slice(95, 140) latspan = slice(25, 50) #yearspan = slice(1625, 1644) #yearspan = slice(1615, 1644) #yearspan = slice(1635, 1644) yearspan = slice(1600, 1625) levels = 25 cmap = 'BrBG' daa.sel(year=yearspan).mean('year').sel(lon=lonspan, lat=latspan).pipe(whereland).plot(levels=levels, cmap=cmap, vmax=2.4, vmin=-2.4) mapplot() ax.set_prop_cycle(None) plot_lonlatbox('North China', ax=ax) plot_lonlatbox('Northeast China', ax=ax) plot_lonlatbox('Mongolia', ax=ax) ax.set_title(f'MADA pdsi over {yearspan.start}-{yearspan.stop}') ax.set_xlabel('') ax.set_ylabel('') #savefig if 'savefig' in sys.argv or 's' in sys.argv: figname = __file__.replace('.py', f'__{yearspan.start}-{yearspan.stop}.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()