Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable UPP for GOES processing #2203

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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