#!/usr/bin/env python # Wenchang Yang (wenchang@princeton.edu) # Wed Jun 26 15:58:42 EDT 2024 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 #daname = get_kws_from_argv('daname', 'lake_frac') daname = 'travel' for itile in range(1,6+1): ofile = f'river_data.tile{itile}.nc' if os.path.exists(ofile) and 'od' not in sys.argv: print('[exists]:', ofile) continue #FLOR ifile = f'/tigress/wenchang/CM2.5_tiger2_wy/CM2.5/input_wy/input_for_FLOR/river_data.tile{itile}.nc' ds = xr.open_dataset(ifile) ds_flor = ds #HiRAM ifile = f'/tigress/wenchang/HIRAM/input/HIRAM.input_data/river_data.tile{itile}.nc' ds = xr.open_dataset(ifile) ds_hiram = ds #replace FLOR values with HiRAM values where both have valid values (non-NaN) da = ds_flor[daname].where((ds_flor[daname].isnull())|(ds_hiram[daname].isnull()), other=ds_hiram[daname]) ds = ds_flor ds[daname] = da #save encoding = {dname: {'_FillValue': None, 'missing_value': -9999.0} for dname in list(ds.data_vars)} encoding['grid_x'] = {'_FillValue': None} encoding['grid_y'] = {'_FillValue': None} ds.to_netcdf(ofile, encoding=encoding) print('[saved]:', ofile) if __name__ == '__main__': from wyconfig import * #my plot settings fig,axes = plt.subplots(1, 3, figsize=(11,3)) ax = axes[0] ds_hiram = xr.open_dataset('/tigress/wenchang/HIRAM/input/HIRAM.input_data/river_data.tile1.nc') ds_hiram[daname].plot(ax=ax) ax.set_title(f'HiRAM tile{itile}') ax = axes[1] ds_flor = xr.open_dataset('/tigress/wenchang/CM2.5_tiger2_wy/CM2.5/input_wy/input_for_FLOR/river_data.tile1.nc') ds_flor[daname].plot(ax=ax) ax.set_title(f'FLOR tile{itile}') ax = axes[2] ds = xr.open_dataset('river_data.tile1.nc') (ds[daname] - ds_hiram[daname]).plot(ax=ax) ax.set_title(f'FLOR_new $-$ HiRAM tile{itile}') for ax in axes: ax.set_xlabel('') ax.set_ylabel('') #savefig if 'savefig' in sys.argv or 's' in sys.argv: figname = __file__.replace('.py', f'__{daname}_tile{itile}.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()