Skip to content

Commit 4e160a8

Browse files
authored
Enable UPP for GOES processing (#2203)
Wnables the creation of special master grib2 files from UPP for GOES processing
1 parent c15875b commit 4e160a8

File tree

7 files changed

+24
-6
lines changed

7 files changed

+24
-6
lines changed

parm/config/gfs/config.base.emc.dyn

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ export NOSCRUB="@NOSCRUB@"
5959
export BASE_GIT="@BASE_GIT@"
6060

6161
# Toggle to turn on/off GFS downstream processing.
62-
export DO_GOES="NO" # GOES products
62+
export DO_GOES="@DO_GOES@" # GOES products
6363
export DO_BUFRSND="NO" # BUFR sounding products
6464
export DO_GEMPAK="NO" # GEMPAK products
6565
export DO_AWIPS="NO" # AWIPS products

parm/config/gfs/yaml/defaults.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ base:
55
DO_JEDIOCNVAR: "NO"
66
DO_JEDILANDDA: "NO"
77
DO_MERGENSST: "NO"
8+
DO_GOES: "NO"
89

910
atmanl:
1011
IO_LAYOUT_X: 1

workflow/applications/applications.py

+1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ def __init__(self, conf: Configuration) -> None:
6262
self.do_genesis_fsu = _base.get('DO_GENESIS_FSU', False)
6363
self.do_metp = _base.get('DO_METP', False)
6464
self.do_upp = not _base.get('WRITE_DOPOST', True)
65+
self.do_goes = _base.get('DO_GOES', False)
6566
self.do_mos = _base.get('DO_MOS', False)
6667

6768
self.do_hpssarch = _base.get('HPSSARCH', False)

workflow/applications/gfs_cycled.py

+3
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,9 @@ def get_task_names(self):
207207
gfs_tasks += ['atmupp']
208208
gfs_tasks += ['atmprod']
209209

210+
if self.do_goes:
211+
gfs_tasks += ['goesupp']
212+
210213
if self.do_vminmon:
211214
gfs_tasks += ['vminmon']
212215

workflow/applications/gfs_forecast_only.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ def _get_app_configs(self):
1919

2020
if self.do_atm:
2121

22-
if self.do_upp:
22+
if self.do_upp or self.do_goes:
2323
configs += ['upp']
2424

2525
configs += ['atmos_products']
@@ -102,6 +102,9 @@ def get_task_names(self):
102102

103103
tasks += ['atmprod']
104104

105+
if self.do_goes:
106+
tasks += ['goesupp']
107+
105108
if self.do_tracker:
106109
tasks += ['tracker']
107110

workflow/rocoto/gfs_tasks.py

+13-3
Original file line numberDiff line numberDiff line change
@@ -936,14 +936,24 @@ def _get_ufs_postproc_grps(cdump, config):
936936
return grp, dep, lst
937937

938938
def atmupp(self):
939+
return self._upptask(upp_run='forecast', task_id='atmupp')
940+
941+
def goesupp(self):
942+
return self._upptask(upp_run='goes', task_id='goesupp')
943+
944+
def _upptask(self, upp_run="forecast", task_id="atmupp"):
945+
946+
VALID_UPP_RUN = ["forecast", "goes", "wafs"]
947+
if upp_run not in VALID_UPP_RUN:
948+
raise KeyError(f"{upp_run} is invalid; UPP_RUN options are: {('|').join(VALID_UPP_RUN)}")
939949

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

944954
postenvars = self.envars.copy()
945955
postenvar_dict = {'FHRLST': '#lst#',
946-
'UPP_RUN': 'forecast'}
956+
'UPP_RUN': upp_run}
947957
for key, value in postenvar_dict.items():
948958
postenvars.append(rocoto.create_envar(name=key, value=str(value)))
949959

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

965-
task_name = f'{self.cdump}atmupp#{varname1}#'
975+
task_name = f'{self.cdump}{task_id}#{varname1}#'
966976
task_dict = {'task_name': task_name,
967977
'resources': resources,
968978
'dependency': dependencies,
@@ -974,7 +984,7 @@ def atmupp(self):
974984
'maxtries': '&MAXTRIES;'
975985
}
976986

977-
metatask_dict = {'task_name': f'{self.cdump}atmupp',
987+
metatask_dict = {'task_name': f'{self.cdump}{task_id}',
978988
'task_dict': task_dict,
979989
'var_dict': var_dict
980990
}

workflow/rocoto/tasks.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class Tasks:
2020
'aeroanlinit', 'aeroanlrun', 'aeroanlfinal',
2121
'preplandobs', 'landanl',
2222
'fcst',
23-
'atmanlupp', 'atmanlprod', 'atmupp', 'atmprod',
23+
'atmanlupp', 'atmanlprod', 'atmupp', 'atmprod', 'goesupp',
2424
'ocnpost',
2525
'verfozn', 'verfrad', 'vminmon',
2626
'metp',

0 commit comments

Comments
 (0)