Skip to content

Commit

Permalink
Enable UPP for GOES processing (NOAA-EMC#2203)
Browse files Browse the repository at this point in the history
Wnables the creation of special master grib2 files from UPP for
GOES processing
  • Loading branch information
aerorahul committed Jan 8, 2024
1 parent c15875b commit 4e160a8
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 6 deletions.
2 changes: 1 addition & 1 deletion parm/config/gfs/config.base.emc.dyn
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ export NOSCRUB="@NOSCRUB@"
export BASE_GIT="@BASE_GIT@"

# Toggle to turn on/off GFS downstream processing.
export DO_GOES="NO" # GOES products
export DO_GOES="@DO_GOES@" # GOES products
export DO_BUFRSND="NO" # BUFR sounding products
export DO_GEMPAK="NO" # GEMPAK products
export DO_AWIPS="NO" # AWIPS products
Expand Down
1 change: 1 addition & 0 deletions parm/config/gfs/yaml/defaults.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ base:
DO_JEDIOCNVAR: "NO"
DO_JEDILANDDA: "NO"
DO_MERGENSST: "NO"
DO_GOES: "NO"

atmanl:
IO_LAYOUT_X: 1
Expand Down
1 change: 1 addition & 0 deletions workflow/applications/applications.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ def __init__(self, conf: Configuration) -> None:
self.do_genesis_fsu = _base.get('DO_GENESIS_FSU', False)
self.do_metp = _base.get('DO_METP', False)
self.do_upp = not _base.get('WRITE_DOPOST', True)
self.do_goes = _base.get('DO_GOES', False)
self.do_mos = _base.get('DO_MOS', False)

self.do_hpssarch = _base.get('HPSSARCH', False)
Expand Down
3 changes: 3 additions & 0 deletions workflow/applications/gfs_cycled.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,9 @@ def get_task_names(self):
gfs_tasks += ['atmupp']
gfs_tasks += ['atmprod']

if self.do_goes:
gfs_tasks += ['goesupp']

if self.do_vminmon:
gfs_tasks += ['vminmon']

Expand Down
5 changes: 4 additions & 1 deletion workflow/applications/gfs_forecast_only.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ def _get_app_configs(self):

if self.do_atm:

if self.do_upp:
if self.do_upp or self.do_goes:
configs += ['upp']

configs += ['atmos_products']
Expand Down Expand Up @@ -102,6 +102,9 @@ def get_task_names(self):

tasks += ['atmprod']

if self.do_goes:
tasks += ['goesupp']

if self.do_tracker:
tasks += ['tracker']

Expand Down
16 changes: 13 additions & 3 deletions workflow/rocoto/gfs_tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -936,14 +936,24 @@ def _get_ufs_postproc_grps(cdump, config):
return grp, dep, lst

def atmupp(self):
return self._upptask(upp_run='forecast', task_id='atmupp')

def goesupp(self):
return self._upptask(upp_run='goes', task_id='goesupp')

def _upptask(self, upp_run="forecast", task_id="atmupp"):

VALID_UPP_RUN = ["forecast", "goes", "wafs"]
if upp_run not in VALID_UPP_RUN:
raise KeyError(f"{upp_run} is invalid; UPP_RUN options are: {('|').join(VALID_UPP_RUN)}")

varname1, varname2, varname3 = 'grp', 'dep', 'lst'
varval1, varval2, varval3 = self._get_ufs_postproc_grps(self.cdump, self._configs['upp'])
var_dict = {varname1: varval1, varname2: varval2, varname3: varval3}

postenvars = self.envars.copy()
postenvar_dict = {'FHRLST': '#lst#',
'UPP_RUN': 'forecast'}
'UPP_RUN': upp_run}
for key, value in postenvar_dict.items():
postenvars.append(rocoto.create_envar(name=key, value=str(value)))

Expand All @@ -962,7 +972,7 @@ def atmupp(self):
cycledef = 'gdas_half,gdas' if self.cdump in ['gdas'] else self.cdump
resources = self.get_resource('upp')

task_name = f'{self.cdump}atmupp#{varname1}#'
task_name = f'{self.cdump}{task_id}#{varname1}#'
task_dict = {'task_name': task_name,
'resources': resources,
'dependency': dependencies,
Expand All @@ -974,7 +984,7 @@ def atmupp(self):
'maxtries': '&MAXTRIES;'
}

metatask_dict = {'task_name': f'{self.cdump}atmupp',
metatask_dict = {'task_name': f'{self.cdump}{task_id}',
'task_dict': task_dict,
'var_dict': var_dict
}
Expand Down
2 changes: 1 addition & 1 deletion workflow/rocoto/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class Tasks:
'aeroanlinit', 'aeroanlrun', 'aeroanlfinal',
'preplandobs', 'landanl',
'fcst',
'atmanlupp', 'atmanlprod', 'atmupp', 'atmprod',
'atmanlupp', 'atmanlprod', 'atmupp', 'atmprod', 'goesupp',
'ocnpost',
'verfozn', 'verfrad', 'vminmon',
'metp',
Expand Down

0 comments on commit 4e160a8

Please sign in to comment.