From d8c4b25d1986253209ccc9071c1501efba2956b7 Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Wed, 5 Jul 2023 14:04:32 -0600 Subject: [PATCH 1/3] per #2235, rename multivar_itensity to multivar_intensity_flag --- docs/Users_Guide/glossary.rst | 4 ++-- docs/Users_Guide/wrappers.rst | 8 ++++---- internal/tests/pytests/wrappers/mode/test_mode_wrapper.py | 4 ++-- metplus/wrappers/mode_wrapper.py | 4 ++-- parm/met_config/MODEConfig_wrapped | 4 ++-- parm/use_cases/met_tool_wrapper/MODE/MODE.conf | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/Users_Guide/glossary.rst b/docs/Users_Guide/glossary.rst index 27ddf852e0..8fca5a7f7c 100644 --- a/docs/Users_Guide/glossary.rst +++ b/docs/Users_Guide/glossary.rst @@ -10661,8 +10661,8 @@ METplus Configuration Glossary | *Used by:* TCDiag - MODE_MULTIVAR_INTENSITY - Specify the value for 'multivar_intensity' in the MET configuration file for MODE. + MODE_MULTIVAR_INTENSITY_FLAG + Specify the value for 'multivar_intensity_flag' in the MET configuration file for MODE. | *Used by:* MODE diff --git a/docs/Users_Guide/wrappers.rst b/docs/Users_Guide/wrappers.rst index 3432ba0210..d5e3862641 100644 --- a/docs/Users_Guide/wrappers.rst +++ b/docs/Users_Guide/wrappers.rst @@ -4055,7 +4055,7 @@ METplus Configuration | :term:`FCST_MODE_IS_PROB` | :term:`FCST_MODE_PROB_IN_GRIB_PDS` | :term:`MODE_MULTIVAR_LOGIC` -| :term:`MODE_MULTIVAR_INTENSITY` +| :term:`MODE_MULTIVAR_INTENSITY_FLAG` | :term:`FCST_MODE_VAR_NAME` | :term:`FCST_MODE_VAR_LEVELS` | :term:`FCST_MODE_VAR_THRESH` @@ -4189,7 +4189,7 @@ see :ref:`How METplus controls MET config file settings`. * - :term:`MODE_MULTIVAR_LOGIC` - multivar_logic -**${METPLUS_MULTIVAR_INTENSITY}** +**${METPLUS_MULTIVAR_INTENSITY_FLAG}** .. list-table:: :widths: 5 5 @@ -4197,8 +4197,8 @@ see :ref:`How METplus controls MET config file settings`. * - METplus Config(s) - MET Config File - * - :term:`MODE_MULTIVAR_INTENSITY` - - multivar_intensity + * - :term:`MODE_MULTIVAR_INTENSITY_FLAG` + - multivar_intensity_flag **${METPLUS_FCST_FIELD}** diff --git a/internal/tests/pytests/wrappers/mode/test_mode_wrapper.py b/internal/tests/pytests/wrappers/mode/test_mode_wrapper.py index 556d89f04d..d3d0d6adfd 100644 --- a/internal/tests/pytests/wrappers/mode/test_mode_wrapper.py +++ b/internal/tests/pytests/wrappers/mode/test_mode_wrapper.py @@ -329,8 +329,8 @@ 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_MULTIVAR_INTENSITY_FLAG': 'false, true,true', }, + {'METPLUS_MULTIVAR_INTENSITY_FLAG': 'multivar_intensity_flag = [FALSE, TRUE, TRUE];'}), ({'MODE_FCST_MULTIVAR_NAME': 'Snow', }, {'METPLUS_FCST_MULTIVAR_NAME': 'multivar_name = "Snow";'}), diff --git a/metplus/wrappers/mode_wrapper.py b/metplus/wrappers/mode_wrapper.py index 249c00cd11..57518403d2 100755 --- a/metplus/wrappers/mode_wrapper.py +++ b/metplus/wrappers/mode_wrapper.py @@ -61,7 +61,7 @@ class MODEWrapper(CompareGriddedWrapper): 'METPLUS_FCST_FILE_TYPE', 'METPLUS_OBS_FILE_TYPE', 'METPLUS_MULTIVAR_LOGIC', - 'METPLUS_MULTIVAR_INTENSITY', + 'METPLUS_MULTIVAR_INTENSITY_FLAG', 'METPLUS_FCST_MULTIVAR_NAME', 'METPLUS_FCST_MULTIVAR_LEVEL', 'METPLUS_OBS_MULTIVAR_NAME', @@ -433,7 +433,7 @@ def create_c_dict(self): self.handle_mask(single_value=True, get_flags=True) - self.add_met_config(name='multivar_intensity', data_type='list', + self.add_met_config(name='multivar_intensity_flag', data_type='list', extra_args={'remove_quotes': True, 'uppercase': True}) diff --git a/parm/met_config/MODEConfig_wrapped b/parm/met_config/MODEConfig_wrapped index 025e1479b1..536cebc320 100644 --- a/parm/met_config/MODEConfig_wrapped +++ b/parm/met_config/MODEConfig_wrapped @@ -54,8 +54,8 @@ ${METPLUS_QUILT} //multivar_logic = ${METPLUS_MULTIVAR_LOGIC} -//multivar_intensity = -${METPLUS_MULTIVAR_INTENSITY} +//multivar_intensity_flag = +${METPLUS_MULTIVAR_INTENSITY_FLAG} // // Forecast and observation fields to be verified diff --git a/parm/use_cases/met_tool_wrapper/MODE/MODE.conf b/parm/use_cases/met_tool_wrapper/MODE/MODE.conf index 36633aed67..0d1add4b8b 100644 --- a/parm/use_cases/met_tool_wrapper/MODE/MODE.conf +++ b/parm/use_cases/met_tool_wrapper/MODE/MODE.conf @@ -115,7 +115,7 @@ OBTYPE = WRF MODE_CONFIG_FILE = {PARM_BASE}/met_config/MODEConfig_wrapped #MODE_MULTIVAR_LOGIC = -#MODE_MULTIVAR_INTENSITY = +#MODE_MULTIVAR_INTENSITY_FLAG = MODE_REGRID_TO_GRID = NONE #MODE_REGRID_METHOD = From a2a6654699964467cbea6cc6e1c7345ec38dd55a Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Wed, 5 Jul 2023 15:44:01 -0600 Subject: [PATCH 2/3] updates to use case from @hertneky to fix MODE multivariate use case --- ...MODEMultivar_fcstHRRR_obsMRMS_HRRRanl.conf | 57 ++----------------- 1 file changed, 6 insertions(+), 51 deletions(-) diff --git a/parm/use_cases/model_applications/short_range/MODEMultivar_fcstHRRR_obsMRMS_HRRRanl.conf b/parm/use_cases/model_applications/short_range/MODEMultivar_fcstHRRR_obsMRMS_HRRRanl.conf index b8361e2f90..352054cfe9 100644 --- a/parm/use_cases/model_applications/short_range/MODEMultivar_fcstHRRR_obsMRMS_HRRRanl.conf +++ b/parm/use_cases/model_applications/short_range/MODEMultivar_fcstHRRR_obsMRMS_HRRRanl.conf @@ -4,7 +4,7 @@ # https://metplus.readthedocs.io/en/latest/generated/model_applications/short_range/MODEMultivar_fcstHRRR_obsMRMS_HRRRanl.html # Processes to run -PROCESS_LIST = MODE(mv),GenVxMask(fcst_super),GenVxMask(obs_super),MODE(super) +PROCESS_LIST = MODE # Time Info LOOP_ORDER = times @@ -22,9 +22,10 @@ OBTYPE = ANALYSIS ################################## # Multivariate MODE Configurations ################################## + # Run MODE to output super objects -[mv] MODE_MULTIVAR_LOGIC = #1 && #2 && #3 +MODE_MULTIVAR_INTENSITY_FLAG = FALSE,TRUE,TRUE FCST_MODE_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/MODEMultivar_fcstHRRR_obsMRMS_HRRRanl FCST_MODE_INPUT_TEMPLATE = hrrr.t{init?fmt=%H}z.wrfprsf{lead?fmt=%H}.sub.grib2,hrrr.t{init?fmt=%H}z.wrfprsf{lead?fmt=%H}.sub.grib2,hrrr.t{init?fmt=%H}z.wrfprsf{lead?fmt=%H}.sub.grib2 @@ -37,11 +38,11 @@ MODE_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/f{lead?fmt=%2H} FCST_VAR1_NAME = CSNOW FCST_VAR1_LEVELS = L0 -FCST_VAR1_OPTIONS = conv_radius = 0; conv_thresh = ==1 +FCST_VAR1_OPTIONS = conv_radius = 0; conv_thresh = ==1; merge_flag = NONE OBS_VAR1_NAME = PrecipFlag OBS_VAR1_LEVELS = L0 -OBS_VAR1_OPTIONS = conv_radius = 0; conv_thresh = ==3 +OBS_VAR1_OPTIONS = conv_radius = 0; conv_thresh = ==3; merge_flag = NONE FCST_VAR2_NAME = VIS FCST_VAR2_LEVELS = L0 @@ -71,43 +72,6 @@ MODE_REGRID_METHOD = NEAREST MODE_REGRID_WIDTH = 1 MODE_REGRID_VLD_THRESH = 0.5 -########################## -# GenVxMask configurations -########################## -# Mask fcst field with the fcst super object field -[fcst_super] -GEN_VX_MASK_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/MODEMultivar_fcstHRRR_obsMRMS_HRRRanl -GEN_VX_MASK_INPUT_TEMPLATE = hrrr.t{init?fmt=%H}z.wrfprsf{lead?fmt=%H}.sub.grib2 -GEN_VX_MASK_INPUT_MASK_DIR = {OUTPUT_BASE}/mode -GEN_VX_MASK_INPUT_MASK_TEMPLATE = {init?fmt=%Y%m%d%H}/f{lead?fmt=%2H}/f_super.nc -GEN_VX_MASK_OPTIONS = -type data -input_field 'name="WIND";level="Z10";' -mask_field 'name="super";level="L0";' -thresh 'eq0' -value -9999 -name 'WIND_super' -GEN_VX_MASK_OUTPUT_DIR = {OUTPUT_BASE}/gen_vx_mask -GEN_VX_MASK_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/fcst_wind_super_{init?fmt=%Y%m%d%H}_f{lead?fmt=%2H}.nc - -# Mask obs field with the obs super objects -[obs_super] -GEN_VX_MASK_INPUT_DIR = {INPUT_BASE}/model_applications/short_range/MODEMultivar_fcstHRRR_obsMRMS_HRRRanl -GEN_VX_MASK_INPUT_TEMPLATE = hrrr.t{valid?fmt=%H}z.wrfprsf00.sub.grib2 -GEN_VX_MASK_INPUT_MASK_DIR = {OUTPUT_BASE}/mode -GEN_VX_MASK_INPUT_MASK_TEMPLATE = {init?fmt=%Y%m%d%H}/f{lead?fmt=%2H}/o_super.nc -GEN_VX_MASK_OPTIONS = -type data -input_field 'name="WIND";level="Z10";' -mask_field 'name="super";level="L0";' -thresh 'eq0' -value -9999 -name 'WIND_super' -GEN_VX_MASK_OUTPUT_DIR = {OUTPUT_BASE}/gen_vx_mask -GEN_VX_MASK_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/obs_wind_super_{valid?fmt=%Y%m%d%H}.nc - -####################### -# MODE on precip supers -####################### -[super] -FCST_VAR1_NAME = WIND_super -FCST_VAR1_LEVELS = Z10 - -OBS_VAR1_NAME = WIND_super -OBS_VAR1_LEVELS = Z10 - -MODE_CONV_RADIUS = 0 -MODE_CONV_THRESH = ne-9999 -MODE_MERGE_FLAG = NONE - MODE_OUTPUT_PREFIX = {MODEL}_vs_{OBTYPE}_{CURRENT_OBS_NAME}_{CURRENT_OBS_LEVEL} MODE_GRID_RES = 3 @@ -119,16 +83,7 @@ MODE_NC_PAIRS_FLAG_OBJECT_ID = TRUE MODE_NC_PAIRS_FLAG_CLUSTER_ID = TRUE MODE_NC_PAIRS_FLAG_POLYLINES = TRUE -MODE_QUILT = True +MODE_QUILT = False MODE_PS_PLOT_FLAG = TRUE MODE_CT_STATS_FLAG = TRUE - -FCST_MODE_INPUT_DIR = {OUTPUT_BASE}/gen_vx_mask -FCST_MODE_INPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/fcst_wind_super_{init?fmt=%Y%m%d%H}_f{lead?fmt=%2H}.nc - -OBS_MODE_INPUT_DIR = {OUTPUT_BASE}/gen_vx_mask -OBS_MODE_INPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/obs_wind_super_{valid?fmt=%Y%m%d%H}.nc - -MODE_OUTPUT_DIR = {OUTPUT_BASE}/mode -MODE_OUTPUT_TEMPLATE = {init?fmt=%Y%m%d%H}/f{lead?fmt=%2H} From eeafa5473c21ea5bdffd770f9ccbdd1441a170ca Mon Sep 17 00:00:00 2001 From: George McCabe <23407799+georgemccabe@users.noreply.github.com> Date: Thu, 6 Jul 2023 12:46:40 -0600 Subject: [PATCH 3/3] updated output prefix to remove current name/level because that is not relevant for super objects since they are derived from multiple fields --- .../short_range/MODEMultivar_fcstHRRR_obsMRMS_HRRRanl.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/use_cases/model_applications/short_range/MODEMultivar_fcstHRRR_obsMRMS_HRRRanl.conf b/parm/use_cases/model_applications/short_range/MODEMultivar_fcstHRRR_obsMRMS_HRRRanl.conf index 352054cfe9..c466aec372 100644 --- a/parm/use_cases/model_applications/short_range/MODEMultivar_fcstHRRR_obsMRMS_HRRRanl.conf +++ b/parm/use_cases/model_applications/short_range/MODEMultivar_fcstHRRR_obsMRMS_HRRRanl.conf @@ -72,7 +72,7 @@ MODE_REGRID_METHOD = NEAREST MODE_REGRID_WIDTH = 1 MODE_REGRID_VLD_THRESH = 0.5 -MODE_OUTPUT_PREFIX = {MODEL}_vs_{OBTYPE}_{CURRENT_OBS_NAME}_{CURRENT_OBS_LEVEL} +MODE_OUTPUT_PREFIX = {MODEL}_vs_{OBTYPE} MODE_GRID_RES = 3