Skip to content

Commit

Permalink
Feature #2197 MODE new multi-variate options (#2203)
Browse files Browse the repository at this point in the history
  • Loading branch information
georgemccabe committed Jun 6, 2023
1 parent 9f05ad4 commit 126c51d
Show file tree
Hide file tree
Showing 7 changed files with 140 additions and 0 deletions.
25 changes: 25 additions & 0 deletions docs/Users_Guide/glossary.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10388,3 +10388,28 @@ METplus Configuration Glossary
Specify the value for 'regrid.censor_val' in the MET configuration file for TCRMW.

| *Used by:* TCRMW
MODE_MULTIVAR_INTENSITY
Specify the value for 'multivar_intensity' in the MET configuration file for MODE.

| *Used by:* MODE
MODE_FCST_MULTIVAR_NAME
Specify the value for 'fcst.multivar_name' in the MET configuration file for MODE.

| *Used by:* MODE
MODE_FCST_MULTIVAR_UNITS
Specify the value for 'fcst.multivar_units' in the MET configuration file for MODE.

| *Used by:* MODE
MODE_OBS_MULTIVAR_NAME
Specify the value for 'obs.multivar_name' in the MET configuration file for MODE.

| *Used by:* MODE
MODE_OBS_MULTIVAR_UNITS
Specify the value for 'obs.multivar_units' in the MET configuration file for MODE.

| *Used by:* MODE
60 changes: 60 additions & 0 deletions docs/Users_Guide/wrappers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4055,16 +4055,21 @@ METplus Configuration
| :term:`FCST_MODE_IS_PROB`
| :term:`FCST_MODE_PROB_IN_GRIB_PDS`
| :term:`MODE_MULTIVAR_LOGIC`
| :term:`MODE_MULTIVAR_INTENSITY`
| :term:`FCST_MODE_VAR<n>_NAME`
| :term:`FCST_MODE_VAR<n>_LEVELS`
| :term:`FCST_MODE_VAR<n>_THRESH`
| :term:`FCST_MODE_VAR<n>_OPTIONS`
| :term:`MODE_FCST_FILE_TYPE`
| :term:`MODE_FCST_MULTIVAR_NAME`
| :term:`MODE_FCST_MULTIVAR_UNITS`
| :term:`OBS_MODE_VAR<n>_NAME`
| :term:`OBS_MODE_VAR<n>_LEVELS`
| :term:`OBS_MODE_VAR<n>_THRESH`
| :term:`OBS_MODE_VAR<n>_OPTIONS`
| :term:`MODE_OBS_FILE_TYPE`
| :term:`MODE_OBS_MULTIVAR_NAME`
| :term:`MODE_OBS_MULTIVAR_UNITS`
|
.. warning:: **DEPRECATED:**
Expand Down Expand Up @@ -4184,6 +4189,17 @@ see :ref:`How METplus controls MET config file settings<metplus-control-met>`.
* - :term:`MODE_MULTIVAR_LOGIC`
- multivar_logic

**${METPLUS_MULTIVAR_INTENSITY}**

.. list-table::
:widths: 5 5
:header-rows: 0

* - METplus Config(s)
- MET Config File
* - :term:`MODE_MULTIVAR_INTENSITY`
- multivar_intensity

**${METPLUS_FCST_FIELD}**

.. list-table::
Expand Down Expand Up @@ -4258,6 +4274,28 @@ see :ref:`How METplus controls MET config file settings<metplus-control-met>`.
* - :term:`MODE_FCST_FILE_TYPE`
- fcst.file_type

**${METPLUS_FCST_MULTIVAR_NAME}**

.. list-table::
:widths: 5 5
:header-rows: 0

* - METplus Config(s)
- MET Config File
* - :term:`MODE_FCST_MULTIVAR_NAME`
- fcst.multivar_name

**${METPLUS_FCST_MULTIVAR_UNITS}**

.. list-table::
:widths: 5 5
:header-rows: 0

* - METplus Config(s)
- MET Config File
* - :term:`MODE_FCST_MULTIVAR_UNITS`
- fcst.multivar_units


**${METPLUS_OBS_FIELD}**

Expand Down Expand Up @@ -4333,6 +4371,28 @@ see :ref:`How METplus controls MET config file settings<metplus-control-met>`.
* - :term:`MODE_OBS_FILE_TYPE`
- obs.file_type

**${METPLUS_OBS_MULTIVAR_NAME}**

.. list-table::
:widths: 5 5
:header-rows: 0

* - METplus Config(s)
- MET Config File
* - :term:`MODE_OBS_MULTIVAR_NAME`
- obs.multivar_name

**${METPLUS_OBS_MULTIVAR_UNITS}**

.. list-table::
:widths: 5 5
:header-rows: 0

* - METplus Config(s)
- MET Config File
* - :term:`MODE_OBS_MULTIVAR_UNITS`
- obs.multivar_units

**${METPLUS_MASK_POLY}**

