#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Sun Apr 7 23:06:56 EDT 2024 # calculate vapor pressure (vp) from q and ps: https://www.pnas.org/doi/10.1073/pnas.2302480120 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 ofile = 'era5.2m_vapor_pressure.1980-2020.westUS.nc' if os.path.exists(ofile): print('[exists]:', ofile) sys.exit() #q ifile = 'era5.2m_specific_humidity.1980-2020.westUS.nc' q = xr.open_dataarray(ifile) #ps ifile = 'era5.surface_pressure.1980-2020.westUS.nc' ps = xr.open_dataarray(ifile) #units Pa #vp vp = (q*ps)/(0.622+0.378*q)/100 #units = hPa vp = vp.assign_attrs(units='hPa', long_name='vapor pressure') #save vp.to_dataset(name='vp').to_netcdf(ofile) print('[saved]:', ofile) if __name__ == '__main__': #from wyconfig import * #my plot settings #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()