From 729b14b01cb4794c1704ece41b44f355b6484354 Mon Sep 17 00:00:00 2001 From: John Albers Date: Wed, 9 Nov 2022 16:08:45 -0700 Subject: [PATCH] save netCDF files for official CPC forecast period --- README.md | 2 -- run_code/lib/._driver.py | Bin 4096 -> 4096 bytes run_code/lib/driver.py | 10 +++++++--- run_code/run_for_realtime.py | 20 +++++++++++++------- 4 files changed, 20 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 953efde..4eb0391 100644 --- a/README.md +++ b/README.md @@ -8,5 +8,3 @@ Getting started: 3) Set the directory to copy the .png and .html files to on line 80 in run_for_realtime.py. The default is to put final images in the directory lim_s2s created above. 4) Run the realtime forecast with: python3 run_for_realtime.py 5) To rerun dates that already have output in Images/yyyymmdd delete the yyyymmdd directory before running again. Otherwise the output will not be overwritten. - -test edit 11.9.2022 diff --git a/run_code/lib/._driver.py b/run_code/lib/._driver.py index bbbd017b682d3eda0afb87e115e309a56d736414..29a3f3aa4943909744909931ee8a68f87998d9d1 100644 GIT binary patch delta 31 lcmZorXi%82fG0*QCz$~VGPXb9+qlt~Z{h*g%}@Ab7y+Z^3Wfjx delta 31 mcmZorXi%82fQPT&CYb>Uj?a3kv2mj@-^2r~o1gH>FaiLnDhlEN diff --git a/run_code/lib/driver.py b/run_code/lib/driver.py index a6ae089..170c28f 100644 --- a/run_code/lib/driver.py +++ b/run_code/lib/driver.py @@ -851,7 +851,7 @@ def run_forecast_blend(self,limkey=None,t_init=None,lead_times=np.arange(1,29),f save_ncds(vardict,coords,filename=os.path.join(save_netcdf_path,f'{varname}.{init_times[-1]:%Y%m%d}.nc')) - def save_netcdf_files(self,varname='T2m',t_init=None,lead_times=None,save_to_path=None,add_offset=None,average=False): + def save_netcdf_files(self,varname='T2m',t_init=None,lead_times=None,save_to_path=None,add_offset=None,average=False,append_name=None): lead_times = listify(lead_times) ilt = np.array([self.lead_times.index(l) for l in lead_times]) @@ -919,8 +919,12 @@ def save_netcdf_files(self,varname='T2m',t_init=None,lead_times=None,save_to_pat 'attrs':{'units':'percent probability above normal'}} } - save_ncds(vardict,coords,filename=os.path.join(save_to_path,f'{varname}.{t_init:%Y%m%d}.nc')) - + if append_name is not None: + varOut_name = varname+append_name + save_ncds(vardict,coords,filename=os.path.join(save_to_path,f'{varOut_name}.{t_init:%Y%m%d}.nc')) + del varOut_name + else: + save_ncds(vardict,coords,filename=os.path.join(save_to_path,f'{varname}.{t_init:%Y%m%d}.nc')) def plot_map(self,varname='T2m',t_init=None,lead_times=None,gridded=False,fullVariance=False,add_offset=None,\ categories='mean',save_to_path=None,nameconv='',prop={}): diff --git a/run_code/run_for_realtime.py b/run_code/run_for_realtime.py index c2fd684..b8a9a8d 100644 --- a/run_code/run_for_realtime.py +++ b/run_code/run_for_realtime.py @@ -116,7 +116,7 @@ lontmp = dstmp['longitude'] for dstmp in dss: dstmp.coords['longitude'] = lontmp - print(dss) + print(dss) ds = xr.concat(dss,dim='time').sortby('time') ds.to_netcdf(f'{dataGetter.savetopath}/{varname}All_TMP.nc') @@ -159,12 +159,12 @@ try: print(f'DOING FORECAST FOR {T_INIT:%Y%m%d}') LIMdriver.run_forecast_blend(t_init=T_INIT,lead_times=np.arange(0,29+dayoffset),fullVariance=fullVariance,\ - save_netcdf_path=None) + save_netcdf_path=None) except: print(f'NO BLEND FORECAST FOR {T_INIT:%Y%m%d}') continue - + mapLTs = set([(i,) for i in range(0,29,1)]+[(21,28)]+[(21+dayoffset,),(28+dayoffset,),(21+dayoffset,28+dayoffset)]) def make_maps(LT): @@ -208,11 +208,19 @@ def make_loops(varname): LIMdriver.plot_teleconnection(T_INIT=T_INIT,gridded=True,daysback=60,prop={'dpi':DPI},save_to_path = FCSTDIR) try: - print(f'SAVING FORECAST FOR {T_INIT:%Y%m%d}') - LIMdriver.save_netcdf_files(varname='T2m',t_init=T_INIT,lead_times=(0,14,21,28),save_to_path=FCSTDIR,add_offset='data_clim/CPC.1991-2020.nc') + print(f'SAVING FORECAST FOR {T_INIT:%Y%m%d}') + LIMdriver.save_netcdf_files(varname='T2m',t_init=T_INIT,lead_times=(0,14,21,28),save_to_path=FCSTDIR,add_offset='data_clim/CPC.1991-2020.nc') LIMdriver.save_netcdf_files(varname='SLP',t_init=T_INIT,lead_times=(0,14,21,28),save_to_path=FCSTDIR,add_offset='data_clim/SLP.JRA.1991-2020.nc') LIMdriver.save_netcdf_files(varname='H500',t_init=T_INIT,lead_times=(0,14,21,28),save_to_path=FCSTDIR,add_offset='data_clim/H500.JRA.1991-2020.nc') LIMdriver.save_netcdf_files(varname='colIrr',t_init=T_INIT,lead_times=(0,14,21,28),save_to_path=FCSTDIR,add_offset='data_clim/colIrr.JRA.1991-2020.nc') + + print(f'SAVING CPC PERIOD FORECAST FOR {T_INIT:%Y%m%d}') + var_name_append = '_Week_34_official_CPC_period' + LIMdriver.save_netcdf_files(varname='T2m',t_init=T_INIT,lead_times=(21+dayoffset,28+dayoffset),save_to_path=FCSTDIR,add_offset='data_clim/CPC.1991-2020.nc',append_name=var_name_append) + LIMdriver.save_netcdf_files(varname='SLP',t_init=T_INIT,lead_times=(21+dayoffset,28+dayoffset),save_to_path=FCSTDIR,add_offset='data_clim/SLP.JRA.1991-2020.nc',append_name=var_name_append) + LIMdriver.save_netcdf_files(varname='H500',t_init=T_INIT,lead_times=(21+dayoffset,28+dayoffset),save_to_path=FCSTDIR,add_offset='data_clim/H500.JRA.1991-2020.nc',append_name=var_name_append) + LIMdriver.save_netcdf_files(varname='colIrr',t_init=T_INIT,lead_times=(21+dayoffset,28+dayoffset),save_to_path=FCSTDIR,add_offset='data_clim/colIrr.JRA.1991-2020.nc',append_name=var_name_append) + except: print(f'NO FORECAST TO SAVE FOR {T_INIT:%Y%m%d}') continue @@ -360,5 +368,3 @@ def make_loops(varname): # # with mp.Pool(mp.cpu_count()) as pool: # # pool.map(publish_files,webfiles) - -