.. list-table::
Expand Down
15 changes: 15 additions & 0 deletions internal/tests/pytests/wrappers/mode/test_mode_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -329,6 +329,21 @@ def set_minimum_config_settings(config):
({'MODE_MASK_MISSING_FLAG': 'BOTH', },
{'METPLUS_MASK_MISSING_FLAG': 'mask_missing_flag = BOTH;'}),
({'MODE_MULTIVAR_INTENSITY': 'false, true,true', },
{'METPLUS_MULTIVAR_INTENSITY': 'multivar_intensity = [FALSE, TRUE, TRUE];'}),
({'MODE_FCST_MULTIVAR_NAME': 'Snow', },
{'METPLUS_FCST_MULTIVAR_NAME': 'multivar_name = "Snow";'}),
({'MODE_FCST_MULTIVAR_UNITS': 'L0', },
{'METPLUS_FCST_MULTIVAR_UNITS': 'multivar_units = "L0";'}),
({'MODE_OBS_MULTIVAR_NAME': 'Precip', },
{'METPLUS_OBS_MULTIVAR_NAME': 'multivar_name = "Precip";'}),
({'MODE_OBS_MULTIVAR_UNITS': 'Z10', },
{'METPLUS_OBS_MULTIVAR_UNITS': 'multivar_units = "Z10";'}),
]
)
@pytest.mark.wrapper_a
Expand Down
3 changes: 3 additions & 0 deletions metplus/util/met_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -492,6 +492,9 @@ def set_met_config_list(config, c_dict, mp_config, met_config_name,
if not remove_quotes:
conf_value = f'"{conf_value}"'

if kwargs.get('uppercase', False):
conf_value = conf_value.upper()

out_values.append(conf_value)
out_value = f"[{', '.join(out_values)}]"

Expand Down
23 changes: 23 additions & 0 deletions metplus/wrappers/mode_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,11 @@ class MODEWrapper(CompareGriddedWrapper):
'METPLUS_FCST_FILE_TYPE',
'METPLUS_OBS_FILE_TYPE',
'METPLUS_MULTIVAR_LOGIC',
'METPLUS_MULTIVAR_INTENSITY',
'METPLUS_FCST_MULTIVAR_NAME',
'METPLUS_FCST_MULTIVAR_UNITS',
'METPLUS_OBS_MULTIVAR_NAME',
'METPLUS_OBS_MULTIVAR_UNITS',
]

# handle deprecated env vars used pre v4.0.0
Expand Down Expand Up @@ -408,12 +413,30 @@ def create_c_dict(self):
extra_args={'remove_quotes': True,
'uppercase': True})

self.add_met_config(name='multivar_name', data_type='string',
env_var_name='FCST_MULTIVAR_NAME',
metplus_configs=[f'{tool}_FCST_MULTIVAR_NAME'])
self.add_met_config(name='multivar_units', data_type='string',
env_var_name='FCST_MULTIVAR_UNITS',
metplus_configs=[f'{tool}_FCST_MULTIVAR_UNITS'])

self.add_met_config(name='multivar_name', data_type='string',
env_var_name='OBS_MULTIVAR_NAME',
metplus_configs=[f'{tool}_OBS_MULTIVAR_NAME'])
self.add_met_config(name='multivar_units', data_type='string',
env_var_name='OBS_MULTIVAR_UNITS',
metplus_configs=[f'{tool}_OBS_MULTIVAR_UNITS'])

c_dict['MERGE_CONFIG_FILE'] = (
self.config.getraw('config', f'{tool}_MERGE_CONFIG_FILE', '')
)

self.handle_mask(single_value=True, get_flags=True)

self.add_met_config(name='multivar_intensity', data_type='list',
extra_args={'remove_quotes': True,
'uppercase': True})

# handle setting VERIF_MASK for old wrapped MET config files
self.add_met_config(name='poly',
data_type='list',
Expand Down
7 changes: 7 additions & 0 deletions parm/met_config/MODEConfig_wrapped
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,9 @@ ${METPLUS_QUILT}
//multivar_logic =
${METPLUS_MULTIVAR_LOGIC}

//multivar_intensity =
${METPLUS_MULTIVAR_INTENSITY}

//
// Forecast and observation fields to be verified
//
Expand All @@ -70,6 +73,8 @@ fcst = {
${METPLUS_FCST_MERGE_THRESH}
${METPLUS_FCST_MERGE_FLAG}
${METPLUS_FCST_FILE_TYPE}
${METPLUS_FCST_MULTIVAR_NAME}
${METPLUS_FCST_MULTIVAR_UNITS}
}

obs = {
Expand All @@ -85,6 +90,8 @@ obs = {
${METPLUS_OBS_MERGE_THRESH}
${METPLUS_OBS_MERGE_FLAG}
${METPLUS_OBS_FILE_TYPE}
${METPLUS_OBS_MULTIVAR_NAME}
${METPLUS_OBS_MULTIVAR_UNITS}
}

////////////////////////////////////////////////////////////////////////////////
Expand Down
7 changes: 7 additions & 0 deletions parm/use_cases/met_tool_wrapper/MODE/MODE.conf
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,9 @@ FCST_MODE_MERGE_FLAG = NONE
#MODE_FCST_CENSOR_VAL =
#MODE_FCST_VLD_THRESH =

#MODE_FCST_MULTIVAR_NAME =
#MODE_FCST_MULTIVAR_UNITS =


OBS_VAR1_NAME = RH
OBS_VAR1_LEVELS = P500
Expand All @@ -92,6 +95,9 @@ OBS_MODE_MERGE_FLAG = NONE
#MODE_OBS_CENSOR_VAL =
#MODE_OBS_VLD_THRESH =

#MODE_OBS_MULTIVAR_NAME =
#MODE_OBS_MULTIVAR_UNITS =


###
# MODE Settings
Expand All @@ -109,6 +115,7 @@ OBTYPE = WRF
MODE_CONFIG_FILE = {PARM_BASE}/met_config/MODEConfig_wrapped

#MODE_MULTIVAR_LOGIC =
#MODE_MULTIVAR_INTENSITY =

MODE_REGRID_TO_GRID = NONE
#MODE_REGRID_METHOD =
Expand Down

0 comments on commit 126c51d

Please sign in to comment.