#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Fri Feb 17 10:30:04 EST 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 from misc import get_kws_from_argv # if __name__ == '__main__': tt.check('end import') # #start from here #location: Nepal Lalitpur latitude longitude locname, lat0, lon0 = 'Lalitpur', 27.6588, 85.3247 daname = 'precip' years = range(1981, 2022+1) method = 'selnearest' #alternative is interp method = get_kws_from_argv('method', method) ofile = f'chirps.{daname}.daily.{method}{locname}.{years[0]}-{years[-1]}.nc' if os.path.exists(ofile): print('[exists]:', ofile) xr.open_dataarray(ofile).plot() sys.exit() das = [] for year in years: print(f'{year} of {years[-1]}') #example: ifile = /tigress/wenchang/data/chirps/daily/p25/chirps-v2.0.2022.days_p25.nc ifile = f'/tigress/wenchang/data/chirps/daily/p25/chirps-v2.0.{year}.days_p25.nc' print(ifile) da = xr.open_dataarray(ifile) units = da.attrs['units'] if method == 'selnearest': da = da.sel(latitude=lat0, longitude=lon0, method='nearest') elif method == 'interp': da = da.interp(latitude=lat0, longitude=lon0) da.load() das.append(da) print('concat...') da = xr.concat(das, dim='time') #units da.attrs['units'] = units #save da.to_dataset(name=daname).to_netcdf(ofile) print('[saved]:', ofile) if __name__ == '__main__': from wyconfig import * #my plot settings da.plot() #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()