From bbe78cabdeff9613ce8b2afc9f7a74c8e8030f5c Mon Sep 17 00:00:00 2001 From: gsketefian <31046882+gsketefian@users.noreply.github.com> Date: Tue, 16 Jan 2024 07:07:31 -0700 Subject: [PATCH] [develop] Verification upgrades and bug fixes (#973) This update cleans up and simplifies the verification tasks in the SRW App. Main changes: * For each METplus tool that is run on APCP, combine APCP01h and APCPgt01h METplus configuration (conf) files into one so that different behavior/code/scripts are not required for 01h vs. >01h. * For APCP01h verification, use the NetCDF files generated by the PcpCombine_[fcst|obs] tasks instead of the original GRIB2 files. Note that for 01h accumulation, all that the the PcpCombine_[fcst|obs] tasks do is convert from GRIB2 to NetCDF format (unlike for >01h, for which the 01hr accumulations must be summed to obtain 03h, 06h, etc accumulations). This must be done because currently, even though the NetCDF files for APCP01h are created by the PcpCombine_[fcst|obs] tasks, they are not actually used by downstream tasks such as GridStat. * Change thresholds in METplus conf files to use "ge", "gt", etc as opposed to "<=", "<", etc. This is so that thresholds can also easily be used in file and variable names. * For clarity, change SFC and UPA verification field group names into ADPSFC and ADPUPA, respectively. * Change behavior of ASNOW verification to be more similar to that of APCP. * Bug fix in GridStat_ensprob_ASNOW.conf. There is an inadvertent shift in the threshold values used in the forecast field array names with respect to the threshold values specified for the observations. Fix to make thresholds for forecast and obs match. * Add METplus logging level control in the main SRW App config file. * For clarity, rename some verification variables as needed (in the main SRW App config file, in the rocoto workflow xml, in ex-scripts, etc). * Clean up comments in METplus config files and make these files more similar to each other where possible. --- ...Stat_SFC.conf => EnsembleStat_ADPSFC.conf} | 67 ++- ...Stat_UPA.conf => EnsembleStat_ADPUPA.conf} | 79 ++-- ...at_APCP01h.conf => EnsembleStat_APCP.conf} | 41 +- parm/metplus/EnsembleStat_APCPgt01h.conf | 285 ------------ parm/metplus/EnsembleStat_ASNOW.conf | 42 +- parm/metplus/EnsembleStat_REFC.conf | 36 +- parm/metplus/EnsembleStat_RETOP.conf | 40 +- ...nsProd_SFC.conf => GenEnsProd_ADPSFC.conf} | 41 +- ...nsProd_UPA.conf => GenEnsProd_ADPUPA.conf} | 42 +- ...Prod_APCP01h.conf => GenEnsProd_APCP.conf} | 18 +- parm/metplus/GenEnsProd_APCPgt01h.conf | 204 --------- parm/metplus/GenEnsProd_ASNOW.conf | 19 +- parm/metplus/GenEnsProd_REFC.conf | 16 +- parm/metplus/GenEnsProd_RETOP.conf | 19 +- ...idStat_APCP01h.conf => GridStat_APCP.conf} | 80 ++-- parm/metplus/GridStat_APCPgt01h.conf | 336 -------------- parm/metplus/GridStat_ASNOW.conf | 60 +-- parm/metplus/GridStat_REFC.conf | 86 ++-- parm/metplus/GridStat_RETOP.conf | 87 ++-- ...Pgt01h.conf => GridStat_ensmean_APCP.conf} | 81 +--- parm/metplus/GridStat_ensmean_APCP01h.conf | 335 -------------- parm/metplus/GridStat_ensmean_ASNOW.conf | 81 +--- parm/metplus/GridStat_ensmean_REFC.conf | 51 +-- parm/metplus/GridStat_ensmean_RETOP.conf | 50 +-- ...PCP01h.conf => GridStat_ensprob_APCP.conf} | 129 +++--- parm/metplus/GridStat_ensprob_APCP03h.conf | 413 ------------------ parm/metplus/GridStat_ensprob_APCP06h.conf | 413 ------------------ parm/metplus/GridStat_ensprob_APCP24h.conf | 413 ------------------ parm/metplus/GridStat_ensprob_ASNOW.conf | 160 +++---- parm/metplus/GridStat_ensprob_REFC.conf | 159 +++---- parm/metplus/GridStat_ensprob_RETOP.conf | 168 +++---- parm/metplus/Pb2nc_obs.conf | 12 +- parm/metplus/PcpCombine_fcst_APCP.conf | 11 +- parm/metplus/PcpCombine_fcst_ASNOW.conf | 8 +- parm/metplus/PcpCombine_obs_APCP.conf | 8 +- ...intStat_SFC.conf => PointStat_ADPSFC.conf} | 158 +++---- ...intStat_UPA.conf => PointStat_ADPUPA.conf} | 124 +++--- ...SFC.conf => PointStat_ensmean_ADPSFC.conf} | 39 +- ...UPA.conf => PointStat_ensmean_ADPUPA.conf} | 87 ++-- ...SFC.conf => PointStat_ensprob_ADPSFC.conf} | 108 ++--- ...UPA.conf => PointStat_ensprob_ADPUPA.conf} | 158 +++---- parm/wflow/verify_det.yaml | 10 +- parm/wflow/verify_ens.yaml | 28 +- parm/wflow/verify_pre.yaml | 10 +- ...onal_run_met_genensprod_or_ensemblestat.sh | 110 ++--- ...gional_run_met_gridstat_or_pointstat_vx.sh | 108 ++--- ...un_met_gridstat_or_pointstat_vx_ensmean.sh | 98 ++--- ...un_met_gridstat_or_pointstat_vx_ensprob.sh | 95 ++-- scripts/exregional_run_met_pb2nc_obs.sh | 37 +- scripts/exregional_run_met_pcpcombine.sh | 41 +- ...g.custom_ESGgrid_Great_Lakes_snow_8km.yaml | 2 +- ...g.MET_ensemble_verification_winter_wx.yaml | 2 +- ush/config_defaults.yaml | 92 ++-- ..._tool_name.sh => get_metplus_tool_name.sh} | 92 ++-- ush/set_vx_fhr_list.sh | 6 +- ush/set_vx_params.sh | 27 +- ush/setup.py | 2 +- ush/valid_param_vals.yaml | 2 +- 58 files changed, 1376 insertions(+), 4150 deletions(-) rename parm/metplus/{EnsembleStat_SFC.conf => EnsembleStat_ADPSFC.conf} (84%) rename parm/metplus/{EnsembleStat_UPA.conf => EnsembleStat_ADPUPA.conf} (86%) rename parm/metplus/{EnsembleStat_APCP01h.conf => EnsembleStat_APCP.conf} (90%) delete mode 100644 parm/metplus/EnsembleStat_APCPgt01h.conf rename parm/metplus/{GenEnsProd_SFC.conf => GenEnsProd_ADPSFC.conf} (84%) rename parm/metplus/{GenEnsProd_UPA.conf => GenEnsProd_ADPUPA.conf} (85%) rename parm/metplus/{GenEnsProd_APCP01h.conf => GenEnsProd_APCP.conf} (93%) delete mode 100644 parm/metplus/GenEnsProd_APCPgt01h.conf rename parm/metplus/{GridStat_APCP01h.conf => GridStat_APCP.conf} (84%) delete mode 100644 parm/metplus/GridStat_APCPgt01h.conf rename parm/metplus/{GridStat_ensmean_APCPgt01h.conf => GridStat_ensmean_APCP.conf} (75%) delete mode 100644 parm/metplus/GridStat_ensmean_APCP01h.conf rename parm/metplus/{GridStat_ensprob_APCP01h.conf => GridStat_ensprob_APCP.conf} (76%) delete mode 100644 parm/metplus/GridStat_ensprob_APCP03h.conf delete mode 100644 parm/metplus/GridStat_ensprob_APCP06h.conf delete mode 100644 parm/metplus/GridStat_ensprob_APCP24h.conf rename parm/metplus/{PointStat_SFC.conf => PointStat_ADPSFC.conf} (74%) rename parm/metplus/{PointStat_UPA.conf => PointStat_ADPUPA.conf} (71%) rename parm/metplus/{PointStat_ensmean_SFC.conf => PointStat_ensmean_ADPSFC.conf} (85%) rename parm/metplus/{PointStat_ensmean_UPA.conf => PointStat_ensmean_ADPUPA.conf} (81%) rename parm/metplus/{PointStat_ensprob_SFC.conf => PointStat_ensprob_ADPSFC.conf} (85%) rename parm/metplus/{PointStat_ensprob_UPA.conf => PointStat_ensprob_ADPUPA.conf} (85%) rename ush/{get_met_metplus_tool_name.sh => get_metplus_tool_name.sh} (56%) diff --git a/parm/metplus/EnsembleStat_SFC.conf b/parm/metplus/EnsembleStat_ADPSFC.conf similarity index 84% rename from parm/metplus/EnsembleStat_SFC.conf rename to parm/metplus/EnsembleStat_ADPSFC.conf index 14c5c7b85a..627f99010d 100644 --- a/parm/metplus/EnsembleStat_SFC.conf +++ b/parm/metplus/EnsembleStat_ADPSFC.conf @@ -70,15 +70,15 @@ ENSEMBLE_STAT_DESC = NA # Name to identify observation data in output. # OBTYPE = {{obtype}} - -# The METplus EnsembleStat logging level -# 0 quiet to 5 loud, Verbosity setting for METplus EnsembleStat output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -LOG_ENSEMBLE_STAT_VERBOSITY = 3 - +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} +# +# Observation data time window(s). +# OBS_WINDOW_BEGIN = -1799 OBS_WINDOW_END = 1800 - OBS_ENSEMBLE_STAT_WINDOW_BEGIN = {OBS_WINDOW_BEGIN} OBS_ENSEMBLE_STAT_WINDOW_END = {OBS_WINDOW_END} @@ -93,14 +93,12 @@ ENSEMBLE_STAT_ENS_THRESH = 0.05 # ens.vld_thresh value in the MET config file ENSEMBLE_STAT_ENS_VLD_THRESH = 1.0 -FIELDNAME_IN_MET_FILEDIR_NAMES = {{fieldname_in_met_filedir_names}} - ENSEMBLE_STAT_OBS_QUALITY_INC = 0, 1, 2, 3, 9, NA #ENSEMBLE_STAT_OBS_QUALITY_EXC = # ENSEMBLE_STAT_MET_OBS_ERR_TABLE is not required. -# If the variable is not defined, or the value is not set -# than the MET default is used. +# If the variable is not defined, or the value is not set, then the MET +# default is used. ENSEMBLE_STAT_MET_OBS_ERR_TABLE = {MET_BASE}/table_files/obs_error_table.txt @@ -114,11 +112,9 @@ ENSEMBLE_STAT_REGRID_TO_GRID = NONE ENSEMBLE_STAT_CENSOR_THRESH = ENSEMBLE_STAT_CENSOR_VAL = -ENSEMBLE_STAT_MESSAGE_TYPE = ADP{FIELDNAME_IN_MET_FILEDIR_NAMES} - +ENSEMBLE_STAT_MESSAGE_TYPE = {{fieldname_in_met_filedir_names}} ENSEMBLE_STAT_DUPLICATE_FLAG = NONE ENSEMBLE_STAT_SKIP_CONST = FALSE - ENSEMBLE_STAT_OBS_ERROR_FLAG = FALSE ENSEMBLE_STAT_ENS_SSVAR_BIN_SIZE = 1.0 @@ -191,58 +187,57 @@ ENSEMBLE_STAT_ENSEMBLE_FLAG_WEIGHT = FALSE # FCST_VAR1_NAME = TMP FCST_VAR1_LEVELS = Z2 -FCST_VAR1_THRESH = >=268, >=273, >=278, >=293, >=298, >=303 +FCST_VAR1_THRESH = ge268, ge273, ge278, ge293, ge298, ge303 OBS_VAR1_NAME = TMP OBS_VAR1_LEVELS = Z2 -OBS_VAR1_THRESH = >=268, >=273, >=278, >=293, >=298, >=303 +OBS_VAR1_THRESH = ge268, ge273, ge278, ge293, ge298, ge303 OBS_VAR1_OPTIONS = obs_error = { flag = TRUE; dist_type = NONE; dist_parm = []; inst_bias_scale = 1.0; inst_bias_offset = 0.0; min = NA; max = NA; } FCST_VAR2_NAME = DPT FCST_VAR2_LEVELS = Z2 -FCST_VAR2_THRESH = >=263, >=268, >=273, >=288, >=293, >=298 +FCST_VAR2_THRESH = ge263, ge268, ge273, ge288, ge293, ge298 OBS_VAR2_NAME = DPT OBS_VAR2_LEVELS = Z2 -OBS_VAR2_THRESH = >=263, >=268, >=273, >=288, >=293, >=298 +OBS_VAR2_THRESH = ge263, ge268, ge273, ge288, ge293, ge298 OBS_VAR2_OPTIONS = obs_error = { flag = TRUE; dist_type = NONE; dist_parm = []; inst_bias_scale = 1.0; inst_bias_offset = 0.0; min = NA; max = NA; } FCST_VAR3_NAME = WIND FCST_VAR3_LEVELS = Z10 -FCST_VAR3_THRESH = >=5, >=10, >=15 -FCST_VAR3_OPTIONS = GRIB2_pdt = 0; ;; derive instantaneous 10-m wind from U/V components, overriding max 10-m wind +FCST_VAR3_THRESH = ge5, ge10, ge15 +FCST_VAR3_OPTIONS = GRIB2_pdt = 0; ;; Derive instantaneous 10-m wind from U/V components, overriding max 10-m wind. OBS_VAR3_NAME = WIND OBS_VAR3_LEVELS = Z10 -OBS_VAR3_THRESH = >=5, >=10, >=15 +OBS_VAR3_THRESH = ge5, ge10, ge15 OBS_VAR3_OPTIONS = obs_error = { flag = TRUE; dist_type = NONE; dist_parm = []; inst_bias_scale = 1.0; inst_bias_offset = 0.0; min = NA; max = NA; } FCST_VAR4_NAME = TCDC FCST_VAR4_LEVELS = L0 -FCST_VAR4_THRESH = <25, >75 -FCST_VAR4_OPTIONS = GRIB_lvl_typ = 200; GRIB2_ipdtmpl_index=[27]; GRIB2_ipdtmpl_val=[255]; interp = { type = [ { method = NEAREST; width = 1; } ]; } +FCST_VAR4_THRESH = lt25, gt75 +FCST_VAR4_OPTIONS = GRIB_lvl_typ = 200; + GRIB2_ipdtmpl_index=[27]; + GRIB2_ipdtmpl_val=[255]; + interp = { type = [ { method = NEAREST; width = 1; } ]; } OBS_VAR4_NAME = TCDC OBS_VAR4_LEVELS = L0 -OBS_VAR4_THRESH = <25, >75 +OBS_VAR4_THRESH = lt25, gt75 -#BOTH_VAR5_NAME = VIS -#BOTH_VAR5_LEVELS = L0 -#BOTH_VAR5_THRESH = <1609, <8045, >=8045 -#BOTH_VAR5_OPTIONS = interp = { type = [ { method = NEAREST; width = 1; } ]; } FCST_VAR5_NAME = VIS FCST_VAR5_LEVELS = L0 -FCST_VAR5_THRESH = <1609, <8045, >=8045 +FCST_VAR5_THRESH = lt1609, lt8045, ge8045 FCST_VAR5_OPTIONS = interp = { type = [ { method = NEAREST; width = 1; } ]; } OBS_VAR5_NAME = VIS OBS_VAR5_LEVELS = L0 -OBS_VAR5_THRESH = <1609, <8045, >=8045 +OBS_VAR5_THRESH = lt1609, lt8045, ge8045 FCST_VAR6_NAME = HGT FCST_VAR6_LEVELS = L0 -FCST_VAR6_THRESH = <152, <1520, >=914 -FCST_VAR6_OPTIONS = GRIB_lvl_typ = 215; desc = "CEILING"; +FCST_VAR6_THRESH = lt152, lt1520, ge914 +FCST_VAR6_OPTIONS = GRIB_lvl_typ = 215; + desc = "CEILING"; OBS_VAR6_NAME = CEILING OBS_VAR6_LEVELS = L0 -#OBS_VAR6_OPTIONS = GRIB_lvl_typ = 215; interp = { type = [ { method = NEAREST; width = 1; } ]; } +OBS_VAR6_THRESH = lt152, lt305, ge914 OBS_VAR6_OPTIONS = GRIB_lvl_typ = 215 -OBS_VAR6_THRESH = <152, <305, >=914 [dir] # @@ -295,7 +290,7 @@ OBS_ENSEMBLE_STAT_POINT_INPUT_TEMPLATE = {{obs_input_fn_template}} # OBS_ENSEMBLE_STAT_GRID_INPUT_TEMPLATE = # -# Template for forecast input to EnsembleStat relative to +# Template for forecast input to EnsembleStat relative to # FCST_ENSEMBLE_STAT_INPUT_DIR. # # Note that this can be a comma separated list of ensemble members @@ -306,7 +301,7 @@ FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}} # Template for output from EnsembleStat relative to ENSEMBLE_STAT_OUTPUT_DIR. # ENSEMBLE_STAT_OUTPUT_TEMPLATE = -ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_ADP{FIELDNAME_IN_MET_FILEDIR_NAMES}_{OBTYPE}_{lead?fmt=%H%M%S}L +ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE}_{lead?fmt=%H%M%S}L # # Template for climatology input to EnsembleStat relative to # ENSEMBLE_STAT_CLIMO_MEAN_INPUT_DIR. Not used in this example. diff --git a/parm/metplus/EnsembleStat_UPA.conf b/parm/metplus/EnsembleStat_ADPUPA.conf similarity index 86% rename from parm/metplus/EnsembleStat_UPA.conf rename to parm/metplus/EnsembleStat_ADPUPA.conf index 4bc2bad3d0..d843a2e123 100644 --- a/parm/metplus/EnsembleStat_UPA.conf +++ b/parm/metplus/EnsembleStat_ADPUPA.conf @@ -70,15 +70,15 @@ ENSEMBLE_STAT_DESC = NA # Name to identify observation data in output. # OBTYPE = {{obtype}} - -# The METplus EnsembleStat logging level -# 0 quiet to 5 loud, Verbosity setting for METplus EnsembleStat output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -LOG_ENSEMBLE_STAT_VERBOSITY = 3 - +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} +# +# Observation data time window(s). +# OBS_WINDOW_BEGIN = -1799 OBS_WINDOW_END = 1800 - OBS_ENSEMBLE_STAT_WINDOW_BEGIN = {OBS_WINDOW_BEGIN} OBS_ENSEMBLE_STAT_WINDOW_END = {OBS_WINDOW_END} @@ -93,14 +93,12 @@ ENSEMBLE_STAT_ENS_THRESH = 0.05 # ens.vld_thresh value in the MET config file ENSEMBLE_STAT_ENS_VLD_THRESH = 1.0 -FIELDNAME_IN_MET_FILEDIR_NAMES = {{fieldname_in_met_filedir_names}} - ENSEMBLE_STAT_OBS_QUALITY_INC = 0, 1, 2, 3, 9, NA #ENSEMBLE_STAT_OBS_QUALITY_EXC = # ENSEMBLE_STAT_MET_OBS_ERR_TABLE is not required. -# If the variable is not defined, or the value is not set -# than the MET default is used. +# If the variable is not defined, or the value is not set, then the MET +# default is used. ENSEMBLE_STAT_MET_OBS_ERR_TABLE = {MET_BASE}/table_files/obs_error_table.txt @@ -114,11 +112,9 @@ ENSEMBLE_STAT_REGRID_TO_GRID = NONE ENSEMBLE_STAT_CENSOR_THRESH = ENSEMBLE_STAT_CENSOR_VAL = -ENSEMBLE_STAT_MESSAGE_TYPE = ADP{FIELDNAME_IN_MET_FILEDIR_NAMES} - +ENSEMBLE_STAT_MESSAGE_TYPE = {{fieldname_in_met_filedir_names}} ENSEMBLE_STAT_DUPLICATE_FLAG = NONE ENSEMBLE_STAT_SKIP_CONST = FALSE - ENSEMBLE_STAT_OBS_ERROR_FLAG = FALSE ENSEMBLE_STAT_ENS_SSVAR_BIN_SIZE = 1.0 @@ -191,100 +187,101 @@ ENSEMBLE_STAT_ENSEMBLE_FLAG_WEIGHT = FALSE # FCST_VAR1_NAME = TMP FCST_VAR1_LEVELS = P850 -FCST_VAR1_THRESH = >=288, >=293, >=298 +FCST_VAR1_THRESH = ge288, ge293, ge298 OBS_VAR1_NAME = TMP OBS_VAR1_LEVELS = P850 -OBS_VAR1_THRESH = >=288, >=293, >=298 +OBS_VAR1_THRESH = ge288, ge293, ge298 OBS_VAR1_OPTIONS = obs_error = { flag = TRUE; dist_type = NONE; dist_parm = []; inst_bias_scale = 1.0; inst_bias_offset = 0.0; min = NA; max = NA; } FCST_VAR2_NAME = TMP FCST_VAR2_LEVELS = P700 -FCST_VAR2_THRESH = >=273, >=278, >=283 +FCST_VAR2_THRESH = ge273, ge278, ge283 OBS_VAR2_NAME = TMP OBS_VAR2_LEVELS = P700 -OBS_VAR2_THRESH = >=273, >=278, >=283 +OBS_VAR2_THRESH = ge273, ge278, ge283 OBS_VAR2_OPTIONS = obs_error = { flag = TRUE; dist_type = NONE; dist_parm = []; inst_bias_scale = 1.0; inst_bias_offset = 0.0; min = NA; max = NA; } FCST_VAR3_NAME = TMP FCST_VAR3_LEVELS = P500 -FCST_VAR3_THRESH = >=258, >=263, >=268 +FCST_VAR3_THRESH = ge258, ge263, ge268 OBS_VAR3_NAME = TMP OBS_VAR3_LEVELS = P500 -OBS_VAR3_THRESH = >=258, >=263, >=268 +OBS_VAR3_THRESH = ge258, ge263, ge268 OBS_VAR3_OPTIONS = obs_error = { flag = TRUE; dist_type = NONE; dist_parm = []; inst_bias_scale = 1.0; inst_bias_offset = 0.0; min = NA; max = NA; } FCST_VAR4_NAME = DPT FCST_VAR4_LEVELS = P850 -FCST_VAR4_THRESH = >=273, >=278, >=283 +FCST_VAR4_THRESH = ge273, ge278, ge283 OBS_VAR4_NAME = DPT OBS_VAR4_LEVELS = P850 -OBS_VAR4_THRESH = >=273, >=278, >=283 +OBS_VAR4_THRESH = ge273, ge278, ge283 OBS_VAR4_OPTIONS = obs_error = { flag = TRUE; dist_type = NONE; dist_parm = []; inst_bias_scale = 1.0; inst_bias_offset = 0.0; min = NA; max = NA; } FCST_VAR5_NAME = DPT FCST_VAR5_LEVELS = P700 -FCST_VAR5_THRESH = >=263, >=286, >=273 +FCST_VAR5_THRESH = ge263, ge286, ge273 OBS_VAR5_NAME = DPT OBS_VAR5_LEVELS = P700 -OBS_VAR5_THRESH = >=263, >=286, >=273 +OBS_VAR5_THRESH = ge263, ge286, ge273 OBS_VAR5_OPTIONS = obs_error = { flag = TRUE; dist_type = NONE; dist_parm = []; inst_bias_scale = 1.0; inst_bias_offset = 0.0; min = NA; max = NA; } FCST_VAR6_NAME = WIND FCST_VAR6_LEVELS = P850 -FCST_VAR6_THRESH = >=5, >=10, >=15 +FCST_VAR6_THRESH = ge5, ge10, ge15 OBS_VAR6_NAME = WIND OBS_VAR6_LEVELS = P850 -OBS_VAR6_THRESH = >=5, >=10, >=15 +OBS_VAR6_THRESH = ge5, ge10, ge15 OBS_VAR6_OPTIONS = obs_error = { flag = TRUE; dist_type = NONE; dist_parm = []; inst_bias_scale = 1.0; inst_bias_offset = 0.0; min = NA; max = NA; } FCST_VAR7_NAME = WIND FCST_VAR7_LEVELS = P700 -FCST_VAR7_THRESH = >=10, >=15, >=20 +FCST_VAR7_THRESH = ge10, ge15, ge20 OBS_VAR7_NAME = WIND OBS_VAR7_LEVELS = P700 -OBSVAR7_THRESH = >=10, >=15, >=20 +OBS_VAR7_THRESH = ge10, ge15, ge20 OBS_VAR7_OPTIONS = obs_error = { flag = TRUE; dist_type = NONE; dist_parm = []; inst_bias_scale = 1.0; inst_bias_offset = 0.0; min = NA; max = NA; } FCST_VAR8_NAME = WIND FCST_VAR8_LEVELS = P500 -FCST_VAR8_THRESH = >=15, >=21, >=26 +FCST_VAR8_THRESH = ge15, ge21, ge26 OBS_VAR8_NAME = WIND OBS_VAR8_LEVELS = P500 -OBS_VAR8_THRESH = >=15, >=21, >=26 +OBS_VAR8_THRESH = ge15, ge21, ge26 OBS_VAR8_OPTIONS = obs_error = { flag = TRUE; dist_type = NONE; dist_parm = []; inst_bias_scale = 1.0; inst_bias_offset = 0.0; min = NA; max = NA; } FCST_VAR9_NAME = WIND FCST_VAR9_LEVELS = P250 -FCST_VAR9_THRESH = >=26, >=31, >=36, >=46, >=62 +FCST_VAR9_THRESH = ge26, ge31, ge36, ge46, ge62 OBS_VAR9_NAME = WIND OBS_VAR9_LEVELS = P250 -OBS_VAR9_THRESH = >=26, >=31, >=36, >=46, >=62 +OBS_VAR9_THRESH = ge26, ge31, ge36, ge46, ge62 OBS_VAR9_OPTIONS = obs_error = { flag = TRUE; dist_type = NONE; dist_parm = []; inst_bias_scale = 1.0; inst_bias_offset = 0.0; min = NA; max = NA; } FCST_VAR10_NAME = HGT FCST_VAR10_LEVELS = P500 -FCST_VAR10_THRESH = >=5400, >=5600, >=5880 +FCST_VAR10_THRESH = ge5400, ge5600, ge5880 OBS_VAR10_NAME = HGT OBS_VAR10_LEVELS = P500 -OBS_VAR10_THRESH = >=5400, >=5600, >=5880 +OBS_VAR10_THRESH = ge5400, ge5600, ge5880 OBS_VAR10_OPTIONS = obs_error = { flag = TRUE; dist_type = NONE; dist_parm = []; inst_bias_scale = 1.0; inst_bias_offset = 0.0; min = NA; max = NA; } FCST_VAR11_NAME = CAPE FCST_VAR11_LEVELS = L0 +FCST_VAR11_THRESH = le1000, gt1000&<2500, ge2500&<4000, ge2500 FCST_VAR11_OPTIONS = cnt_thresh = [ >0 ]; -FCST_VAR11_THRESH = <=1000, >1000&&<2500, >=2500&&<4000, >=2500 OBS_VAR11_NAME = CAPE OBS_VAR11_LEVELS = L0-100000 -OBS_VAR11_OPTIONS = cnt_thresh = [ >0 ]; cnt_logic = UNION; -OBS_VAR11_THRESH = <=1000, >1000&&<2500, >=2500&&<4000, >=2500 +OBS_VAR11_THRESH = le1000, gt1000&<2500, ge2500&<4000, ge2500 +OBS_VAR11_OPTIONS = cnt_thresh = [ >0 ]; + cnt_logic = UNION; FCST_VAR12_NAME = HPBL FCST_VAR12_LEVELS = Z0 -FCST_VAR12_THRESH = <500, <1500, >1500 +FCST_VAR12_THRESH = lt500, lt1500, gt1500 OBS_VAR12_NAME = PBL OBS_VAR12_LEVELS = L0 +OBS_VAR12_THRESH = lt500, lt1500, gt1500 OBS_VAR12_OPTIONS = desc = "TKE"; -OBS_VAR12_THRESH = <500, <1500, >1500 [dir] # @@ -337,7 +334,7 @@ OBS_ENSEMBLE_STAT_POINT_INPUT_TEMPLATE = {{obs_input_fn_template}} # OBS_ENSEMBLE_STAT_GRID_INPUT_TEMPLATE = # -# Template for forecast input to EnsembleStat relative to +# Template for forecast input to EnsembleStat relative to # FCST_ENSEMBLE_STAT_INPUT_DIR. # # Note that this can be a comma separated list of ensemble members @@ -348,7 +345,7 @@ FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}} # Template for output from EnsembleStat relative to ENSEMBLE_STAT_OUTPUT_DIR. # ENSEMBLE_STAT_OUTPUT_TEMPLATE = -ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_ADP{FIELDNAME_IN_MET_FILEDIR_NAMES}_{OBTYPE}_{lead?fmt=%H%M%S}L +ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE}_{lead?fmt=%H%M%S}L # # Template for climatology input to EnsembleStat relative to # ENSEMBLE_STAT_CLIMO_MEAN_INPUT_DIR. Not used in this example. diff --git a/parm/metplus/EnsembleStat_APCP01h.conf b/parm/metplus/EnsembleStat_APCP.conf similarity index 90% rename from parm/metplus/EnsembleStat_APCP01h.conf rename to parm/metplus/EnsembleStat_APCP.conf index aa85f5dc51..88e86b4563 100644 --- a/parm/metplus/EnsembleStat_APCP01h.conf +++ b/parm/metplus/EnsembleStat_APCP.conf @@ -70,15 +70,15 @@ ENSEMBLE_STAT_DESC = NA # Name to identify observation data in output. # OBTYPE = {{obtype}} - -# The METplus EnsembleStat logging level -# 0 quiet to 5 loud, Verbosity setting for METplus EnsembleStat output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -#LOG_ENSEMBLE_STAT_VERBOSITY = 2 - +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} +# +# Observation data time window(s). +# OBS_FILE_WINDOW_BEGIN = 0 OBS_FILE_WINDOW_END = 0 - OBS_ENSEMBLE_STAT_WINDOW_BEGIN = 0 OBS_ENSEMBLE_STAT_WINDOW_END = 0 @@ -93,11 +93,9 @@ ENSEMBLE_STAT_ENS_THRESH = 0.05 # ens.vld_thresh value in the MET config file ENSEMBLE_STAT_ENS_VLD_THRESH = 1.0 -FIELDNAME_IN_MET_FILEDIR_NAMES = {{fieldname_in_met_filedir_names}} - # ENSEMBLE_STAT_MET_OBS_ERR_TABLE is not required. -# If the variable is not defined, or the value is not set -# than the MET default is used. +# If the variable is not defined, or the value is not set, then the MET +# default is used. ENSEMBLE_STAT_MET_OBS_ERR_TABLE = {MET_BASE}/table_files/obs_error_table.txt @@ -112,10 +110,8 @@ ENSEMBLE_STAT_CENSOR_THRESH = ENSEMBLE_STAT_CENSOR_VAL = ENSEMBLE_STAT_MESSAGE_TYPE = - ENSEMBLE_STAT_DUPLICATE_FLAG = UNIQUE ENSEMBLE_STAT_SKIP_CONST = TRUE - ENSEMBLE_STAT_OBS_ERROR_FLAG = TRUE ENSEMBLE_STAT_ENS_SSVAR_BIN_SIZE = 1.0 @@ -181,20 +177,17 @@ ENSEMBLE_STAT_ENSEMBLE_FLAG_NMEP = FALSE ENSEMBLE_STAT_ENSEMBLE_FLAG_RANK = FALSE ENSEMBLE_STAT_ENSEMBLE_FLAG_WEIGHT = FALSE # -# Precipitation accumulation interval in 2-digit hours. -# -ACCUM_HH = {{accum_hh}} -# # Forecast and observation variables and levels as specified in the fcst # field dictionary of the MET configuration file. Specify as FCST_VARn_NAME, # FCST_VARn_LEVELS, (optional) FCST_VARn_OPTION and OBS_VARn_NAME, # OBS_VARn_LEVELS, (optional) OBS_VARn_OPTION. # -FCST_VAR1_NAME = {{fieldname_in_fcst_input}} -FCST_VAR1_LEVELS = A{ACCUM_HH} -FCST_VAR1_OPTIONS = ens_ssvar_bin_size = 50.0; ens_phist_bin_size = 0.05; -OBS_VAR1_NAME = {{fieldname_in_obs_input}} -OBS_VAR1_LEVELS = A{ACCUM_HH} +FCST_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +FCST_VAR1_LEVELS = A{{accum_hh}} +FCST_VAR1_OPTIONS = ens_ssvar_bin_size = 50.0; + ens_phist_bin_size = 0.05; +OBS_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +OBS_VAR1_LEVELS = A{{accum_hh}} OBS_VAR1_OPTIONS = {FCST_VAR1_OPTIONS} [dir] @@ -248,7 +241,7 @@ OBS_ENSEMBLE_STAT_POINT_INPUT_TEMPLATE = # OBS_ENSEMBLE_STAT_GRID_INPUT_TEMPLATE = {{obs_input_fn_template}} # -# Template for forecast input to EnsembleStat relative to +# Template for forecast input to EnsembleStat relative to # FCST_ENSEMBLE_STAT_INPUT_DIR. # # Note that this can be a comma separated list of ensemble members @@ -259,7 +252,7 @@ FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}} # Template for output from EnsembleStat relative to ENSEMBLE_STAT_OUTPUT_DIR. # ENSEMBLE_STAT_OUTPUT_TEMPLATE = -ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_{FIELDNAME_IN_MET_FILEDIR_NAMES}_{OBTYPE}_{lead?fmt=%H%M%S}L +ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE}_{lead?fmt=%H%M%S}L # # Template for climatology input to EnsembleStat relative to # ENSEMBLE_STAT_CLIMO_MEAN_INPUT_DIR. Not used in this example. diff --git a/parm/metplus/EnsembleStat_APCPgt01h.conf b/parm/metplus/EnsembleStat_APCPgt01h.conf deleted file mode 100644 index e748642b9b..0000000000 --- a/parm/metplus/EnsembleStat_APCPgt01h.conf +++ /dev/null @@ -1,285 +0,0 @@ -# EnsembleStat METplus Configuration - -[config] - -# List of applications (tools) to run. -PROCESS_LIST = EnsembleStat - -# time looping - options are INIT, VALID, RETRO, and REALTIME -# If set to INIT or RETRO: -# INIT_TIME_FMT, INIT_BEG, INIT_END, and INIT_INCREMENT must also be set -# If set to VALID or REALTIME: -# VALID_TIME_FMT, VALID_BEG, VALID_END, and VALID_INCREMENT must also be set -LOOP_BY = INIT - -# Format of INIT_BEG and INIT_END using % items -# %Y = 4 digit year, %m = 2 digit month, %d = 2 digit day, etc. -# see www.strftime.org for more information -# %Y%m%d%H expands to YYYYMMDDHH -INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match INIT_TIME_FMT -INIT_BEG = {{cdate}} - -# End time for METplus run - must match INIT_TIME_FMT -INIT_END = {{cdate}} - -# Increment between METplus runs (in seconds if no units are specified). -# Must be >= 60 seconds. -INIT_INCREMENT = 3600 - -# List of forecast leads to process for each run time (init or valid) -# In hours if units are not specified -# If unset, defaults to 0 (don't loop through forecast leads) -LEAD_SEQ = {{fhr_list}} -# -# Order of loops to process data - Options are times, processes -# Not relevant if only one item is in the PROCESS_LIST -# times = run all wrappers in the PROCESS_LIST for a single run time, then -# increment the run time and run all wrappers again until all times have -# been evaluated. -# processes = run the first wrapper in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST until all -# wrappers have been run -# -LOOP_ORDER = times -# -# Specify the name of the METplus log file. -# -LOG_METPLUS = {LOG_DIR}/{{metplus_log_fn}} -# -# Specify the location and name of the final METplus conf file. -# -METPLUS_CONF = {ENSEMBLE_STAT_OUTPUT_DIR}/metplus_final.{{metplus_config_fn}} -# -# Location of MET configuration file to pass to EnsembleStat. -# -# References PARM_BASE, which is the location of the parm directory -# corresponding to the ush directory of the run_metplus.py script that -# is called or the value of the environment variable METPLUS_PARM_BASE -# if set. -# -ENSEMBLE_STAT_CONFIG_FILE = {PARM_BASE}/met_config/EnsembleStatConfig_wrapped -# -# Name to identify model (forecast) data in output. -# -MODEL = {{vx_fcst_model_name}} - -ENSEMBLE_STAT_DESC = NA -# -# Name to identify observation data in output. -# -OBTYPE = {{obtype}} -# -# Forecast data description variables. -# -FCST_IS_PROB = false - -FCST_NATIVE_DATA_TYPE = GRIB -OBS_NATIVE_DATA_TYPE = GRIB - -# The METplus EnsembleStat logging level -# 0 quiet to 5 loud, Verbosity setting for METplus EnsembleStat output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -#LOG_ENSEMBLE_STAT_VERBOSITY = 2 - -OBS_FILE_WINDOW_BEGIN = 0 -OBS_FILE_WINDOW_END = 0 - -OBS_ENSEMBLE_STAT_WINDOW_BEGIN = 0 -OBS_ENSEMBLE_STAT_WINDOW_END = 0 - -# number of expected members for ensemble. Should correspond with the -# number of items in the list for FCST_ENSEMBLE_STAT_INPUT_TEMPLATE -ENSEMBLE_STAT_N_MEMBERS = {{num_ens_members}} - -# ens.ens_thresh value in the MET config file -# threshold for ratio of valid files to expected files to allow app to run -ENSEMBLE_STAT_ENS_THRESH = 0.05 - -# ens.vld_thresh value in the MET config file -ENSEMBLE_STAT_ENS_VLD_THRESH = 1.0 - -FIELDNAME_IN_MET_FILEDIR_NAMES = {{fieldname_in_met_filedir_names}} - -# ENSEMBLE_STAT_MET_OBS_ERR_TABLE is not required. -# If the variable is not defined, or the value is not set -# than the MET default is used. -ENSEMBLE_STAT_MET_OBS_ERR_TABLE = {MET_BASE}/table_files/obs_error_table.txt - - -# Used in the MET config file for: regrid to_grid field -ENSEMBLE_STAT_REGRID_TO_GRID = FCST -ENSEMBLE_STAT_REGRID_METHOD = BUDGET -ENSEMBLE_STAT_REGRID_WIDTH = 2 -ENSEMBLE_STAT_REGRID_VLD_THRESH = 0.5 -ENSEMBLE_STAT_REGRID_SHAPE = SQUARE - -ENSEMBLE_STAT_CENSOR_THRESH = -ENSEMBLE_STAT_CENSOR_VAL = - -ENSEMBLE_STAT_MESSAGE_TYPE = - -ENSEMBLE_STAT_DUPLICATE_FLAG = UNIQUE -ENSEMBLE_STAT_SKIP_CONST = TRUE - -ENSEMBLE_STAT_OBS_ERROR_FLAG = TRUE - -ENSEMBLE_STAT_ENS_SSVAR_BIN_SIZE = 1.0 -ENSEMBLE_STAT_ENS_PHIST_BIN_SIZE = 0.05 - -#ENSEMBLE_STAT_CLIMO_MEAN_FILE_NAME = -#ENSEMBLE_STAT_CLIMO_MEAN_FIELD = -#ENSEMBLE_STAT_CLIMO_MEAN_REGRID_METHOD = -#ENSEMBLE_STAT_CLIMO_MEAN_REGRID_WIDTH = -#ENSEMBLE_STAT_CLIMO_MEAN_REGRID_VLD_THRESH = -#ENSEMBLE_STAT_CLIMO_MEAN_REGRID_SHAPE = -#ENSEMBLE_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = -#ENSEMBLE_STAT_CLIMO_MEAN_MATCH_MONTH = -#ENSEMBLE_STAT_CLIMO_MEAN_DAY_INTERVAL = 31 -#ENSEMBLE_STAT_CLIMO_MEAN_HOUR_INTERVAL = 6 - -#ENSEMBLE_STAT_CLIMO_STDEV_FILE_NAME = -#ENSEMBLE_STAT_CLIMO_STDEV_FIELD = -#ENSEMBLE_STAT_CLIMO_STDEV_REGRID_METHOD = -#ENSEMBLE_STAT_CLIMO_STDEV_REGRID_WIDTH = -#ENSEMBLE_STAT_CLIMO_STDEV_REGRID_VLD_THRESH = -#ENSEMBLE_STAT_CLIMO_STDEV_REGRID_SHAPE = -#ENSEMBLE_STAT_CLIMO_STDEV_TIME_INTERP_METHOD = -#ENSEMBLE_STAT_CLIMO_STDEV_MATCH_MONTH = -#ENSEMBLE_STAT_CLIMO_STDEV_DAY_INTERVAL = 31 -#ENSEMBLE_STAT_CLIMO_STDEV_HOUR_INTERVAL = 6 - - -ENSEMBLE_STAT_CLIMO_CDF_BINS = 1 -ENSEMBLE_STAT_CLIMO_CDF_CENTER_BINS = False -ENSEMBLE_STAT_CLIMO_CDF_WRITE_BINS = False - -ENSEMBLE_STAT_MASK_GRID = - -ENSEMBLE_STAT_CI_ALPHA = 0.05 - -ENSEMBLE_STAT_INTERP_FIELD = BOTH -ENSEMBLE_STAT_INTERP_VLD_THRESH = 1.0 -ENSEMBLE_STAT_INTERP_SHAPE = SQUARE -ENSEMBLE_STAT_INTERP_METHOD = NEAREST -ENSEMBLE_STAT_INTERP_WIDTH = 1 - -ENSEMBLE_STAT_OUTPUT_FLAG_ECNT = STAT -ENSEMBLE_STAT_OUTPUT_FLAG_RPS = NONE -ENSEMBLE_STAT_OUTPUT_FLAG_RHIST = STAT -ENSEMBLE_STAT_OUTPUT_FLAG_PHIST = STAT -ENSEMBLE_STAT_OUTPUT_FLAG_ORANK = STAT -ENSEMBLE_STAT_OUTPUT_FLAG_SSVAR = STAT -ENSEMBLE_STAT_OUTPUT_FLAG_RELP = STAT - -ENSEMBLE_STAT_ENSEMBLE_FLAG_LATLON = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_MEAN = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_STDEV = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_MINUS = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_PLUS = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_MIN = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_MAX = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_RANGE = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_VLD_COUNT = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_FREQUENCY = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_NEP = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_NMEP = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_RANK = FALSE -ENSEMBLE_STAT_ENSEMBLE_FLAG_WEIGHT = FALSE -# -# Precipitation accumulation interval in 2-digit hours. -# -ACCUM_HH = {{accum_hh}} -# -# Forecast and observation variables and levels as specified in the fcst -# field dictionary of the MET configuration file. Specify as FCST_VARn_NAME, -# FCST_VARn_LEVELS, (optional) FCST_VARn_OPTION and OBS_VARn_NAME, -# OBS_VARn_LEVELS, (optional) OBS_VARn_OPTION. -# -FCST_VAR1_NAME = {{fieldname_in_met_output}} -FCST_VAR1_LEVELS = A{ACCUM_HH} -FCST_VAR1_OPTIONS = ens_ssvar_bin_size = 50.0; ens_phist_bin_size = 0.05; -OBS_VAR1_NAME = {{fieldname_in_met_output}} -OBS_VAR1_LEVELS = A{ACCUM_HH} -OBS_VAR1_OPTIONS = {FCST_VAR1_OPTIONS} - -[dir] -# -# OUTPUT_BASE apparently has to be set to something; it cannot be left -# to its default value. But it is not explicitly used elsewhere in this -# configuration file. -# -OUTPUT_BASE = {{output_base}} -# -# Point observation input directory for EnsembleStat. -# -OBS_ENSEMBLE_STAT_POINT_INPUT_DIR = -# -# Grid observation input directory for EnsembleStat. -# -OBS_ENSEMBLE_STAT_GRID_INPUT_DIR = {{obs_input_dir}} -# -# Forecast model input directory for EnsembleStat. -# -FCST_ENSEMBLE_STAT_INPUT_DIR = {{fcst_input_dir}} -# -# Directory containing climatology mean input to EnsembleStat. Not used -# in this example -# -ENSEMBLE_STAT_CLIMO_MEAN_INPUT_DIR = -# -# Directory containing climatology mean input to EnsembleStat. Not used -# in this example. -# -ENSEMBLE_STAT_CLIMO_STDEV_INPUT_DIR = -# -# Output directory for EnsembleStat. -# -ENSEMBLE_STAT_OUTPUT_DIR = {{output_dir}} -# -# Directory for staging data. -# -STAGING_DIR = {{staging_dir}} - -# End of [dir] section and start of [filename_templates] section. -[filename_templates] -# -# Template for point observation input to EnsembleStat relative to -# OBS_ENSEMBLE_STAT_POINT_INPUT_DIR. -# -OBS_ENSEMBLE_STAT_POINT_INPUT_TEMPLATE = -# -# Template for gridded observation input to EnsembleStat relative to -# OBS_ENSEMBLE_STAT_GRID_INPUT_DIR. -# -OBS_ENSEMBLE_STAT_GRID_INPUT_TEMPLATE = {{obs_input_fn_template}} -# -# Template for forecast input to EnsembleStat relative to -# FCST_ENSEMBLE_STAT_INPUT_DIR. -# -# Note that this can be a comma separated list of ensemble members -# or a single line, - filename wildcard characters may be used, ? or *. -# -FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}} -# -# Template for output from EnsembleStat relative to ENSEMBLE_STAT_OUTPUT_DIR. -# -ENSEMBLE_STAT_OUTPUT_TEMPLATE = -ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_{FIELDNAME_IN_MET_FILEDIR_NAMES}_{OBTYPE}_{lead?fmt=%H%M%S}L - -# -# Template for climatology input to EnsembleStat relative to -# ENSEMBLE_STAT_CLIMO_MEAN_INPUT_DIR. Not used in this example. -# -ENSEMBLE_STAT_CLIMO_MEAN_INPUT_TEMPLATE = -# -# Template for climatology input to EnsembleStat relative to -# ENSEMBLE_STAT_CLIMO_STDEV_INPUT_DIR. Not used in this example. -# -ENSEMBLE_STAT_CLIMO_STDEV_INPUT_TEMPLATE = -# -# Variable used to specify one or more verification mask files for -# EnsembleStat. Not used for this example. -# -ENSEMBLE_STAT_VERIFICATION_MASK_TEMPLATE = {MET_INSTALL_DIR}/share/met/poly/CONUS.poly diff --git a/parm/metplus/EnsembleStat_ASNOW.conf b/parm/metplus/EnsembleStat_ASNOW.conf index f472a109ff..9d12890e7f 100644 --- a/parm/metplus/EnsembleStat_ASNOW.conf +++ b/parm/metplus/EnsembleStat_ASNOW.conf @@ -70,15 +70,15 @@ ENSEMBLE_STAT_DESC = NA # Name to identify observation data in output. # OBTYPE = {{obtype}} - -# The METplus EnsembleStat logging level -# 0 quiet to 5 loud, Verbosity setting for METplus EnsembleStat output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -#LOG_ENSEMBLE_STAT_VERBOSITY = 2 - +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} +# +# Observation data time window(s). +# OBS_FILE_WINDOW_BEGIN = 0 OBS_FILE_WINDOW_END = 0 - OBS_ENSEMBLE_STAT_WINDOW_BEGIN = 0 OBS_ENSEMBLE_STAT_WINDOW_END = 0 @@ -93,11 +93,9 @@ ENSEMBLE_STAT_ENS_THRESH = 0.05 # ens.vld_thresh value in the MET config file ENSEMBLE_STAT_ENS_VLD_THRESH = 1.0 -FIELDNAME_IN_MET_FILEDIR_NAMES = {{fieldname_in_met_filedir_names}} - # ENSEMBLE_STAT_MET_OBS_ERR_TABLE is not required. -# If the variable is not defined, or the value is not set -# than the MET default is used. +# If the variable is not defined, or the value is not set, then the MET +# default is used. ENSEMBLE_STAT_MET_OBS_ERR_TABLE = {MET_BASE}/table_files/obs_error_table.txt @@ -112,10 +110,8 @@ ENSEMBLE_STAT_CENSOR_THRESH = ENSEMBLE_STAT_CENSOR_VAL = ENSEMBLE_STAT_MESSAGE_TYPE = - ENSEMBLE_STAT_DUPLICATE_FLAG = UNIQUE ENSEMBLE_STAT_SKIP_CONST = TRUE - ENSEMBLE_STAT_OBS_ERROR_FLAG = TRUE ENSEMBLE_STAT_ENS_SSVAR_BIN_SIZE = 1.0 @@ -181,21 +177,19 @@ ENSEMBLE_STAT_ENSEMBLE_FLAG_NMEP = FALSE ENSEMBLE_STAT_ENSEMBLE_FLAG_RANK = FALSE ENSEMBLE_STAT_ENSEMBLE_FLAG_WEIGHT = FALSE # -# Precipitation accumulation interval in 2-digit hours. -# -ACCUM_HH = {{accum_hh}} -# # Forecast and observation variables and levels as specified in the fcst # field dictionary of the MET configuration file. Specify as FCST_VARn_NAME, # FCST_VARn_LEVELS, (optional) FCST_VARn_OPTION and OBS_VARn_NAME, # OBS_VARn_LEVELS, (optional) OBS_VARn_OPTION. # -FCST_VAR1_NAME = {{fieldname_in_met_output}} -FCST_VAR1_LEVELS = A{ACCUM_HH} -FCST_VAR1_OPTIONS = ens_ssvar_bin_size = 50.0; ens_phist_bin_size = 0.05; +FCST_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +FCST_VAR1_LEVELS = A{{accum_hh}} +FCST_VAR1_OPTIONS = ens_ssvar_bin_size = 50.0; + ens_phist_bin_size = 0.05; OBS_VAR1_NAME = {{fieldname_in_obs_input}} -OBS_VAR1_LEVELS = A{ACCUM_HH} -OBS_VAR1_OPTIONS = {FCST_VAR1_OPTIONS}; convert(x) = 100.0*x; +OBS_VAR1_LEVELS = A{{accum_hh}} +OBS_VAR1_OPTIONS = {FCST_VAR1_OPTIONS}; + convert(x) = 100.0*x; [dir] # @@ -248,7 +242,7 @@ OBS_ENSEMBLE_STAT_POINT_INPUT_TEMPLATE = # OBS_ENSEMBLE_STAT_GRID_INPUT_TEMPLATE = {{obs_input_fn_template}} # -# Template for forecast input to EnsembleStat relative to +# Template for forecast input to EnsembleStat relative to # FCST_ENSEMBLE_STAT_INPUT_DIR. # # Note that this can be a comma separated list of ensemble members @@ -259,7 +253,7 @@ FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}} # Template for output from EnsembleStat relative to ENSEMBLE_STAT_OUTPUT_DIR. # ENSEMBLE_STAT_OUTPUT_TEMPLATE = -ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_{FIELDNAME_IN_MET_FILEDIR_NAMES}{{accum_hh}}h_{OBTYPE}_{lead?fmt=%H%M%S}L +ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE}_{lead?fmt=%H%M%S}L # # Template for climatology input to EnsembleStat relative to # ENSEMBLE_STAT_CLIMO_MEAN_INPUT_DIR. Not used in this example. diff --git a/parm/metplus/EnsembleStat_REFC.conf b/parm/metplus/EnsembleStat_REFC.conf index d6fe4874c8..332d665bb9 100644 --- a/parm/metplus/EnsembleStat_REFC.conf +++ b/parm/metplus/EnsembleStat_REFC.conf @@ -70,15 +70,15 @@ ENSEMBLE_STAT_DESC = NA # Name to identify observation data in output. # OBTYPE = {{obtype}} - -# The METplus EnsembleStat logging level -# 0 quiet to 5 loud, Verbosity setting for METplus EnsembleStat output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -#LOG_ENSEMBLE_STAT_VERBOSITY = 2 - +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} +# +# Observation data time window(s). +# OBS_FILE_WINDOW_BEGIN = -300 OBS_FILE_WINDOW_END = 300 - OBS_ENSEMBLE_STAT_WINDOW_BEGIN = 0 OBS_ENSEMBLE_STAT_WINDOW_END = 0 @@ -93,11 +93,9 @@ ENSEMBLE_STAT_ENS_THRESH = 0.05 # ens.vld_thresh value in the MET config file ENSEMBLE_STAT_ENS_VLD_THRESH = 1.0 -FIELDNAME_IN_MET_FILEDIR_NAMES = {{fieldname_in_met_filedir_names}} - # ENSEMBLE_STAT_MET_OBS_ERR_TABLE is not required. -# If the variable is not defined, or the value is not set -# than the MET default is used. +# If the variable is not defined, or the value is not set, then the MET +# default is used. ENSEMBLE_STAT_MET_OBS_ERR_TABLE = @@ -114,10 +112,8 @@ ENSEMBLE_STAT_CENSOR_VAL = # Should this parameter be set to something other than ADPSFC (maybe # just leave empty) since we are not verifying surface fields? ENSEMBLE_STAT_MESSAGE_TYPE = ADPSFC - ENSEMBLE_STAT_DUPLICATE_FLAG = NONE ENSEMBLE_STAT_SKIP_CONST = TRUE - ENSEMBLE_STAT_OBS_ERROR_FLAG = FALSE ENSEMBLE_STAT_ENS_SSVAR_BIN_SIZE = 1.0 @@ -190,10 +186,16 @@ ENSEMBLE_STAT_ENSEMBLE_FLAG_WEIGHT = FALSE # FCST_VAR1_NAME = {{fieldname_in_fcst_input}} FCST_VAR1_LEVELS = L0 -FCST_VAR1_OPTIONS = ens_ssvar_bin_size = 50.0; ens_phist_bin_size = 0.05; +FCST_VAR1_OPTIONS = ens_ssvar_bin_size = 50.0; + ens_phist_bin_size = 0.05; OBS_VAR1_NAME = {{fieldname_in_obs_input}} OBS_VAR1_LEVELS = Z500 -OBS_VAR1_OPTIONS = censor_thresh = lt-20; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; ens_ssvar_bin_size = 50.0; ens_phist_bin_size = 0.05; +OBS_VAR1_OPTIONS = censor_thresh = lt-20; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + ens_ssvar_bin_size = 50.0; + ens_phist_bin_size = 0.05; [dir] # @@ -246,7 +248,7 @@ OBS_ENSEMBLE_STAT_POINT_INPUT_TEMPLATE = # OBS_ENSEMBLE_STAT_GRID_INPUT_TEMPLATE = {{obs_input_fn_template}} # -# Template for forecast input to EnsembleStat relative to +# Template for forecast input to EnsembleStat relative to # FCST_ENSEMBLE_STAT_INPUT_DIR. # # Note that this can be a comma separated list of ensemble members @@ -257,7 +259,7 @@ FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}} # Template for output from EnsembleStat relative to ENSEMBLE_STAT_OUTPUT_DIR. # ENSEMBLE_STAT_OUTPUT_TEMPLATE = -ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_{FIELDNAME_IN_MET_FILEDIR_NAMES}_{OBTYPE}_{lead?fmt=%H%M%S}L +ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE}_{lead?fmt=%H%M%S}L # # Template for climatology input to EnsembleStat relative to # ENSEMBLE_STAT_CLIMO_MEAN_INPUT_DIR. Not used in this example. diff --git a/parm/metplus/EnsembleStat_RETOP.conf b/parm/metplus/EnsembleStat_RETOP.conf index 55ac5fc8b1..2066d2aaba 100644 --- a/parm/metplus/EnsembleStat_RETOP.conf +++ b/parm/metplus/EnsembleStat_RETOP.conf @@ -70,15 +70,15 @@ ENSEMBLE_STAT_DESC = NA # Name to identify observation data in output. # OBTYPE = {{obtype}} - -# The METplus EnsembleStat logging level -# 0 quiet to 5 loud, Verbosity setting for METplus EnsembleStat output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -#LOG_ENSEMBLE_STAT_VERBOSITY = 2 - +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} +# +# Observation data time window(s). +# OBS_FILE_WINDOW_BEGIN = -300 OBS_FILE_WINDOW_END = 300 - OBS_ENSEMBLE_STAT_WINDOW_BEGIN = 0 OBS_ENSEMBLE_STAT_WINDOW_END = 0 @@ -93,11 +93,9 @@ ENSEMBLE_STAT_ENS_THRESH = 0.05 # ens.vld_thresh value in the MET config file ENSEMBLE_STAT_ENS_VLD_THRESH = 1.0 -FIELDNAME_IN_MET_FILEDIR_NAMES = {{fieldname_in_met_filedir_names}} - # ENSEMBLE_STAT_MET_OBS_ERR_TABLE is not required. -# If the variable is not defined, or the value is not set -# than the MET default is used. +# If the variable is not defined, or the value is not set, then the MET +# default is used. ENSEMBLE_STAT_MET_OBS_ERR_TABLE = @@ -114,10 +112,8 @@ ENSEMBLE_STAT_CENSOR_VAL = # Should this parameter be set to something other than ADPSFC (maybe # just leave empty) since we are not verifying surface fields? ENSEMBLE_STAT_MESSAGE_TYPE = ADPSFC - ENSEMBLE_STAT_DUPLICATE_FLAG = NONE ENSEMBLE_STAT_SKIP_CONST = TRUE - ENSEMBLE_STAT_OBS_ERROR_FLAG = FALSE ENSEMBLE_STAT_ENS_SSVAR_BIN_SIZE = 1.0 @@ -190,12 +186,18 @@ ENSEMBLE_STAT_ENSEMBLE_FLAG_WEIGHT = FALSE # FCST_VAR1_NAME = {{fieldname_in_fcst_input}} FCST_VAR1_LEVELS = L0 -# convert from meters to kilofeet: M_to_KFT(x) = x * 3.28084 * 0.001; -FCST_VAR1_OPTIONS = convert(x) = x * 3.28084 * 0.001; ens_ssvar_bin_size = 50.0; ens_phist_bin_size = 0.05; +FCST_VAR1_OPTIONS = convert(x) = x * 3.28084 * 0.001; ;; Convert from meters to kilofeet. + ens_ssvar_bin_size = 50.0; + ens_phist_bin_size = 0.05; OBS_VAR1_NAME = {{fieldname_in_obs_input}} OBS_VAR1_LEVELS = Z500 -# convert from kilometers to kilofeet: KM_to_KFT(x) = x * 3280.84 * 0.001; -OBS_VAR1_OPTIONS = censor_thresh = lt-20; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; convert(x) = x * 3280.84 * 0.001; ens_ssvar_bin_size = 50.0; ens_phist_bin_size = 0.05; +OBS_VAR1_OPTIONS = censor_thresh = lt-20; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + convert(x) = x * 3280.84 * 0.001; ;; Convert from kilometers to kilofeet. + ens_ssvar_bin_size = 50.0; + ens_phist_bin_size = 0.05; [dir] # @@ -248,7 +250,7 @@ OBS_ENSEMBLE_STAT_POINT_INPUT_TEMPLATE = # OBS_ENSEMBLE_STAT_GRID_INPUT_TEMPLATE = {{obs_input_fn_template}} # -# Template for forecast input to EnsembleStat relative to +# Template for forecast input to EnsembleStat relative to # FCST_ENSEMBLE_STAT_INPUT_DIR. # # Note that this can be a comma separated list of ensemble members @@ -259,7 +261,7 @@ FCST_ENSEMBLE_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}} # Template for output from EnsembleStat relative to ENSEMBLE_STAT_OUTPUT_DIR. # ENSEMBLE_STAT_OUTPUT_TEMPLATE = -ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_{FIELDNAME_IN_MET_FILEDIR_NAMES}_{OBTYPE}_{lead?fmt=%H%M%S}L +ENSEMBLE_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE}_{lead?fmt=%H%M%S}L # # Template for climatology input to EnsembleStat relative to # ENSEMBLE_STAT_CLIMO_MEAN_INPUT_DIR. Not used in this example. diff --git a/parm/metplus/GenEnsProd_SFC.conf b/parm/metplus/GenEnsProd_ADPSFC.conf similarity index 84% rename from parm/metplus/GenEnsProd_SFC.conf rename to parm/metplus/GenEnsProd_ADPSFC.conf index 47b49b9adb..cb253f575b 100644 --- a/parm/metplus/GenEnsProd_SFC.conf +++ b/parm/metplus/GenEnsProd_ADPSFC.conf @@ -61,11 +61,10 @@ GEN_ENS_PROD_DESC = NA # Name to identify observation data in output. # OBTYPE = {{obtype}} - -# The METplus GenEnsProd logging level -# 0 quiet to 5 loud, Verbosity setting for MET gen_ens_prod output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -#LOG_GEN_ENS_PROD_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} ### # File I/O @@ -76,7 +75,7 @@ OBTYPE = {{obtype}} # GEN_ENS_PROD_INPUT_DIR = {{fcst_input_dir}} # -# Template for forecast input to GenEnsProd relative to +# Template for forecast input to GenEnsProd relative to # GEN_ENS_PROD_INPUT_DIR. # # Note that this can be a comma separated list of ensemble members @@ -100,7 +99,7 @@ GEN_ENS_PROD_OUTPUT_DIR = {{output_dir}} # # Template for output from GenEnsProd relative to GEN_ENS_PROD_OUTPUT_DIR. # -GEN_ENS_PROD_OUTPUT_TEMPLATE = gen_ens_prod_{MODEL}_ADP{{fieldname_in_met_filedir_names}}_{OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d_%H%M%S}V.nc +GEN_ENS_PROD_OUTPUT_TEMPLATE = gen_ens_prod_{MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d_%H%M%S}V.nc # # Directory for staging data. # @@ -113,38 +112,42 @@ GEN_ENS_PROD_N_MEMBERS = {{num_ens_members}} ### # Field Info ### - -# Ensemble Variables and levels as specified in the ens field dictionary +# +# Ensemble variables and levels as specified in the ens field dictionary # of the MET configuration file. Specify as ENS_VARn_NAME, ENS_VARn_LEVELS, # (optional) ENS_VARn_OPTION +# ENS_VAR1_NAME = TMP ENS_VAR1_LEVELS = Z02 -ENS_VAR1_THRESH = >=268, >=273, >=278, >=293, >=298, >=303 +ENS_VAR1_THRESH = ge268, ge273, ge278, ge293, ge298, ge303 ENS_VAR2_NAME = DPT ENS_VAR2_LEVELS = Z2 -ENS_VAR2_THRESH = >=263, >=268, >=273, >=288, >=293, >=298 +ENS_VAR2_THRESH = ge263, ge268, ge273, ge288, ge293, ge298 ENS_VAR3_NAME = WIND ENS_VAR3_LEVELS = Z10 -ENS_VAR3_THRESH = >=5, >=10, >=15 -ENS_VAR3_OPTIONS = GRIB2_pdt = 0; ;; derive instantaneous 10-m wind from U/V components, overriding max 10-m wind +ENS_VAR3_THRESH = ge5, ge10, ge15 +ENS_VAR3_OPTIONS = GRIB2_pdt = 0; ;; Derive instantaneous 10-m wind from U/V components, overriding max 10-m wind. ENS_VAR4_NAME = TCDC ENS_VAR4_LEVELS = L0 -ENS_VAR4_THRESH = <25, >75 -ENS_VAR4_OPTIONS = GRIB_lvl_typ = 200; GRIB2_ipdtmpl_index=[27]; GRIB2_ipdtmpl_val=[255]; interp = { type = [ { method = NEAREST; width = 1; } ]; } +ENS_VAR4_THRESH = lt25, gt75 +ENS_VAR4_OPTIONS = GRIB_lvl_typ = 200; + GRIB2_ipdtmpl_index=[27]; + GRIB2_ipdtmpl_val=[255]; + interp = { type = [ { method = NEAREST; width = 1; } ]; } ENS_VAR5_NAME = VIS ENS_VAR5_LEVELS = L0 -ENS_VAR5_THRESH = <1609, <8045, >=8045 +ENS_VAR5_THRESH = lt1609, lt8045, ge8045 ENS_VAR5_OPTIONS = interp = { type = [ { method = NEAREST; width = 1; } ]; } ENS_VAR6_NAME = HGT ENS_VAR6_LEVELS = L0 -ENS_VAR6_THRESH = <152, <1520, >=914 -ENS_VAR6_OPTIONS = GRIB_lvl_typ = 215; desc = "CEILING"; - +ENS_VAR6_THRESH = lt152, lt1520, ge914 +ENS_VAR6_OPTIONS = GRIB_lvl_typ = 215; + desc = "CEILING"; ### # GenEnsProd diff --git a/parm/metplus/GenEnsProd_UPA.conf b/parm/metplus/GenEnsProd_ADPUPA.conf similarity index 85% rename from parm/metplus/GenEnsProd_UPA.conf rename to parm/metplus/GenEnsProd_ADPUPA.conf index ee1ceb42ca..863427752f 100644 --- a/parm/metplus/GenEnsProd_UPA.conf +++ b/parm/metplus/GenEnsProd_ADPUPA.conf @@ -61,11 +61,10 @@ GEN_ENS_PROD_DESC = NA # Name to identify observation data in output. # OBTYPE = {{obtype}} - -# The METplus GenEnsProd logging level -# 0 quiet to 5 loud, Verbosity setting for MET gen_ens_prod output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -#LOG_GEN_ENS_PROD_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} ### # File I/O @@ -76,7 +75,7 @@ OBTYPE = {{obtype}} # GEN_ENS_PROD_INPUT_DIR = {{fcst_input_dir}} # -# Template for forecast input to GenEnsProd relative to +# Template for forecast input to GenEnsProd relative to # GEN_ENS_PROD_INPUT_DIR. # # Note that this can be a comma separated list of ensemble members @@ -100,7 +99,7 @@ GEN_ENS_PROD_OUTPUT_DIR = {{output_dir}} # # Template for output from GenEnsProd relative to GEN_ENS_PROD_OUTPUT_DIR. # -GEN_ENS_PROD_OUTPUT_TEMPLATE = gen_ens_prod_{MODEL}_ADP{{fieldname_in_met_filedir_names}}_{OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d_%H%M%S}V.nc +GEN_ENS_PROD_OUTPUT_TEMPLATE = gen_ens_prod_{MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d_%H%M%S}V.nc # # Directory for staging data. # @@ -113,58 +112,59 @@ GEN_ENS_PROD_N_MEMBERS = {{num_ens_members}} ### # Field Info ### - -# Ensemble Variables and levels as specified in the ens field dictionary +# +# Ensemble variables and levels as specified in the ens field dictionary # of the MET configuration file. Specify as ENS_VARn_NAME, ENS_VARn_LEVELS, # (optional) ENS_VARn_OPTION +# ENS_VAR1_NAME = TMP ENS_VAR1_LEVELS = P850 -ENS_VAR1_THRESH = >=288, >=293, >=298 +ENS_VAR1_THRESH = ge288, ge293, ge298 ENS_VAR2_NAME = TMP ENS_VAR2_LEVELS = P700 -ENS_VAR2_THRESH = >=273, >=278, >=283 +ENS_VAR2_THRESH = ge273, ge278, ge283 ENS_VAR3_NAME = TMP ENS_VAR3_LEVELS = P500 -ENS_VAR3_THRESH = >=258, >=263, >=268 +ENS_VAR3_THRESH = ge258, ge263, ge268 ENS_VAR4_NAME = DPT ENS_VAR4_LEVELS = P850 -ENS_VAR4_THRESH = >=273, >=278, >=283 +ENS_VAR4_THRESH = ge273, ge278, ge283 ENS_VAR5_NAME = DPT ENS_VAR5_LEVELS = P700 -ENS_VAR5_THRESH = >=263, >=268, >=273 +ENS_VAR5_THRESH = ge263, ge268, ge273 ENS_VAR6_NAME = WIND ENS_VAR6_LEVELS = P850 -ENS_VAR6_THRESH = >=5, >=10, >=15 +ENS_VAR6_THRESH = ge5, ge10, ge15 ENS_VAR7_NAME = WIND ENS_VAR7_LEVELS = P700 -ENS_VAR7_THRESH = >=10, >=15, >=20 +ENS_VAR7_THRESH = ge10, ge15, ge20 ENS_VAR8_NAME = WIND ENS_VAR8_LEVELS = P500 -ENS_VAR8_THRESH = >=15, >=21, >=26 +ENS_VAR8_THRESH = ge15, ge21, ge26 ENS_VAR9_NAME = WIND ENS_VAR9_LEVELS = P250 -ENS_VAR9_THRESH = >=26, >=31, >=36, >=46, >=62 +ENS_VAR9_THRESH = ge26, ge31, ge36, ge46, ge62 ENS_VAR10_NAME = HGT ENS_VAR10_LEVELS = P500 -ENS_VAR10_THRESH = >=5400, >=5600, >=5880 +ENS_VAR10_THRESH = ge5400, ge5600, ge5880 ENS_VAR11_NAME = CAPE ENS_VAR11_LEVELS = L0 +ENS_VAR11_THRESH = le1000, gt1000&<2500, gt2500&<4000, gt2500 ENS_VAR11_OPTIONS = cnt_thresh = [ >0 ]; -ENS_VAR11_THRESH = <=1000, >1000&&<2500, >2500&&<4000, >2500 ENS_VAR12_NAME = HPBL ENS_VAR12_LEVELS = Z0 -ENS_VAR12_THRESH = <500, <1500, >1500 +ENS_VAR12_THRESH = lt500, lt1500, gt1500 ### # GenEnsProd diff --git a/parm/metplus/GenEnsProd_APCP01h.conf b/parm/metplus/GenEnsProd_APCP.conf similarity index 93% rename from parm/metplus/GenEnsProd_APCP01h.conf rename to parm/metplus/GenEnsProd_APCP.conf index d60c8d3ce0..0d05843a87 100644 --- a/parm/metplus/GenEnsProd_APCP01h.conf +++ b/parm/metplus/GenEnsProd_APCP.conf @@ -61,11 +61,10 @@ GEN_ENS_PROD_DESC = NA # Name to identify observation data in output. # OBTYPE = {{obtype}} - -# The METplus GenEnsProd logging level -# 0 quiet to 5 loud, Verbosity setting for MET gen_ens_prod output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -#LOG_GEN_ENS_PROD_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} ### # File I/O @@ -76,7 +75,7 @@ OBTYPE = {{obtype}} # GEN_ENS_PROD_INPUT_DIR = {{fcst_input_dir}} # -# Template for forecast input to GenEnsProd relative to +# Template for forecast input to GenEnsProd relative to # GEN_ENS_PROD_INPUT_DIR. # # Note that this can be a comma separated list of ensemble members @@ -113,11 +112,12 @@ GEN_ENS_PROD_N_MEMBERS = {{num_ens_members}} ### # Field Info ### - -# Ensemble Variables and levels as specified in the ens field dictionary +# +# Ensemble variables and levels as specified in the ens field dictionary # of the MET configuration file. Specify as ENS_VARn_NAME, ENS_VARn_LEVELS, # (optional) ENS_VARn_OPTION -ENS_VAR1_NAME = {{fieldname_in_fcst_input}} +# +ENS_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}} ENS_VAR1_LEVELS = A{{accum_hh}} ENS_VAR1_THRESH = {{field_thresholds}} diff --git a/parm/metplus/GenEnsProd_APCPgt01h.conf b/parm/metplus/GenEnsProd_APCPgt01h.conf deleted file mode 100644 index 08886087d9..0000000000 --- a/parm/metplus/GenEnsProd_APCPgt01h.conf +++ /dev/null @@ -1,204 +0,0 @@ -# GenEnsProd METplus Configuration - -[config] - -# List of applications (tools) to run. -PROCESS_LIST = GenEnsProd - -# time looping - options are INIT, VALID, RETRO, and REALTIME -# If set to INIT or RETRO: -# INIT_TIME_FMT, INIT_BEG, INIT_END, and INIT_INCREMENT must also be set -# If set to VALID or REALTIME: -# VALID_TIME_FMT, VALID_BEG, VALID_END, and VALID_INCREMENT must also be set -LOOP_BY = INIT - -# Format of INIT_BEG and INIT_END using % items -# %Y = 4 digit year, %m = 2 digit month, %d = 2 digit day, etc. -# see www.strftime.org for more information -# %Y%m%d%H expands to YYYYMMDDHH -INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match INIT_TIME_FMT -INIT_BEG = {{cdate}} - -# End time for METplus run - must match INIT_TIME_FMT -INIT_END = {{cdate}} - -# Increment between METplus runs (in seconds if no units are specified). -# Must be >= 60 seconds. -INIT_INCREMENT = 3600 - -# List of forecast leads to process for each run time (init or valid) -# In hours if units are not specified -# If unset, defaults to 0 (don't loop through forecast leads) -LEAD_SEQ = {{fhr_list}} -# -# Order of loops to process data - Options are times, processes -# Not relevant if only one item is in the PROCESS_LIST -# times = run all wrappers in the PROCESS_LIST for a single run time, then -# increment the run time and run all wrappers again until all times have -# been evaluated. -# processes = run the first wrapper in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST until all -# wrappers have been run -# -LOOP_ORDER = times -# -# Specify the name of the METplus log file. -# -LOG_METPLUS = {LOG_DIR}/{{metplus_log_fn}} -# -# Specify the location and name of the final METplus conf file. -# -METPLUS_CONF = {GEN_ENS_PROD_OUTPUT_DIR}/metplus_final.{{metplus_config_fn}} -# -# Name to identify model (forecast) data in output. -# -MODEL = {{vx_fcst_model_name}} - -GEN_ENS_PROD_DESC = NA -# -# Name to identify observation data in output. -# -OBTYPE = {{obtype}} - -# The METplus GenEnsProd logging level -# 0 quiet to 5 loud, Verbosity setting for MET gen_ens_prod output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -#LOG_GEN_ENS_PROD_VERBOSITY = 2 - -### -# File I/O -### - -# -# Forecast model input directory for GenEnsProd. -# -GEN_ENS_PROD_INPUT_DIR = {{fcst_input_dir}} -# -# Template for forecast input to GenEnsProd relative to -# GEN_ENS_PROD_INPUT_DIR. -# -# Note that this can be a comma separated list of ensemble members -# or a single line, - filename wildcard characters may be used, ? or *. -# -GEN_ENS_PROD_INPUT_TEMPLATE = {{fcst_input_fn_template}} - -# Forecast data description variables -FCST_IS_PROB = false - -# GEN_ENS_PROD_CTRL_INPUT_DIR = {INPUT_BASE} -# GEN_ENS_PROD_CTRL_INPUT_TEMPLATE = -# {init?fmt=%Y%m%d%H}/mem1/postprd/{ENV[NET]}.t{init?fmt=%H}z.bgdawpf{lead?fmt=%HHH}.tm{init?fmt=%H}.grib2 - -# -# Output directory for GenEnsProd. -# -# OUTPUT_BASE apparently has to be set to something; it cannot be left -# to its default value. But it is not explicitly used elsewhere in this -# configuration file. -# -OUTPUT_BASE = {{output_base}} -GEN_ENS_PROD_OUTPUT_DIR = {{output_dir}} -# -# Template for output from GenEnsProd relative to GEN_ENS_PROD_OUTPUT_DIR. -# -GEN_ENS_PROD_OUTPUT_TEMPLATE = gen_ens_prod_{MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d_%H%M%S}V.nc -# -# Directory for staging data. -# -STAGING_DIR = {{staging_dir}} -# -# There are n ensembles but 1 is used as control, so specify n-1 members. -# -GEN_ENS_PROD_N_MEMBERS = {{num_ens_members}} - -### -# Field Info -### - -# Ensemble Variables and levels as specified in the ens field dictionary -# of the MET configuration file. Specify as ENS_VARn_NAME, ENS_VARn_LEVELS, -# (optional) ENS_VARn_OPTION -# Note: -# For APCP variables with accumulation periods greater than 1 hour (e.g. -# 03h, 06h, 24h), ENS_VAR1_NAME in the corresponding METplus configuration -# file specifies the name of the field in the NetCDF file(s) generated by -# MET's pcp_combine tool. This tool reads in the grib2 file(s) containing -# 1 hour accumulation data and outputs NetCDF file(s) with the appropriate -# > 1 hour accumulation. These output NetCDF files name their arrays as -# specified by the environment variable fieldname_in_met_output. Thus, -# that is the value we set ENS_VAR1_NAME to here, not to the name of the -# variable in the grib2 file. -ENS_VAR1_NAME = {{fieldname_in_met_output}} -ENS_VAR1_LEVELS = A{{accum_hh}} -ENS_VAR1_THRESH = {{field_thresholds}} - -### -# GenEnsProd -### - -# GEN_ENS_PROD_REGRID_TO_GRID = NONE -# GEN_ENS_PROD_REGRID_METHOD = NEAREST -# GEN_ENS_PROD_REGRID_WIDTH = 1 -# GEN_ENS_PROD_REGRID_VLD_THRESH = 0.5 -# GEN_ENS_PROD_REGRID_SHAPE = SQUARE - -# GEN_ENS_PROD_CENSOR_THRESH = -# GEN_ENS_PROD_CENSOR_VAL = -# GEN_ENS_PROD_CAT_THRESH = -# GEN_ENS_PROD_NC_VAR_STR = - -# Threshold for ratio of valid files to expected files to allow app to run -GEN_ENS_PROD_ENS_THRESH = 0.05 - -GEN_ENS_PROD_NBRHD_PROB_WIDTH = 27 -GEN_ENS_PROD_NBRHD_PROB_SHAPE = CIRCLE -GEN_ENS_PROD_NBRHD_PROB_VLD_THRESH = 0.0 - -# GEN_ENS_PROD_NMEP_SMOOTH_VLD_THRESH = 0.0 -# GEN_ENS_PROD_NMEP_SMOOTH_SHAPE = CIRCLE -# GEN_ENS_PROD_NMEP_SMOOTH_GAUSSIAN_DX = 81.27 -# GEN_ENS_PROD_NMEP_SMOOTH_GAUSSIAN_RADIUS = 120 -# GEN_ENS_PROD_NMEP_SMOOTH_METHOD = GAUSSIAN -# GEN_ENS_PROD_NMEP_SMOOTH_WIDTH = 1 - -# GEN_ENS_PROD_CLIMO_MEAN_FILE_NAME = -# GEN_ENS_PROD_CLIMO_MEAN_FIELD = -# GEN_ENS_PROD_CLIMO_MEAN_REGRID_METHOD = -# GEN_ENS_PROD_CLIMO_MEAN_REGRID_WIDTH = -# GEN_ENS_PROD_CLIMO_MEAN_REGRID_VLD_THRESH = -# GEN_ENS_PROD_CLIMO_MEAN_REGRID_SHAPE = -# GEN_ENS_PROD_CLIMO_MEAN_TIME_INTERP_METHOD = -# GEN_ENS_PROD_CLIMO_MEAN_MATCH_MONTH = -# GEN_ENS_PROD_CLIMO_MEAN_DAY_INTERVAL = 31 -# GEN_ENS_PROD_CLIMO_MEAN_HOUR_INTERVAL = 6 - -# GEN_ENS_PROD_CLIMO_STDEV_FILE_NAME = -# GEN_ENS_PROD_CLIMO_STDEV_FIELD = -# GEN_ENS_PROD_CLIMO_STDEV_REGRID_METHOD = -# GEN_ENS_PROD_CLIMO_STDEV_REGRID_WIDTH = -# GEN_ENS_PROD_CLIMO_STDEV_REGRID_VLD_THRESH = -# GEN_ENS_PROD_CLIMO_STDEV_REGRID_SHAPE = -# GEN_ENS_PROD_CLIMO_STDEV_TIME_INTERP_METHOD = -# GEN_ENS_PROD_CLIMO_STDEV_MATCH_MONTH = -# GEN_ENS_PROD_CLIMO_STDEV_DAY_INTERVAL = 31 -# GEN_ENS_PROD_CLIMO_STDEV_HOUR_INTERVAL = 6 - -GEN_ENS_PROD_ENSEMBLE_FLAG_LATLON = TRUE -GEN_ENS_PROD_ENSEMBLE_FLAG_MEAN = TRUE -GEN_ENS_PROD_ENSEMBLE_FLAG_STDEV = TRUE -GEN_ENS_PROD_ENSEMBLE_FLAG_MINUS = FALSE -GEN_ENS_PROD_ENSEMBLE_FLAG_PLUS = FALSE -GEN_ENS_PROD_ENSEMBLE_FLAG_MIN = FALSE -GEN_ENS_PROD_ENSEMBLE_FLAG_MAX = FALSE -GEN_ENS_PROD_ENSEMBLE_FLAG_RANGE = TRUE -GEN_ENS_PROD_ENSEMBLE_FLAG_VLD_COUNT = TRUE -GEN_ENS_PROD_ENSEMBLE_FLAG_FREQUENCY = TRUE -GEN_ENS_PROD_ENSEMBLE_FLAG_NEP = TRUE -GEN_ENS_PROD_ENSEMBLE_FLAG_NMEP = TRUE -GEN_ENS_PROD_ENSEMBLE_FLAG_CLIMO = FALSE -GEN_ENS_PROD_ENSEMBLE_FLAG_CLIMO_CDF = FALSE - -# GEN_ENS_PROD_ENS_MEMBER_IDS = -# GEN_ENS_PROD_CONTROL_ID = diff --git a/parm/metplus/GenEnsProd_ASNOW.conf b/parm/metplus/GenEnsProd_ASNOW.conf index c552ec047c..ea9dac02d9 100644 --- a/parm/metplus/GenEnsProd_ASNOW.conf +++ b/parm/metplus/GenEnsProd_ASNOW.conf @@ -61,11 +61,10 @@ GEN_ENS_PROD_DESC = NA # Name to identify observation data in output. # OBTYPE = {{obtype}} - -# The METplus GenEnsProd logging level -# 0 quiet to 5 loud, Verbosity setting for MET gen_ens_prod output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -#LOG_GEN_ENS_PROD_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} ### # File I/O @@ -76,7 +75,7 @@ OBTYPE = {{obtype}} # GEN_ENS_PROD_INPUT_DIR = {{fcst_input_dir}} # -# Template for forecast input to GenEnsProd relative to +# Template for forecast input to GenEnsProd relative to # GEN_ENS_PROD_INPUT_DIR. # # Note that this can be a comma separated list of ensemble members @@ -100,7 +99,7 @@ GEN_ENS_PROD_OUTPUT_DIR = {{output_dir}} # # Template for output from GenEnsProd relative to GEN_ENS_PROD_OUTPUT_DIR. # -GEN_ENS_PROD_OUTPUT_TEMPLATE = gen_ens_prod_{MODEL}_{{fieldname_in_met_filedir_names}}_{{accum_hh}}h_{OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d_%H%M%S}V.nc +GEN_ENS_PROD_OUTPUT_TEMPLATE = gen_ens_prod_{MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d_%H%M%S}V.nc # # Directory for staging data. # @@ -114,10 +113,12 @@ GEN_ENS_PROD_N_MEMBERS = {{num_ens_members}} # Field Info ### -# Ensemble Variables and levels as specified in the ens field dictionary +# +# Ensemble variables and levels as specified in the ens field dictionary # of the MET configuration file. Specify as ENS_VARn_NAME, ENS_VARn_LEVELS, # (optional) ENS_VARn_OPTION -ENS_VAR1_NAME = {{fieldname_in_met_output}} +# +ENS_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}} ENS_VAR1_LEVELS = A{{accum_hh}} ENS_VAR1_THRESH = {{field_thresholds}} diff --git a/parm/metplus/GenEnsProd_REFC.conf b/parm/metplus/GenEnsProd_REFC.conf index 8c02f71d64..553c23f69e 100644 --- a/parm/metplus/GenEnsProd_REFC.conf +++ b/parm/metplus/GenEnsProd_REFC.conf @@ -61,11 +61,10 @@ GEN_ENS_PROD_DESC = NA # Name to identify observation data in output. # OBTYPE = {{obtype}} - -# The METplus GenEnsProd logging level -# 0 quiet to 5 loud, Verbosity setting for MET gen_ens_prod output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -#LOG_GEN_ENS_PROD_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} ### # File I/O @@ -76,7 +75,7 @@ OBTYPE = {{obtype}} # GEN_ENS_PROD_INPUT_DIR = {{fcst_input_dir}} # -# Template for forecast input to GenEnsProd relative to +# Template for forecast input to GenEnsProd relative to # GEN_ENS_PROD_INPUT_DIR. # # Note that this can be a comma separated list of ensemble members @@ -113,10 +112,11 @@ GEN_ENS_PROD_N_MEMBERS = {{num_ens_members}} ### # Field Info ### - -# Ensemble Variables and levels as specified in the ens field dictionary +# +# Ensemble variables and levels as specified in the ens field dictionary # of the MET configuration file. Specify as ENS_VARn_NAME, ENS_VARn_LEVELS, # (optional) ENS_VARn_OPTION +# ENS_VAR1_NAME = {{fieldname_in_fcst_input}} ENS_VAR1_LEVELS = L0 ENS_VAR1_THRESH = {{field_thresholds}} diff --git a/parm/metplus/GenEnsProd_RETOP.conf b/parm/metplus/GenEnsProd_RETOP.conf index 111b3bfccc..49e5e5c3b6 100644 --- a/parm/metplus/GenEnsProd_RETOP.conf +++ b/parm/metplus/GenEnsProd_RETOP.conf @@ -61,11 +61,10 @@ GEN_ENS_PROD_DESC = NA # Name to identify observation data in output. # OBTYPE = {{obtype}} - -# The METplus GenEnsProd logging level -# 0 quiet to 5 loud, Verbosity setting for MET gen_ens_prod output, 2 is default. -# This takes precendence over the general LOG_MET_VERBOSITY set in metplus_logging.conf -#LOG_GEN_ENS_PROD_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} ### # File I/O @@ -76,7 +75,7 @@ OBTYPE = {{obtype}} # GEN_ENS_PROD_INPUT_DIR = {{fcst_input_dir}} # -# Template for forecast input to GenEnsProd relative to +# Template for forecast input to GenEnsProd relative to # GEN_ENS_PROD_INPUT_DIR. # # Note that this can be a comma separated list of ensemble members @@ -113,15 +112,15 @@ GEN_ENS_PROD_N_MEMBERS = {{num_ens_members}} ### # Field Info ### - -# Ensemble Variables and levels as specified in the ens field dictionary +# +# Ensemble variables and levels as specified in the ens field dictionary # of the MET configuration file. Specify as ENS_VARn_NAME, ENS_VARn_LEVELS, # (optional) ENS_VARn_OPTION +# ENS_VAR1_NAME = {{fieldname_in_fcst_input}} ENS_VAR1_LEVELS = L0 ENS_VAR1_THRESH = {{field_thresholds}} -# convert from meters to kilofeet: M_to_KFT(x) = x * 3.28084 * 0.001; -ENS_VAR1_OPTIONS = convert(x) = x * 3.28084 * 0.001; +ENS_VAR1_OPTIONS = convert(x) = x * 3.28084 * 0.001; ;; Convert from meters to kilofeet. ### # GenEnsProd diff --git a/parm/metplus/GridStat_APCP01h.conf b/parm/metplus/GridStat_APCP.conf similarity index 84% rename from parm/metplus/GridStat_APCP01h.conf rename to parm/metplus/GridStat_APCP.conf index d287041e35..51e5125951 100644 --- a/parm/metplus/GridStat_APCP01h.conf +++ b/parm/metplus/GridStat_APCP.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -79,7 +80,6 @@ GRID_STAT_REGRID_SHAPE = SQUARE #GRID_STAT_INTERP_TYPE_WIDTH = 1 #GRID_STAT_GRID_WEIGHT_FLAG = - # # Name to identify model (forecast) data in output. # @@ -89,13 +89,10 @@ GRID_STAT_REGRID_SHAPE = SQUARE # makes it easier to identify each curve. # MODEL = {{vx_fcst_model_name}}_{{ensmem_name}} - -FCST_NATIVE_DATA_TYPE = GRIB # # Name to identify observation data in output. # OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB # # Value to enter under the DESC column in the output stat file. Here, # we store the value of the original lead in this column, i.e. the lead @@ -115,52 +112,39 @@ GRID_STAT_DESC = NA GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; # -# String to search for in the foreast input files for forecast variable -# 1. -# -FCST_VAR1_NAME = {{fieldname_in_fcst_input}} -# -# List of levels to evaluate for forecast variable 1. -# -ACCUM_HH = {{accum_hh}} -FCST_VAR1_LEVELS = A{ACCUM_HH} -# -# Lead to use both in naming of the output .stat and .nc files and for -# lead values in those files. -# -# The specification of set_attr_lead below causes MET/METplus to use the -# lead values in the variable LEAD_SEQ set above, which are the same for -# all ensemble forecast members (i.e. regardless of whether members are -# time lagged with respect to the nominal cycle date specified by cdate). -# If set_attr_lead were not specified as below, then MET/METplus would -# get the lead from the input forecast file, and that would in general -# differ from one ensemble member to the next depending on whether the -# member is time-lagged. That would cause confusion, so here, we always -# use lead values with zero lead corresponding to cdate. -# +# List of forecast and corresponding observation fields to process. +# +# Note on use of set_attr_lead and ensemble member time-lagging: +# ------------------------------------------------------------- +# The set_attr_lead parameter appearing below in [FCST|OBS]_VAR_OPTIONS +# specifies the lead to use both in naming of the output .stat and .nc +# files and for setting the lead values contained in those files. This +# option causes MET/METplus to use the lead values in the variable LEAD_SEQ +# set above, which are the same for all ensemble forecast members (i.e. +# regardless of whether members are time lagged with respect to the +# nominal cycle date specified by cdate). If set_attr_lead were not +# specified as below, then MET/METplus would get the lead from the input +# forecast file, and that would in general differ from one ensemble member +# to the next depending on whether the member is time-lagged. That would +# cause confusion, so here, we always use lead values with zero lead +# corresponding to the nominal cdate. +# +FCST_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +FCST_VAR1_LEVELS = A{{accum_hh}} +FCST_VAR1_THRESH = {{field_thresholds}} FCST_VAR1_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +OBS_VAR1_LEVELS = A{{accum_hh}} +OBS_VAR1_THRESH = {{field_thresholds}} + # -# List of thresholds to evaluate for each name/level combination for -# both obs and forecast variable 1. -# -BOTH_VAR1_THRESH = {{field_thresholds}} -# -# String to search for in the observation input files for observation -# variable 1. -# -OBS_VAR1_NAME = {{fieldname_in_obs_input}} -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# -OBS_VAR1_LEVELS = A{ACCUM_HH} -# -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. +# Forecast data time window(s). # FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 FCST_GRID_STAT_FILE_WINDOW_END = 0 +# +# Observation data time window(s). +# OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 OBS_GRID_STAT_FILE_WINDOW_END = 0 diff --git a/parm/metplus/GridStat_APCPgt01h.conf b/parm/metplus/GridStat_APCPgt01h.conf deleted file mode 100644 index 1fe5412311..0000000000 --- a/parm/metplus/GridStat_APCPgt01h.conf +++ /dev/null @@ -1,336 +0,0 @@ -# GridStat METplus Configuration - -[config] - -# List of applications (tools) to run. -PROCESS_LIST = GridStat - -# time looping - options are INIT, VALID, RETRO, and REALTIME -# If set to INIT or RETRO: -# INIT_TIME_FMT, INIT_BEG, INIT_END, and INIT_INCREMENT must also be set -# If set to VALID or REALTIME: -# VALID_TIME_FMT, VALID_BEG, VALID_END, and VALID_INCREMENT must also be set -LOOP_BY = INIT - -# Format of INIT_BEG and INIT_END using % items -# %Y = 4 digit year, %m = 2 digit month, %d = 2 digit day, etc. -# see www.strftime.org for more information -# %Y%m%d%H expands to YYYYMMDDHH -INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match INIT_TIME_FMT -INIT_BEG = {{cdate}} - -# End time for METplus run - must match INIT_TIME_FMT -INIT_END = {{cdate}} - -# Increment between METplus runs (in seconds if no units are specified). -# Must be >= 60 seconds. -INIT_INCREMENT = 3600 - -# List of forecast leads to process for each run time (init or valid) -# In hours if units are not specified -# If unset, defaults to 0 (don't loop through forecast leads) -LEAD_SEQ = {{fhr_list}} -# -# Order of loops to process data - Options are times, processes -# Not relevant if only one item is in the PROCESS_LIST -# times = run all wrappers in the PROCESS_LIST for a single run time, then -# increment the run time and run all wrappers again until all times have -# been evaluated. -# processes = run the first wrapper in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST until all -# wrappers have been run -# -LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 -# -# Specify the name of the METplus log file. -# -LOG_METPLUS = {LOG_DIR}/{{metplus_log_fn}} -# -# Specify the location and name of the final METplus conf file. -# -METPLUS_CONF = {GRID_STAT_OUTPUT_DIR}/metplus_final.{{metplus_config_fn}} -# -# Location of MET configuration file to pass to GridStat. -# -# References PARM_BASE, which is the location of the parm directory -# corresponding to the ush directory of the run_metplus.py script that -# is called or the value of the environment variable METPLUS_PARM_BASE -# if set. -# -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - -# grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary -# See MET User's Guide for more information -GRID_STAT_REGRID_TO_GRID = FCST -GRID_STAT_REGRID_VLD_THRESH = 0.5 -GRID_STAT_REGRID_METHOD = BUDGET -GRID_STAT_REGRID_WIDTH = 2 -GRID_STAT_REGRID_SHAPE = SQUARE - -#GRID_STAT_INTERP_FIELD = BOTH -#GRID_STAT_INTERP_VLD_THRESH = 1.0 -#GRID_STAT_INTERP_SHAPE = SQUARE -#GRID_STAT_INTERP_TYPE_METHOD = NEAREST -#GRID_STAT_INTERP_TYPE_WIDTH = 1 - -#GRID_STAT_GRID_WEIGHT_FLAG = - -# -# Name to identify model (forecast) data in output. -# -# The variable MODEL is recorded in the stat files, and the data in -# these files is then plotted (e.g. using METViewer). Here, we add a -# suffix to MODEL that identifies the forecast ensemble member. This -# makes it easier to identify each curve. -# -MODEL = {{vx_fcst_model_name}}_{{ensmem_name}} - -FCST_NATIVE_DATA_TYPE = GRIB -# -# Name to identify observation data in output. -# -OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB -# -# Value to enter under the DESC column in the output stat file. Here, -# we store the value of the original lead in this column, i.e. the lead -# with zero corresponding to the actual start time of the forecast (which -# is (cdate - time_lag)), not to cdate. This is just the lead in -# LEAD_SEQ with the time lag (time_lag) of the current forecast member -# added on. -# -# Uncomment this line only after upgrading to METplus 5.x. -#GRID_STAT_DESC = {lead?fmt=%H%M%S?shift={{time_lag}}} -GRID_STAT_DESC = NA - -# List of variables to compare in GridStat - FCST_VAR1 variables correspond -# to OBS_VAR1 variables -# Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations -# are needed for different tools - -GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; -# -# String to search for in the foreast input files for forecast variable -# 1. -# -# Note that this configuration file reads in forecast files created by -# another MET tool (PcpCombine) that names the arrays in its output -# according to fieldname_in_met_output, so the input forecast field name -# to look for here must also given by fieldname_in_met_output. -# -FCST_VAR1_NAME = {{fieldname_in_met_output}} -# -# List of levels to evaluate for forecast variable 1. -# -ACCUM_HH = {{accum_hh}} -FCST_VAR1_LEVELS = A{ACCUM_HH} -# -# Lead to use both in naming of the output .stat and .nc files and for -# lead values in those files. -# -# The specification of set_attr_lead below causes MET/METplus to use the -# lead values in the variable LEAD_SEQ set above, which are the same for -# all ensemble forecast members (i.e. regardless of whether members are -# time lagged with respect to the nominal cycle date specified by cdate). -# If set_attr_lead were not specified as below, then MET/METplus would -# get the lead from the input forecast file, and that would in general -# differ from one ensemble member to the next depending on whether the -# member is time-lagged. That would cause confusion, so here, we always -# use lead values with zero lead corresponding to cdate. -# -FCST_VAR1_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; -# -# List of thresholds to evaluate for each name/level combination for -# both obs and forecast variable 1. -# -BOTH_VAR1_THRESH = {{field_thresholds}} -# -# String to search for in the observation input files for observation -# variable 1. -# -# As with the forecast input files, the observation input files to this -# configuration file are from another MET tool (PcpCombine) that have -# output array names specified by fieldname_in_met_output, so here we -# use this variable to search for the field name in the input observation -# files. -# -OBS_VAR1_NAME = {{fieldname_in_met_output}} -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# -OBS_VAR1_LEVELS = A{ACCUM_HH} -# -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. -# -FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 -FCST_GRID_STAT_FILE_WINDOW_END = 0 -OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 -OBS_GRID_STAT_FILE_WINDOW_END = 0 - -# MET GridStat neighborhood values -# See the MET User's Guide GridStat section for more information -GRID_STAT_NEIGHBORHOOD_FIELD = BOTH - -# width value passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_WIDTH = 3,5,7 - -# shape value passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE - -# cov thresh list passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_COV_THRESH = >=0.5 - -# Set to true to run GridStat separately for each field specified -# Set to false to create one run of GridStat per run time that -# includes all fields specified. -GRID_STAT_ONCE_PER_FIELD = False -# -# Set to true if forecast data is probabilistic. -# -FCST_IS_PROB = False -# -# Only used if FCST_IS_PROB is true - sets probabilistic threshold -# -FCST_GRID_STAT_PROB_THRESH = ==0.1 - -GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} - -# Climatology data -#GRID_STAT_CLIMO_MEAN_FILE_NAME = -#GRID_STAT_CLIMO_MEAN_FIELD = -#GRID_STAT_CLIMO_MEAN_REGRID_METHOD = -#GRID_STAT_CLIMO_MEAN_REGRID_WIDTH = -#GRID_STAT_CLIMO_MEAN_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_MEAN_REGRID_SHAPE = -#GRID_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_MEAN_MATCH_MONTH = -#GRID_STAT_CLIMO_MEAN_DAY_INTERVAL = -#GRID_STAT_CLIMO_MEAN_HOUR_INTERVAL = - -#GRID_STAT_CLIMO_STDEV_FILE_NAME = -#GRID_STAT_CLIMO_STDEV_FIELD = -#GRID_STAT_CLIMO_STDEV_REGRID_METHOD = -#GRID_STAT_CLIMO_STDEV_REGRID_WIDTH = -#GRID_STAT_CLIMO_STDEV_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_STDEV_REGRID_SHAPE = -#GRID_STAT_CLIMO_STDEV_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_STDEV_MATCH_MONTH = -#GRID_STAT_CLIMO_STDEV_DAY_INTERVAL = -#GRID_STAT_CLIMO_STDEV_HOUR_INTERVAL = - -#GRID_STAT_CLIMO_CDF_BINS = 1 -#GRID_STAT_CLIMO_CDF_CENTER_BINS = False -#GRID_STAT_CLIMO_CDF_WRITE_BINS = True - -GRID_STAT_MASK_GRID = - -# Statistical output types -GRID_STAT_OUTPUT_FLAG_FHO = STAT -GRID_STAT_OUTPUT_FLAG_CTC = STAT -GRID_STAT_OUTPUT_FLAG_CTS = STAT -#GRID_STAT_OUTPUT_FLAG_MCTC = NONE -#GRID_STAT_OUTPUT_FLAG_MCTS = NONE -GRID_STAT_OUTPUT_FLAG_CNT = STAT -#GRID_STAT_OUTPUT_FLAG_SL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_SAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VCNT = NONE -#GRID_STAT_OUTPUT_FLAG_PCT = NONE -#GRID_STAT_OUTPUT_FLAG_PSTD = NONE -#GRID_STAT_OUTPUT_FLAG_PJC = NONE -#GRID_STAT_OUTPUT_FLAG_PRC = NONE -#GRID_STAT_OUTPUT_FLAG_ECLV = BOTH -GRID_STAT_OUTPUT_FLAG_NBRCTC = STAT -GRID_STAT_OUTPUT_FLAG_NBRCTS = STAT -GRID_STAT_OUTPUT_FLAG_NBRCNT = STAT -#GRID_STAT_OUTPUT_FLAG_GRAD = BOTH -#GRID_STAT_OUTPUT_FLAG_DMAP = NONE - -# NetCDF matched pairs output file -#GRID_STAT_NC_PAIRS_VAR_NAME = -GRID_STAT_NC_PAIRS_FLAG_LATLON = FALSE -GRID_STAT_NC_PAIRS_FLAG_RAW = FALSE -GRID_STAT_NC_PAIRS_FLAG_DIFF = FALSE -GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE -#GRID_STAT_NC_PAIRS_FLAG_CLIMO_CDP = FALSE -GRID_STAT_NC_PAIRS_FLAG_WEIGHT = FALSE -GRID_STAT_NC_PAIRS_FLAG_NBRHD = FALSE -#GRID_STAT_NC_PAIRS_FLAG_FOURIER = FALSE -#GRID_STAT_NC_PAIRS_FLAG_GRADIENT = FALSE -#GRID_STAT_NC_PAIRS_FLAG_DISTANCE_MAP = FALSE -GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE - -# End of [config] section and start of [dir] section. -[dir] -# -# Directory containing observation input to GridStat. -# -OBS_GRID_STAT_INPUT_DIR = {{obs_input_dir}} -# -# Directory containing forecast input to GridStat. -# -FCST_GRID_STAT_INPUT_DIR = {{fcst_input_dir}} -# -# Directory containing climatology mean input to GridStat. Not used in -# this example. -# -GRID_STAT_CLIMO_MEAN_INPUT_DIR = -# -# Directory containing climatology mean input to GridStat. Not used in -# this example. -# -GRID_STAT_CLIMO_STDEV_INPUT_DIR = -# -# Directory in which to write output from GridStat. -# -# OUTPUT_BASE apparently has to be set to something; it cannot be left -# to its default value. But it is not explicitly used elsewhere in this -# configuration file. -# -OUTPUT_BASE = {{output_base}} -GRID_STAT_OUTPUT_DIR = {{output_dir}} -# -# Directory for staging data. -# -STAGING_DIR = {{staging_dir}} - -# End of [dir] section and start of [filename_templates] section. -[filename_templates] -# -# Template for observation input to GridStat relative to -# OBS_GRID_STAT_INPUT_DIR. -# -OBS_GRID_STAT_INPUT_TEMPLATE = {{obs_input_fn_template}} -# -# Template for forecast input to GridStat relative to -# FCST_GRID_STAT_INPUT_DIR. -# -FCST_GRID_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}} -# -# Template for output from GridStat relative to GRID_STAT_OUTPUT_DIR. -# -GRID_STAT_OUTPUT_TEMPLATE = -# -# Template for climatology input to GridStat relative to -# GRID_STAT_CLIMO_MEAN_INPUT_DIR. Not used in this example. -# -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = -# -# Template for climatology input to GridStat relative to -# GRID_STAT_CLIMO_STDEV_INPUT_DIR. Not used in this example. -# -GRID_STAT_CLIMO_STDEV_INPUT_TEMPLATE = -# -# Variable used to specify one or more verification mask files for -# GridStat. Not used for this example. -# -GRID_STAT_VERIFICATION_MASK_TEMPLATE = {MET_INSTALL_DIR}/share/met/poly/CONUS.poly diff --git a/parm/metplus/GridStat_ASNOW.conf b/parm/metplus/GridStat_ASNOW.conf index 96c0f97bc3..3960a10c30 100644 --- a/parm/metplus/GridStat_ASNOW.conf +++ b/parm/metplus/GridStat_ASNOW.conf @@ -1,10 +1,8 @@ # GridStat METplus Configuration -# section heading for [config] variables - all items below this line and -# before the next section heading correspond to the [config] section [config] -# List of applications to run - only GridStat for this case +# List of applications (tools) to run. PROCESS_LIST = GridStat # time looping - options are INIT, VALID, RETRO, and REALTIME @@ -33,8 +31,8 @@ INIT_INCREMENT = 3600 # List of forecast leads to process for each run time (init or valid) # In hours if units are not specified # If unset, defaults to 0 (don't loop through forecast leads) -LEAD_SEQ = {{fhr_list}} - +LEAD_SEQ = {{fhr_list}} +# # Order of loops to process data - Options are times, processes # Not relevant if only one item is in the PROCESS_LIST # times = run all wrappers in the PROCESS_LIST for a single run time, then @@ -43,11 +41,12 @@ LEAD_SEQ = {{fhr_list}} # processes = run the first wrapper in the PROCESS_LIST for all times # specified, then repeat for the next item in the PROCESS_LIST until all # wrappers have been run +# LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 - +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -86,13 +85,10 @@ GRID_STAT_REGRID_SHAPE = SQUARE # makes it easier to identify each curve. # MODEL = {{vx_fcst_model_name}}_{{ensmem_name}} - -FCST_NATIVE_DATA_TYPE = GRIB # # Name to identify observation data in output. # OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB # # Value to enter under the DESC column in the output stat file. # @@ -105,40 +101,24 @@ GRID_STAT_DESC = NA GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; # -# String to search for in the foreast input files for forecast variable -# 1. -# -FCST_VAR1_NAME = {{fieldname_in_met_output}} +# List of forecast and corresponding observation fields to process. # -# List of levels to evaluate for forecast variable 1. -# -ACCUM_HH = {{accum_hh}} -FCST_VAR1_LEVELS = A{ACCUM_HH} +FCST_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +FCST_VAR1_LEVELS = A{{accum_hh}} +FCST_VAR1_THRESH = {{field_thresholds}} FCST_VAR1_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; - -OBS_VAR1_OPTIONS = convert(x) = 100.0*x; -# -# List of thresholds to evaluate for each name/level combination for -# forecast variable 1. -# -BOTH_VAR1_THRESH = {{field_thresholds}} -# -# String to search for in the observation input files for observation -# variable 1. -# OBS_VAR1_NAME = {{fieldname_in_obs_input}} +OBS_VAR1_LEVELS = A{{accum_hh}} +OBS_VAR1_THRESH = {{field_thresholds}} +OBS_VAR1_OPTIONS = convert(x) = 100.0*x; # -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# -OBS_VAR1_LEVELS = A{ACCUM_HH} -# -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. +# Forecast data time window(s). # FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 FCST_GRID_STAT_FILE_WINDOW_END = 0 +# +# Observation data time window(s). +# OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 OBS_GRID_STAT_FILE_WINDOW_END = 0 @@ -168,7 +148,7 @@ FCST_IS_PROB = False # FCST_GRID_STAT_PROB_THRESH = ==0.1 -GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}{ACCUM_HH}h_{OBTYPE} +GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} # Climatology data #GRID_STAT_CLIMO_MEAN_FILE_NAME = diff --git a/parm/metplus/GridStat_REFC.conf b/parm/metplus/GridStat_REFC.conf index 3cc6e62d1f..c7f34d27f9 100644 --- a/parm/metplus/GridStat_REFC.conf +++ b/parm/metplus/GridStat_REFC.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -88,13 +89,10 @@ GRID_STAT_GRID_WEIGHT_FLAG = NONE # makes it easier to identify each curve. # MODEL = {{vx_fcst_model_name}}_{{ensmem_name}} - -FCST_NATIVE_DATA_TYPE = GRIB # # Name to identify observation data in output. # OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB # # Value to enter under the DESC column in the output stat file. Here, # we store the value of the original lead in this column, i.e. the lead @@ -112,56 +110,47 @@ GRID_STAT_DESC = NA # Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations # are needed for different tools -GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = []; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; -# -# String to search for in the foreast input files for forecast variable -# 1. +GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; +# +# List of forecast and corresponding observation fields to process. +# +# Note on use of set_attr_lead and ensemble member time-lagging: +# ------------------------------------------------------------- +# The set_attr_lead parameter appearing below in [FCST|OBS]_VAR_OPTIONS +# specifies the lead to use both in naming of the output .stat and .nc +# files and for setting the lead values contained in those files. This +# option causes MET/METplus to use the lead values in the variable LEAD_SEQ +# set above, which are the same for all ensemble forecast members (i.e. +# regardless of whether members are time lagged with respect to the +# nominal cycle date specified by cdate). If set_attr_lead were not +# specified as below, then MET/METplus would get the lead from the input +# forecast file, and that would in general differ from one ensemble member +# to the next depending on whether the member is time-lagged. That would +# cause confusion, so here, we always use lead values with zero lead +# corresponding to the nominal cdate. # FCST_VAR1_NAME = {{fieldname_in_fcst_input}} -# -# List of levels to evaluate for forecast variable 1. -# FCST_VAR1_LEVELS = L0 -# -# Lead to use both in naming of the output .stat and .nc files and for -# lead values in those files. -# -# The specification of set_attr_lead below causes MET/METplus to use the -# lead values in the variable LEAD_SEQ set above, which are the same for -# all ensemble forecast members (i.e. regardless of whether members are -# time lagged with respect to the nominal cycle date specified by cdate). -# If set_attr_lead were not specified as below, then MET/METplus would -# get the lead from the input forecast file, and that would in general -# differ from one ensemble member to the next depending on whether the -# member is time-lagged. That would cause confusion, so here, we always -# use lead values with zero lead corresponding to cdate. -# +FCST_VAR1_THRESH = {{field_thresholds}} FCST_VAR1_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; cnt_thresh = [ >15 ]; cnt_logic = UNION; -# -# List of thresholds to evaluate for each name/level combination for -# both obs and forecast variable 1. -# -BOTH_VAR1_THRESH = {{field_thresholds}} -# -# String to search for in the observation input files for observation -# variable 1. -# OBS_VAR1_NAME = {{fieldname_in_obs_input}} -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# OBS_VAR1_LEVELS = Z500 -OBS_VAR1_OPTIONS = censor_thresh = [eq-999, <-20]; censor_val = [-9999, -20]; cnt_thresh = [ >15 ]; cnt_logic = UNION; +OBS_VAR1_THRESH = {{field_thresholds}} +OBS_VAR1_OPTIONS = censor_thresh = [eq-999, <-20]; + censor_val = [-9999, -20]; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + # -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. +# Forecast data time window(s). # #FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 #FCST_GRID_STAT_FILE_WINDOW_END = 0 +# +# Observation data time window(s). +# OBS_GRID_STAT_FILE_WINDOW_BEGIN = -300 OBS_GRID_STAT_FILE_WINDOW_END = 300 @@ -192,15 +181,6 @@ FCST_IS_PROB = False FCST_GRID_STAT_PROB_THRESH = ==0.1 GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} -# -# Set to true if observation data is probabilistic. Only used if -# configuring forecast data as the 'OBS' input. -# -OBS_IS_PROB = false -# -# Only used if OBS_IS_PROB is true - sets probabilistic threshold. -# -OBS_GRID_STAT_PROB_THRESH = ==0.1 # Climatology data #GRID_STAT_CLIMO_MEAN_FILE_NAME = diff --git a/parm/metplus/GridStat_RETOP.conf b/parm/metplus/GridStat_RETOP.conf index 6a836b1153..be91a0ba03 100644 --- a/parm/metplus/GridStat_RETOP.conf +++ b/parm/metplus/GridStat_RETOP.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -88,13 +89,10 @@ GRID_STAT_GRID_WEIGHT_FLAG = NONE # makes it easier to identify each curve. # MODEL = {{vx_fcst_model_name}}_{{ensmem_name}} - -FCST_NATIVE_DATA_TYPE = GRIB # # Name to identify observation data in output. # OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB # # Value to enter under the DESC column in the output stat file. Here, # we store the value of the original lead in this column, i.e. the lead @@ -112,57 +110,49 @@ GRID_STAT_DESC = NA # Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations # are needed for different tools -GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = []; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; -# -# String to search for in the foreast input files for forecast variable -# 1. +GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; +# +# List of forecast and corresponding observation fields to process. +# +# Note on use of set_attr_lead and ensemble member time-lagging: +# ------------------------------------------------------------- +# The set_attr_lead parameter appearing below in [FCST|OBS]_VAR_OPTIONS +# specifies the lead to use both in naming of the output .stat and .nc +# files and for setting the lead values contained in those files. This +# option causes MET/METplus to use the lead values in the variable LEAD_SEQ +# set above, which are the same for all ensemble forecast members (i.e. +# regardless of whether members are time lagged with respect to the +# nominal cycle date specified by cdate). If set_attr_lead were not +# specified as below, then MET/METplus would get the lead from the input +# forecast file, and that would in general differ from one ensemble member +# to the next depending on whether the member is time-lagged. That would +# cause confusion, so here, we always use lead values with zero lead +# corresponding to the nominal cdate. # FCST_VAR1_NAME = {{fieldname_in_fcst_input}} -# -# List of levels to evaluate for forecast variable 1. -# FCST_VAR1_LEVELS = L0 -# -# Lead to use both in naming of the output .stat and .nc files and for -# lead values in those files. -# -# The specification of set_attr_lead below causes MET/METplus to use the -# lead values in the variable LEAD_SEQ set above, which are the same for -# all ensemble forecast members (i.e. regardless of whether members are -# time lagged with respect to the nominal cycle date specified by cdate). -# If set_attr_lead were not specified as below, then MET/METplus would -# get the lead from the input forecast file, and that would in general -# differ from one ensemble member to the next depending on whether the -# member is time-lagged. That would cause confusion, so here, we always -# use lead values with zero lead corresponding to cdate. -# +FCST_VAR1_THRESH = {{field_thresholds}} FCST_VAR1_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; convert(x) = x * 3.28084 * 0.001; cnt_thresh = [ >0 ]; cnt_logic = UNION; -# -# List of thresholds to evaluate for each name/level combination for -# both obs and forecast variable 1. -# -BOTH_VAR1_THRESH = {{field_thresholds}} -# -# String to search for in the observation input files for observation -# variable 1. -# OBS_VAR1_NAME = {{fieldname_in_obs_input}} -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# OBS_VAR1_LEVELS = Z500 -OBS_VAR1_OPTIONS = convert(x) = x * 3280.84 * 0.001; censor_thresh = [<=-9.84252,eq-3.28084]; censor_val = [-9999,-16.4042]; cnt_thresh = [ >0 ]; cnt_logic = UNION; +OBS_VAR1_THRESH = {{field_thresholds}} +OBS_VAR1_OPTIONS = convert(x) = x * 3280.84 * 0.001; + censor_thresh = [<=-9.84252,eq-3.28084]; + censor_val = [-9999,-16.4042]; + cnt_thresh = [ >0 ]; + cnt_logic = UNION; + # -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. +# Forecast data time window(s). # #FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 #FCST_GRID_STAT_FILE_WINDOW_END = 0 +# +# Observation data time window(s). +# OBS_GRID_STAT_FILE_WINDOW_BEGIN = -300 OBS_GRID_STAT_FILE_WINDOW_END = 300 @@ -193,15 +183,6 @@ FCST_IS_PROB = False FCST_GRID_STAT_PROB_THRESH = ==0.1 GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} -# -# Set to true if observation data is probabilistic. Only used if -# configuring forecast data as the 'OBS' input. -# -OBS_IS_PROB = false -# -# Only used if OBS_IS_PROB is true - sets probabilistic threshold. -# -OBS_GRID_STAT_PROB_THRESH = ==0.1 # Climatology data #GRID_STAT_CLIMO_MEAN_FILE_NAME = diff --git a/parm/metplus/GridStat_ensmean_APCPgt01h.conf b/parm/metplus/GridStat_ensmean_APCP.conf similarity index 75% rename from parm/metplus/GridStat_ensmean_APCPgt01h.conf rename to parm/metplus/GridStat_ensmean_APCP.conf index ff277bbcbb..6d3956c8e6 100644 --- a/parm/metplus/GridStat_ensmean_APCPgt01h.conf +++ b/parm/metplus/GridStat_ensmean_APCP.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -89,84 +90,34 @@ GRID_STAT_REGRID_SHAPE = SQUARE # mean. This makes it easier to identify each curve. # MODEL = {{vx_fcst_model_name}}_ensmean - -FCST_NATIVE_DATA_TYPE = GRIB # # Name to identify observation data in output. # OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB # # Value to enter under the DESC column in the output stat file. # GRID_STAT_DESC = NA -# List of variables to compare in GridStat - FCST_VAR1 variables correspond -# to OBS_VAR1 variables -# Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations -# are needed for different tools - GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; # -# String to search for in the foreast input files for forecast variable -# 1. -# -# Note: -# This is the name of the field in the NetCDF file(s) created by MET's -# gen_ens_prod tool. This tool reads in the NetCDF file(s) generated by -# MET's pcp_combine tool. The latter reads in grib2 file(s) containing -# 1 hour accumulation data (in this case, from forecasts) and outputs -# NetCDF file(s) with the appropriate > 1 hour accumulation. These -# output NetCDF files from pcp_combine name their arrays as specified by -# the environment variable FIELDNAME_IN_MET_OUTPUT. The gen_ens_prod -# tool then takes this array name and, in its output NetCDF files, -# creates arrays whose names consist of the original array name in the -# pcp_combine output (FIELDNAME_IN_MET_OUTPUT) plus a suffix that specifies -# additional properties of the data in the array such as the level (which -# in this case is the accumulation period), the type of statistic, etc. -# In this case, this suffix is "_A3_ENS_MEAN". Thus, below, FCST_VAR1_NAME -# must be set to the value of FIELDNAME_IN_MET_OUTPUT with "_A3_ENS_MEAN" -# appended to it. -# -#FCST_VAR1_NAME = APCP_A3_ENS_MEAN -FCST_VAR1_NAME = {{fieldname_in_met_output}}_A{{accum_no_pad}}_ENS_MEAN -# -# List of levels to evaluate for forecast variable 1. -# -ACCUM_HH = {{accum_hh}} -FCST_VAR1_LEVELS = A{ACCUM_HH} +# List of forecast and corresponding observation fields to process. # -# List of thresholds to evaluate for each name/level combination for -# both obs and forecast variable 1. -# -BOTH_VAR1_THRESH = {{field_thresholds}} -# -# String to search for in the observation input files for observation -# variable 1. -# -# Note: -# This is the name of the field in the NetCDF file created by MET's -# pcp_combine tool. This tool reads in the grib2 file(s) containing -# 1 hour accumulation data (in this case, from observations) and outputs -# NetCDF file(s) with the appropriate > 1 hour accumulation. These -# output NetCDF files name their arrays as specified by the environment -# variable FIELDNAME_IN_MET_OUTPUT. Thus, that is the value we set -# OBS_VAR1_NAME to here, not to the name of the variable in the grib2 -# file. -# -OBS_VAR1_NAME = {{fieldname_in_met_output}} -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# -OBS_VAR1_LEVELS = A{ACCUM_HH} +FCST_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_MEAN +FCST_VAR1_LEVELS = A{{accum_hh}} +FCST_VAR1_THRESH = {{field_thresholds}} +OBS_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +OBS_VAR1_LEVELS = A{{accum_hh}} +OBS_VAR1_THRESH = {{field_thresholds}} + # -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. +# Forecast data time window(s). # FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 FCST_GRID_STAT_FILE_WINDOW_END = 0 +# +# Observation data time window(s). +# OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 OBS_GRID_STAT_FILE_WINDOW_END = 0 diff --git a/parm/metplus/GridStat_ensmean_APCP01h.conf b/parm/metplus/GridStat_ensmean_APCP01h.conf deleted file mode 100644 index e087841431..0000000000 --- a/parm/metplus/GridStat_ensmean_APCP01h.conf +++ /dev/null @@ -1,335 +0,0 @@ -# Ensemble mean GridStat METplus Configuration - -[config] - -# List of applications (tools) to run. -PROCESS_LIST = GridStat - -# time looping - options are INIT, VALID, RETRO, and REALTIME -# If set to INIT or RETRO: -# INIT_TIME_FMT, INIT_BEG, INIT_END, and INIT_INCREMENT must also be set -# If set to VALID or REALTIME: -# VALID_TIME_FMT, VALID_BEG, VALID_END, and VALID_INCREMENT must also be set -LOOP_BY = INIT - -# Format of INIT_BEG and INIT_END using % items -# %Y = 4 digit year, %m = 2 digit month, %d = 2 digit day, etc. -# see www.strftime.org for more information -# %Y%m%d%H expands to YYYYMMDDHH -INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match INIT_TIME_FMT -INIT_BEG = {{cdate}} - -# End time for METplus run - must match INIT_TIME_FMT -INIT_END = {{cdate}} - -# Increment between METplus runs (in seconds if no units are specified). -# Must be >= 60 seconds. -INIT_INCREMENT = 3600 - -# List of forecast leads to process for each run time (init or valid) -# In hours if units are not specified -# If unset, defaults to 0 (don't loop through forecast leads) -LEAD_SEQ = {{fhr_list}} -# -# Order of loops to process data - Options are times, processes -# Not relevant if only one item is in the PROCESS_LIST -# times = run all wrappers in the PROCESS_LIST for a single run time, then -# increment the run time and run all wrappers again until all times have -# been evaluated. -# processes = run the first wrapper in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST until all -# wrappers have been run -# -LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 -# -# Specify the name of the METplus log file. -# -LOG_METPLUS = {LOG_DIR}/{{metplus_log_fn}} -# -# Specify the location and name of the final METplus conf file. -# -METPLUS_CONF = {GRID_STAT_OUTPUT_DIR}/metplus_final.{{metplus_config_fn}} -# -# Location of MET configuration file to pass to GridStat. -# -# References PARM_BASE, which is the location of the parm directory -# corresponding to the ush directory of the run_metplus.py script that -# is called or the value of the environment variable METPLUS_PARM_BASE -# if set. -# -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - -# grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary -# See MET User's Guide for more information -GRID_STAT_REGRID_TO_GRID = FCST -GRID_STAT_REGRID_VLD_THRESH = 0.5 -GRID_STAT_REGRID_METHOD = BUDGET -GRID_STAT_REGRID_WIDTH = 2 -GRID_STAT_REGRID_SHAPE = SQUARE - -#GRID_STAT_INTERP_FIELD = BOTH -#GRID_STAT_INTERP_VLD_THRESH = 1.0 -#GRID_STAT_INTERP_SHAPE = SQUARE -#GRID_STAT_INTERP_TYPE_METHOD = NEAREST -#GRID_STAT_INTERP_TYPE_WIDTH = 1 - -#GRID_STAT_GRID_WEIGHT_FLAG = - -# -# Name to identify model (forecast) data in output. -# -# The variable MODEL is recorded in the stat files, and the data in -# these files is then plotted (e.g. using METViewer). Here, we add a -# suffix to MODEL that identifies the data as that for the ensemble -# mean. This makes it easier to identify each curve. -# -MODEL = {{vx_fcst_model_name}}_ensmean - -FCST_NATIVE_DATA_TYPE = GRIB -# -# Name to identify observation data in output. -# -OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB -# -# Value to enter under the DESC column in the output stat file. -# -GRID_STAT_DESC = NA - -# List of variables to compare in GridStat - FCST_VAR1 variables correspond -# to OBS_VAR1 variables -# Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations -# are needed for different tools - -GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; -# -# String to search for in the foreast input files for forecast variable -# 1. -# -# Note: -# This is the name of the field in the NetCDF file(s) created by MET's -# gen_ens_prod tool. This tool reads in the grib2 file(s) (in this case -# of forecasts) and outputs NetCDF file(s) in which the array names -# consist of the value of fieldname_in_met_output plus a suffix that -# specifies additional properties of the data in the array such as the -# level (which in this case is the accumulation period), the type of -# statistic, etc. In this case, this suffix is "_A01_ENS_MEAN". Thus, -# below, FCST_VAR1_NAME must be set to the value of fieldname_in_met_output -# with "_A01_ENS_MEAN" appended to it. -#FCST_VAR1_NAME = APCP_01_A01_ENS_MEAN -# -# Question: -# Why is the name of the array in the input NetCDF file (created by -# GenEnsProd) that this task reads contains ..._A01_ENS_MEAN instead of -# ..._A1_ENS_MEAN, as is the case for greater than 1-hour accumulation? -# If that were the case, we could use ACCUM_NO_PAD here instead of hard- -# coding the "A01", which would make it consistent with what is done in -# the METplus conf files for accumulation > 1 hour (e.g. 3, 6, and 24 -# hour). -# -#FCST_VAR1_NAME = {FIELDNAME_IN_MET_OUTPUT}_A{ENV[ACCUM_NO_PAD]}_ENS_MEAN -FCST_VAR1_NAME = {{fieldname_in_met_output}}_A01_ENS_MEAN -# -# List of levels to evaluate for forecast variable 1. -# -ACCUM_HH = {{accum_hh}} -FCST_VAR1_LEVELS = A{ACCUM_HH} -# -# List of thresholds to evaluate for each name/level combination for -# both obs and forecast variable 1. -# -BOTH_VAR1_THRESH = {{field_thresholds}} -# -# String to search for in the observation input files for observation -# variable 1. -# -# Note: -# This is the name of the field in the grib2 observation file. Thus, -# it should not be set to {{fieldname_in_met_output}} because the -# value of fieldname_in_met_output is in general not the same as the -# name of the field in the grib2 observation file (although it can be -# for certain fields). If you do and it doesn't match, you may get an -# error like this from METplus: -# ERROR : VarInfoGrib2::set_dict() -> unrecognized GRIB2 field abbreviation ... -# -#OBS_VAR1_NAME = APCP -OBS_VAR1_NAME = {{fieldname_in_obs_input}} -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# -OBS_VAR1_LEVELS = A{ACCUM_HH} -# -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. -# -FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 -FCST_GRID_STAT_FILE_WINDOW_END = 0 -OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 -OBS_GRID_STAT_FILE_WINDOW_END = 0 - -# MET GridStat neighborhood values -# See the MET User's Guide GridStat section for more information -GRID_STAT_NEIGHBORHOOD_FIELD = BOTH - -# width value passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_WIDTH = 3,5,7 - -# shape value passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_SHAPE = SQUARE - -# cov thresh list passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_COV_THRESH = >=0.5 - -# Set to true to run GridStat separately for each field specified -# Set to false to create one run of GridStat per run time that -# includes all fields specified. -GRID_STAT_ONCE_PER_FIELD = False -# -# Set to true if forecast data is probabilistic. -# -FCST_IS_PROB = False -# -# Only used if FCST_IS_PROB is true - sets probabilistic threshold -# -FCST_GRID_STAT_PROB_THRESH = ==0.1 - -GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} - -# Climatology data -#GRID_STAT_CLIMO_MEAN_FILE_NAME = -#GRID_STAT_CLIMO_MEAN_FIELD = -#GRID_STAT_CLIMO_MEAN_REGRID_METHOD = -#GRID_STAT_CLIMO_MEAN_REGRID_WIDTH = -#GRID_STAT_CLIMO_MEAN_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_MEAN_REGRID_SHAPE = -#GRID_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_MEAN_MATCH_MONTH = -#GRID_STAT_CLIMO_MEAN_DAY_INTERVAL = -#GRID_STAT_CLIMO_MEAN_HOUR_INTERVAL = - -#GRID_STAT_CLIMO_STDEV_FILE_NAME = -#GRID_STAT_CLIMO_STDEV_FIELD = -#GRID_STAT_CLIMO_STDEV_REGRID_METHOD = -#GRID_STAT_CLIMO_STDEV_REGRID_WIDTH = -#GRID_STAT_CLIMO_STDEV_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_STDEV_REGRID_SHAPE = -#GRID_STAT_CLIMO_STDEV_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_STDEV_MATCH_MONTH = -#GRID_STAT_CLIMO_STDEV_DAY_INTERVAL = -#GRID_STAT_CLIMO_STDEV_HOUR_INTERVAL = - -#GRID_STAT_CLIMO_CDF_BINS = 1 -#GRID_STAT_CLIMO_CDF_CENTER_BINS = False -#GRID_STAT_CLIMO_CDF_WRITE_BINS = True - -GRID_STAT_MASK_GRID = - -# Statistical output types -GRID_STAT_OUTPUT_FLAG_FHO = STAT -GRID_STAT_OUTPUT_FLAG_CTC = STAT -GRID_STAT_OUTPUT_FLAG_CTS = STAT -#GRID_STAT_OUTPUT_FLAG_MCTC = NONE -#GRID_STAT_OUTPUT_FLAG_MCTS = NONE -GRID_STAT_OUTPUT_FLAG_CNT = STAT -#GRID_STAT_OUTPUT_FLAG_SL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_SAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VCNT = NONE -#GRID_STAT_OUTPUT_FLAG_PCT = NONE -#GRID_STAT_OUTPUT_FLAG_PSTD = NONE -#GRID_STAT_OUTPUT_FLAG_PJC = NONE -#GRID_STAT_OUTPUT_FLAG_PRC = NONE -#GRID_STAT_OUTPUT_FLAG_ECLV = BOTH -GRID_STAT_OUTPUT_FLAG_NBRCTC = STAT -GRID_STAT_OUTPUT_FLAG_NBRCTS = STAT -GRID_STAT_OUTPUT_FLAG_NBRCNT = STAT -#GRID_STAT_OUTPUT_FLAG_GRAD = BOTH -#GRID_STAT_OUTPUT_FLAG_DMAP = NONE - -# NetCDF matched pairs output file -#GRID_STAT_NC_PAIRS_VAR_NAME = -GRID_STAT_NC_PAIRS_FLAG_LATLON = FALSE -GRID_STAT_NC_PAIRS_FLAG_RAW = FALSE -GRID_STAT_NC_PAIRS_FLAG_DIFF = FALSE -GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE -#GRID_STAT_NC_PAIRS_FLAG_CLIMO_CDP = FALSE -GRID_STAT_NC_PAIRS_FLAG_WEIGHT = FALSE -GRID_STAT_NC_PAIRS_FLAG_NBRHD = FALSE -#GRID_STAT_NC_PAIRS_FLAG_FOURIER = FALSE -#GRID_STAT_NC_PAIRS_FLAG_GRADIENT = FALSE -#GRID_STAT_NC_PAIRS_FLAG_DISTANCE_MAP = FALSE -GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE - -# End of [config] section and start of [dir] section. -[dir] -# -# Directory containing observation input to GridStat. -# -OBS_GRID_STAT_INPUT_DIR = {{obs_input_dir}} -# -# Directory containing forecast input to GridStat. -# -FCST_GRID_STAT_INPUT_DIR = {{fcst_input_dir}} -# -# Directory containing climatology mean input to GridStat. Not used in -# this example. -# -GRID_STAT_CLIMO_MEAN_INPUT_DIR = -# -# Directory containing climatology mean input to GridStat. Not used in -# this example. -# -GRID_STAT_CLIMO_STDEV_INPUT_DIR = -# -# Directory in which to write output from GridStat. -# -# OUTPUT_BASE apparently has to be set to something; it cannot be left -# to its default value. But it is not explicitly used elsewhere in this -# configuration file. -# -OUTPUT_BASE = {{output_base}} -GRID_STAT_OUTPUT_DIR = {{output_dir}} -# -# Directory for staging data. -# -STAGING_DIR = {{staging_dir}} - -# End of [dir] section and start of [filename_templates] section. -[filename_templates] -# -# Template for observation input to GridStat relative to -# OBS_GRID_STAT_INPUT_DIR. -# -OBS_GRID_STAT_INPUT_TEMPLATE = {{obs_input_fn_template}} -# -# Template for forecast input to GridStat relative to -# FCST_GRID_STAT_INPUT_DIR. -# -FCST_GRID_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}} -# -# Template for output from GridStat relative to GRID_STAT_OUTPUT_DIR. -# -GRID_STAT_OUTPUT_TEMPLATE = -# -# Template for climatology input to GridStat relative to -# GRID_STAT_CLIMO_MEAN_INPUT_DIR. Not used in this example. -# -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = -# -# Template for climatology input to GridStat relative to -# GRID_STAT_CLIMO_STDEV_INPUT_DIR. Not used in this example. -# -GRID_STAT_CLIMO_STDEV_INPUT_TEMPLATE = -# -# Variable used to specify one or more verification mask files for -# GridStat. Not used for this example. -# -GRID_STAT_VERIFICATION_MASK_TEMPLATE = {MET_INSTALL_DIR}/share/met/poly/CONUS.poly diff --git a/parm/metplus/GridStat_ensmean_ASNOW.conf b/parm/metplus/GridStat_ensmean_ASNOW.conf index 9b78d6e31f..6fb8951a3f 100644 --- a/parm/metplus/GridStat_ensmean_ASNOW.conf +++ b/parm/metplus/GridStat_ensmean_ASNOW.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -89,13 +90,10 @@ GRID_STAT_REGRID_SHAPE = SQUARE # mean. This makes it easier to identify each curve. # MODEL = {{vx_fcst_model_name}}_ensmean - -FCST_NATIVE_DATA_TYPE = GRIB # # Name to identify observation data in output. # OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB # # Value to enter under the DESC column in the output stat file. # @@ -108,70 +106,23 @@ GRID_STAT_DESC = NA GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; # -# String to search for in the foreast input files for forecast variable -# 1. -# -# Note: -# This is the name of the field in the NetCDF file(s) created by MET's -# gen_ens_prod tool. This tool reads in the grib2 file(s) (in this case -# of forecasts) and outputs NetCDF file(s) in which the array names -# consist of the value of fieldname_in_met_output plus a suffix that -# specifies additional properties of the data in the array such as the -# level (which in this case is the accumulation period), the type of -# statistic, etc. In this case, this suffix is "_A01_ENS_MEAN". Thus, -# below, FCST_VAR1_NAME must be set to the value of fieldname_in_met_output -# with "_A01_ENS_MEAN" appended to it. -#FCST_VAR1_NAME = APCP_01_A01_ENS_MEAN -# -# Question: -# Why is the name of the array in the input NetCDF file (created by -# GenEnsProd) that this task reads contains ..._A01_ENS_MEAN instead of -# ..._A1_ENS_MEAN, as is the case for greater than 1-hour accumulation? -# If that were the case, we could use ACCUM_NO_PAD here instead of hard- -# coding the "A01", which would make it consistent with what is done in -# the METplus conf files for accumulation > 1 hour (e.g. 3, 6, and 24 -# hour). -# -#FCST_VAR1_NAME = {FIELDNAME_IN_MET_OUTPUT}_A{ENV[ACCUM_NO_PAD]}_ENS_MEAN -FCST_VAR1_NAME = {{fieldname_in_met_output}}_A{{accum_no_pad}}_ENS_MEAN -# -# List of levels to evaluate for forecast variable 1. -# -ACCUM_HH = {{accum_hh}} -FCST_VAR1_LEVELS = A{ACCUM_HH} -# -# List of thresholds to evaluate for each name/level combination for -# both obs and forecast variable 1. -# -BOTH_VAR1_THRESH = {{field_thresholds}} -# -# String to search for in the observation input files for observation -# variable 1. -# -# Note: -# This is the name of the field in the grib2 observation file. Thus, -# it should not be set to {{fieldname_in_met_output}} because the -# value of fieldname_in_met_output is in general not the same as the -# name of the field in the grib2 observation file (although it can be -# for certain fields). If you do and it doesn't match, you may get an -# error like this from METplus: -# ERROR : VarInfoGrib2::set_dict() -> unrecognized GRIB2 field abbreviation ... -# -#OBS_VAR1_NAME = APCP -OBS_VAR1_NAME = {{fieldname_in_obs_input}} +# List of forecast and corresponding observation fields to process. # -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# -OBS_VAR1_LEVELS = A{ACCUM_HH} +FCST_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_MEAN +FCST_VAR1_LEVELS = A{{accum_hh}} +FCST_VAR1_THRESH = {{field_thresholds}} +OBS_VAR1_NAME = {{fieldname_in_obs_input}} +OBS_VAR1_LEVELS = A{{accum_hh}} +OBS_VAR1_THRESH = {{field_thresholds}} OBS_VAR1_OPTIONS = convert(x) = 100.0*x; # -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. +# Forecast data time window(s). # FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 FCST_GRID_STAT_FILE_WINDOW_END = 0 +# +# Observation data time window(s). +# OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 OBS_GRID_STAT_FILE_WINDOW_END = 0 @@ -201,7 +152,7 @@ FCST_IS_PROB = False # FCST_GRID_STAT_PROB_THRESH = ==0.1 -GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}{{accum_hh}}h_{OBTYPE} +GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} # Climatology data #GRID_STAT_CLIMO_MEAN_FILE_NAME = diff --git a/parm/metplus/GridStat_ensmean_REFC.conf b/parm/metplus/GridStat_ensmean_REFC.conf index d8a6cc83ff..451c82dfd5 100644 --- a/parm/metplus/GridStat_ensmean_REFC.conf +++ b/parm/metplus/GridStat_ensmean_REFC.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -92,7 +93,6 @@ MODEL = {{vx_fcst_model_name}}_ensmean # Name to identify observation data in output. # OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB # # Value to enter under the DESC column in the output stat file. # @@ -103,7 +103,7 @@ GRID_STAT_DESC = NA # Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations # are needed for different tools -GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = []; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; +GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; # # String to search for in the foreast input files for forecast variable # 1. @@ -111,25 +111,16 @@ GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = []; cnt_thresh = [NA]; cnt_logic = # Note: # This is the name of the field in the NetCDF file(s) created by MET's # gen_ens_prod tool. This tool reads in the grib2 file(s) (in this case -# of forecasts) and outputs NetCDF file(s) in which the array names +# of forecasts) and outputs NetCDF file(s) in which the array names # consist of the value of fieldname_in_met_output plus a suffix that # specifies additional properties of the data in the array such as the -# level, the type of statistic, etc. In this case, this suffix is +# level, the type of statistic, etc. In this case, this suffix is # "_L0_ENS_MEAN". Thus, below, FCST_VAR1_NAME must be set to the value # of fieldname_in_met_output with "_L0_ENS_MEAN" appended to it. # FCST_VAR1_NAME = {{fieldname_in_met_output}}_L0_ENS_MEAN -# -# List of levels to evaluate for forecast variable 1. -# FCST_VAR1_LEVELS = L0 - -#FCST_VAR1_OPTIONS = cnt_thresh = [ >15 ]; cnt_logic = UNION; -# -# List of thresholds to evaluate for each name/level combination for -# both obs and forecast variable 1. -# -BOTH_VAR1_THRESH = {{field_thresholds}} +FCST_VAR1_THRESH = {{field_thresholds}} # # String to search for in the observation input files for observation # variable 1. @@ -144,19 +135,20 @@ BOTH_VAR1_THRESH = {{field_thresholds}} # ERROR : VarInfoGrib2::set_dict() -> unrecognized GRIB2 field abbreviation ... # OBS_VAR1_NAME = {{fieldname_in_obs_input}} -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# OBS_VAR1_LEVELS = Z500 -OBS_VAR1_OPTIONS = censor_thresh = lt-20; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; +OBS_VAR1_THRESH = {{field_thresholds}} +OBS_VAR1_OPTIONS = censor_thresh = lt-20; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; # -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. +# Forecast data time window(s). # #FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 #FCST_GRID_STAT_FILE_WINDOW_END = 0 +# +# Observation data time window(s). +# OBS_GRID_STAT_FILE_WINDOW_BEGIN = -300 OBS_GRID_STAT_FILE_WINDOW_END = 300 @@ -187,15 +179,6 @@ FCST_IS_PROB = False FCST_GRID_STAT_PROB_THRESH = ==0.1 GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} -# -# Set to true if observation data is probabilistic. Only used if -# configuring forecast data as the 'OBS' input. -# -OBS_IS_PROB = false -# -# Only used if OBS_IS_PROB is true - sets probabilistic threshold. -# -OBS_GRID_STAT_PROB_THRESH = ==0.1 # Climatology data #GRID_STAT_CLIMO_MEAN_FILE_NAME = diff --git a/parm/metplus/GridStat_ensmean_RETOP.conf b/parm/metplus/GridStat_ensmean_RETOP.conf index bc037c4567..a881ed3ab5 100644 --- a/parm/metplus/GridStat_ensmean_RETOP.conf +++ b/parm/metplus/GridStat_ensmean_RETOP.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -92,7 +93,6 @@ MODEL = {{vx_fcst_model_name}}_ensmean # Name to identify observation data in output. # OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB # # Value to enter under the DESC column in the output stat file. # @@ -103,7 +103,7 @@ GRID_STAT_DESC = NA # Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations # are needed for different tools -GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = []; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; +GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; # # String to search for in the foreast input files for forecast variable # 1. @@ -111,25 +111,18 @@ GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = []; cnt_thresh = [NA]; cnt_logic = # Note: # This is the name of the field in the NetCDF file(s) created by MET's # gen_ens_prod tool. This tool reads in the grib2 file(s) (in this case -# of forecasts) and outputs NetCDF file(s) in which the array names +# of forecasts) and outputs NetCDF file(s) in which the array names # consist of the value of fieldname_in_met_output plus a suffix that # specifies additional properties of the data in the array such as the -# level, the type of statistic, etc. In this case, this suffix is +# level, the type of statistic, etc. In this case, this suffix is # "_L0_ENS_MEAN". Thus, below, FCST_VAR1_NAME must be set to the value # of fieldname_in_met_output with "_L0_ENS_MEAN" appended to it. # FCST_VAR1_NAME = {{fieldname_in_met_output}}_L0_ENS_MEAN -# -# List of levels to evaluate for forecast variable 1. -# FCST_VAR1_LEVELS = L0 +FCST_VAR1_THRESH = {{field_thresholds}} FCST_VAR1_OPTIONS = convert(x) = x * 3.28084 * 0.001; # -# List of thresholds to evaluate for each name/level combination for -# both obs and forecast variable 1. -# -BOTH_VAR1_THRESH = {{field_thresholds}} -# # String to search for in the observation input files for observation # variable 1. # @@ -143,19 +136,21 @@ BOTH_VAR1_THRESH = {{field_thresholds}} # ERROR : VarInfoGrib2::set_dict() -> unrecognized GRIB2 field abbreviation ... # OBS_VAR1_NAME = {{fieldname_in_obs_input}} -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# OBS_VAR1_LEVELS = Z500 -OBS_VAR1_OPTIONS = censor_thresh = lt-20.0; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; convert(x) = x * 3280.84 * 0.001; +OBS_VAR1_THRESH = {{field_thresholds}} +OBS_VAR1_OPTIONS = censor_thresh = lt-20.0; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + convert(x) = x * 3280.84 * 0.001; # -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. +# Forecast data time window(s). # #FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 #FCST_GRID_STAT_FILE_WINDOW_END = 0 +# +# Observation data time window(s). +# OBS_GRID_STAT_FILE_WINDOW_BEGIN = -300 OBS_GRID_STAT_FILE_WINDOW_END = 300 @@ -186,15 +181,6 @@ FCST_IS_PROB = False FCST_GRID_STAT_PROB_THRESH = ==0.1 GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} -# -# Set to true if observation data is probabilistic. Only used if -# configuring forecast data as the 'OBS' input. -# -OBS_IS_PROB = false -# -# Only used if OBS_IS_PROB is true - sets probabilistic threshold. -# -OBS_GRID_STAT_PROB_THRESH = ==0.1 # Climatology data #GRID_STAT_CLIMO_MEAN_FILE_NAME = diff --git a/parm/metplus/GridStat_ensprob_APCP01h.conf b/parm/metplus/GridStat_ensprob_APCP.conf similarity index 76% rename from parm/metplus/GridStat_ensprob_APCP01h.conf rename to parm/metplus/GridStat_ensprob_APCP.conf index 621fe93e53..3e16de248d 100644 --- a/parm/metplus/GridStat_ensprob_APCP01h.conf +++ b/parm/metplus/GridStat_ensprob_APCP.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -79,7 +80,6 @@ GRID_STAT_REGRID_SHAPE = SQUARE #GRID_STAT_INTERP_TYPE_WIDTH = 1 #GRID_STAT_GRID_WEIGHT_FLAG = - # # Name to identify model (forecast) data in output. # @@ -89,13 +89,10 @@ GRID_STAT_REGRID_SHAPE = SQUARE # This makes it easier to identify each curve. # MODEL = {{vx_fcst_model_name}}_ensprob - -FCST_NATIVE_DATA_TYPE = GRIB # # Name to identify observation data in output. # OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB # # Value to enter under the DESC column in the output stat file. # @@ -108,95 +105,99 @@ GRID_STAT_DESC = NA GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; -# Name of forecast variables -# thresholds in mm, equal to >0, .01",.05",.10" +{%- set field_thresholds = [] %} +{%- if accum_hh == '01' %} + {%- set field_thresholds = ['gt0.0', 'ge0.254', 'ge0.508', 'ge2.54'] %} +{%- elif accum_hh == '03' %} + {%- set field_thresholds = ['gt0.0', 'ge0.508', 'ge2.54', 'ge6.350'] %} +{%- elif accum_hh == '06' %} + {%- set field_thresholds = ['gt0.0', 'ge2.54', 'ge6.350', 'ge12.700'] %} +{%- elif accum_hh == '24' %} + {%- set field_thresholds = ['gt0.0', 'ge6.350', 'ge12.700', 'ge25.400'] %} +{%- endif %} +# +# List of forecast and corresponding observation fields to process. +# # FREQ # Process as probability -FCST_VAR1_NAME = {{fieldname_in_met_output}}_A01_ENS_FREQ_gt0.0 -FCST_VAR1_LEVELS = A01 +# +FCST_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[0]}} +FCST_VAR1_LEVELS = A{{accum_hh}} FCST_VAR1_THRESH = ==0.1 +OBS_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +OBS_VAR1_LEVELS = A{{accum_hh}} +OBS_VAR1_THRESH = {{field_thresholds[0]}} -OBS_VAR1_NAME = {{fieldname_in_obs_input}} -OBS_VAR1_LEVELS = A01 -OBS_VAR1_THRESH = >0.0 - -FCST_VAR2_NAME = {{fieldname_in_met_output}}_A01_ENS_FREQ_ge0.254 -FCST_VAR2_LEVELS = A01 +FCST_VAR2_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[1]}} +FCST_VAR2_LEVELS = A{{accum_hh}} FCST_VAR2_THRESH = ==0.1 +OBS_VAR2_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +OBS_VAR2_LEVELS = A{{accum_hh}} +OBS_VAR2_THRESH = {{field_thresholds[1]}} -OBS_VAR2_NAME = {{fieldname_in_obs_input}} -OBS_VAR2_LEVELS = A01 -OBS_VAR2_THRESH = >=0.254 - -FCST_VAR3_NAME = {{fieldname_in_met_output}}_A01_ENS_FREQ_ge0.508 -FCST_VAR3_LEVELS = A01 +FCST_VAR3_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[2]}} +FCST_VAR3_LEVELS = A{{accum_hh}} FCST_VAR3_THRESH = ==0.1 +OBS_VAR3_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +OBS_VAR3_LEVELS = A{{accum_hh}} +OBS_VAR3_THRESH = {{field_thresholds[2]}} -OBS_VAR3_NAME = {{fieldname_in_obs_input}} -OBS_VAR3_LEVELS = A01 -OBS_VAR3_THRESH = >=0.508 - -FCST_VAR4_NAME = {{fieldname_in_met_output}}_A01_ENS_FREQ_ge2.54 -FCST_VAR4_LEVELS = A01 +FCST_VAR4_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[3]}} +FCST_VAR4_LEVELS = A{{accum_hh}} FCST_VAR4_THRESH = ==0.1 +OBS_VAR4_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +OBS_VAR4_LEVELS = A{{accum_hh}} +OBS_VAR4_THRESH = {{field_thresholds[3]}} -OBS_VAR4_NAME = {{fieldname_in_obs_input}} -OBS_VAR4_LEVELS = A01 -OBS_VAR4_THRESH = >=2.54 - +# #Process as scalars for neighborhood methods ## Note that the number of forecast and obs thresholds must match ## but won't actually be applied to NBRCNT outputs with "nbrhd.field = OBS;" -FCST_VAR5_NAME = {{fieldname_in_met_output}}_A01_ENS_FREQ_gt0.0 -FCST_VAR5_LEVELS = A01 +# +FCST_VAR5_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[0]}} +FCST_VAR5_LEVELS = A{{accum_hh}} FCST_VAR5_THRESH = ==0.1 FCST_VAR5_OPTIONS = prob = FALSE; - -OBS_VAR5_NAME = {{fieldname_in_obs_input}} -OBS_VAR5_LEVELS = A01 -OBS_VAR5_THRESH = >0.0 +OBS_VAR5_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +OBS_VAR5_LEVELS = A{{accum_hh}} +OBS_VAR5_THRESH = {{field_thresholds[0]}} OBS_VAR5_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } -FCST_VAR6_NAME = {{fieldname_in_met_output}}_A01_ENS_FREQ_ge0.254 -FCST_VAR6_LEVELS = A01 +FCST_VAR6_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[1]}} +FCST_VAR6_LEVELS = A{{accum_hh}} FCST_VAR6_THRESH = ==0.1 FCST_VAR6_OPTIONS = prob = FALSE; - -OBS_VAR6_NAME = {{fieldname_in_obs_input}} -OBS_VAR6_LEVELS = A01 -OBS_VAR6_THRESH = >=0.254 +OBS_VAR6_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +OBS_VAR6_LEVELS = A{{accum_hh}} +OBS_VAR6_THRESH = {{field_thresholds[1]}} OBS_VAR6_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } -FCST_VAR7_NAME = {{fieldname_in_met_output}}_A01_ENS_FREQ_ge0.508 -FCST_VAR7_LEVELS = A01 +FCST_VAR7_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[2]}} +FCST_VAR7_LEVELS = A{{accum_hh}} FCST_VAR7_THRESH = ==0.1 FCST_VAR7_OPTIONS = prob = FALSE; - -OBS_VAR7_NAME = {{fieldname_in_obs_input}} -OBS_VAR7_LEVELS = A01 -OBS_VAR7_THRESH = >=0.508 +OBS_VAR7_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +OBS_VAR7_LEVELS = A{{accum_hh}} +OBS_VAR7_THRESH = {{field_thresholds[2]}} OBS_VAR7_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } -FCST_VAR8_NAME = {{fieldname_in_met_output}}_A01_ENS_FREQ_ge2.54 -FCST_VAR8_LEVELS = A01 +FCST_VAR8_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[3]}} +FCST_VAR8_LEVELS = A{{accum_hh}} FCST_VAR8_THRESH = ==0.1 FCST_VAR8_OPTIONS = prob = FALSE; - -OBS_VAR8_NAME = {{fieldname_in_obs_input}} -OBS_VAR8_LEVELS = A01 -OBS_VAR8_THRESH = >=2.54 +OBS_VAR8_NAME = {{fieldname_in_met_output}}_{{accum_hh}} +OBS_VAR8_LEVELS = A{{accum_hh}} +OBS_VAR8_THRESH = {{field_thresholds[3]}} OBS_VAR8_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } -#FCST_GRID_STAT_FILE_TYPE = - -#OBS_GRID_STAT_FILE_TYPE = - -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. +# +# Forecast data time window(s). # FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 FCST_GRID_STAT_FILE_WINDOW_END = 0 +# +# Observation data time window(s). +# OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 OBS_GRID_STAT_FILE_WINDOW_END = 0 diff --git a/parm/metplus/GridStat_ensprob_APCP03h.conf b/parm/metplus/GridStat_ensprob_APCP03h.conf deleted file mode 100644 index de4fef9d52..0000000000 --- a/parm/metplus/GridStat_ensprob_APCP03h.conf +++ /dev/null @@ -1,413 +0,0 @@ -# Ensemble probabilistic GridStat METplus Configuration - -[config] - -# List of applications (tools) to run. -PROCESS_LIST = GridStat - -# time looping - options are INIT, VALID, RETRO, and REALTIME -# If set to INIT or RETRO: -# INIT_TIME_FMT, INIT_BEG, INIT_END, and INIT_INCREMENT must also be set -# If set to VALID or REALTIME: -# VALID_TIME_FMT, VALID_BEG, VALID_END, and VALID_INCREMENT must also be set -LOOP_BY = INIT - -# Format of INIT_BEG and INIT_END using % items -# %Y = 4 digit year, %m = 2 digit month, %d = 2 digit day, etc. -# see www.strftime.org for more information -# %Y%m%d%H expands to YYYYMMDDHH -INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match INIT_TIME_FMT -INIT_BEG = {{cdate}} - -# End time for METplus run - must match INIT_TIME_FMT -INIT_END = {{cdate}} - -# Increment between METplus runs (in seconds if no units are specified). -# Must be >= 60 seconds. -INIT_INCREMENT = 3600 - -# List of forecast leads to process for each run time (init or valid) -# In hours if units are not specified -# If unset, defaults to 0 (don't loop through forecast leads) -LEAD_SEQ = {{fhr_list}} -# -# Order of loops to process data - Options are times, processes -# Not relevant if only one item is in the PROCESS_LIST -# times = run all wrappers in the PROCESS_LIST for a single run time, then -# increment the run time and run all wrappers again until all times have -# been evaluated. -# processes = run the first wrapper in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST until all -# wrappers have been run -# -LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 -# -# Specify the name of the METplus log file. -# -LOG_METPLUS = {LOG_DIR}/{{metplus_log_fn}} -# -# Specify the location and name of the final METplus conf file. -# -METPLUS_CONF = {GRID_STAT_OUTPUT_DIR}/metplus_final.{{metplus_config_fn}} -# -# Location of MET configuration file to pass to GridStat. -# -# References PARM_BASE, which is the location of the parm directory -# corresponding to the ush directory of the run_metplus.py script that -# is called or the value of the environment variable METPLUS_PARM_BASE -# if set. -# -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - -# grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary -# See MET User's Guide for more information -GRID_STAT_REGRID_TO_GRID = FCST -GRID_STAT_REGRID_VLD_THRESH = 0.5 -GRID_STAT_REGRID_METHOD = BUDGET -GRID_STAT_REGRID_WIDTH = 2 -GRID_STAT_REGRID_SHAPE = SQUARE - -#GRID_STAT_INTERP_FIELD = BOTH -#GRID_STAT_INTERP_VLD_THRESH = 1.0 -#GRID_STAT_INTERP_SHAPE = SQUARE -#GRID_STAT_INTERP_TYPE_METHOD = NEAREST -#GRID_STAT_INTERP_TYPE_WIDTH = 1 - -#GRID_STAT_GRID_WEIGHT_FLAG = - -# -# Name to identify model (forecast) data in output. -# -# The variable MODEL is recorded in the stat files, and the data in -# these files is then plotted (e.g. using METViewer). Here, we add a -# suffix to MODEL that identifies the data as ensemble-probabilistic. -# This makes it easier to identify each curve. -# -MODEL = {{vx_fcst_model_name}}_ensprob - -FCST_NATIVE_DATA_TYPE = GRIB -# -# Name to identify observation data in output. -# -OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB -# -# Value to enter under the DESC column in the output stat file. -# -GRID_STAT_DESC = NA - -# List of variables to compare in GridStat - FCST_VAR1 variables correspond -# to OBS_VAR1 variables -# Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations -# are needed for different tools - -GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; - -FIELDNAME_IN_MET_OUTPUT = {{fieldname_in_met_output}} -# -# FREQ -# Process as probability - -# -# String to search for in the foreast input files for forecast variable -# 1. -# -# Note: -# This is the name of the field in the NetCDF file(s) created by MET's -# gen_ens_prod tool. This tool reads in the NetCDF file(s) generated by -# MET's pcp_combine tool. The latter reads in grib2 file(s) containing -# 1 hour accumulation data (in this case, from forecasts) and outputs -# NetCDF file(s) with the appropriate > 1 hour accumulation. These -# output NetCDF files from pcp_combine name their arrays as specified by -# FIELDNAME_IN_MET_OUTPUT. The gen_ens_prod tool then takes this array -# name and, in its output NetCDF files, creates arrays whose names consist -# of the original array name in the pcp_combine output (FIELDNAME_IN_MET_OUTPUT) -# plus a suffix that specifies additional properties of the data in the -# array such as the level (which in this case is the accumulation period), -# the type of statistic, etc. In this case, this suffix is "_A3_ENS_FREQ_gt0.0". -# Thus, below, FCST_VAR1_NAME must be set to the value of FIELDNAME_IN_MET_OUTPUT -# with "_A3_ENS_FREQ_gt0.0" appended to it. -# The same is true of other forecast fields below except the suffix is -# different. -# -#FCST_VAR1_NAME = APCP_A3_ENS_FREQ_gt0.0 -FCST_VAR1_NAME = {FIELDNAME_IN_MET_OUTPUT}_A3_ENS_FREQ_gt0.0 -FCST_VAR1_LEVELS = A03 -FCST_VAR1_THRESH = ==0.1 -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# -# Note: -# This is the name of the field in the NetCDF file created by MET's -# pcp_combine tool. This tool reads in the grib2 file(s) containing -# 1 hour accumulation data (in this case, from observations) and outputs -# NetCDF file(s) with the appropriate > 1 hour accumulation. These -# output NetCDF files name their arrays as specified by the environment -# variable FIELDNAME_IN_MET_OUTPUT. Thus, that is the value we set -# OBS_VAR1_NAME to here, not to the name of the variable in the grib2 -# file. -# -#OBS_VAR1_NAME = APCP -OBS_VAR1_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR1_LEVELS = A03 -OBS_VAR1_THRESH = >0.0 - -#FCST_VAR2_NAME = APCP_A3_ENS_FREQ_ge0.508 -FCST_VAR2_NAME = {FIELDNAME_IN_MET_OUTPUT}_A3_ENS_FREQ_ge0.508 -FCST_VAR2_LEVELS = A03 -FCST_VAR2_THRESH = ==0.1 - -#OBS_VAR2_NAME = APCP -OBS_VAR2_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR2_LEVELS = A03 -OBS_VAR2_THRESH = >=0.508 - -#FCST_VAR3_NAME = APCP_A3_ENS_FREQ_ge2.54 -FCST_VAR3_NAME = {FIELDNAME_IN_MET_OUTPUT}_A3_ENS_FREQ_ge2.54 -FCST_VAR3_LEVELS = A03 -FCST_VAR3_THRESH = ==0.1 - -#OBS_VAR3_NAME = APCP -OBS_VAR3_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR3_LEVELS = A03 -OBS_VAR3_THRESH = >=2.54 - -#FCST_VAR4_NAME = APCP_A3_ENS_FREQ_ge6.350 -FCST_VAR4_NAME = {FIELDNAME_IN_MET_OUTPUT}_A3_ENS_FREQ_ge6.350 -FCST_VAR4_LEVELS = A03 -FCST_VAR4_THRESH = ==0.1 - -#OBS_VAR4_NAME = APCP -OBS_VAR4_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR4_LEVELS = A03 -OBS_VAR4_THRESH = >=6.350 - -#Process as scalars for neighborhood methods -## Note that the number of forecast and obs thresholds must match -## but won't actually be applied to NBRCNT outputs with "nbrhd.field = OBS;" -#FCST_VAR5_NAME = APCP_A3_ENS_FREQ_gt0.0 -FCST_VAR5_NAME = {FIELDNAME_IN_MET_OUTPUT}_A3_ENS_FREQ_gt0.0 -FCST_VAR5_LEVELS = A03 -FCST_VAR5_THRESH = ==0.1 -FCST_VAR5_OPTIONS = prob = FALSE; - -#OBS_VAR5_NAME = APCP -OBS_VAR5_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR5_LEVELS = A03 -OBS_VAR5_THRESH = >0.0 -OBS_VAR5_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#FCST_VAR6_NAME = APCP_A3_ENS_FREQ_ge0.508 -FCST_VAR6_NAME = {FIELDNAME_IN_MET_OUTPUT}_A3_ENS_FREQ_ge0.508 -FCST_VAR6_LEVELS = A03 -FCST_VAR6_THRESH = ==0.1 -FCST_VAR6_OPTIONS = prob = FALSE; - -#OBS_VAR6_NAME = APCP -OBS_VAR6_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR6_LEVELS = A03 -OBS_VAR6_THRESH = >=0.508 -OBS_VAR6_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#FCST_VAR7_NAME = APCP_A3_ENS_FREQ_ge2.54 -FCST_VAR7_NAME = {FIELDNAME_IN_MET_OUTPUT}_A3_ENS_FREQ_ge2.54 -FCST_VAR7_LEVELS = A03 -FCST_VAR7_THRESH = ==0.1 -FCST_VAR7_OPTIONS = prob = FALSE; - -#OBS_VAR7_NAME = APCP -OBS_VAR7_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR7_LEVELS = A03 -OBS_VAR7_THRESH = >=2.54 -OBS_VAR7_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#FCST_VAR8_NAME = APCP_A3_ENS_FREQ_ge6.350 -FCST_VAR8_NAME = {FIELDNAME_IN_MET_OUTPUT}_A3_ENS_FREQ_ge6.350 -FCST_VAR8_LEVELS = A03 -FCST_VAR8_THRESH = ==0.1 -FCST_VAR8_OPTIONS = prob = FALSE; - -#OBS_VAR8_NAME = APCP -OBS_VAR8_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR8_LEVELS = A03 -OBS_VAR8_THRESH = >=6.350 -OBS_VAR8_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#FCST_GRID_STAT_FILE_TYPE = - -#OBS_GRID_STAT_FILE_TYPE = - -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. -# -FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 -FCST_GRID_STAT_FILE_WINDOW_END = 0 -OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 -OBS_GRID_STAT_FILE_WINDOW_END = 0 - -# MET GridStat neighborhood values -# See the MET User's Guide GridStat section for more information -GRID_STAT_NEIGHBORHOOD_FIELD = - -# width value passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_WIDTH = - -# shape value passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_SHAPE = - -# cov thresh list passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_COV_THRESH = >=0.5 - -# Set to true to run GridStat separately for each field specified -# Set to false to create one run of GridStat per run time that -# includes all fields specified. -GRID_STAT_ONCE_PER_FIELD = False -# -# Set to true if forecast data is probabilistic. -# -FCST_IS_PROB = True -FCST_PROB_IN_GRIB_PDS = False -# -# Only used if FCST_IS_PROB is true - sets probabilistic threshold -# -FCST_GRID_STAT_PROB_THRESH = ==0.1 - -GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} - -# Climatology data -#GRID_STAT_CLIMO_MEAN_FILE_NAME = -#GRID_STAT_CLIMO_MEAN_FIELD = -#GRID_STAT_CLIMO_MEAN_REGRID_METHOD = -#GRID_STAT_CLIMO_MEAN_REGRID_WIDTH = -#GRID_STAT_CLIMO_MEAN_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_MEAN_REGRID_SHAPE = -#GRID_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_MEAN_MATCH_MONTH = -#GRID_STAT_CLIMO_MEAN_DAY_INTERVAL = -#GRID_STAT_CLIMO_MEAN_HOUR_INTERVAL = - -#GRID_STAT_CLIMO_STDEV_FILE_NAME = -#GRID_STAT_CLIMO_STDEV_FIELD = -#GRID_STAT_CLIMO_STDEV_REGRID_METHOD = -#GRID_STAT_CLIMO_STDEV_REGRID_WIDTH = -#GRID_STAT_CLIMO_STDEV_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_STDEV_REGRID_SHAPE = -#GRID_STAT_CLIMO_STDEV_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_STDEV_MATCH_MONTH = -#GRID_STAT_CLIMO_STDEV_DAY_INTERVAL = -#GRID_STAT_CLIMO_STDEV_HOUR_INTERVAL = - -#GRID_STAT_CLIMO_CDF_BINS = 1 -#GRID_STAT_CLIMO_CDF_CENTER_BINS = False -#GRID_STAT_CLIMO_CDF_WRITE_BINS = True - -GRID_STAT_MASK_GRID = - -# Statistical output types -GRID_STAT_OUTPUT_FLAG_FHO = NONE -GRID_STAT_OUTPUT_FLAG_CTC = NONE -GRID_STAT_OUTPUT_FLAG_CTS = NONE -#GRID_STAT_OUTPUT_FLAG_MCTC = NONE -#GRID_STAT_OUTPUT_FLAG_MCTS = NONE -GRID_STAT_OUTPUT_FLAG_CNT = NONE -#GRID_STAT_OUTPUT_FLAG_SL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_SAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VCNT = NONE -GRID_STAT_OUTPUT_FLAG_PCT = STAT -GRID_STAT_OUTPUT_FLAG_PSTD = STAT -GRID_STAT_OUTPUT_FLAG_PJC = STAT -GRID_STAT_OUTPUT_FLAG_PRC = STAT -#GRID_STAT_OUTPUT_FLAG_ECLV = BOTH -GRID_STAT_OUTPUT_FLAG_NBRCTC = NONE -GRID_STAT_OUTPUT_FLAG_NBRCTS = NONE -GRID_STAT_OUTPUT_FLAG_NBRCNT = STAT -#GRID_STAT_OUTPUT_FLAG_GRAD = BOTH -#GRID_STAT_OUTPUT_FLAG_DMAP = NONE - -# NetCDF matched pairs output file -#GRID_STAT_NC_PAIRS_VAR_NAME = -GRID_STAT_NC_PAIRS_FLAG_LATLON = FALSE -GRID_STAT_NC_PAIRS_FLAG_RAW = FALSE -GRID_STAT_NC_PAIRS_FLAG_DIFF = FALSE -GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE -GRID_STAT_NC_PAIRS_FLAG_WEIGHT = FALSE -GRID_STAT_NC_PAIRS_FLAG_NBRHD = FALSE -#GRID_STAT_NC_PAIRS_FLAG_FOURIER = FALSE -#GRID_STAT_NC_PAIRS_FLAG_GRADIENT = FALSE -#GRID_STAT_NC_PAIRS_FLAG_DISTANCE_MAP = FALSE -GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE - -# End of [config] section and start of [dir] section. -[dir] -# -# Directory containing observation input to GridStat. -# -OBS_GRID_STAT_INPUT_DIR = {{obs_input_dir}} -# -# Directory containing forecast input to GridStat. -# -FCST_GRID_STAT_INPUT_DIR = {{fcst_input_dir}} -# -# Directory containing climatology mean input to GridStat. Not used in -# this example. -# -GRID_STAT_CLIMO_MEAN_INPUT_DIR = -# -# Directory containing climatology mean input to GridStat. Not used in -# this example. -# -GRID_STAT_CLIMO_STDEV_INPUT_DIR = -# -# Directory in which to write output from GridStat. -# -# OUTPUT_BASE apparently has to be set to something; it cannot be left -# to its default value. But it is not explicitly used elsewhere in this -# configuration file. -# -OUTPUT_BASE = {{output_base}} -GRID_STAT_OUTPUT_DIR = {{output_dir}} -# -# Directory for staging data. -# -STAGING_DIR = {{staging_dir}} - -# End of [dir] section and start of [filename_templates] section. -[filename_templates] -# -# Template for observation input to GridStat relative to -# OBS_GRID_STAT_INPUT_DIR. -# -OBS_GRID_STAT_INPUT_TEMPLATE = {{obs_input_fn_template}} -# -# Template for forecast input to GridStat relative to -# FCST_GRID_STAT_INPUT_DIR. -# -FCST_GRID_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}} -# -# Template for output from GridStat relative to GRID_STAT_OUTPUT_DIR. -# -GRID_STAT_OUTPUT_TEMPLATE = -# -# Template for climatology input to GridStat relative to -# GRID_STAT_CLIMO_MEAN_INPUT_DIR. Not used in this example. -# -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = -# -# Template for climatology input to GridStat relative to -# GRID_STAT_CLIMO_STDEV_INPUT_DIR. Not used in this example. -# -GRID_STAT_CLIMO_STDEV_INPUT_TEMPLATE = -# -# Variable used to specify one or more verification mask files for -# GridStat. Not used for this example. -# -GRID_STAT_VERIFICATION_MASK_TEMPLATE = {MET_INSTALL_DIR}/share/met/poly/CONUS.poly diff --git a/parm/metplus/GridStat_ensprob_APCP06h.conf b/parm/metplus/GridStat_ensprob_APCP06h.conf deleted file mode 100644 index b56e65a597..0000000000 --- a/parm/metplus/GridStat_ensprob_APCP06h.conf +++ /dev/null @@ -1,413 +0,0 @@ -# Ensemble probabilistic GridStat METplus Configuration - -[config] - -# List of applications (tools) to run. -PROCESS_LIST = GridStat - -# time looping - options are INIT, VALID, RETRO, and REALTIME -# If set to INIT or RETRO: -# INIT_TIME_FMT, INIT_BEG, INIT_END, and INIT_INCREMENT must also be set -# If set to VALID or REALTIME: -# VALID_TIME_FMT, VALID_BEG, VALID_END, and VALID_INCREMENT must also be set -LOOP_BY = INIT - -# Format of INIT_BEG and INIT_END using % items -# %Y = 4 digit year, %m = 2 digit month, %d = 2 digit day, etc. -# see www.strftime.org for more information -# %Y%m%d%H expands to YYYYMMDDHH -INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match INIT_TIME_FMT -INIT_BEG = {{cdate}} - -# End time for METplus run - must match INIT_TIME_FMT -INIT_END = {{cdate}} - -# Increment between METplus runs (in seconds if no units are specified). -# Must be >= 60 seconds. -INIT_INCREMENT = 3600 - -# List of forecast leads to process for each run time (init or valid) -# In hours if units are not specified -# If unset, defaults to 0 (don't loop through forecast leads) -LEAD_SEQ = {{fhr_list}} -# -# Order of loops to process data - Options are times, processes -# Not relevant if only one item is in the PROCESS_LIST -# times = run all wrappers in the PROCESS_LIST for a single run time, then -# increment the run time and run all wrappers again until all times have -# been evaluated. -# processes = run the first wrapper in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST until all -# wrappers have been run -# -LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 -# -# Specify the name of the METplus log file. -# -LOG_METPLUS = {LOG_DIR}/{{metplus_log_fn}} -# -# Specify the location and name of the final METplus conf file. -# -METPLUS_CONF = {GRID_STAT_OUTPUT_DIR}/metplus_final.{{metplus_config_fn}} -# -# Location of MET configuration file to pass to GridStat. -# -# References PARM_BASE, which is the location of the parm directory -# corresponding to the ush directory of the run_metplus.py script that -# is called or the value of the environment variable METPLUS_PARM_BASE -# if set. -# -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - -# grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary -# See MET User's Guide for more information -GRID_STAT_REGRID_TO_GRID = FCST -GRID_STAT_REGRID_VLD_THRESH = 0.5 -GRID_STAT_REGRID_METHOD = BUDGET -GRID_STAT_REGRID_WIDTH = 2 -GRID_STAT_REGRID_SHAPE = SQUARE - -#GRID_STAT_INTERP_FIELD = BOTH -#GRID_STAT_INTERP_VLD_THRESH = 1.0 -#GRID_STAT_INTERP_SHAPE = SQUARE -#GRID_STAT_INTERP_TYPE_METHOD = NEAREST -#GRID_STAT_INTERP_TYPE_WIDTH = 1 - -#GRID_STAT_GRID_WEIGHT_FLAG = - -# -# Name to identify model (forecast) data in output. -# -# The variable MODEL is recorded in the stat files, and the data in -# these files is then plotted (e.g. using METViewer). Here, we add a -# suffix to MODEL that identifies the data as ensemble-probabilistic. -# This makes it easier to identify each curve. -# -MODEL = {{vx_fcst_model_name}}_ensprob - -FCST_NATIVE_DATA_TYPE = GRIB -# -# Name to identify observation data in output. -# -OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB -# -# Value to enter under the DESC column in the output stat file. -# -GRID_STAT_DESC = NA - -# List of variables to compare in GridStat - FCST_VAR1 variables correspond -# to OBS_VAR1 variables -# Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations -# are needed for different tools - -GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; - -FIELDNAME_IN_MET_OUTPUT = {{fieldname_in_met_output}} -# -# FREQ -# Process as probability - -# -# String to search for in the foreast input files for forecast variable -# 1. -# -# Note: -# This is the name of the field in the NetCDF file(s) created by MET's -# gen_ens_prod tool. This tool reads in the NetCDF file(s) generated by -# MET's pcp_combine tool. The latter reads in grib2 file(s) containing -# 1 hour accumulation data (in this case, from forecasts) and outputs -# NetCDF file(s) with the appropriate > 1 hour accumulation. These -# output NetCDF files from pcp_combine name their arrays as specified by -# FIELDNAME_IN_MET_OUTPUT. The gen_ens_prod tool then takes this array -# name and, in its output NetCDF files, creates arrays whose names consist -# of the original array name in the pcp_combine output (FIELDNAME_IN_MET_OUTPUT) -# plus a suffix that specifies additional properties of the data in the -# array such as the level (which in this case is the accumulation period), -# the type of statistic, etc. In this case, this suffix is "_A6_ENS_FREQ_gt0.0". -# Thus, below, FCST_VAR1_NAME must be set to the value of FIELDNAME_IN_MET_OUTPUT -# with "_A6_ENS_FREQ_gt0.0" appended to it. -# The same is true of other forecast fields below except the suffix is -# different. -# -#FCST_VAR1_NAME = APCP_A6_ENS_FREQ_gt0.0 -FCST_VAR1_NAME = {FIELDNAME_IN_MET_OUTPUT}_A6_ENS_FREQ_gt0.0 -FCST_VAR1_LEVELS = A06 -FCST_VAR1_THRESH = ==0.1 -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# -# Note: -# This is the name of the field in the NetCDF file created by MET's -# pcp_combine tool. This tool reads in the grib2 file(s) containing -# 1 hour accumulation data (in this case, from observations) and outputs -# NetCDF file(s) with the appropriate > 1 hour accumulation. These -# output NetCDF files name their arrays as specified by the environment -# variable FIELDNAME_IN_MET_OUTPUT. Thus, that is the value we set -# OBS_VAR1_NAME to here, not to the name of the variable in the grib2 -# file. -# -#OBS_VAR1_NAME = APCP -OBS_VAR1_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR1_LEVELS = A06 -OBS_VAR1_THRESH = >0.0 - -#FCST_VAR2_NAME = APCP_A6_ENS_FREQ_ge2.54 -FCST_VAR2_NAME = {FIELDNAME_IN_MET_OUTPUT}_A6_ENS_FREQ_ge2.54 -FCST_VAR2_LEVELS = A06 -FCST_VAR2_THRESH = ==0.1 - -#OBS_VAR2_NAME = APCP -OBS_VAR2_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR2_LEVELS = A06 -OBS_VAR2_THRESH = >=2.54 - -#FCST_VAR3_NAME = APCP_A6_ENS_FREQ_ge6.350 -FCST_VAR3_NAME = {FIELDNAME_IN_MET_OUTPUT}_A6_ENS_FREQ_ge6.350 -FCST_VAR3_LEVELS = A06 -FCST_VAR3_THRESH = ==0.1 - -#OBS_VAR3_NAME = APCP -OBS_VAR3_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR3_LEVELS = A06 -OBS_VAR3_THRESH = >=6.350 - -#FCST_VAR4_NAME = APCP_A6_ENS_FREQ_ge12.700 -FCST_VAR4_NAME = {FIELDNAME_IN_MET_OUTPUT}_A6_ENS_FREQ_ge12.700 -FCST_VAR4_LEVELS = A06 -FCST_VAR4_THRESH = ==0.1 - -#OBS_VAR4_NAME = APCP -OBS_VAR4_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR4_LEVELS = A06 -OBS_VAR4_THRESH = >=12.700 - -#Process as scalars for neighborhood methods -## Note that the number of forecast and obs thresholds must match -## but won't actually be applied to NBRCNT outputs with "nbrhd.field = OBS;" -#FCST_VAR5_NAME = APCP_A6_ENS_FREQ_gt0.0 -FCST_VAR5_NAME = {FIELDNAME_IN_MET_OUTPUT}_A6_ENS_FREQ_gt0.0 -FCST_VAR5_LEVELS = A06 -FCST_VAR5_THRESH = ==0.1 -FCST_VAR5_OPTIONS = prob = FALSE; - -#OBS_VAR5_NAME = APCP -OBS_VAR5_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR5_LEVELS = A06 -OBS_VAR5_THRESH = >0.0 -OBS_VAR5_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#FCST_VAR6_NAME = APCP_A6_ENS_FREQ_ge2.54 -FCST_VAR6_NAME = {FIELDNAME_IN_MET_OUTPUT}_A6_ENS_FREQ_ge2.54 -FCST_VAR6_LEVELS = A06 -FCST_VAR6_THRESH = ==0.1 -FCST_VAR6_OPTIONS = prob = FALSE; - -#OBS_VAR6_NAME = APCP -OBS_VAR6_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR6_LEVELS = A06 -OBS_VAR6_THRESH = >=2.54 -OBS_VAR6_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#FCST_VAR7_NAME = APCP_A6_ENS_FREQ_ge6.350 -FCST_VAR7_NAME = {FIELDNAME_IN_MET_OUTPUT}_A6_ENS_FREQ_ge6.350 -FCST_VAR7_LEVELS = A06 -FCST_VAR7_THRESH = ==0.1 -FCST_VAR7_OPTIONS = prob = FALSE; - -#OBS_VAR7_NAME = APCP -OBS_VAR7_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR7_LEVELS = A06 -OBS_VAR7_THRESH = >=6.350 -OBS_VAR7_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#FCST_VAR8_NAME = APCP_A6_ENS_FREQ_ge12.700 -FCST_VAR8_NAME = {FIELDNAME_IN_MET_OUTPUT}_A6_ENS_FREQ_ge12.700 -FCST_VAR8_LEVELS = A06 -FCST_VAR8_THRESH = ==0.1 -FCST_VAR8_OPTIONS = prob = FALSE; - -#OBS_VAR8_NAME = APCP -OBS_VAR8_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR8_LEVELS = A06 -OBS_VAR8_THRESH = >=12.700 -OBS_VAR8_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#FCST_GRID_STAT_FILE_TYPE = - -#OBS_GRID_STAT_FILE_TYPE = - -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. -# -FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 -FCST_GRID_STAT_FILE_WINDOW_END = 0 -OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 -OBS_GRID_STAT_FILE_WINDOW_END = 0 - -# MET GridStat neighborhood values -# See the MET User's Guide GridStat section for more information -GRID_STAT_NEIGHBORHOOD_FIELD = - -# width value passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_WIDTH = - -# shape value passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_SHAPE = - -# cov thresh list passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_COV_THRESH = >=0.5 - -# Set to true to run GridStat separately for each field specified -# Set to false to create one run of GridStat per run time that -# includes all fields specified. -GRID_STAT_ONCE_PER_FIELD = False -# -# Set to true if forecast data is probabilistic. -# -FCST_IS_PROB = True -FCST_PROB_IN_GRIB_PDS = False -# -# Only used if FCST_IS_PROB is true - sets probabilistic threshold -# -FCST_GRID_STAT_PROB_THRESH = ==0.1 - -GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} - -# Climatology data -#GRID_STAT_CLIMO_MEAN_FILE_NAME = -#GRID_STAT_CLIMO_MEAN_FIELD = -#GRID_STAT_CLIMO_MEAN_REGRID_METHOD = -#GRID_STAT_CLIMO_MEAN_REGRID_WIDTH = -#GRID_STAT_CLIMO_MEAN_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_MEAN_REGRID_SHAPE = -#GRID_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_MEAN_MATCH_MONTH = -#GRID_STAT_CLIMO_MEAN_DAY_INTERVAL = -#GRID_STAT_CLIMO_MEAN_HOUR_INTERVAL = - -#GRID_STAT_CLIMO_STDEV_FILE_NAME = -#GRID_STAT_CLIMO_STDEV_FIELD = -#GRID_STAT_CLIMO_STDEV_REGRID_METHOD = -#GRID_STAT_CLIMO_STDEV_REGRID_WIDTH = -#GRID_STAT_CLIMO_STDEV_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_STDEV_REGRID_SHAPE = -#GRID_STAT_CLIMO_STDEV_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_STDEV_MATCH_MONTH = -#GRID_STAT_CLIMO_STDEV_DAY_INTERVAL = -#GRID_STAT_CLIMO_STDEV_HOUR_INTERVAL = - -#GRID_STAT_CLIMO_CDF_BINS = 1 -#GRID_STAT_CLIMO_CDF_CENTER_BINS = False -#GRID_STAT_CLIMO_CDF_WRITE_BINS = True - -GRID_STAT_MASK_GRID = - -# Statistical output types -GRID_STAT_OUTPUT_FLAG_FHO = NONE -GRID_STAT_OUTPUT_FLAG_CTC = NONE -GRID_STAT_OUTPUT_FLAG_CTS = NONE -#GRID_STAT_OUTPUT_FLAG_MCTC = NONE -#GRID_STAT_OUTPUT_FLAG_MCTS = NONE -GRID_STAT_OUTPUT_FLAG_CNT = NONE -#GRID_STAT_OUTPUT_FLAG_SL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_SAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VCNT = NONE -GRID_STAT_OUTPUT_FLAG_PCT = STAT -GRID_STAT_OUTPUT_FLAG_PSTD = STAT -GRID_STAT_OUTPUT_FLAG_PJC = STAT -GRID_STAT_OUTPUT_FLAG_PRC = STAT -#GRID_STAT_OUTPUT_FLAG_ECLV = BOTH -GRID_STAT_OUTPUT_FLAG_NBRCTC = NONE -GRID_STAT_OUTPUT_FLAG_NBRCTS = NONE -GRID_STAT_OUTPUT_FLAG_NBRCNT = STAT -#GRID_STAT_OUTPUT_FLAG_GRAD = BOTH -#GRID_STAT_OUTPUT_FLAG_DMAP = NONE - -# NetCDF matched pairs output file -#GRID_STAT_NC_PAIRS_VAR_NAME = -GRID_STAT_NC_PAIRS_FLAG_LATLON = FALSE -GRID_STAT_NC_PAIRS_FLAG_RAW = FALSE -GRID_STAT_NC_PAIRS_FLAG_DIFF = FALSE -GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE -GRID_STAT_NC_PAIRS_FLAG_WEIGHT = FALSE -GRID_STAT_NC_PAIRS_FLAG_NBRHD = FALSE -#GRID_STAT_NC_PAIRS_FLAG_FOURIER = FALSE -#GRID_STAT_NC_PAIRS_FLAG_GRADIENT = FALSE -#GRID_STAT_NC_PAIRS_FLAG_DISTANCE_MAP = FALSE -GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE - -# End of [config] section and start of [dir] section. -[dir] -# -# Directory containing observation input to GridStat. -# -OBS_GRID_STAT_INPUT_DIR = {{obs_input_dir}} -# -# Directory containing forecast input to GridStat. -# -FCST_GRID_STAT_INPUT_DIR = {{fcst_input_dir}} -# -# Directory containing climatology mean input to GridStat. Not used in -# this example. -# -GRID_STAT_CLIMO_MEAN_INPUT_DIR = -# -# Directory containing climatology mean input to GridStat. Not used in -# this example. -# -GRID_STAT_CLIMO_STDEV_INPUT_DIR = -# -# Directory in which to write output from GridStat. -# -# OUTPUT_BASE apparently has to be set to something; it cannot be left -# to its default value. But it is not explicitly used elsewhere in this -# configuration file. -# -OUTPUT_BASE = {{output_base}} -GRID_STAT_OUTPUT_DIR = {{output_dir}} -# -# Directory for staging data. -# -STAGING_DIR = {{staging_dir}} - -# End of [dir] section and start of [filename_templates] section. -[filename_templates] -# -# Template for observation input to GridStat relative to -# OBS_GRID_STAT_INPUT_DIR. -# -OBS_GRID_STAT_INPUT_TEMPLATE = {{obs_input_fn_template}} -# -# Template for forecast input to GridStat relative to -# FCST_GRID_STAT_INPUT_DIR. -# -FCST_GRID_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}} -# -# Template for output from GridStat relative to GRID_STAT_OUTPUT_DIR. -# -GRID_STAT_OUTPUT_TEMPLATE = -# -# Template for climatology input to GridStat relative to -# GRID_STAT_CLIMO_MEAN_INPUT_DIR. Not used in this example. -# -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = -# -# Template for climatology input to GridStat relative to -# GRID_STAT_CLIMO_STDEV_INPUT_DIR. Not used in this example. -# -GRID_STAT_CLIMO_STDEV_INPUT_TEMPLATE = -# -# Variable used to specify one or more verification mask files for -# GridStat. Not used for this example. -# -GRID_STAT_VERIFICATION_MASK_TEMPLATE = {MET_INSTALL_DIR}/share/met/poly/CONUS.poly diff --git a/parm/metplus/GridStat_ensprob_APCP24h.conf b/parm/metplus/GridStat_ensprob_APCP24h.conf deleted file mode 100644 index 91897c590c..0000000000 --- a/parm/metplus/GridStat_ensprob_APCP24h.conf +++ /dev/null @@ -1,413 +0,0 @@ -# Ensemble probabilistic GridStat METplus Configuration - -[config] - -# List of applications (tools) to run. -PROCESS_LIST = GridStat - -# time looping - options are INIT, VALID, RETRO, and REALTIME -# If set to INIT or RETRO: -# INIT_TIME_FMT, INIT_BEG, INIT_END, and INIT_INCREMENT must also be set -# If set to VALID or REALTIME: -# VALID_TIME_FMT, VALID_BEG, VALID_END, and VALID_INCREMENT must also be set -LOOP_BY = INIT - -# Format of INIT_BEG and INIT_END using % items -# %Y = 4 digit year, %m = 2 digit month, %d = 2 digit day, etc. -# see www.strftime.org for more information -# %Y%m%d%H expands to YYYYMMDDHH -INIT_TIME_FMT = %Y%m%d%H - -# Start time for METplus run - must match INIT_TIME_FMT -INIT_BEG = {{cdate}} - -# End time for METplus run - must match INIT_TIME_FMT -INIT_END = {{cdate}} - -# Increment between METplus runs (in seconds if no units are specified). -# Must be >= 60 seconds. -INIT_INCREMENT = 3600 - -# List of forecast leads to process for each run time (init or valid) -# In hours if units are not specified -# If unset, defaults to 0 (don't loop through forecast leads) -LEAD_SEQ = {{fhr_list}} -# -# Order of loops to process data - Options are times, processes -# Not relevant if only one item is in the PROCESS_LIST -# times = run all wrappers in the PROCESS_LIST for a single run time, then -# increment the run time and run all wrappers again until all times have -# been evaluated. -# processes = run the first wrapper in the PROCESS_LIST for all times -# specified, then repeat for the next item in the PROCESS_LIST until all -# wrappers have been run -# -LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 -# -# Specify the name of the METplus log file. -# -LOG_METPLUS = {LOG_DIR}/{{metplus_log_fn}} -# -# Specify the location and name of the final METplus conf file. -# -METPLUS_CONF = {GRID_STAT_OUTPUT_DIR}/metplus_final.{{metplus_config_fn}} -# -# Location of MET configuration file to pass to GridStat. -# -# References PARM_BASE, which is the location of the parm directory -# corresponding to the ush directory of the run_metplus.py script that -# is called or the value of the environment variable METPLUS_PARM_BASE -# if set. -# -GRID_STAT_CONFIG_FILE = {PARM_BASE}/met_config/GridStatConfig_wrapped - -# grid to remap data. Value is set as the 'to_grid' variable in the 'regrid' dictionary -# See MET User's Guide for more information -GRID_STAT_REGRID_TO_GRID = FCST -GRID_STAT_REGRID_VLD_THRESH = 0.5 -GRID_STAT_REGRID_METHOD = BUDGET -GRID_STAT_REGRID_WIDTH = 2 -GRID_STAT_REGRID_SHAPE = SQUARE - -#GRID_STAT_INTERP_FIELD = BOTH -#GRID_STAT_INTERP_VLD_THRESH = 1.0 -#GRID_STAT_INTERP_SHAPE = SQUARE -#GRID_STAT_INTERP_TYPE_METHOD = NEAREST -#GRID_STAT_INTERP_TYPE_WIDTH = 1 - -#GRID_STAT_GRID_WEIGHT_FLAG = - -# -# Name to identify model (forecast) data in output. -# -# The variable MODEL is recorded in the stat files, and the data in -# these files is then plotted (e.g. using METViewer). Here, we add a -# suffix to MODEL that identifies the data as ensemble-probabilistic. -# This makes it easier to identify each curve. -# -MODEL = {{vx_fcst_model_name}}_ensprob - -FCST_NATIVE_DATA_TYPE = GRIB -# -# Name to identify observation data in output. -# -OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB -# -# Value to enter under the DESC column in the output stat file. -# -GRID_STAT_DESC = NA - -# List of variables to compare in GridStat - FCST_VAR1 variables correspond -# to OBS_VAR1 variables -# Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations -# are needed for different tools - -GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; - -FIELDNAME_IN_MET_OUTPUT = {{fieldname_in_met_output}} -# -# FREQ -# Process as probability - -# -# String to search for in the foreast input files for forecast variable -# 1. -# -# Note: -# This is the name of the field in the NetCDF file(s) created by MET's -# gen_ens_prod tool. This tool reads in the NetCDF file(s) generated by -# MET's pcp_combine tool. The latter reads in grib2 file(s) containing -# 1 hour accumulation data (in this case, from forecasts) and outputs -# NetCDF file(s) with the appropriate > 1 hour accumulation. These -# output NetCDF files from pcp_combine name their arrays as specified by -# FIELDNAME_IN_MET_OUTPUT. The gen_ens_prod tool then takes this array -# name and, in its output NetCDF files, creates arrays whose names consist -# of the original array name in the pcp_combine output (FIELDNAME_IN_MET_OUTPUT) -# plus a suffix that specifies additional properties of the data in the -# array such as the level (which in this case is the accumulation period), -# the type of statistic, etc. In this case, this suffix is "_A24_ENS_FREQ_gt0.0". -# Thus, below, FCST_VAR1_NAME must be set to the value of FIELDNAME_IN_MET_OUTPUT -# with "_A24_ENS_FREQ_gt0.0" appended to it. -# The same is true of other forecast fields below except the suffix is -# different. -# -#FCST_VAR1_NAME = APCP_A24_ENS_FREQ_gt0.0 -FCST_VAR1_NAME = {FIELDNAME_IN_MET_OUTPUT}_A24_ENS_FREQ_gt0.0 -FCST_VAR1_LEVELS = A24 -FCST_VAR1_THRESH = ==0.1 -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# -# Note: -# This is the name of the field in the NetCDF file created by MET's -# pcp_combine tool. This tool reads in the grib2 file(s) containing -# 1 hour accumulation data (in this case, from observations) and outputs -# NetCDF file(s) with the appropriate > 1 hour accumulation. These -# output NetCDF files name their arrays as specified by the environment -# variable FIELDNAME_IN_MET_OUTPUT. Thus, that is the value we set -# OBS_VAR1_NAME to here, not to the name of the variable in the grib2 -# file. -# -#OBS_VAR1_NAME = APCP -OBS_VAR1_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR1_LEVELS = A24 -OBS_VAR1_THRESH = >0.0 - -#FCST_VAR2_NAME = APCP_A24_ENS_FREQ_ge6.350 -FCST_VAR2_NAME = {FIELDNAME_IN_MET_OUTPUT}_A24_ENS_FREQ_ge6.350 -FCST_VAR2_LEVELS = A24 -FCST_VAR2_THRESH = ==0.1 - -#OBS_VAR2_NAME = APCP -OBS_VAR2_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR2_LEVELS = A24 -OBS_VAR2_THRESH = >=6.350 - -#FCST_VAR3_NAME = APCP_A24_ENS_FREQ_ge12.700 -FCST_VAR3_NAME = {FIELDNAME_IN_MET_OUTPUT}_A24_ENS_FREQ_ge12.700 -FCST_VAR3_LEVELS = A24 -FCST_VAR3_THRESH = ==0.1 - -#OBS_VAR3_NAME = APCP -OBS_VAR3_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR3_LEVELS = A24 -OBS_VAR3_THRESH = >=12.700 - -#FCST_VAR4_NAME = APCP_A24_ENS_FREQ_ge25.400 -FCST_VAR4_NAME = {FIELDNAME_IN_MET_OUTPUT}_A24_ENS_FREQ_ge25.400 -FCST_VAR4_LEVELS = A24 -FCST_VAR4_THRESH = ==0.1 - -#OBS_VAR4_NAME = APCP -OBS_VAR4_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR4_LEVELS = A24 -OBS_VAR4_THRESH = >=25.400 - -#Process as scalars for neighborhood methods -### Note that the number of forecast and obs thresholds must match -### but won't actually be applied to NBRCNT outputs with "nbrhd.field = OBS;" -#FCST_VAR5_NAME = APCP_A24_ENS_FREQ_gt0.0 -FCST_VAR5_NAME = {FIELDNAME_IN_MET_OUTPUT}_A24_ENS_FREQ_gt0.0 -FCST_VAR5_LEVELS = A24 -FCST_VAR5_THRESH = ==0.1 -FCST_VAR5_OPTIONS = prob = FALSE; - -#OBS_VAR5_NAME = APCP -OBS_VAR5_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR5_LEVELS = A24 -OBS_VAR5_THRESH = >0.0 -OBS_VAR5_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#FCST_VAR6_NAME = APCP_A24_ENS_FREQ_ge6.350 -FCST_VAR6_NAME = {FIELDNAME_IN_MET_OUTPUT}_A24_ENS_FREQ_ge6.350 -FCST_VAR6_LEVELS = A24 -FCST_VAR6_THRESH = ==0.1 -FCST_VAR6_OPTIONS = prob = FALSE; - -#OBS_VAR6_NAME = APCP -OBS_VAR6_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR6_LEVELS = A24 -OBS_VAR6_THRESH = >=6.350 -OBS_VAR6_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#FCST_VAR7_NAME = APCP_A24_ENS_FREQ_ge12.700 -FCST_VAR7_NAME = {FIELDNAME_IN_MET_OUTPUT}_A24_ENS_FREQ_ge12.700 -FCST_VAR7_LEVELS = A24 -FCST_VAR7_THRESH = ==0.1 -FCST_VAR7_OPTIONS = prob = FALSE; - -#OBS_VAR7_NAME = APCP -OBS_VAR7_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR7_LEVELS = A24 -OBS_VAR7_THRESH = >=12.700 -OBS_VAR7_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#FCST_VAR8_NAME = APCP_A24_ENS_FREQ_ge25.400 -FCST_VAR8_NAME = {FIELDNAME_IN_MET_OUTPUT}_A24_ENS_FREQ_ge25.400 -FCST_VAR8_LEVELS = A24 -FCST_VAR8_THRESH = ==0.1 -FCST_VAR8_OPTIONS = prob = FALSE; - -#OBS_VAR8_NAME = APCP -OBS_VAR8_NAME = {FIELDNAME_IN_MET_OUTPUT} -OBS_VAR8_LEVELS = A24 -OBS_VAR8_THRESH = >=25.400 -OBS_VAR8_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#FCST_GRID_STAT_FILE_TYPE = - -#OBS_GRID_STAT_FILE_TYPE = - -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. -# -FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 -FCST_GRID_STAT_FILE_WINDOW_END = 0 -OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 -OBS_GRID_STAT_FILE_WINDOW_END = 0 - -# MET GridStat neighborhood values -# See the MET User's Guide GridStat section for more information -GRID_STAT_NEIGHBORHOOD_FIELD = - -# width value passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_WIDTH = - -# shape value passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_SHAPE = - -# cov thresh list passed to nbrhd dictionary in the MET config file -GRID_STAT_NEIGHBORHOOD_COV_THRESH = >=0.5 - -# Set to true to run GridStat separately for each field specified -# Set to false to create one run of GridStat per run time that -# includes all fields specified. -GRID_STAT_ONCE_PER_FIELD = False -# -# Set to true if forecast data is probabilistic. -# -FCST_IS_PROB = True -FCST_PROB_IN_GRIB_PDS = False -# -# Only used if FCST_IS_PROB is true - sets probabilistic threshold -# -FCST_GRID_STAT_PROB_THRESH = ==0.1 - -GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} - -# Climatology data -#GRID_STAT_CLIMO_MEAN_FILE_NAME = -#GRID_STAT_CLIMO_MEAN_FIELD = -#GRID_STAT_CLIMO_MEAN_REGRID_METHOD = -#GRID_STAT_CLIMO_MEAN_REGRID_WIDTH = -#GRID_STAT_CLIMO_MEAN_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_MEAN_REGRID_SHAPE = -#GRID_STAT_CLIMO_MEAN_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_MEAN_MATCH_MONTH = -#GRID_STAT_CLIMO_MEAN_DAY_INTERVAL = -#GRID_STAT_CLIMO_MEAN_HOUR_INTERVAL = - -#GRID_STAT_CLIMO_STDEV_FILE_NAME = -#GRID_STAT_CLIMO_STDEV_FIELD = -#GRID_STAT_CLIMO_STDEV_REGRID_METHOD = -#GRID_STAT_CLIMO_STDEV_REGRID_WIDTH = -#GRID_STAT_CLIMO_STDEV_REGRID_VLD_THRESH = -#GRID_STAT_CLIMO_STDEV_REGRID_SHAPE = -#GRID_STAT_CLIMO_STDEV_TIME_INTERP_METHOD = -#GRID_STAT_CLIMO_STDEV_MATCH_MONTH = -#GRID_STAT_CLIMO_STDEV_DAY_INTERVAL = -#GRID_STAT_CLIMO_STDEV_HOUR_INTERVAL = - -#GRID_STAT_CLIMO_CDF_BINS = 1 -#GRID_STAT_CLIMO_CDF_CENTER_BINS = False -#GRID_STAT_CLIMO_CDF_WRITE_BINS = True - -GRID_STAT_MASK_GRID = - -# Statistical output types -GRID_STAT_OUTPUT_FLAG_FHO = NONE -GRID_STAT_OUTPUT_FLAG_CTC = NONE -GRID_STAT_OUTPUT_FLAG_CTS = NONE -#GRID_STAT_OUTPUT_FLAG_MCTC = NONE -#GRID_STAT_OUTPUT_FLAG_MCTS = NONE -GRID_STAT_OUTPUT_FLAG_CNT = NONE -#GRID_STAT_OUTPUT_FLAG_SL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_SAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VAL1L2 = NONE -#GRID_STAT_OUTPUT_FLAG_VCNT = NONE -GRID_STAT_OUTPUT_FLAG_PCT = STAT -GRID_STAT_OUTPUT_FLAG_PSTD = STAT -GRID_STAT_OUTPUT_FLAG_PJC = STAT -GRID_STAT_OUTPUT_FLAG_PRC = STAT -#GRID_STAT_OUTPUT_FLAG_ECLV = BOTH -GRID_STAT_OUTPUT_FLAG_NBRCTC = NONE -GRID_STAT_OUTPUT_FLAG_NBRCTS = NONE -GRID_STAT_OUTPUT_FLAG_NBRCNT = STAT -#GRID_STAT_OUTPUT_FLAG_GRAD = BOTH -#GRID_STAT_OUTPUT_FLAG_DMAP = NONE - -# NetCDF matched pairs output file -#GRID_STAT_NC_PAIRS_VAR_NAME = -GRID_STAT_NC_PAIRS_FLAG_LATLON = FALSE -GRID_STAT_NC_PAIRS_FLAG_RAW = FALSE -GRID_STAT_NC_PAIRS_FLAG_DIFF = FALSE -GRID_STAT_NC_PAIRS_FLAG_CLIMO = FALSE -GRID_STAT_NC_PAIRS_FLAG_WEIGHT = FALSE -GRID_STAT_NC_PAIRS_FLAG_NBRHD = FALSE -#GRID_STAT_NC_PAIRS_FLAG_FOURIER = FALSE -#GRID_STAT_NC_PAIRS_FLAG_GRADIENT = FALSE -#GRID_STAT_NC_PAIRS_FLAG_DISTANCE_MAP = FALSE -GRID_STAT_NC_PAIRS_FLAG_APPLY_MASK = FALSE - -# End of [config] section and start of [dir] section. -[dir] -# -# Directory containing observation input to GridStat. -# -OBS_GRID_STAT_INPUT_DIR = {{obs_input_dir}} -# -# Directory containing forecast input to GridStat. -# -FCST_GRID_STAT_INPUT_DIR = {{fcst_input_dir}} -# -# Directory containing climatology mean input to GridStat. Not used in -# this example. -# -GRID_STAT_CLIMO_MEAN_INPUT_DIR = -# -# Directory containing climatology mean input to GridStat. Not used in -# this example. -# -GRID_STAT_CLIMO_STDEV_INPUT_DIR = -# -# Directory in which to write output from GridStat. -# -# OUTPUT_BASE apparently has to be set to something; it cannot be left -# to its default value. But it is not explicitly used elsewhere in this -# configuration file. -# -OUTPUT_BASE = {{output_base}} -GRID_STAT_OUTPUT_DIR = {{output_dir}} -# -# Directory for staging data. -# -STAGING_DIR = {{staging_dir}} - -# End of [dir] section and start of [filename_templates] section. -[filename_templates] -# -# Template for observation input to GridStat relative to -# OBS_GRID_STAT_INPUT_DIR. -# -OBS_GRID_STAT_INPUT_TEMPLATE = {{obs_input_fn_template}} -# -# Template for forecast input to GridStat relative to -# FCST_GRID_STAT_INPUT_DIR. -# -FCST_GRID_STAT_INPUT_TEMPLATE = {{fcst_input_fn_template}} -# -# Template for output from GridStat relative to GRID_STAT_OUTPUT_DIR. -# -GRID_STAT_OUTPUT_TEMPLATE = -# -# Template for climatology input to GridStat relative to -# GRID_STAT_CLIMO_MEAN_INPUT_DIR. Not used in this example. -# -GRID_STAT_CLIMO_MEAN_INPUT_TEMPLATE = -# -# Template for climatology input to GridStat relative to -# GRID_STAT_CLIMO_STDEV_INPUT_DIR. Not used in this example. -# -GRID_STAT_CLIMO_STDEV_INPUT_TEMPLATE = -# -# Variable used to specify one or more verification mask files for -# GridStat. Not used for this example. -# -GRID_STAT_VERIFICATION_MASK_TEMPLATE = {MET_INSTALL_DIR}/share/met/poly/CONUS.poly diff --git a/parm/metplus/GridStat_ensprob_ASNOW.conf b/parm/metplus/GridStat_ensprob_ASNOW.conf index e430cb2cf9..ecd17f681b 100644 --- a/parm/metplus/GridStat_ensprob_ASNOW.conf +++ b/parm/metplus/GridStat_ensprob_ASNOW.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -79,7 +80,6 @@ GRID_STAT_REGRID_SHAPE = SQUARE #GRID_STAT_INTERP_TYPE_WIDTH = 1 #GRID_STAT_GRID_WEIGHT_FLAG = - # # Name to identify model (forecast) data in output. # @@ -89,13 +89,10 @@ GRID_STAT_REGRID_SHAPE = SQUARE # This makes it easier to identify each curve. # MODEL = {{vx_fcst_model_name}}_ensprob - -FCST_NATIVE_DATA_TYPE = GRIB # # Name to identify observation data in output. # OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB # # Value to enter under the DESC column in the output stat file. # @@ -108,170 +105,121 @@ GRID_STAT_DESC = NA GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; -FIELDNAME_IN_MET_OUTPUT = {{fieldname_in_met_output}} +{%- set field_thresholds = [] %} +{%- if accum_hh == '06' %} + {%- set field_thresholds = ['gt0.0', 'ge2.54', 'ge5.08', 'ge10.16', 'ge20.32'] %} +{%- elif accum_hh == '24' %} + {%- set field_thresholds = ['gt0.0', 'ge2.54', 'ge5.08', 'ge10.16', 'ge20.32'] %} +{%- endif %} +# +# List of forecast and corresponding observation fields to process. # # FREQ # Process as probability - # -# String to search for in the foreast input files for forecast variable -# 1. -# -# Note: -# This is the name of the field in the NetCDF file(s) created by MET's -# gen_ens_prod tool. This tool reads in the NetCDF file(s) generated by -# MET's pcp_combine tool. The latter reads in grib2 file(s) containing -# 1 hour accumulation data (in this case, from forecasts) and outputs -# NetCDF file(s) with the appropriate > 1 hour accumulation. These -# output NetCDF files from pcp_combine name their arrays as specified by -# FIELDNAME_IN_MET_OUTPUT. The gen_ens_prod tool then takes this array -# name and, in its output NetCDF files, creates arrays whose names consist -# of the original array name in the pcp_combine output (FIELDNAME_IN_MET_OUTPUT) -# plus a suffix that specifies additional properties of the data in the -# array such as the level (which in this case is the accumulation period), -# the type of statistic, etc. In this case, this suffix is "_A{{accum_no_pad}}_ENS_FREQ_gt0.0". -# Thus, below, FCST_VAR1_NAME must be set to the value of FIELDNAME_IN_MET_OUTPUT -# with "_A{{accum_no_pad}}_ENS_FREQ_gt0.0" appended to it. -# The same is true of other forecast fields below except the suffix is -# different. -# -#FCST_VAR1_NAME = APCP_A{{accum_no_pad}}_ENS_FREQ_gt0.0 -FCST_VAR1_NAME = {FIELDNAME_IN_MET_OUTPUT}_A{{accum_no_pad}}_ENS_FREQ_gt0.0 +FCST_VAR1_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[0]}} FCST_VAR1_LEVELS = A{{accum_hh}} FCST_VAR1_THRESH = ==0.1 -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# -# Note: -# This is the name of the field in the NetCDF file created by MET's -# pcp_combine tool. This tool reads in the grib2 file(s) containing -# 1 hour accumulation data (in this case, from observations) and outputs -# NetCDF file(s) with the appropriate > 1 hour accumulation. These -# output NetCDF files name their arrays as specified by the environment -# variable FIELDNAME_IN_MET_OUTPUT. Thus, that is the value we set -# OBS_VAR1_NAME to here, not to the name of the variable in the grib2 -# file. -# -#OBS_VAR1_NAME = APCP OBS_VAR1_NAME = {{fieldname_in_obs_input}} OBS_VAR1_LEVELS = A{{accum_hh}} -OBS_VAR1_THRESH = >0.0 +OBS_VAR1_THRESH = {{field_thresholds[0]}} OBS_VAR1_OPTIONS = convert(x) = 100.0*x; -#FCST_VAR2_NAME = APCP_A{{accum_no_pad}}_ENS_FREQ_ge0.508 -FCST_VAR2_NAME = {FIELDNAME_IN_MET_OUTPUT}_A{{accum_no_pad}}_ENS_FREQ_gt0.0 +FCST_VAR2_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[1]}} FCST_VAR2_LEVELS = A{{accum_hh}} FCST_VAR2_THRESH = ==0.1 - -#OBS_VAR2_NAME = APCP OBS_VAR2_NAME = {{fieldname_in_obs_input}} OBS_VAR2_LEVELS = A{{accum_hh}} -OBS_VAR2_THRESH = >=0.508 +OBS_VAR2_THRESH = {{field_thresholds[1]}} OBS_VAR2_OPTIONS = convert(x) = 100.0*x; -#FCST_VAR3_NAME = APCP_A{{accum_no_pad}}_ENS_FREQ_ge2.54 -FCST_VAR3_NAME = {FIELDNAME_IN_MET_OUTPUT}_A{{accum_no_pad}}_ENS_FREQ_ge2.54 +FCST_VAR3_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[2]}} FCST_VAR3_LEVELS = A{{accum_hh}} FCST_VAR3_THRESH = ==0.1 - -#OBS_VAR3_NAME = APCP OBS_VAR3_NAME = {{fieldname_in_obs_input}} OBS_VAR3_LEVELS = A{{accum_hh}} -OBS_VAR3_THRESH = >=2.54 +OBS_VAR3_THRESH = {{field_thresholds[2]}} OBS_VAR3_OPTIONS = convert(x) = 100.0*x; -#FCST_VAR4_NAME = APCP_A{{accum_no_pad}}_ENS_FREQ_ge -FCST_VAR4_NAME = {FIELDNAME_IN_MET_OUTPUT}_A{{accum_no_pad}}_ENS_FREQ_ge5.08 +FCST_VAR4_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[3]}} FCST_VAR4_LEVELS = A{{accum_hh}} FCST_VAR4_THRESH = ==0.1 - -#OBS_VAR4_NAME = APCP OBS_VAR4_NAME = {{fieldname_in_obs_input}} OBS_VAR4_LEVELS = A{{accum_hh}} -OBS_VAR4_THRESH = >=5.08 +OBS_VAR4_THRESH = {{field_thresholds[3]}} OBS_VAR4_OPTIONS = convert(x) = 100.0*x; -#FCST_VAR5_NAME = APCP_A{{accum_no_pad}}_ENS_FREQ_ge -FCST_VAR5_NAME = {FIELDNAME_IN_MET_OUTPUT}_A{{accum_no_pad}}_ENS_FREQ_ge10.16 +FCST_VAR5_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[4]}} FCST_VAR5_LEVELS = A{{accum_hh}} FCST_VAR5_THRESH = ==0.1 - -#OBS_VAR5_NAME = APCP OBS_VAR5_NAME = {{fieldname_in_obs_input}} OBS_VAR5_LEVELS = A{{accum_hh}} -OBS_VAR5_THRESH = >=10.16 +OBS_VAR5_THRESH = {{field_thresholds[4]}} OBS_VAR5_OPTIONS = convert(x) = 100.0*x; -#FCST_VAR6_NAME = APCP_A{{accum_no_pad}}_ENS_FREQ_ge -FCST_VAR6_NAME = {FIELDNAME_IN_MET_OUTPUT}_A{{accum_no_pad}}_ENS_FREQ_ge20.32 +# +#Process as scalars for neighborhood methods +## Note that the number of forecast and obs thresholds must match +## but won't actually be applied to NBRCNT outputs with "nbrhd.field = OBS;" +# +FCST_VAR6_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[0]}} FCST_VAR6_LEVELS = A{{accum_hh}} FCST_VAR6_THRESH = ==0.1 - -#OBS_VAR6_NAME = APCP +FCST_VAR6_OPTIONS = prob = FALSE; OBS_VAR6_NAME = {{fieldname_in_obs_input}} OBS_VAR6_LEVELS = A{{accum_hh}} -OBS_VAR6_THRESH = >=20.32 -OBS_VAR6_OPTIONS = convert(x) = 100.0*x; +OBS_VAR6_THRESH = {{field_thresholds[0]}} +OBS_VAR6_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; }; + convert(x) = 100.0*x; -#Process as scalars for neighborhood methods -## Note that the number of forecast and obs thresholds must match -## but won't actually be applied to NBRCNT outputs with "nbrhd.field = OBS;" -#FCST_VAR75_NAME = APCP_A{{accum_no_pad}}_ENS_FREQ_gt0.0 -FCST_VAR7_NAME = {FIELDNAME_IN_MET_OUTPUT}_A{{accum_no_pad}}_ENS_FREQ_gt0.0 +FCST_VAR7_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[1]}} FCST_VAR7_LEVELS = A{{accum_hh}} FCST_VAR7_THRESH = ==0.1 FCST_VAR7_OPTIONS = prob = FALSE; - -#OBS_VAR7_NAME = APCP OBS_VAR7_NAME = {{fieldname_in_obs_input}} OBS_VAR7_LEVELS = A{{accum_hh}} -OBS_VAR7_THRESH = >0.0 -OBS_VAR7_OPTIONS = convert(x) = 100.0*x; nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } +OBS_VAR7_THRESH = {{field_thresholds[1]}} +OBS_VAR7_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; }; + convert(x) = 100.0*x; -FCST_VAR8_NAME = {FIELDNAME_IN_MET_OUTPUT}_A{{accum_no_pad}}_ENS_FREQ_ge2.54 +FCST_VAR8_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[2]}} FCST_VAR8_LEVELS = A{{accum_hh}} FCST_VAR8_THRESH = ==0.1 FCST_VAR8_OPTIONS = prob = FALSE; - -#OBS_VAR8_NAME = APCP OBS_VAR8_NAME = {{fieldname_in_obs_input}} OBS_VAR8_LEVELS = A{{accum_hh}} -OBS_VAR8_THRESH = >=2.54 -OBS_VAR8_OPTIONS = convert(x) = 100.0*x; nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } +OBS_VAR8_THRESH = {{field_thresholds[2]}} +OBS_VAR8_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; }; + convert(x) = 100.0*x; -FCST_VAR9_NAME = {FIELDNAME_IN_MET_OUTPUT}_A{{accum_no_pad}}_ENS_FREQ_ge5.08 +FCST_VAR9_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[3]}} FCST_VAR9_LEVELS = A{{accum_hh}} FCST_VAR9_THRESH = ==0.1 FCST_VAR9_OPTIONS = prob = FALSE; - -#OBS_VAR9_NAME = APCP OBS_VAR9_NAME = {{fieldname_in_obs_input}} OBS_VAR9_LEVELS = A{{accum_hh}} -OBS_VAR9_THRESH = >=5.08 -OBS_VAR9_OPTIONS = convert(x) = 100.0*x; nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } +OBS_VAR9_THRESH = {{field_thresholds[3]}} +OBS_VAR9_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; }; + convert(x) = 100.0*x; -FCST_VAR10_NAME = {FIELDNAME_IN_MET_OUTPUT}_A{{accum_no_pad}}_ENS_FREQ_ge10.16 +FCST_VAR10_NAME = {{fieldname_in_met_output}}_{{accum_hh}}_A{{accum_no_pad}}_ENS_FREQ_{{field_thresholds[4]}} FCST_VAR10_LEVELS = A{{accum_hh}} FCST_VAR10_THRESH = ==0.1 FCST_VAR10_OPTIONS = prob = FALSE; - -#OBS_VAR8_NAME = APCP OBS_VAR10_NAME = {{fieldname_in_obs_input}} OBS_VAR10_LEVELS = A{{accum_hh}} -OBS_VAR10_THRESH = >=10.16 -OBS_VAR10_OPTIONS = convert(x) = 100.0*x; nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#FCST_GRID_STAT_FILE_TYPE = +OBS_VAR10_THRESH = {{field_thresholds[4]}} +OBS_VAR10_OPTIONS = nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; }; + convert(x) = 100.0*x; -#OBS_GRID_STAT_FILE_TYPE = - -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. +# +# Forecast data time window(s). # FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 FCST_GRID_STAT_FILE_WINDOW_END = 0 +# +# Observation data time window(s). +# OBS_GRID_STAT_FILE_WINDOW_BEGIN = 0 OBS_GRID_STAT_FILE_WINDOW_END = 0 @@ -302,7 +250,7 @@ FCST_PROB_IN_GRIB_PDS = False # FCST_GRID_STAT_PROB_THRESH = ==0.1 -GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}{{accum_hh}}h_{OBTYPE} +GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} # Climatology data #GRID_STAT_CLIMO_MEAN_FILE_NAME = diff --git a/parm/metplus/GridStat_ensprob_REFC.conf b/parm/metplus/GridStat_ensprob_REFC.conf index 21a5f2deee..95e19af1ce 100644 --- a/parm/metplus/GridStat_ensprob_REFC.conf +++ b/parm/metplus/GridStat_ensprob_REFC.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -88,13 +89,10 @@ GRID_STAT_GRID_WEIGHT_FLAG = NONE # This makes it easier to identify each curve. # MODEL = {{vx_fcst_model_name}}_ensprob - -#FCST_NATIVE_DATA_TYPE = GRIB # # Name to identify observation data in output. # OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB # # Value to enter under the DESC column in the output stat file. # @@ -105,150 +103,122 @@ GRID_STAT_DESC = NA # Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations # are needed for different tools -GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = []; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; - -# FREQ -# Process as probability - +GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; # -# String to search for in the foreast input files for forecast variable -# 1. +# List of forecast and corresponding observation fields to process. # -# Note: -# This is the name of the field in the NetCDF file(s) created by MET's -# gen_ens_prod tool. This tool reads in the grib2 file(s) (in this case -# of forecasts) and outputs NetCDF file(s) in which the array names -# consist of the value of fieldname_in_met_output plus a suffix that -# specifies additional properties of the data in the array such as the -# level, the type of statistic, etc. In this case, this suffix is -# "_L0_ENS_FREQ_ge20". Thus, below, FCST_VAR1_NAME must be set to the value -# of fieldname_in_met_output with "_L0_ENS_FREQ_ge20" appended to it. -# The same is true of other forecast fields below except the suffix is -# different. +# FREQ +# Process as probability # -#FCST_VAR1_NAME = REFC_L0_ENS_FREQ_ge20 FCST_VAR1_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge20 FCST_VAR1_LEVELS = L0 -#FCST_VAR1_OPTIONS = cnt_thresh = [ >15 ]; cnt_logic = UNION; -# -# List of thresholds to evaluate for each name/level combination for -# forecast variable 1. -# FCST_VAR1_THRESH = ==0.1 - -#FCST_GRID_STAT_FILE_TYPE = -# -# String to search for in the observation input files for observation -# variable 1. -# -# Note: -# This is the name of the field in the grib2 observation file. Thus, -# it should not be set to {{fieldname_in_met_output}} because the -# value of fieldname_in_met_output is in general not the same as the -# name of the field in the grib2 observation file (although it can be -# for certain fields). If you do and it doesn't match, you may get an -# error like this from METplus: -# ERROR : VarInfoGrib2::set_dict() -> unrecognized GRIB2 field abbreviation ... -# The same is true of other observation fields below. -# OBS_VAR1_NAME = MergedReflectivityQCComposite -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# OBS_VAR1_LEVELS = Z500 -# -# List of thresholds to evaluate for each name/level combination for -# observation variable 1. -# -OBS_VAR1_THRESH = >=20.0 -OBS_VAR1_OPTIONS = censor_thresh = lt-20; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; +OBS_VAR1_THRESH = ge20 +OBS_VAR1_OPTIONS = censor_thresh = lt-20; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; -#FCST_VAR2_NAME = REFC_L0_ENS_FREQ_ge30 FCST_VAR2_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge30 FCST_VAR2_LEVELS = L0 FCST_VAR2_THRESH = ==0.1 - OBS_VAR2_NAME = MergedReflectivityQCComposite OBS_VAR2_LEVELS = Z500 -OBS_VAR2_THRESH = >=30.0 -OBS_VAR2_OPTIONS = censor_thresh = lt-20; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; +OBS_VAR2_THRESH = ge30 +OBS_VAR2_OPTIONS = censor_thresh = lt-20; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; -#FCST_VAR3_NAME = REFC_L0_ENS_FREQ_ge40 -FCST_VAR3_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge40 +FCST_VAR3_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge40 FCST_VAR3_LEVELS = L0 FCST_VAR3_THRESH = ==0.1 - OBS_VAR3_NAME = MergedReflectivityQCComposite OBS_VAR3_LEVELS = Z500 -OBS_VAR3_THRESH = >=40.0 -OBS_VAR3_OPTIONS = censor_thresh = lt-20; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; +OBS_VAR3_THRESH = ge40 +OBS_VAR3_OPTIONS = censor_thresh = lt-20; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; -#FCST_VAR4_NAME = REFC_L0_ENS_FREQ_ge50 FCST_VAR4_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge50 FCST_VAR4_LEVELS = L0 FCST_VAR4_THRESH = ==0.1 - OBS_VAR4_NAME = MergedReflectivityQCComposite OBS_VAR4_LEVELS = Z500 -OBS_VAR4_THRESH = >=50.0 -OBS_VAR4_OPTIONS = censor_thresh = lt-20; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; +OBS_VAR4_THRESH = ge50 +OBS_VAR4_OPTIONS = censor_thresh = lt-20; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; +# #Process as scalars for neighborhood methods ## Note that the number of forecast and obs thresholds must match ## but won't actually be applied to NBRCNT outputs with "nbrhd.field = OBS;" -#FCST_VAR5_NAME = REFC_L0_ENS_FREQ_ge20 +# FCST_VAR5_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge20 FCST_VAR5_LEVELS = L0 FCST_VAR5_THRESH = ==0.1 FCST_VAR5_OPTIONS = prob = FALSE; - OBS_VAR5_NAME = MergedReflectivityQCComposite OBS_VAR5_LEVELS = Z500 -OBS_VAR5_THRESH = >=20.0 -OBS_VAR5_OPTIONS = censor_thresh = lt-20; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } +OBS_VAR5_THRESH = ge20 +OBS_VAR5_OPTIONS = censor_thresh = lt-20; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } -#FCST_VAR6_NAME = REFC_L0_ENS_FREQ_ge30 FCST_VAR6_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge30 FCST_VAR6_LEVELS = L0 FCST_VAR6_THRESH = ==0.1 FCST_VAR6_OPTIONS = prob = FALSE; - OBS_VAR6_NAME = MergedReflectivityQCComposite OBS_VAR6_LEVELS = Z500 -OBS_VAR6_THRESH = >=30.0 -OBS_VAR6_OPTIONS = censor_thresh = lt-20; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } +OBS_VAR6_THRESH = ge30 +OBS_VAR6_OPTIONS = censor_thresh = lt-20; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } -#FCST_VAR7_NAME = REFC_L0_ENS_FREQ_ge40 FCST_VAR7_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge40 FCST_VAR7_LEVELS = L0 FCST_VAR7_THRESH = ==0.1 FCST_VAR7_OPTIONS = prob = FALSE; - OBS_VAR7_NAME = MergedReflectivityQCComposite OBS_VAR7_LEVELS = Z500 -OBS_VAR7_THRESH = >=40.0 -OBS_VAR7_OPTIONS = censor_thresh = lt-20; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } +OBS_VAR7_THRESH = ge40 +OBS_VAR7_OPTIONS = censor_thresh = lt-20; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } -#FCST_VAR8_NAME = REFC_L0_ENS_FREQ_ge50 FCST_VAR8_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge50 FCST_VAR8_LEVELS = L0 FCST_VAR8_THRESH = ==0.1 FCST_VAR8_OPTIONS = prob = FALSE; - OBS_VAR8_NAME = MergedReflectivityQCComposite OBS_VAR8_LEVELS = Z500 -OBS_VAR8_THRESH = >=50.0 -OBS_VAR8_OPTIONS = censor_thresh = lt-20; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#OBS_GRID_STAT_FILE_TYPE = +OBS_VAR8_THRESH = ge50 +OBS_VAR8_OPTIONS = censor_thresh = lt-20; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. +# +# Forecast data time window(s). # #FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 #FCST_GRID_STAT_FILE_WINDOW_END = 0 +# +# Observation data time window(s). +# OBS_GRID_STAT_FILE_WINDOW_BEGIN = -300 OBS_GRID_STAT_FILE_WINDOW_END = 300 @@ -280,15 +250,6 @@ FCST_PROB_IN_GRIB_PDS = False FCST_GRID_STAT_PROB_THRESH = ==0.1 GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} -# -# Set to true if observation data is probabilistic. Only used if -# configuring forecast data as the 'OBS' input. -# -OBS_IS_PROB = false -# -# Only used if OBS_IS_PROB is true - sets probabilistic threshold. -# -OBS_GRID_STAT_PROB_THRESH = ==0.1 # Climatology data #GRID_STAT_CLIMO_MEAN_FILE_NAME = diff --git a/parm/metplus/GridStat_ensprob_RETOP.conf b/parm/metplus/GridStat_ensprob_RETOP.conf index 6646b2036d..d1f218bea8 100644 --- a/parm/metplus/GridStat_ensprob_RETOP.conf +++ b/parm/metplus/GridStat_ensprob_RETOP.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for GridStat only -#LOG_GRID_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -88,13 +89,10 @@ GRID_STAT_GRID_WEIGHT_FLAG = NONE # This makes it easier to identify each curve. # MODEL = {{vx_fcst_model_name}}_ensprob - -#FCST_NATIVE_DATA_TYPE = GRIB # # Name to identify observation data in output. # OBTYPE = {{obtype}} -OBS_NATIVE_DATA_TYPE = GRIB # # Value to enter under the DESC column in the output stat file. # @@ -105,149 +103,130 @@ GRID_STAT_DESC = NA # Note [FCST/OBS/BOTH]_GRID_STAT_VAR_NAME can be used instead if different evaluations # are needed for different tools -GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = []; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; - -# FREQ -# Process as probability - +GRID_STAT_MET_CONFIG_OVERRIDES = cat_thresh = [NA]; cnt_thresh = [NA]; cnt_logic = UNION; wind_thresh = [NA]; wind_logic = UNION; ci_alpha = [0.05]; rank_corr_flag = FALSE; # -# String to search for in the foreast input files for forecast variable -# 1. +# List of forecast and corresponding observation fields to process. # -# Note: -# This is the name of the field in the NetCDF file(s) created by MET's -# gen_ens_prod tool. This tool reads in the grib2 file(s) (in this case -# of forecasts) and outputs NetCDF file(s) in which the array names -# consist of the value of fieldname_in_met_output plus a suffix that -# specifies additional properties of the data in the array such as the -# level, the type of statistic, etc. In this case, this suffix is -# "_L0_ENS_FREQ_ge20". Thus, below, FCST_VAR1_NAME must be set to the value -# of fieldname_in_met_output with "_L0_ENS_FREQ_ge20" appended to it. -# The same is true of other forecast fields below except the suffix is -# different. +# FREQ +# Process as probability # -#FCST_VAR1_NAME = RETOP_L0_ENS_FREQ_ge20 FCST_VAR1_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge20 FCST_VAR1_LEVELS = L0 -# -# List of thresholds to evaluate for each name/level combination for -# forecast variable 1. -# FCST_VAR1_THRESH = ==0.1 - -#FCST_GRID_STAT_FILE_TYPE = -# -# String to search for in the observation input files for observation -# variable 1. -# -# Note: -# This is the name of the field in the grib2 observation file. Thus, -# it should not be set to {{fieldname_in_met_output}} because the -# value of fieldname_in_met_output is in general not the same as the -# name of the field in the grib2 observation file (although it can be -# for certain fields). If you do and it doesn't match, you may get an -# error like this from METplus: -# ERROR : VarInfoGrib2::set_dict() -> unrecognized GRIB2 field abbreviation ... -# The same is true of other observation fields below. -# OBS_VAR1_NAME = EchoTop18 -# -# List of levels to evaluate for observation variable 1. Must be the -# same length as FCST_VAR1_LEVELS. -# OBS_VAR1_LEVELS = Z500 -# -# List of thresholds to evaluate for each name/level combination for -# observation variable 1. -# -OBS_VAR1_THRESH = >=20.0 -OBS_VAR1_OPTIONS = censor_thresh = lt-20.0; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; convert(x) = x * 3280.84 * 0.001; +OBS_VAR1_THRESH = ge20 +OBS_VAR1_OPTIONS = censor_thresh = lt-20.0; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + convert(x) = x * 3280.84 * 0.001; -#FCST_VAR2_NAME = RETOP_L0_ENS_FREQ_ge30 FCST_VAR2_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge30 FCST_VAR2_LEVELS = L0 FCST_VAR2_THRESH = ==0.1 - OBS_VAR2_NAME = EchoTop18 OBS_VAR2_LEVELS = Z500 -OBS_VAR2_THRESH = >=30.0 -OBS_VAR2_OPTIONS = censor_thresh = lt-20.0; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; convert(x) = x * 3280.84 * 0.001; - -#FCST_VAR3_NAME = RETOP_L0_ENS_FREQ_ge40 -FCST_VAR3_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge40 +OBS_VAR2_THRESH = ge30 +OBS_VAR2_OPTIONS = censor_thresh = lt-20.0; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + convert(x) = x * 3280.84 * 0.001; + +FCST_VAR3_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge40 FCST_VAR3_LEVELS = L0 FCST_VAR3_THRESH = ==0.1 - OBS_VAR3_NAME = EchoTop18 OBS_VAR3_LEVELS = Z500 -OBS_VAR3_THRESH = >=40.0 -OBS_VAR3_OPTIONS = censor_thresh = lt-20.0; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; convert(x) = x * 3280.84 * 0.001; +OBS_VAR3_THRESH = ge40 +OBS_VAR3_OPTIONS = censor_thresh = lt-20.0; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + convert(x) = x * 3280.84 * 0.001; -#FCST_VAR4_NAME = RETOP_L0_ENS_FREQ_ge50 FCST_VAR4_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge50 FCST_VAR4_LEVELS = L0 FCST_VAR4_THRESH = ==0.1 - OBS_VAR4_NAME = EchoTop18 OBS_VAR4_LEVELS = Z500 -OBS_VAR4_THRESH = >=50.0 -OBS_VAR4_OPTIONS = censor_thresh = lt-20.0; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; convert(x) = x * 3280.84 * 0.001; +OBS_VAR4_THRESH = ge50 +OBS_VAR4_OPTIONS = censor_thresh = lt-20.0; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + convert(x) = x * 3280.84 * 0.001; +# #Process as scalars for neighborhood methods ## Note that the number of forecast and obs thresholds must match ## but won't actually be applied to NBRCNT outputs with "nbrhd.field = OBS;" -#FCST_VAR5_NAME = RETOP_L0_ENS_FREQ_ge20 +# FCST_VAR5_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge20 FCST_VAR5_LEVELS = L0 FCST_VAR5_THRESH = ==0.1 FCST_VAR5_OPTIONS = prob = FALSE; - OBS_VAR5_NAME = EchoTop18 OBS_VAR5_LEVELS = Z500 -OBS_VAR5_THRESH = >=20.0 -OBS_VAR5_OPTIONS = censor_thresh = lt-20.0; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; convert(x) = x * 3280.84 * 0.001; nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } +OBS_VAR5_THRESH = ge20 +OBS_VAR5_OPTIONS = censor_thresh = lt-20.0; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + convert(x) = x * 3280.84 * 0.001; + nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } -#FCST_VAR6_NAME = RETOP_L0_ENS_FREQ_ge30 FCST_VAR6_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge30 FCST_VAR6_LEVELS = L0 FCST_VAR6_THRESH = ==0.1 FCST_VAR6_OPTIONS = prob = FALSE; - OBS_VAR6_NAME = EchoTop18 OBS_VAR6_LEVELS = Z500 -OBS_VAR6_THRESH = >=30.0 -OBS_VAR6_OPTIONS = censor_thresh = lt-20.0; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; convert(x) = x * 3280.84 * 0.001; nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } +OBS_VAR6_THRESH = ge30 +OBS_VAR6_OPTIONS = censor_thresh = lt-20.0; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + convert(x) = x * 3280.84 * 0.001; + nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } -#FCST_VAR7_NAME = RETOP_L0_ENS_FREQ_ge40 FCST_VAR7_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge40 FCST_VAR7_LEVELS = L0 FCST_VAR7_THRESH = ==0.1 FCST_VAR7_OPTIONS = prob = FALSE; - OBS_VAR7_NAME = EchoTop18 OBS_VAR7_LEVELS = Z500 -OBS_VAR7_THRESH = >=40.0 -OBS_VAR7_OPTIONS = censor_thresh = lt-20.0; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; convert(x) = x * 3280.84 * 0.001; nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } +OBS_VAR7_THRESH = ge40 +OBS_VAR7_OPTIONS = censor_thresh = lt-20.0; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + convert(x) = x * 3280.84 * 0.001; + nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } -#FCST_VAR8_NAME = RETOP_L0_ENS_FREQ_ge50 FCST_VAR8_NAME = {{fieldname_in_met_output}}_L0_ENS_FREQ_ge50 FCST_VAR8_LEVELS = L0 FCST_VAR8_THRESH = ==0.1 FCST_VAR8_OPTIONS = prob = FALSE; - OBS_VAR8_NAME = EchoTop18 OBS_VAR8_LEVELS = Z500 -OBS_VAR8_THRESH = >=50.0 -OBS_VAR8_OPTIONS = censor_thresh = lt-20.0; censor_val = -20.0; cnt_thresh = [ >15 ]; cnt_logic = UNION; convert(x) = x * 3280.84 * 0.001; nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } - -#OBS_GRID_STAT_FILE_TYPE = +OBS_VAR8_THRESH = ge50 +OBS_VAR8_OPTIONS = censor_thresh = lt-20.0; + censor_val = -20.0; + cnt_thresh = [ >15 ]; + cnt_logic = UNION; + convert(x) = x * 3280.84 * 0.001; + nbrhd = { field = OBS; shape = SQUARE; width = [ 1 ]; vld_thresh = 1.0; } -# Time relative to valid time (in seconds) to allow files to be considered -# valid. Set both BEGIN and END to 0 to require the exact time in the -# filename. Not used in this example. +# +# Forecast data time window(s). # #FCST_GRID_STAT_FILE_WINDOW_BEGIN = 0 #FCST_GRID_STAT_FILE_WINDOW_END = 0 +# +# Observation data time window(s). +# OBS_GRID_STAT_FILE_WINDOW_BEGIN = -300 OBS_GRID_STAT_FILE_WINDOW_END = 300 @@ -279,15 +258,6 @@ FCST_PROB_IN_GRIB_PDS = False FCST_GRID_STAT_PROB_THRESH = ==0.1 GRID_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} -# -# Set to true if observation data is probabilistic. Only used if -# configuring forecast data as the 'OBS' input. -# -OBS_IS_PROB = false -# -# Only used if OBS_IS_PROB is true - sets probabilistic threshold. -# -OBS_GRID_STAT_PROB_THRESH = ==0.1 # Climatology data #GRID_STAT_CLIMO_MEAN_FILE_NAME = diff --git a/parm/metplus/Pb2nc_obs.conf b/parm/metplus/Pb2nc_obs.conf index ae2b5e19f0..729bf2ba06 100644 --- a/parm/metplus/Pb2nc_obs.conf +++ b/parm/metplus/Pb2nc_obs.conf @@ -42,9 +42,10 @@ LEAD_SEQ = {{fhr_list}} # specified, then repeat for the next item in the PROCESS_LIST until all # wrappers have been run LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for PointStat only -LOG_POINT_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -66,9 +67,12 @@ PB2NC_CONFIG_FILE = {PARM_BASE}/met_config/PB2NCConfig_wrapped # Name to identify observation data in output. # OBTYPE = {{obtype}} - +# +# Observation data time window(s). +# OBS_WINDOW_BEGIN = -1799 OBS_WINDOW_END = 1800 + PB2NC_WINDOW_BEGIN = {OBS_WINDOW_BEGIN} PB2NC_WINDOW_END = {OBS_WINDOW_END} diff --git a/parm/metplus/PcpCombine_fcst_APCP.conf b/parm/metplus/PcpCombine_fcst_APCP.conf index 65204c7caa..64fe0b4fcf 100644 --- a/parm/metplus/PcpCombine_fcst_APCP.conf +++ b/parm/metplus/PcpCombine_fcst_APCP.conf @@ -43,6 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run LOOP_ORDER = times # +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} +# # Specify the name of the METplus log file. # LOG_METPLUS = {LOG_DIR}/{{metplus_log_fn}} @@ -64,7 +68,7 @@ FCST_PCP_COMBINE_METHOD = ADD # Specify how to name the array in the NetCDF file that PcpCombine # generates. # -FCST_PCP_COMBINE_OUTPUT_NAME = {{fieldname_in_met_output}} +FCST_PCP_COMBINE_OUTPUT_NAME = {{fieldname_in_met_output}}_{{accum_hh}} # # Accumulation interval available in the forecast input data. # @@ -73,7 +77,7 @@ FCST_PCP_COMBINE_INPUT_ACCUMS = 01 # Accumulation interval to generate in the output file. # FCST_PCP_COMBINE_OUTPUT_ACCUM = {{accum_hh}} - +# # If the "bucket" output NetCDF file already exists, DON'T skip the call # to PcpCombine. # @@ -91,7 +95,6 @@ FCST_PCP_COMBINE_MAX_FORECAST = 2d FCST_PCP_COMBINE_CONSTANT_INIT = True FCST_PCP_COMBINE_INPUT_DATATYPE = GRIB -FCST_NATIVE_DATA_TYPE = GRIB # End of [config] section and start of [dir] section. [dir] @@ -121,7 +124,7 @@ STAGING_DIR = {{staging_dir}} # FCST_PCP_COMBINE_INPUT_TEMPLATE = {{fcst_input_fn_template}} # -# Template for output from PCPCOMBINE relative to +# Template for output from PcpCombine relative to # FCST_PCP_COMBINE_OUTPUT_DIR. # FCST_PCP_COMBINE_OUTPUT_TEMPLATE = {{output_fn_template}} diff --git a/parm/metplus/PcpCombine_fcst_ASNOW.conf b/parm/metplus/PcpCombine_fcst_ASNOW.conf index 8433608c1b..91a6a70abb 100644 --- a/parm/metplus/PcpCombine_fcst_ASNOW.conf +++ b/parm/metplus/PcpCombine_fcst_ASNOW.conf @@ -43,6 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run LOOP_ORDER = times # +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} +# # Specify the name of the METplus log file. # LOG_METPLUS = {LOG_DIR}/{{metplus_log_fn}} @@ -74,7 +78,7 @@ FCST_PCP_COMBINE_INPUT_LEVELS = A01 # Specify how to name the array in the NetCDF file that PcpCombine # generates. # -FCST_PCP_COMBINE_OUTPUT_NAME = {{fieldname_in_met_output}} +FCST_PCP_COMBINE_OUTPUT_NAME = {{fieldname_in_met_output}}_{{accum_hh}} # # Accumulation interval available in the forecast input data. # @@ -101,7 +105,7 @@ FCST_PCP_COMBINE_MAX_FORECAST = 2d FCST_PCP_COMBINE_CONSTANT_INIT = True FCST_PCP_COMBINE_INPUT_DATATYPE = GRIB -FCST_NATIVE_DATA_TYPE = GRIB +#FCST_NATIVE_DATA_TYPE = GRIB # End of [config] section and start of [dir] section. [dir] diff --git a/parm/metplus/PcpCombine_obs_APCP.conf b/parm/metplus/PcpCombine_obs_APCP.conf index bc2c4180eb..cea6809597 100644 --- a/parm/metplus/PcpCombine_obs_APCP.conf +++ b/parm/metplus/PcpCombine_obs_APCP.conf @@ -43,6 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run LOOP_ORDER = times # +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} +# # Specify the name of the METplus log file. # LOG_METPLUS = {LOG_DIR}/{{metplus_log_fn}} @@ -64,7 +68,7 @@ OBS_PCP_COMBINE_METHOD = ADD # Specify how to name the array in the NetCDF file that PcpCombine # generates. # -OBS_PCP_COMBINE_OUTPUT_NAME = {{fieldname_in_met_output}} +OBS_PCP_COMBINE_OUTPUT_NAME = {{fieldname_in_met_output}}_{{accum_hh}} # # Accumulation interval available in the observation input data. # @@ -99,7 +103,7 @@ PCP_COMBINE_SKIP_IF_OUTPUT_EXISTS = True # Name to identify observation data in output. # OBTYPE = CCPA -OBS_NATIVE_DATA_TYPE = GRIB +OBS_PCP_COMBINE_INPUT_DATA_TYPE = GRIB # End of [config] section and start of [dir] section. [dir] diff --git a/parm/metplus/PointStat_SFC.conf b/parm/metplus/PointStat_ADPSFC.conf similarity index 74% rename from parm/metplus/PointStat_SFC.conf rename to parm/metplus/PointStat_ADPSFC.conf index 62f59328fe..6d94e0bed9 100644 --- a/parm/metplus/PointStat_SFC.conf +++ b/parm/metplus/PointStat_ADPSFC.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for PointStat only -LOG_POINT_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -103,10 +104,7 @@ POINT_STAT_CLIMO_CDF_BINS = 1 #POINT_STAT_HSS_EC_VALUE = # -# Time relative to each input file's valid time (in seconds if no units -# are specified) for data within the file to be considered valid. Values -# are set in the 'obs_window' dictionary in the PointStat config file. -# Set both BEGIN and END to 0 to require the exact time in the filename. +# Observation data time window(s). # OBS_WINDOW_BEGIN = -1799 OBS_WINDOW_END = 1800 @@ -146,7 +144,7 @@ POINT_STAT_REGRID_TO_GRID = NONE POINT_STAT_REGRID_METHOD = BILIN POINT_STAT_REGRID_WIDTH = 2 -POINT_STAT_OUTPUT_PREFIX = {MODEL}_ADP{{fieldname_in_met_filedir_names}}_{OBTYPE} +POINT_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} # sets the -obs_valid_beg command line argument (optional) # not used for this example @@ -170,67 +168,78 @@ POINT_STAT_STATION_ID = # Message types, if all message types are to be returned, leave this empty, # otherwise indicate the message types of interest. -POINT_STAT_MESSAGE_TYPE = ADP{{fieldname_in_met_filedir_names}} +POINT_STAT_MESSAGE_TYPE = {{fieldname_in_met_filedir_names}} # set to True to run PointStat once for each name/level combination # set to False to run PointStat once per run time including all fields POINT_STAT_ONCE_PER_FIELD = False # -# Variables and levels as specified in the field dictionary of the METplus -# PointStat configuration file. Specify as FCST_VARn_NAME, FCST_VARn_LEVELS, -# (optional) FCST_VARn_OPTION -# - -# fields to compare -# Note: If FCST_VAR_* is set, then a corresponding OBS_VAR_* variable must be set -# To use one variables for both forecast and observation data, set BOTH_VAR_* instead - -BOTH_VAR1_NAME = TMP -BOTH_VAR1_LEVELS = Z2 -# -# Lead to use both in naming of the output .stat and .nc files and for -# lead values in those files. -# -# The specification of set_attr_lead below causes MET/METplus to use the -# lead values in the variable LEAD_SEQ set above, which are the same for -# all ensemble forecast members (i.e. regardless of whether members are -# time lagged with respect to the nominal cycle date specified by cdate). -# If set_attr_lead were not specified as below, then MET/METplus would -# get the lead from the input forecast file, and that would in general -# differ from one ensemble member to the next depending on whether the -# member is time-lagged. That would cause confusion, so here, we always -# use lead values with zero lead corresponding to cdate. -# +# List of forecast and corresponding observation fields to process. +# +# Note on use of set_attr_lead and ensemble member time-lagging: +# ------------------------------------------------------------- +# The set_attr_lead parameter appearing below in [FCST|OBS]_VAR_OPTIONS +# specifies the lead to use both in naming of the output .stat and .nc +# files and for setting the lead values contained in those files. This +# option causes MET/METplus to use the lead values in the variable LEAD_SEQ +# set above, which are the same for all ensemble forecast members (i.e. +# regardless of whether members are time lagged with respect to the +# nominal cycle date specified by cdate). If set_attr_lead were not +# specified as below, then MET/METplus would get the lead from the input +# forecast file, and that would in general differ from one ensemble member +# to the next depending on whether the member is time-lagged. That would +# cause confusion, so here, we always use lead values with zero lead +# corresponding to the nominal cdate. +# +FCST_VAR1_NAME = TMP +FCST_VAR1_LEVELS = Z2 FCST_VAR1_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR1_NAME = TMP +OBS_VAR1_LEVELS = Z2 -BOTH_VAR2_NAME = DPT -BOTH_VAR2_LEVELS = Z2 +FCST_VAR2_NAME = DPT +FCST_VAR2_LEVELS = Z2 FCST_VAR2_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR2_NAME = DPT +OBS_VAR2_LEVELS = Z2 -BOTH_VAR3_NAME = RH -BOTH_VAR3_LEVELS = Z2 +FCST_VAR3_NAME = RH +FCST_VAR3_LEVELS = Z2 FCST_VAR3_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR3_NAME = RH +OBS_VAR3_LEVELS = Z2 -BOTH_VAR4_NAME = UGRD -BOTH_VAR4_LEVELS = Z10 -BOTH_VAR4_THRESH = >=2.572 ;; m/s or 5kts +FCST_VAR4_NAME = UGRD +FCST_VAR4_LEVELS = Z10 +FCST_VAR4_THRESH = ge2.572 FCST_VAR4_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR4_NAME = UGRD +OBS_VAR4_LEVELS = Z10 +OBS_VAR4_THRESH = ge2.572 -BOTH_VAR5_NAME = VGRD -BOTH_VAR5_LEVELS = Z10 -BOTH_VAR5_THRESH = >=2.572 ;; m/s or 5kts +FCST_VAR5_NAME = VGRD +FCST_VAR5_LEVELS = Z10 +FCST_VAR5_THRESH = ge2.572 FCST_VAR5_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR5_NAME = VGRD +OBS_VAR5_LEVELS = Z10 +OBS_VAR5_THRESH = ge2.572 -BOTH_VAR6_NAME = WIND -BOTH_VAR6_LEVELS = Z10 -BOTH_VAR6_THRESH = >=2.572, >=2.572&&<5.144, >=5.144, >=10.288, >=15.433 ;; m/s or 5, 10, 20, 30kts +FCST_VAR6_NAME = WIND +FCST_VAR6_LEVELS = Z10 +FCST_VAR6_THRESH = ge2.572, ge2.572&<5.144, ge5.144, ge10.288, ge15.433 FCST_VAR6_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; - GRIB2_pdt = 0; ;; derive instantaneous 10-m wind from U/V components, overriding max 10-m wind -OBS_VAR6_OPTIONS = GRIB2_pdt = 0; ;; derive instantaneous 10-m wind from U/V components, overriding max 10-m wind - -BOTH_VAR7_NAME = PRMSL -BOTH_VAR7_LEVELS = Z0 + GRIB2_pdt = 0; ;; Derive instantaneous 10-m wind from U/V components, overriding max 10-m wind. +OBS_VAR6_NAME = WIND +OBS_VAR6_LEVELS = Z10 +OBS_VAR6_THRESH = ge2.572, ge2.572&<5.144, ge5.144, ge10.288, ge15.433 +OBS_VAR6_OPTIONS = GRIB2_pdt = 0; ;; Derive instantaneous 10-m wind from U/V components, overriding max 10-m wind. + +FCST_VAR7_NAME = PRMSL +FCST_VAR7_LEVELS = Z0 FCST_VAR7_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR7_NAME = PRMSL +OBS_VAR7_LEVELS = Z0 FCST_VAR8_NAME = TCDC FCST_VAR8_LEVELS = L0 @@ -242,67 +251,70 @@ FCST_VAR8_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; OBS_VAR8_NAME = TCDC OBS_VAR8_LEVELS = L0 -BOTH_VAR9_NAME = VIS -BOTH_VAR9_LEVELS = L0 -BOTH_VAR9_THRESH = <805, <1609, <4828, <8045 ,>=8045, <16090 +FCST_VAR9_NAME = VIS +FCST_VAR9_LEVELS = L0 +FCST_VAR9_THRESH = lt805, lt1609, lt4828, lt8045, ge8045, lt16090 FCST_VAR9_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; censor_thresh = [>16090]; censor_val = [16090]; interp = { type = [ { method = NEAREST; width = 1; } ]; } +OBS_VAR9_NAME = VIS +OBS_VAR9_LEVELS = L0 +OBS_VAR9_THRESH = lt805, lt1609, lt4828, lt8045, ge8045, lt16090 OBS_VAR9_OPTIONS = censor_thresh = [>16090]; censor_val = [16090]; interp = { type = [ { method = NEAREST; width = 1; } ]; } -BOTH_VAR10_NAME = GUST -BOTH_VAR10_LEVELS = Z0 +FCST_VAR10_NAME = GUST +FCST_VAR10_LEVELS = Z0 FCST_VAR10_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR10_NAME = GUST +OBS_VAR10_LEVELS = Z0 FCST_VAR11_NAME = HGT FCST_VAR11_LEVELS = L0 -FCST_VAR11_THRESH = <152, <305, <914, <1520, <3040, >=914 +FCST_VAR11_THRESH = lt152, lt305, lt914, lt1520, lt3040, ge914 FCST_VAR11_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; GRIB_lvl_typ = 215; desc = "CEILING"; OBS_VAR11_NAME = CEILING OBS_VAR11_LEVELS = L0 -OBS_VAR11_THRESH = <152, <305, <914, <1520, <3040, >=914 +OBS_VAR11_THRESH = lt152, lt305, lt914, lt1520, lt3040, ge914 OBS_VAR11_OPTIONS = GRIB_lvl_typ = 215; interp = { type = [ { method = NEAREST; width = 1; } ]; } -BOTH_VAR12_NAME = SPFH -BOTH_VAR12_LEVELS = Z2 +FCST_VAR12_NAME = SPFH +FCST_VAR12_LEVELS = Z2 +OBS_VAR12_NAME = SPFH +OBS_VAR12_LEVELS = Z2 FCST_VAR13_NAME = CRAIN FCST_VAR13_LEVELS = L0 -FCST_VAR13_THRESH = >=1.0 - +FCST_VAR13_THRESH = ge1.0 OBS_VAR13_NAME = PRWE OBS_VAR13_LEVELS = Z0 -OBS_VAR13_THRESH = >=161&&<=163 +OBS_VAR13_THRESH = ge161&&le163 FCST_VAR14_NAME = CSNOW FCST_VAR14_LEVELS = L0 -FCST_VAR14_THRESH = >=1.0 - +FCST_VAR14_THRESH = ge1.0 OBS_VAR14_NAME = PRWE OBS_VAR14_LEVELS = Z0 -OBS_VAR14_THRESH = >=171&&<=173 +OBS_VAR14_THRESH = ge171&&le173 FCST_VAR15_NAME = CFRZR FCST_VAR15_LEVELS = L0 -FCST_VAR15_THRESH = >=1.0 - +FCST_VAR15_THRESH = ge1.0 OBS_VAR15_NAME = PRWE OBS_VAR15_LEVELS = Z0 -OBS_VAR15_THRESH = >=164&&<=166 +OBS_VAR15_THRESH = ge164&&le166 FCST_VAR16_NAME = CICEP FCST_VAR16_LEVELS = L0 -FCST_VAR16_THRESH = >=1.0 - +FCST_VAR16_THRESH = ge1.0 OBS_VAR16_NAME = PRWE OBS_VAR16_LEVELS = Z0 -OBS_VAR16_THRESH = >=174&&<=176 +OBS_VAR16_THRESH = ge174&&le176 # End of [config] section and start of [dir] section. [dir] diff --git a/parm/metplus/PointStat_UPA.conf b/parm/metplus/PointStat_ADPUPA.conf similarity index 71% rename from parm/metplus/PointStat_UPA.conf rename to parm/metplus/PointStat_ADPUPA.conf index 385b5387a2..519767a51e 100644 --- a/parm/metplus/PointStat_UPA.conf +++ b/parm/metplus/PointStat_ADPUPA.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for PointStat only -LOG_POINT_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -103,10 +104,7 @@ POINT_STAT_CLIMO_CDF_BINS = 1 #POINT_STAT_HSS_EC_VALUE = # -# Time relative to each input file's valid time (in seconds if no units -# are specified) for data within the file to be considered valid. Values -# are set in the 'obs_window' dictionary in the PointStat config file. -# Set both BEGIN and END to 0 to require the exact time in the filename. +# Observation data time window(s). # OBS_WINDOW_BEGIN = -1799 OBS_WINDOW_END = 1800 @@ -146,7 +144,7 @@ POINT_STAT_REGRID_TO_GRID = NONE POINT_STAT_REGRID_METHOD = BILIN POINT_STAT_REGRID_WIDTH = 2 -POINT_STAT_OUTPUT_PREFIX = {MODEL}_ADP{{fieldname_in_met_filedir_names}}_{OBTYPE} +POINT_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} # sets the -obs_valid_beg command line argument (optional) # not used for this example @@ -170,78 +168,91 @@ POINT_STAT_STATION_ID = # Message types, if all message types are to be returned, leave this empty, # otherwise indicate the message types of interest. -POINT_STAT_MESSAGE_TYPE = ADP{{fieldname_in_met_filedir_names}} +POINT_STAT_MESSAGE_TYPE = {{fieldname_in_met_filedir_names}} # set to True to run PointStat once for each name/level combination # set to False to run PointStat once per run time including all fields POINT_STAT_ONCE_PER_FIELD = False # -# Variables and levels as specified in the field dictionary of the METplus -# PointStat configuration file. Specify as FCST_VARn_NAME, FCST_VARn_LEVELS, -# (optional) FCST_VARn_OPTION -# - -# fields to compare -# Note: If FCST_VAR_* is set, then a corresponding OBS_VAR_* variable must be set -# To use one variables for both forecast and observation data, set BOTH_VAR_* instead - -BOTH_VAR1_NAME = TMP -BOTH_VAR1_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 -# -# Lead to use both in naming of the output .stat and .nc files and for -# lead values in those files. -# -# The specification of set_attr_lead below causes MET/METplus to use the -# lead values in the variable LEAD_SEQ set above, which are the same for -# all ensemble forecast members (i.e. regardless of whether members are -# time lagged with respect to the nominal cycle date specified by cdate). -# If set_attr_lead were not specified as below, then MET/METplus would -# get the lead from the input forecast file, and that would in general -# differ from one ensemble member to the next depending on whether the -# member is time-lagged. That would cause confusion, so here, we always -# use lead values with zero lead corresponding to cdate. -# +# List of forecast and corresponding observation fields to process. +# +# Note on use of set_attr_lead and ensemble member time-lagging: +# ------------------------------------------------------------- +# The set_attr_lead parameter appearing below in [FCST|OBS]_VAR_OPTIONS +# specifies the lead to use both in naming of the output .stat and .nc +# files and for setting the lead values contained in those files. This +# option causes MET/METplus to use the lead values in the variable LEAD_SEQ +# set above, which are the same for all ensemble forecast members (i.e. +# regardless of whether members are time lagged with respect to the +# nominal cycle date specified by cdate). If set_attr_lead were not +# specified as below, then MET/METplus would get the lead from the input +# forecast file, and that would in general differ from one ensemble member +# to the next depending on whether the member is time-lagged. That would +# cause confusion, so here, we always use lead values with zero lead +# corresponding to the nominal cdate. +# +FCST_VAR1_NAME = TMP +FCST_VAR1_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 FCST_VAR1_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR1_NAME = TMP +OBS_VAR1_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 -BOTH_VAR2_NAME = RH -BOTH_VAR2_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250 +FCST_VAR2_NAME = RH +FCST_VAR2_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250 FCST_VAR2_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR2_NAME = RH +OBS_VAR2_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250 -BOTH_VAR3_NAME = DPT -BOTH_VAR3_LEVELS = P1000, P925, P850, P700, P500, P400, P300 +FCST_VAR3_NAME = DPT +FCST_VAR3_LEVELS = P1000, P925, P850, P700, P500, P400, P300 FCST_VAR3_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR3_NAME = DPT +OBS_VAR3_LEVELS = P1000, P925, P850, P700, P500, P400, P300 -BOTH_VAR4_NAME = UGRD -BOTH_VAR4_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 -BOTH_VAR4_THRESH = >=2.572 ;; m/s or 5kts +FCST_VAR4_NAME = UGRD +FCST_VAR4_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 +FCST_VAR4_THRESH = ge2.572 FCST_VAR4_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR4_NAME = UGRD +OBS_VAR4_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 +OBS_VAR4_THRESH = ge2.572 -BOTH_VAR5_NAME = VGRD -BOTH_VAR5_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 -BOTH_VAR5_THRESH = >=2.572 ;; m/s or 5kts +FCST_VAR5_NAME = VGRD +FCST_VAR5_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 +FCST_VAR5_THRESH = ge2.572 FCST_VAR5_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR5_NAME = VGRD +OBS_VAR5_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 +OBS_VAR5_THRESH = ge2.572 -BOTH_VAR6_NAME = WIND -BOTH_VAR6_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 -BOTH_VAR6_THRESH = >=2.572, >=2.572&&<5.144, >=5.144, >=10.288, >=15.433, >=20.577, >=25.722 ;; m/s or 5, 10, 20, 30, 40, 50kts +FCST_VAR6_NAME = WIND +FCST_VAR6_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 +FCST_VAR6_THRESH = ge2.572, ge2.572&<5.144, ge5.144, ge10.288, ge15.433, ge20.577, ge25.722 FCST_VAR6_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR6_NAME = WIND +OBS_VAR6_LEVELS = P1000, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 +OBS_VAR6_THRESH = ge2.572, ge2.572&<5.144, ge5.144, ge10.288, ge15.433, ge20.577, ge25.722 -BOTH_VAR7_NAME = HGT -BOTH_VAR7_LEVELS = P1000, P950, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 +FCST_VAR7_NAME = HGT +FCST_VAR7_LEVELS = P1000, P950, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 FCST_VAR7_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR7_NAME = HGT +OBS_VAR7_LEVELS = P1000, P950, P925, P850, P700, P500, P400, P300, P250, P200, P150, P100, P50, P20, P10 -BOTH_VAR8_NAME = SPFH -BOTH_VAR8_LEVELS = P1000, P850, P700, P500, P400, P300 +FCST_VAR8_NAME = SPFH +FCST_VAR8_LEVELS = P1000, P850, P700, P500, P400, P300 FCST_VAR8_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; +OBS_VAR8_NAME = SPFH +OBS_VAR8_LEVELS = P1000, P850, P700, P500, P400, P300 FCST_VAR9_NAME = CAPE FCST_VAR9_LEVELS = L0 -FCST_VAR9_THRESH = >500, >1000, >1500, >2000, >3000, >4000 +FCST_VAR9_THRESH = gt500, gt1000, gt1500, gt2000, gt3000, gt4000 FCST_VAR9_OPTIONS = set_attr_lead = "{lead?fmt=%H%M%S}"; cnt_thresh = [ >0 ]; OBS_VAR9_NAME = CAPE OBS_VAR9_LEVELS = L0-100000 -OBS_VAR9_THRESH = >500, >1000, >1500, >2000, >3000, >4000 +OBS_VAR9_THRESH = gt500, gt1000, gt1500, gt2000, gt3000, gt4000 OBS_VAR9_OPTIONS = cnt_thresh = [ >0 ]; cnt_logic = UNION; @@ -262,12 +273,13 @@ OBS_VAR11_OPTIONS = desc = "RI"; FCST_VAR12_NAME = CAPE FCST_VAR12_LEVELS = L0-90 +FCST_VAR12_THRESH = gt500, gt1000, gt1500, gt2000, gt3000, gt4000 FCST_VAR12_OPTIONS = cnt_thresh = [ >0 ]; -FCST_VAR12_THRESH = >500, >1000, >1500, >2000, >3000, >4000 OBS_VAR12_NAME = MLCAPE OBS_VAR12_LEVELS = L0 -OBS_VAR12_OPTIONS = cnt_thresh = [ >0 ]; cnt_logic = UNION; -OBS_VAR12_THRESH = >500, >1000, >1500, >2000, >3000, >4000 +OBS_VAR12_THRESH = gt500, gt1000, gt1500, gt2000, gt3000, gt4000 +OBS_VAR12_OPTIONS = cnt_thresh = [ >0 ]; + cnt_logic = UNION; # End of [config] section and start of [dir] section. [dir] diff --git a/parm/metplus/PointStat_ensmean_SFC.conf b/parm/metplus/PointStat_ensmean_ADPSFC.conf similarity index 85% rename from parm/metplus/PointStat_ensmean_SFC.conf rename to parm/metplus/PointStat_ensmean_ADPSFC.conf index 0d5ee3b696..6b7e7e9cff 100644 --- a/parm/metplus/PointStat_ensmean_SFC.conf +++ b/parm/metplus/PointStat_ensmean_ADPSFC.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for PointStat only -LOG_POINT_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -103,10 +104,7 @@ POINT_STAT_CLIMO_CDF_BINS = 1 #POINT_STAT_HSS_EC_VALUE = # -# Time relative to each input file's valid time (in seconds if no units -# are specified) for data within the file to be considered valid. Values -# are set in the 'obs_window' dictionary in the PointStat config file. -# Set both BEGIN and END to 0 to require the exact time in the filename. +# Observation data time window(s). # OBS_WINDOW_BEGIN = -1799 OBS_WINDOW_END = 1800 @@ -139,7 +137,7 @@ POINT_STAT_REGRID_TO_GRID = NONE POINT_STAT_REGRID_METHOD = BILIN POINT_STAT_REGRID_WIDTH = 2 -POINT_STAT_OUTPUT_PREFIX = {MODEL}_ADP{{fieldname_in_met_filedir_names}}_{OBTYPE} +POINT_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} # sets the -obs_valid_beg command line argument (optional) # not used for this example @@ -163,43 +161,34 @@ POINT_STAT_STATION_ID = # Message types, if all message types are to be returned, leave this empty, # otherwise indicate the message types of interest. -POINT_STAT_MESSAGE_TYPE = ADP{{fieldname_in_met_filedir_names}} +POINT_STAT_MESSAGE_TYPE = {{fieldname_in_met_filedir_names}} # set to True to run PointStat once for each name/level combination # set to False to run PointStat once per run time including all fields POINT_STAT_ONCE_PER_FIELD = False # -# Variables and levels as specified in the field dictionary of the METplus -# PointStat configuration file. Specify as FCST_VARn_NAME, FCST_VARn_LEVELS, -# (optional) FCST_VARn_OPTION +# List of forecast and corresponding observation fields to process. # - -# fields to compare -# Note: If FCST_VAR_* is set, then a corresponding OBS_VAR_* variable must be set -# To use one variables for both forecast and observation data, set BOTH_VAR_* instead FCST_VAR1_NAME = TMP_Z2_ENS_MEAN FCST_VAR1_LEVELS = Z2 -FCST_VAR1_THRESH = >=268, >=273, >=278, >=293, >=298, >=303 - +FCST_VAR1_THRESH = ge268, ge273, ge278, ge293, ge298, ge303 OBS_VAR1_NAME = TMP OBS_VAR1_LEVELS = Z2 -OBS_VAR1_THRESH = >=268, >=273, >=278, >=293, >=298, >=303 +OBS_VAR1_THRESH = ge268, ge273, ge278, ge293, ge298, ge303 FCST_VAR2_NAME = DPT_Z2_ENS_MEAN FCST_VAR2_LEVELS = Z2 -FCST_VAR2_THRESH = >=263, >=268, >=273, >=288, >=293, >=298 - +FCST_VAR2_THRESH = ge263, ge268, ge273, ge288, ge293, ge298 OBS_VAR2_NAME = DPT OBS_VAR2_LEVELS = Z2 -OBS_VAR2_THRESH = >=263, >=268, >=273, >=288, >=293, >=298 +OBS_VAR2_THRESH = ge263, ge268, ge273, ge288, ge293, ge298 FCST_VAR3_NAME = WIND_Z10_ENS_MEAN FCST_VAR3_LEVELS = Z10 -FCST_VAR3_THRESH = >=5, >=10, >=15 - +FCST_VAR3_THRESH = ge5, ge10, ge15 OBS_VAR3_NAME = WIND OBS_VAR3_LEVELS = Z10 -OBS_VAR3_THRESH = >=5, >=10, >=15 +OBS_VAR3_THRESH = ge5, ge10, ge15 # End of [config] section and start of [dir] section. [dir] diff --git a/parm/metplus/PointStat_ensmean_UPA.conf b/parm/metplus/PointStat_ensmean_ADPUPA.conf similarity index 81% rename from parm/metplus/PointStat_ensmean_UPA.conf rename to parm/metplus/PointStat_ensmean_ADPUPA.conf index 1846e0cf6e..b54c775b46 100644 --- a/parm/metplus/PointStat_ensmean_UPA.conf +++ b/parm/metplus/PointStat_ensmean_ADPUPA.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for PointStat only -LOG_POINT_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -103,10 +104,7 @@ POINT_STAT_CLIMO_CDF_BINS = 1 #POINT_STAT_HSS_EC_VALUE = # -# Time relative to each input file's valid time (in seconds if no units -# are specified) for data within the file to be considered valid. Values -# are set in the 'obs_window' dictionary in the PointStat config file. -# Set both BEGIN and END to 0 to require the exact time in the filename. +# Observation data time window(s). # OBS_WINDOW_BEGIN = -1799 OBS_WINDOW_END = 1800 @@ -139,7 +137,7 @@ POINT_STAT_REGRID_TO_GRID = NONE POINT_STAT_REGRID_METHOD = BILIN POINT_STAT_REGRID_WIDTH = 2 -POINT_STAT_OUTPUT_PREFIX = {MODEL}_ADP{{fieldname_in_met_filedir_names}}_{OBTYPE} +POINT_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} # sets the -obs_valid_beg command line argument (optional) # not used for this example @@ -163,118 +161,101 @@ POINT_STAT_STATION_ID = # Message types, if all message types are to be returned, leave this empty, # otherwise indicate the message types of interest. -POINT_STAT_MESSAGE_TYPE = ADP{{fieldname_in_met_filedir_names}} +POINT_STAT_MESSAGE_TYPE = {{fieldname_in_met_filedir_names}} # set to True to run PointStat once for each name/level combination # set to False to run PointStat once per run time including all fields POINT_STAT_ONCE_PER_FIELD = False # -# Variables and levels as specified in the field dictionary of the METplus -# PointStat configuration file. Specify as FCST_VARn_NAME, FCST_VARn_LEVELS, -# (optional) FCST_VARn_OPTION +# List of forecast and corresponding observation fields to process. # - -# fields to compare -# Note: If FCST_VAR_* is set, then a corresponding OBS_VAR_* variable must be set -# To use one variables for both forecast and observation data, set BOTH_VAR_* instead FCST_VAR1_NAME = TMP_P850_ENS_MEAN FCST_VAR1_LEVELS = P850 -FCST_VAR1_THRESH = >=288, >=293, >=298 - +FCST_VAR1_THRESH = ge288, ge293, ge298 OBS_VAR1_NAME = TMP OBS_VAR1_LEVELS = P850 -OBS_VAR1_THRESH = >=288, >=293, >=298 +OBS_VAR1_THRESH = ge288, ge293, ge298 FCST_VAR2_NAME = TMP_P700_ENS_MEAN FCST_VAR2_LEVELS = P700 -FCST_VAR2_THRESH = >=273, >=278, >=283 - +FCST_VAR2_THRESH = ge273, ge278, ge283 OBS_VAR2_NAME = TMP OBS_VAR2_LEVELS = P700 -OBS_VAR2_THRESH = >=273, >=278, >=283 +OBS_VAR2_THRESH = ge273, ge278, ge283 FCST_VAR3_NAME = TMP_P500_ENS_MEAN FCST_VAR3_LEVELS = P500 -FCST_VAR3_THRESH = >=258, >=263, >=268 - +FCST_VAR3_THRESH = ge258, ge263, ge268 OBS_VAR3_NAME = TMP OBS_VAR3_LEVELS = P500 -OBS_VAR3_THRESH = >=258, >=263, >=268 +OBS_VAR3_THRESH = ge258, ge263, ge268 FCST_VAR4_NAME = DPT_P850_ENS_MEAN FCST_VAR4_LEVELS = P850 -FCST_VAR4_THRESH = >=273, >=278, >=283 - +FCST_VAR4_THRESH = ge273, ge278, ge283 OBS_VAR4_NAME = DPT OBS_VAR4_LEVELS = P850 -OBS_VAR4_THRESH = >=273, >=278, >=283 +OBS_VAR4_THRESH = ge273, ge278, ge283 FCST_VAR5_NAME = DPT_P700_ENS_MEAN FCST_VAR5_LEVELS = P700 -FCST_VAR5_THRESH = >=263, >=286, >=273 - +FCST_VAR5_THRESH = ge263, ge286, ge273 OBS_VAR5_NAME = DPT OBS_VAR5_LEVELS = P700 -OBS_VAR5_THRESH = >=263, >=286, >=273 +OBS_VAR5_THRESH = ge263, ge286, ge273 FCST_VAR6_NAME = WIND_P850_ENS_MEAN FCST_VAR6_LEVELS = P850 -FCST_VAR6_THRESH = >=5, >=10, >=15 - +FCST_VAR6_THRESH = ge5, ge10, ge15 OBS_VAR6_NAME = WIND OBS_VAR6_LEVELS = P850 -OBS_VAR6_THRESH = >=5, >=10, >=15 +OBS_VAR6_THRESH = ge5, ge10, ge15 FCST_VAR7_NAME = WIND_P700_ENS_MEAN FCST_VAR7_LEVELS = P700 -FCST_VAR7_THRESH = >=10, >=15, >=20 - +FCST_VAR7_THRESH = ge10, ge15, ge20 OBS_VAR7_NAME = WIND OBS_VAR7_LEVELS = P700 -OBS_VAR7_THRESH = >=10, >=15, >=20 +OBS_VAR7_THRESH = ge10, ge15, ge20 FCST_VAR8_NAME = WIND_P500_ENS_MEAN FCST_VAR8_LEVELS = P500 -FCST_VAR8_THRESH = >=15, >=21, >=26 - +FCST_VAR8_THRESH = ge15, ge21, ge26 OBS_VAR8_NAME = WIND OBS_VAR8_LEVELS = P500 -OBS_VAR8_THRESH = >=15, >=21, >=26 +OBS_VAR8_THRESH = ge15, ge21, ge26 FCST_VAR9_NAME = WIND_P250_ENS_MEAN FCST_VAR9_LEVELS = P250 -FCST_VAR9_THRESH = >=26, >=31, >=46, >=62 - +FCST_VAR9_THRESH = ge26, ge31, ge46, ge62 OBS_VAR9_NAME = WIND OBS_VAR9_LEVELS = P250 -OBS_VAR9_THRESH = >=26, >=31, >=46, >=62 +OBS_VAR9_THRESH = ge26, ge31, ge46, ge62 FCST_VAR10_NAME = HGT_P500_ENS_MEAN FCST_VAR10_LEVELS = P500 -FCST_VAR10_THRESH = >=5400, >=5600, >=5880 - +FCST_VAR10_THRESH = ge5400, ge5600, ge5880 OBS_VAR10_NAME = HGT OBS_VAR10_LEVELS = P500 -OBS_VAR10_THRESH = >=5400, >=5600, >=5880 +OBS_VAR10_THRESH = ge5400, ge5600, ge5880 FCST_VAR11_NAME = CAPE_L0_ENS_MEAN FCST_VAR11_LEVELS = L0 +FCST_VAR11_THRESH = le1000, gt1000&<2500, gt2500&<4000, gt2500 FCST_VAR11_OPTIONS = cnt_thresh = [ >0 ]; -FCST_VAR11_THRESH = <=1000, >1000&&<2500, >2500&&<4000, >2500 - OBS_VAR11_NAME = CAPE OBS_VAR11_LEVELS = L0-100000 -OBS_VAR11_OPTIONS = cnt_thresh = [ >0 ]; cnt_logic = UNION; -OBS_VAR11_THRESH = <=1000, >1000&&<2500, >2500&&<4000, >2500 +OBS_VAR11_THRESH = le1000, gt1000&<2500, gt2500&<4000, gt2500 +OBS_VAR11_OPTIONS = cnt_thresh = [ >0 ]; + cnt_logic = UNION; FCST_VAR12_NAME = HPBL_Z0_ENS_MEAN FCST_VAR12_LEVELS = Z0 -FCST_VAR12_THRESH = <500, <1500, >1500 - +FCST_VAR12_THRESH = lt500, lt1500, gt1500 OBS_VAR12_NAME = PBL OBS_VAR12_LEVELS = L0 +OBS_VAR12_THRESH = lt500, lt1500, gt1500 OBS_VAR12_OPTIONS = desc = "TKE"; -OBS_VAR12_THRESH = <500, <1500, >1500 # End of [config] section and start of [dir] section. [dir] diff --git a/parm/metplus/PointStat_ensprob_SFC.conf b/parm/metplus/PointStat_ensprob_ADPSFC.conf similarity index 85% rename from parm/metplus/PointStat_ensprob_SFC.conf rename to parm/metplus/PointStat_ensprob_ADPSFC.conf index 84b3ac9445..c9333b2c81 100644 --- a/parm/metplus/PointStat_ensprob_SFC.conf +++ b/parm/metplus/PointStat_ensprob_ADPSFC.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for PointStat only -LOG_POINT_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -103,10 +104,7 @@ POINT_STAT_CLIMO_CDF_BINS = 1 #POINT_STAT_HSS_EC_VALUE = # -# Time relative to each input file's valid time (in seconds if no units -# are specified) for data within the file to be considered valid. Values -# are set in the 'obs_window' dictionary in the PointStat config file. -# Set both BEGIN and END to 0 to require the exact time in the filename. +# Observation data time window(s). # OBS_WINDOW_BEGIN = -1799 OBS_WINDOW_END = 1800 @@ -139,7 +137,7 @@ POINT_STAT_REGRID_TO_GRID = NONE POINT_STAT_REGRID_METHOD = BILIN POINT_STAT_REGRID_WIDTH = 2 -POINT_STAT_OUTPUT_PREFIX = {MODEL}_ADP{{fieldname_in_met_filedir_names}}_{OBTYPE} +POINT_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} # sets the -obs_valid_beg command line argument (optional) # not used for this example @@ -163,219 +161,195 @@ POINT_STAT_STATION_ID = # Message types, if all message types are to be returned, leave this empty, # otherwise indicate the message types of interest. -POINT_STAT_MESSAGE_TYPE = ADP{{fieldname_in_met_filedir_names}} +POINT_STAT_MESSAGE_TYPE = {{fieldname_in_met_filedir_names}} # set to True to run PointStat once for each name/level combination # set to False to run PointStat once per run time including all fields POINT_STAT_ONCE_PER_FIELD = False # -# Variables and levels as specified in the field dictionary of the METplus -# PointStat configuration file. Specify as FCST_VARn_NAME, FCST_VARn_LEVELS, -# (optional) FCST_VARn_OPTION +# List of forecast and corresponding observation fields to process. +# Note that the forecast variable name must exactly match the name of a +# variable in the forecast input file(s). # - -# fields to compare -# Note: If FCST_VAR_* is set, then a corresponding OBS_VAR_* variable must be set -# To use one variables for both forecast and observation data, set BOTH_VAR_* instead - -# FREQ FCST_VAR1_NAME = TMP_Z2_ENS_FREQ_ge268 FCST_VAR1_LEVELS = Z2 FCST_VAR1_THRESH = ==0.1 - OBS_VAR1_NAME = TMP OBS_VAR1_LEVELS = Z2 -OBS_VAR1_THRESH = >=268 +OBS_VAR1_THRESH = ge268 FCST_VAR2_NAME = TMP_Z2_ENS_FREQ_ge273 FCST_VAR2_LEVELS = Z2 FCST_VAR2_THRESH = ==0.1 - OBS_VAR2_NAME = TMP OBS_VAR2_LEVELS = Z2 -OBS_VAR2_THRESH = >=273 +OBS_VAR2_THRESH = ge273 FCST_VAR3_NAME = TMP_Z2_ENS_FREQ_ge278 FCST_VAR3_LEVELS = Z2 FCST_VAR3_THRESH = ==0.1 - OBS_VAR3_NAME = TMP OBS_VAR3_LEVELS = Z2 -OBS_VAR3_THRESH = >=278 +OBS_VAR3_THRESH = ge278 FCST_VAR4_NAME = TMP_Z2_ENS_FREQ_ge293 FCST_VAR4_LEVELS = Z2 FCST_VAR4_THRESH = ==0.1 - OBS_VAR4_NAME = TMP OBS_VAR4_LEVELS = Z2 -OBS_VAR4_THRESH = >=293 +OBS_VAR4_THRESH = ge293 FCST_VAR5_NAME = TMP_Z2_ENS_FREQ_ge298 FCST_VAR5_LEVELS = Z2 FCST_VAR5_THRESH = ==0.1 - OBS_VAR5_NAME = TMP OBS_VAR5_LEVELS = Z2 -OBS_VAR5_THRESH = >=298 +OBS_VAR5_THRESH = ge298 FCST_VAR6_NAME = TMP_Z2_ENS_FREQ_ge303 FCST_VAR6_LEVELS = Z2 FCST_VAR6_THRESH = ==0.1 - OBS_VAR6_NAME = TMP OBS_VAR6_LEVELS = Z2 -OBS_VAR6_THRESH = >=303 +OBS_VAR6_THRESH = ge303 FCST_VAR7_NAME = DPT_Z2_ENS_FREQ_ge263 FCST_VAR7_LEVELS = Z2 FCST_VAR7_THRESH = ==0.1 - OBS_VAR7_NAME = DPT OBS_VAR7_LEVELS = Z2 -OBS_VAR7_THRESH = >=263 +OBS_VAR7_THRESH = ge263 FCST_VAR8_NAME = DPT_Z2_ENS_FREQ_ge268 FCST_VAR8_LEVELS = Z2 FCST_VAR8_THRESH = ==0.1 - OBS_VAR8_NAME = DPT OBS_VAR8_LEVELS = Z2 -OBS_VAR8_THRESH = >=268 +OBS_VAR8_THRESH = ge268 FCST_VAR9_NAME = DPT_Z2_ENS_FREQ_ge273 FCST_VAR9_LEVELS = Z2 FCST_VAR9_THRESH = ==0.1 - OBS_VAR9_NAME = DPT OBS_VAR9_LEVELS = Z2 -OBS_VAR9_THRESH = >=273 +OBS_VAR9_THRESH = ge273 FCST_VAR10_NAME = DPT_Z2_ENS_FREQ_ge288 FCST_VAR10_LEVELS = Z2 FCST_VAR10_THRESH = ==0.1 - OBS_VAR10_NAME = DPT OBS_VAR10_LEVELS = Z2 -OBS_VAR10_THRESH = >=288 +OBS_VAR10_THRESH = ge288 FCST_VAR11_NAME = DPT_Z2_ENS_FREQ_ge293 FCST_VAR11_LEVELS = Z2 FCST_VAR11_THRESH = ==0.1 - OBS_VAR11_NAME = DPT OBS_VAR11_LEVELS = Z2 -OBS_VAR11_THRESH = >=293 +OBS_VAR11_THRESH = ge293 FCST_VAR12_NAME = DPT_Z2_ENS_FREQ_ge298 FCST_VAR12_LEVELS = Z2 FCST_VAR12_THRESH = ==0.1 - OBS_VAR12_NAME = DPT OBS_VAR12_LEVELS = Z2 -OBS_VAR12_THRESH = >=298 +OBS_VAR12_THRESH = ge298 FCST_VAR13_NAME = WIND_Z10_ENS_FREQ_ge5 FCST_VAR13_LEVELS = Z10 FCST_VAR13_THRESH = ==0.1 - OBS_VAR13_NAME = WIND OBS_VAR13_LEVELS = Z10 -OBS_VAR13_THRESH = >=5 +OBS_VAR13_THRESH = ge5 FCST_VAR14_NAME = WIND_Z10_ENS_FREQ_ge10 FCST_VAR14_LEVELS = Z10 FCST_VAR14_THRESH = ==0.1 - OBS_VAR14_NAME = WIND OBS_VAR14_LEVELS = Z10 -OBS_VAR14_THRESH = >=10 +OBS_VAR14_THRESH = ge10 FCST_VAR15_NAME = WIND_Z10_ENS_FREQ_ge15 FCST_VAR15_LEVELS = Z10 FCST_VAR15_THRESH = ==0.1 - OBS_VAR15_NAME = WIND OBS_VAR15_LEVELS = Z10 -OBS_VAR15_THRESH = >=15 +OBS_VAR15_THRESH = ge15 FCST_VAR16_NAME = TCDC_L0_ENS_FREQ_lt25 FCST_VAR16_LEVELS = L0 FCST_VAR16_THRESH = ==0.1 - OBS_VAR16_NAME = TCDC OBS_VAR16_LEVELS = L0 -OBS_VAR16_THRESH = <25 +OBS_VAR16_THRESH = lt25 FCST_VAR17_NAME = TCDC_L0_ENS_FREQ_gt75 FCST_VAR17_LEVELS = L0 FCST_VAR17_THRESH = ==0.1 - OBS_VAR17_NAME = TCDC OBS_VAR17_LEVELS = L0 -OBS_VAR17_THRESH = >75 +OBS_VAR17_THRESH = gt75 FCST_VAR18_NAME = VIS_L0_ENS_FREQ_lt1609 FCST_VAR18_LEVELS = L0 FCST_VAR18_THRESH = ==0.1 FCST_VAR18_OPTIONS = interp = { type = [ { method = NEAREST; width = 1; } ]; } - OBS_VAR18_NAME = VIS OBS_VAR18_LEVELS = L0 -OBS_VAR18_THRESH = <1609 +OBS_VAR18_THRESH = lt1609 OBS_VAR18_OPTIONS = interp = { type = [ { method = NEAREST; width = 1; } ]; } FCST_VAR19_NAME = VIS_L0_ENS_FREQ_lt8045 FCST_VAR19_LEVELS = L0 FCST_VAR19_THRESH = ==0.1 FCST_VAR19_OPTIONS = interp = { type = [ { method = NEAREST; width = 1; } ]; } - OBS_VAR19_NAME = VIS OBS_VAR19_LEVELS = L0 -OBS_VAR19_THRESH = <8045 +OBS_VAR19_THRESH = lt8045 OBS_VAR19_OPTIONS = interp = { type = [ { method = NEAREST; width = 1; } ]; } FCST_VAR20_NAME = VIS_L0_ENS_FREQ_ge8045 FCST_VAR20_LEVELS = L0 FCST_VAR20_THRESH = ==0.1 FCST_VAR20_OPTIONS = interp = { type = [ { method = NEAREST; width = 1; } ]; } - OBS_VAR20_NAME = VIS OBS_VAR20_LEVELS = L0 -OBS_VAR20_THRESH = >=8045 +OBS_VAR20_THRESH = ge8045 OBS_VAR20_OPTIONS = interp = { type = [ { method = NEAREST; width = 1; } ]; } FCST_VAR21_NAME = HGT_L0_ENS_FREQ_lt152 FCST_VAR21_LEVELS = L0 FCST_VAR21_THRESH = ==0.1 FCST_VAR21_OPTIONS = desc = "CEILING"; - OBS_VAR21_NAME = CEILING OBS_VAR21_LEVELS = L0 -OBS_VAR21_THRESH = <152 -OBS_VAR21_OPTIONS = GRIB_lvl_typ = 215; interp = { type = [ { method = NEAREST; width = 1; } ]; } +OBS_VAR21_THRESH = lt152 +OBS_VAR21_OPTIONS = GRIB_lvl_typ = 215; + interp = { type = [ { method = NEAREST; width = 1; } ]; } FCST_VAR22_NAME = HGT_L0_ENS_FREQ_lt1520 FCST_VAR22_LEVELS = L0 FCST_VAR22_THRESH = ==0.1 FCST_VAR22_OPTIONS = desc = "CEILING"; - OBS_VAR22_NAME = CEILING OBS_VAR22_LEVELS = L0 -OBS_VAR22_THRESH = <1520 -OBS_VAR22_OPTIONS = GRIB_lvl_typ = 215; interp = { type = [ { method = NEAREST; width = 1; } ]; } +OBS_VAR22_THRESH = lt1520 +OBS_VAR22_OPTIONS = GRIB_lvl_typ = 215; + interp = { type = [ { method = NEAREST; width = 1; } ]; } FCST_VAR23_NAME = HGT_L0_ENS_FREQ_ge914 FCST_VAR23_LEVELS = L0 FCST_VAR23_THRESH = ==0.1 FCST_VAR23_OPTIONS = desc = "CEILING"; - OBS_VAR23_NAME = CEILING OBS_VAR23_LEVELS = L0 -OBS_VAR23_THRESH = >=914 -OBS_VAR23_OPTIONS = GRIB_lvl_typ = 215; interp = { type = [ { method = NEAREST; width = 1; } ]; } +OBS_VAR23_THRESH = ge914 +OBS_VAR23_OPTIONS = GRIB_lvl_typ = 215; + interp = { type = [ { method = NEAREST; width = 1; } ]; } +# # Forecast data description variables +# FCST_IS_PROB = True FCST_PROB_IN_GRIB_PDS = False diff --git a/parm/metplus/PointStat_ensprob_UPA.conf b/parm/metplus/PointStat_ensprob_ADPUPA.conf similarity index 85% rename from parm/metplus/PointStat_ensprob_UPA.conf rename to parm/metplus/PointStat_ensprob_ADPUPA.conf index 6b4628112f..eab0270c69 100644 --- a/parm/metplus/PointStat_ensprob_UPA.conf +++ b/parm/metplus/PointStat_ensprob_ADPUPA.conf @@ -43,9 +43,10 @@ LEAD_SEQ = {{fhr_list}} # wrappers have been run # LOOP_ORDER = times - -# Verbosity of MET output - overrides LOG_VERBOSITY for PointStat only -LOG_POINT_STAT_VERBOSITY = 2 +# +# Verbosity of MET logging output. 0 to 5; 0 is quiet, 5 is loud. +# +LOG_{{METPLUS_TOOL_NAME}}_VERBOSITY = {{metplus_verbosity_level}} # # Specify the name of the METplus log file. # @@ -103,10 +104,7 @@ POINT_STAT_CLIMO_CDF_BINS = 1 #POINT_STAT_HSS_EC_VALUE = # -# Time relative to each input file's valid time (in seconds if no units -# are specified) for data within the file to be considered valid. Values -# are set in the 'obs_window' dictionary in the PointStat config file. -# Set both BEGIN and END to 0 to require the exact time in the filename. +# Observation data time window(s). # OBS_WINDOW_BEGIN = -1799 OBS_WINDOW_END = 1800 @@ -139,7 +137,7 @@ POINT_STAT_REGRID_TO_GRID = NONE POINT_STAT_REGRID_METHOD = BILIN POINT_STAT_REGRID_WIDTH = 2 -POINT_STAT_OUTPUT_PREFIX = {MODEL}_ADP{{fieldname_in_met_filedir_names}}_{OBTYPE} +POINT_STAT_OUTPUT_PREFIX = {MODEL}_{{fieldname_in_met_filedir_names}}_{OBTYPE} # sets the -obs_valid_beg command line argument (optional) # not used for this example @@ -163,341 +161,303 @@ POINT_STAT_STATION_ID = # Message types, if all message types are to be returned, leave this empty, # otherwise indicate the message types of interest. -POINT_STAT_MESSAGE_TYPE = ADP{{fieldname_in_met_filedir_names}} +POINT_STAT_MESSAGE_TYPE = {{fieldname_in_met_filedir_names}} # set to True to run PointStat once for each name/level combination # set to False to run PointStat once per run time including all fields POINT_STAT_ONCE_PER_FIELD = False # -# Variables and levels as specified in the field dictionary of the METplus -# PointStat configuration file. Specify as FCST_VARn_NAME, FCST_VARn_LEVELS, -# (optional) FCST_VARn_OPTION +# List of forecast and corresponding observation fields to process. +# Note that the forecast variable name must exactly match the name of a +# variable in the forecast input file(s). # - -# fields to compare -# Note: If FCST_VAR_* is set, then a corresponding OBS_VAR_* variable must be set -# To use one variables for both forecast and observation data, set BOTH_VAR_* instead -#FREQ FCST_VAR1_NAME = TMP_P850_ENS_FREQ_ge288 FCST_VAR1_LEVELS = P850 FCST_VAR1_THRESH = ==0.1 - OBS_VAR1_NAME = TMP OBS_VAR1_LEVELS = P850 -OBS_VAR1_THRESH = >=288 +OBS_VAR1_THRESH = ge288 FCST_VAR2_NAME = TMP_P850_ENS_FREQ_ge293 FCST_VAR2_LEVELS = P850 FCST_VAR2_THRESH = ==0.1 - OBS_VAR2_NAME = TMP OBS_VAR2_LEVELS = P850 -OBS_VAR2_THRESH = >=293 +OBS_VAR2_THRESH = ge293 FCST_VAR3_NAME = TMP_P850_ENS_FREQ_ge298 FCST_VAR3_LEVELS = P850 FCST_VAR3_THRESH = ==0.1 - OBS_VAR3_NAME = TMP OBS_VAR3_LEVELS = P850 -OBS_VAR3_THRESH = >=298 +OBS_VAR3_THRESH = ge298 FCST_VAR4_NAME = TMP_P700_ENS_FREQ_ge273 FCST_VAR4_LEVELS = P700 FCST_VAR4_THRESH = ==0.1 - OBS_VAR4_NAME = TMP OBS_VAR4_LEVELS = P700 -OBS_VAR4_THRESH = >=273 +OBS_VAR4_THRESH = ge273 FCST_VAR5_NAME = TMP_P700_ENS_FREQ_ge278 FCST_VAR5_LEVELS = P700 FCST_VAR5_THRESH = ==0.1 - OBS_VAR5_NAME = TMP OBS_VAR5_LEVELS = P700 -OBS_VAR5_THRESH = >=278 +OBS_VAR5_THRESH = ge278 FCST_VAR6_NAME = TMP_P700_ENS_FREQ_ge283 FCST_VAR6_LEVELS = P700 FCST_VAR6_THRESH = ==0.1 - OBS_VAR6_NAME = TMP OBS_VAR6_LEVELS = P700 -OBS_VAR6_THRESH = >=283 +OBS_VAR6_THRESH = ge283 FCST_VAR7_NAME = TMP_P500_ENS_FREQ_ge258 FCST_VAR7_LEVELS = P500 FCST_VAR7_THRESH = ==0.1 - OBS_VAR7_NAME = TMP OBS_VAR7_LEVELS = P500 -OBS_VAR7_THRESH = >=258 +OBS_VAR7_THRESH = ge258 FCST_VAR8_NAME = TMP_P500_ENS_FREQ_ge263 FCST_VAR8_LEVELS = P500 FCST_VAR8_THRESH = ==0.1 - OBS_VAR8_NAME = TMP OBS_VAR8_LEVELS = P500 -OBS_VAR8_THRESH = >=263 +OBS_VAR8_THRESH = ge263 FCST_VAR9_NAME = TMP_P500_ENS_FREQ_ge268 FCST_VAR9_LEVELS = P500 FCST_VAR9_THRESH = ==0.1 - OBS_VAR9_NAME = TMP OBS_VAR9_LEVELS = P500 -OBS_VAR9_THRESH = >=268 +OBS_VAR9_THRESH = ge268 FCST_VAR10_NAME = DPT_P850_ENS_FREQ_ge273 FCST_VAR10_LEVELS = P850 FCST_VAR10_THRESH = ==0.1 - OBS_VAR10_NAME = DPT OBS_VAR10_LEVELS = P850 -OBS_VAR10_THRESH = >=273 +OBS_VAR10_THRESH = ge273 FCST_VAR11_NAME = DPT_P850_ENS_FREQ_ge278 FCST_VAR11_LEVELS = P850 FCST_VAR11_THRESH = ==0.1 - OBS_VAR11_NAME = DPT OBS_VAR11_LEVELS = P850 -OBS_VAR11_THRESH = >=278 +OBS_VAR11_THRESH = ge278 FCST_VAR12_NAME = DPT_P850_ENS_FREQ_ge283 FCST_VAR12_LEVELS = P850 FCST_VAR12_THRESH = ==0.1 - OBS_VAR12_NAME = DPT OBS_VAR12_LEVELS = P850 -OBS_VAR12_THRESH = >=283 +OBS_VAR12_THRESH = ge283 FCST_VAR13_NAME = DPT_P700_ENS_FREQ_ge263 FCST_VAR13_LEVELS = P700 FCST_VAR13_THRESH = ==0.1 - OBS_VAR13_NAME = DPT OBS_VAR13_LEVELS = P700 -OBS_VAR13_THRESH = >=263 +OBS_VAR13_THRESH = ge263 FCST_VAR14_NAME = DPT_P700_ENS_FREQ_ge268 FCST_VAR14_LEVELS = P700 FCST_VAR14_THRESH = ==0.1 - OBS_VAR14_NAME = DPT OBS_VAR14_LEVELS = P700 -OBS_VAR14_THRESH = >=268 +OBS_VAR14_THRESH = ge268 FCST_VAR15_NAME = DPT_P700_ENS_FREQ_ge273 FCST_VAR15_LEVELS = P700 FCST_VAR15_THRESH = ==0.1 - OBS_VAR15_NAME = DPT OBS_VAR15_LEVELS = P700 -OBS_VAR15_THRESH = >=273 +OBS_VAR15_THRESH = ge273 FCST_VAR16_NAME = WIND_P850_ENS_FREQ_ge5 FCST_VAR16_LEVELS = P850 FCST_VAR16_THRESH = ==0.1 - OBS_VAR16_NAME = WIND OBS_VAR16_LEVELS = P850 -OBS_VAR16_THRESH = >=5 +OBS_VAR16_THRESH = ge5 FCST_VAR17_NAME = WIND_P850_ENS_FREQ_ge10 FCST_VAR17_LEVELS = P850 FCST_VAR17_THRESH = ==0.1 - OBS_VAR17_NAME = WIND OBS_VAR17_LEVELS = P850 -OBS_VAR17_THRESH = >=10 +OBS_VAR17_THRESH = ge10 FCST_VAR18_NAME = WIND_P850_ENS_FREQ_ge15 FCST_VAR18_LEVELS = P850 FCST_VAR18_THRESH = ==0.1 - OBS_VAR18_NAME = WIND OBS_VAR18_LEVELS = P850 -OBS_VAR18_THRESH = >=15 +OBS_VAR18_THRESH = ge15 FCST_VAR19_NAME = WIND_P700_ENS_FREQ_ge10 FCST_VAR19_LEVELS = P700 FCST_VAR19_THRESH = ==0.1 - OBS_VAR19_NAME = WIND OBS_VAR19_LEVELS = P700 -OBS_VAR19_THRESH = >=10 +OBS_VAR19_THRESH = ge10 FCST_VAR20_NAME = WIND_P700_ENS_FREQ_ge15 FCST_VAR20_LEVELS = P700 FCST_VAR20_THRESH = ==0.1 - OBS_VAR20_NAME = WIND OBS_VAR20_LEVELS = P700 -OBS_VAR20_THRESH = >=15 +OBS_VAR20_THRESH = ge15 FCST_VAR21_NAME = WIND_P700_ENS_FREQ_ge20 FCST_VAR21_LEVELS = P700 FCST_VAR21_THRESH = ==0.1 - OBS_VAR21_NAME = WIND OBS_VAR21_LEVELS = P700 -OBS_VAR21_THRESH = >=20 +OBS_VAR21_THRESH = ge20 FCST_VAR22_NAME = WIND_P500_ENS_FREQ_ge15 FCST_VAR22_LEVELS = P500 FCST_VAR22_THRESH = ==0.1 - OBS_VAR22_NAME = WIND OBS_VAR22_LEVELS = P500 -OBS_VAR22_THRESH = >=15 +OBS_VAR22_THRESH = ge15 FCST_VAR23_NAME = WIND_P500_ENS_FREQ_ge21 FCST_VAR23_LEVELS = P500 FCST_VAR23_THRESH = ==0.1 - OBS_VAR23_NAME = WIND OBS_VAR23_LEVELS = P500 -OBS_VAR23_THRESH = >=21 +OBS_VAR23_THRESH = ge21 FCST_VAR24_NAME = WIND_P500_ENS_FREQ_ge26 FCST_VAR24_LEVELS = P500 FCST_VAR24_THRESH = ==0.1 - OBS_VAR24_NAME = WIND OBS_VAR24_LEVELS = P500 -OBS_VAR24_THRESH = >=26 +OBS_VAR24_THRESH = ge26 FCST_VAR25_NAME = WIND_P250_ENS_FREQ_ge26 FCST_VAR25_LEVELS = P250 FCST_VAR25_THRESH = ==0.1 - OBS_VAR25_NAME = WIND OBS_VAR25_LEVELS = P250 -OBS_VAR25_THRESH = >=26 +OBS_VAR25_THRESH = ge26 FCST_VAR26_NAME = WIND_P250_ENS_FREQ_ge31 FCST_VAR26_LEVELS = P250 FCST_VAR26_THRESH = ==0.1 - OBS_VAR26_NAME = WIND OBS_VAR26_LEVELS = P250 -OBS_VAR26_THRESH = >=31 +OBS_VAR26_THRESH = ge31 FCST_VAR27_NAME = WIND_P250_ENS_FREQ_ge36 FCST_VAR27_LEVELS = P250 FCST_VAR27_THRESH = ==0.1 - OBS_VAR27_NAME = WIND OBS_VAR27_LEVELS = P250 -OBS_VAR27_THRESH = >=36 +OBS_VAR27_THRESH = ge36 FCST_VAR28_NAME = WIND_P250_ENS_FREQ_ge46 FCST_VAR28_LEVELS = P250 FCST_VAR28_THRESH = ==0.1 - OBS_VAR28_NAME = WIND OBS_VAR28_LEVELS = P250 -OBS_VAR28_THRESH = >=46 +OBS_VAR28_THRESH = ge46 FCST_VAR29_NAME = WIND_P250_ENS_FREQ_ge62 FCST_VAR29_LEVELS = P250 FCST_VAR29_THRESH = ==0.1 - OBS_VAR29_NAME = WIND OBS_VAR29_LEVELS = P250 -OBS_VAR29_THRESH = >=62 +OBS_VAR29_THRESH = ge62 FCST_VAR30_NAME = HGT_P500_ENS_FREQ_ge5400 FCST_VAR30_LEVELS = P500 FCST_VAR30_THRESH = ==0.1 - OBS_VAR30_NAME = HGT OBS_VAR30_LEVELS = P500 -OBS_VAR30_THRESH = >=5400 +OBS_VAR30_THRESH = ge5400 FCST_VAR31_NAME = HGT_P500_ENS_FREQ_ge5600 FCST_VAR31_LEVELS = P500 FCST_VAR31_THRESH = ==0.1 - OBS_VAR31_NAME = HGT OBS_VAR31_LEVELS = P500 -OBS_VAR31_THRESH = >=5600 +OBS_VAR31_THRESH = ge5600 FCST_VAR32_NAME = HGT_P500_ENS_FREQ_ge5880 FCST_VAR32_LEVELS = P500 FCST_VAR32_THRESH = ==0.1 - OBS_VAR32_NAME = HGT OBS_VAR32_LEVELS = P500 -OBS_VAR32_THRESH = >=5880 +OBS_VAR32_THRESH = ge5880 FCST_VAR33_NAME = CAPE_L0_ENS_FREQ_le1000 FCST_VAR33_LEVELS = L0 FCST_VAR33_THRESH = ==0.1 - OBS_VAR33_NAME = CAPE OBS_VAR33_LEVELS = L0-100000 -OBS_VAR33_OPTIONS = cnt_thresh = [ >0 ]; cnt_logic = UNION; -OBS_VAR33_THRESH = <=1000 +OBS_VAR33_THRESH = le1000 +OBS_VAR33_OPTIONS = cnt_thresh = [ >0 ]; + cnt_logic = UNION; FCST_VAR34_NAME = CAPE_L0_ENS_FREQ_gt1000.and.lt2500 FCST_VAR34_LEVELS = L0 FCST_VAR34_THRESH = ==0.1 - OBS_VAR34_NAME = CAPE OBS_VAR34_LEVELS = L0-100000 -OBS_VAR34_OPTIONS = cnt_thresh = [ >0 ]; cnt_logic = UNION; -OBS_VAR34_THRESH = >1000&&<2500 +OBS_VAR34_THRESH = gt1000&<2500 +OBS_VAR34_OPTIONS = cnt_thresh = [ >0 ]; + cnt_logic = UNION; FCST_VAR35_NAME = CAPE_L0_ENS_FREQ_gt2500.and.lt4000 FCST_VAR35_LEVELS = L0 FCST_VAR35_THRESH = ==0.1 - OBS_VAR35_NAME = CAPE OBS_VAR35_LEVELS = L0-100000 -OBS_VAR35_OPTIONS = cnt_thresh = [ >0 ]; cnt_logic = UNION; -OBS_VAR35_THRESH = >2500&&<4000 +OBS_VAR35_THRESH = gt2500&<4000 +OBS_VAR35_OPTIONS = cnt_thresh = [ >0 ]; + cnt_logic = UNION; FCST_VAR36_NAME = CAPE_L0_ENS_FREQ_gt2500 FCST_VAR36_LEVELS = L0 FCST_VAR36_THRESH = ==0.1 - OBS_VAR36_NAME = CAPE OBS_VAR36_LEVELS = L0-100000 -OBS_VAR36_OPTIONS = cnt_thresh = [ >0 ]; cnt_logic = UNION; -OBS_VAR36_THRESH =>2500 +OBS_VAR36_THRESH = gt2500 +OBS_VAR36_OPTIONS = cnt_thresh = [ >0 ]; + cnt_logic = UNION; FCST_VAR37_NAME = HPBL_Z0_ENS_FREQ_lt500 FCST_VAR37_LEVELS = Z0 FCST_VAR37_THRESH = ==0.1 - OBS_VAR37_NAME = PBL OBS_VAR37_LEVELS = L0 +OBS_VAR37_THRESH = lt500 OBS_VAR37_OPTIONS = desc = "TKE"; -OBS_VAR37_THRESH = <500 FCST_VAR38_NAME = HPBL_Z0_ENS_FREQ_lt1500 FCST_VAR38_LEVELS = Z0 FCST_VAR38_THRESH = ==0.1 - OBS_VAR38_NAME = PBL OBS_VAR38_LEVELS = L0 +OBS_VAR38_THRESH = lt1500 OBS_VAR38_OPTIONS = desc = "TKE"; -OBS_VAR38_THRESH = <1500 FCST_VAR39_NAME = HPBL_Z0_ENS_FREQ_gt1500 FCST_VAR39_LEVELS = Z0 FCST_VAR39_THRESH = ==0.1 - OBS_VAR39_NAME = PBL OBS_VAR39_LEVELS = L0 +OBS_VAR39_THRESH = gt1500 OBS_VAR39_OPTIONS = desc = "TKE"; -OBS_VAR39_THRESH = >1500 +# # Forecast data description variables +# FCST_IS_PROB = True FCST_PROB_IN_GRIB_PDS = False diff --git a/parm/wflow/verify_det.yaml b/parm/wflow/verify_det.yaml index ee611bcfab..4c6b43ca25 100644 --- a/parm/wflow/verify_det.yaml +++ b/parm/wflow/verify_det.yaml @@ -37,7 +37,7 @@ metatask_GridStat_CCPA_all_accums_all_mems: OBS_DIR: '&CCPA_OBS_DIR;' VAR: APCP ACCUM_HH: '#ACCUM_HH#' - MET_TOOL: 'GRIDSTAT' + METPLUSTOOLNAME: 'GRIDSTAT' OBTYPE: 'CCPA' ENSMEM_INDX: "#mem#" SLASH_ENSMEM_SUBDIR_OR_NULL: '{% if global.DO_ENSEMBLE %}{{ "/mem#mem#" }}{% endif %}' @@ -67,7 +67,7 @@ metatask_GridStat_NOHRSC_all_accums_all_mems: OBS_DIR: '&NOHRSC_OBS_DIR;' VAR: ASNOW ACCUM_HH: '#ACCUM_HH#' - MET_TOOL: 'GRIDSTAT' + METPLUSTOOLNAME: 'GRIDSTAT' OBTYPE: 'NOHRSC' ENSMEM_INDX: "#mem#" SLASH_ENSMEM_SUBDIR_OR_NULL: '{% if global.DO_ENSEMBLE %}{{ "/mem#mem#" }}{% endif %}' @@ -95,7 +95,7 @@ metatask_GridStat_MRMS_all_mems: OBS_DIR: '&MRMS_OBS_DIR;' VAR: '#VAR#' ACCUM_HH: '01' - MET_TOOL: 'GRIDSTAT' + METPLUSTOOLNAME: 'GRIDSTAT' OBTYPE: 'MRMS' ENSMEM_INDX: "#mem#" SLASH_ENSMEM_SUBDIR_OR_NULL: '{% if global.DO_ENSEMBLE %}{{ "/mem#mem#" }}{% endif %}' @@ -115,7 +115,7 @@ metatask_PointStat_NDAS_all_mems: mem: '{% if global.DO_ENSEMBLE %}{% for m in range(1, global.NUM_ENS_MEMBERS+1) %}{{ "%03d "%m }}{%- endfor -%} {% else %}{{ "000"|string }}{% endif %}' metatask_PointStat_NDAS_mem#mem#: var: - VAR: '{% for var in verification.VX_FIELDS %}{% if var in ["SFC", "UPA"] %}{{ "%s " % var }}{% endif %}{% endfor %}' + VAR: '{% for var in verification.VX_FIELDS %}{% if var in ["ADPSFC", "ADPUPA"] %}{{ "%s " % var }}{% endif %}{% endfor %}' task_run_MET_PointStat_vx_#VAR#_mem#mem#: <<: *default_task_verify_det command: '&LOAD_MODULES_RUN_TASK_FP; "run_vx" "&JOBSdir;/JREGIONAL_RUN_MET_GRIDSTAT_OR_POINTSTAT_VX"' @@ -123,7 +123,7 @@ metatask_PointStat_NDAS_all_mems: <<: *default_vars OBS_DIR: '&NDAS_OBS_DIR;' VAR: '#VAR#' - MET_TOOL: 'POINTSTAT' + METPLUSTOOLNAME: 'POINTSTAT' OBTYPE: 'NDAS' ACCUM_HH: '01' ENSMEM_INDX: "#mem#" diff --git a/parm/wflow/verify_ens.yaml b/parm/wflow/verify_ens.yaml index 4dd9f16ec2..cf0a8d1dac 100644 --- a/parm/wflow/verify_ens.yaml +++ b/parm/wflow/verify_ens.yaml @@ -32,7 +32,7 @@ metatask_GenEnsProd_EnsembleStat_CCPA: ACCUM_HH: '#ACCUM_HH#' OBS_DIR: '&CCPA_OBS_DIR;' VAR: APCP - MET_TOOL: 'GENENSPROD' + METPLUSTOOLNAME: 'GENENSPROD' OBTYPE: 'CCPA' dependency: and: @@ -49,7 +49,7 @@ metatask_GenEnsProd_EnsembleStat_CCPA: <<: *task_GenEnsProd_CCPA envars: <<: *envars_GenEnsProd_CCPA - MET_TOOL: 'ENSEMBLESTAT' + METPLUSTOOLNAME: 'ENSEMBLESTAT' dependency: taskdep_genensprod: attrs: @@ -66,7 +66,7 @@ metatask_GenEnsProd_EnsembleStat_NOHRSC: ACCUM_HH: '#ACCUM_HH#' OBS_DIR: '&NOHRSC_OBS_DIR;' VAR: ASNOW - MET_TOOL: 'GENENSPROD' + METPLUSTOOLNAME: 'GENENSPROD' OBTYPE: 'NOHRSC' dependency: and: @@ -80,7 +80,7 @@ metatask_GenEnsProd_EnsembleStat_NOHRSC: <<: *task_GenEnsProd_NOHRSC envars: <<: *envars_GenEnsProd_NOHRSC - MET_TOOL: 'ENSEMBLESTAT' + METPLUSTOOLNAME: 'ENSEMBLESTAT' dependency: and: taskdep: @@ -101,7 +101,7 @@ metatask_GenEnsProd_EnsembleStat_MRMS: ACCUM_HH: '01' OBS_DIR: '&MRMS_OBS_DIR;' VAR: '#VAR#' - MET_TOOL: 'GENENSPROD' + METPLUSTOOLNAME: 'GENENSPROD' OBTYPE: 'MRMS' dependency: and: @@ -116,7 +116,7 @@ metatask_GenEnsProd_EnsembleStat_MRMS: <<: *task_GenEnsProd_MRMS envars: <<: *envars_GenEnsProd_MRMS - MET_TOOL: 'ENSEMBLESTAT' + METPLUSTOOLNAME: 'ENSEMBLESTAT' dependency: taskdep: attrs: @@ -124,7 +124,7 @@ metatask_GenEnsProd_EnsembleStat_MRMS: metatask_GenEnsProd_EnsembleStat_NDAS: var: - VAR: '{% for var in verification.VX_FIELDS %}{% if var in ["SFC", "UPA"] %}{{ "%s " % var }}{% endif %}{% endfor %}' + VAR: '{% for var in verification.VX_FIELDS %}{% if var in ["ADPSFC", "ADPUPA"] %}{{ "%s " % var }}{% endif %}{% endfor %}' task_run_MET_GenEnsProd_vx_#VAR#: &task_GenEnsProd_NDAS <<: *default_task_verify_ens command: '&LOAD_MODULES_RUN_TASK_FP; "run_vx" "&JOBSdir;/JREGIONAL_RUN_MET_GENENSPROD_OR_ENSEMBLESTAT"' @@ -132,7 +132,7 @@ metatask_GenEnsProd_EnsembleStat_NDAS: <<: *default_vars OBS_DIR: '&NDAS_OBS_DIR;' VAR: '#VAR#' - MET_TOOL: 'GENENSPROD' + METPLUSTOOLNAME: 'GENENSPROD' OBTYPE: 'NDAS' ACCUM_HH: '01' walltime: 02:30:00 @@ -150,7 +150,7 @@ metatask_GenEnsProd_EnsembleStat_NDAS: <<: *task_GenEnsProd_NDAS envars: <<: *envars_GenEnsProd_NDAS - MET_TOOL: 'ENSEMBLESTAT' + METPLUSTOOLNAME: 'ENSEMBLESTAT' walltime: 01:00:00 dependency: taskdep_genensprod: @@ -171,7 +171,7 @@ metatask_GridStat_CCPA_ensmeanprob_all_accums: <<: *default_vars OBS_DIR: '&CCPA_OBS_DIR;' VAR: APCP - MET_TOOL: 'GRIDSTAT' + METPLUSTOOLNAME: 'GRIDSTAT' OBTYPE: 'CCPA' ACCUM_HH: '#ACCUM_HH#' dependency: @@ -193,7 +193,7 @@ metatask_GridStat_NOHRSC_ensmeanprob_all_accums: <<: *default_vars OBS_DIR: '&NOHRSC_OBS_DIR;' VAR: ASNOW - MET_TOOL: 'GRIDSTAT' + METPLUSTOOLNAME: 'GRIDSTAT' OBTYPE: 'NOHRSC' ACCUM_HH: '#ACCUM_HH#' dependency: @@ -212,7 +212,7 @@ metatask_GridStat_MRMS_ensprob: ACCUM_HH: '01' OBS_DIR: '&MRMS_OBS_DIR;' VAR: '#VAR#' - MET_TOOL: 'GRIDSTAT' + METPLUSTOOLNAME: 'GRIDSTAT' OBTYPE: 'MRMS' dependency: taskdep: @@ -225,7 +225,7 @@ metatask_PointStat_NDAS_ensmeanprob: statlc: mean prob metatask_PointStat_NDAS_ens#statlc#: var: - VAR: '{% for var in verification.VX_FIELDS %}{% if var in ["SFC", "UPA"] %}{{ "%s " % var }}{% endif %}{% endfor %}' + VAR: '{% for var in verification.VX_FIELDS %}{% if var in ["ADPSFC", "ADPUPA"] %}{{ "%s " % var }}{% endif %}{% endfor %}' task_run_MET_PointStat_vx_ens#statlc#_#VAR#: <<: *default_task_verify_ens command: '&LOAD_MODULES_RUN_TASK_FP; "run_vx" "&JOBSdir;/JREGIONAL_RUN_MET_GRIDSTAT_OR_POINTSTAT_VX_ENS#stat#"' @@ -233,7 +233,7 @@ metatask_PointStat_NDAS_ensmeanprob: <<: *default_vars OBS_DIR: '&NDAS_OBS_DIR;' VAR: '#VAR#' - MET_TOOL: 'POINTSTAT' + METPLUSTOOLNAME: 'POINTSTAT' OBTYPE: 'NDAS' ACCUM_HH: '01' dependency: diff --git a/parm/wflow/verify_pre.yaml b/parm/wflow/verify_pre.yaml index d8f245f794..bc1ca11078 100644 --- a/parm/wflow/verify_pre.yaml +++ b/parm/wflow/verify_pre.yaml @@ -79,12 +79,12 @@ task_run_MET_Pb2nc_obs: command: '&LOAD_MODULES_RUN_TASK_FP; "run_vx" "&JOBSdir;/JREGIONAL_RUN_MET_PB2NC_OBS"' envars: <<: *default_vars - VAR: SFC + VAR: ADPSFC ACCUM_HH: '01' obs_or_fcst: obs OBTYPE: NDAS OBS_DIR: '&NDAS_OBS_DIR;' - MET_TOOL: 'PB2NC' + METPLUSTOOLNAME: 'PB2NC' dependency: and: datadep: @@ -114,7 +114,7 @@ metatask_PcpCombine_obs: obs_or_fcst: obs OBTYPE: CCPA OBS_DIR: '&CCPA_OBS_DIR;' - MET_TOOL: 'PCPCOMBINE' + METPLUSTOOLNAME: 'PCPCOMBINE' dependency: and: datadep: @@ -225,7 +225,7 @@ metatask_PcpCombine_fcst_APCP_all_accums_all_mems: obs_or_fcst: fcst OBTYPE: CCPA OBS_DIR: '&CCPA_OBS_DIR;' - MET_TOOL: 'PCPCOMBINE' + METPLUSTOOLNAME: 'PCPCOMBINE' ENSMEM_INDX: "#mem#" dependency: datadep: @@ -253,7 +253,7 @@ metatask_PcpCombine_fcst_ASNOW_all_accums_all_mems: obs_or_fcst: fcst OBTYPE: NOHRSC OBS_DIR: '&NOHRSC_OBS_DIR;' - MET_TOOL: 'PCPCOMBINE' + METPLUSTOOLNAME: 'PCPCOMBINE' ENSMEM_INDX: "#mem#" dependency: datadep: diff --git a/scripts/exregional_run_met_genensprod_or_ensemblestat.sh b/scripts/exregional_run_met_genensprod_or_ensemblestat.sh index cf72c723a4..8fef9cfa21 100755 --- a/scripts/exregional_run_met_genensprod_or_ensemblestat.sh +++ b/scripts/exregional_run_met_genensprod_or_ensemblestat.sh @@ -16,7 +16,7 @@ source_config_for_task "task_run_vx_ensgrid|task_run_post" ${GLOBAL_VAR_DEFNS_FP # #----------------------------------------------------------------------- # -. $USHdir/get_met_metplus_tool_name.sh +. $USHdir/get_metplus_tool_name.sh . $USHdir/set_vx_params.sh . $USHdir/set_vx_fhr_list.sh # @@ -44,14 +44,15 @@ scrfunc_dir=$( dirname "${scrfunc_fp}" ) #----------------------------------------------------------------------- # # Get the name of the MET/METplus tool in different formats that may be -# needed from the global variable MET_TOOL. +# needed from the global variable METPLUSTOOLNAME. # #----------------------------------------------------------------------- # -get_met_metplus_tool_name \ - generic_tool_name="${MET_TOOL}" \ - outvarname_met_tool_name="met_tool_name" \ - outvarname_metplus_tool_name="metplus_tool_name" +get_metplus_tool_name \ + METPLUSTOOLNAME="${METPLUSTOOLNAME}" \ + outvarname_metplus_tool_name="metplus_tool_name" \ + outvarname_MetplusToolName="MetplusToolName" \ + outvarname_METPLUS_TOOL_NAME="METPLUS_TOOL_NAME" # #----------------------------------------------------------------------- # @@ -74,7 +75,7 @@ print_info_msg " Entering script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" -This is the ex-script for the task that runs the METplus ${metplus_tool_name} +This is the ex-script for the task that runs the METplus ${MetplusToolName} tool either to generate ensemble products without performing verification (if running the GenEnsProd tool) or to perform ensemble-based verification (if running the EnsembleStat tool). @@ -106,7 +107,6 @@ set_vx_params \ field="$VAR" \ accum_hh="${ACCUM_HH}" \ outvarname_grid_or_point="grid_or_point" \ - outvarname_field_is_APCPgt01h="field_is_APCPgt01h" \ outvarname_fieldname_in_obs_input="FIELDNAME_IN_OBS_INPUT" \ outvarname_fieldname_in_fcst_input="FIELDNAME_IN_FCST_INPUT" \ outvarname_fieldname_in_MET_output="FIELDNAME_IN_MET_OUTPUT" \ @@ -133,9 +133,12 @@ if [ "${grid_or_point}" = "grid" ]; then "APCP24h") FIELD_THRESHOLDS="gt0.0, ge6.350, ge12.700, ge25.400" ;; - "ASNOW") - FIELD_THRESHOLDS="gt0.0, ge2.54, ge5.08, ge10.16, ge20.32" - ;; + "ASNOW06h") + FIELD_THRESHOLDS="gt0.0, ge2.54, ge5.08, ge10.16, ge20.32" + ;; + "ASNOW24h") + FIELD_THRESHOLDS="gt0.0, ge2.54, ge5.08, ge10.16, ge20.32" + ;; "REFC") FIELD_THRESHOLDS="ge20, ge30, ge40, ge50" ;; @@ -173,41 +176,37 @@ fi if [ "${grid_or_point}" = "grid" ]; then - OBS_INPUT_FN_TEMPLATE="" - if [ "${field_is_APCPgt01h}" = "TRUE" ]; then - OBS_INPUT_DIR="${vx_output_basedir}/metprd/PcpCombine_obs" - OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_CCPA_APCPgt01h_FN_TEMPLATE} ) - FCST_INPUT_DIR="${vx_output_basedir}" - else - OBS_INPUT_DIR="${OBS_DIR}" - case "${FIELDNAME_IN_MET_FILEDIR_NAMES}" in - "APCP01h") - OBS_INPUT_FN_TEMPLATE="${OBS_CCPA_APCP01h_FN_TEMPLATE}" - FCST_INPUT_DIR="${vx_fcst_input_basedir}" - ;; - "ASNOW") - OBS_INPUT_FN_TEMPLATE="${OBS_NOHRSC_ASNOW_FN_TEMPLATE}" - FCST_INPUT_DIR="${vx_output_basedir}" - ;; - "REFC") - OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_REFC_FN_TEMPLATE}" - FCST_INPUT_DIR="${vx_fcst_input_basedir}" - ;; - "RETOP") - OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_RETOP_FN_TEMPLATE}" - FCST_INPUT_DIR="${vx_fcst_input_basedir}" - ;; - esac - OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_INPUT_FN_TEMPLATE} ) - fi + case "${FIELDNAME_IN_MET_FILEDIR_NAMES}" in + "APCP"*) + OBS_INPUT_DIR="${vx_output_basedir}/metprd/PcpCombine_obs" + OBS_INPUT_FN_TEMPLATE="${OBS_CCPA_APCP_FN_TEMPLATE_PCPCOMBINE_OUTPUT}" + FCST_INPUT_DIR="${vx_output_basedir}" + ;; + "ASNOW"*) + OBS_INPUT_DIR="${OBS_DIR}" + OBS_INPUT_FN_TEMPLATE="${OBS_NOHRSC_ASNOW_FN_TEMPLATE}" + FCST_INPUT_DIR="${vx_output_basedir}" + ;; + "REFC") + OBS_INPUT_DIR="${OBS_DIR}" + OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_REFC_FN_TEMPLATE}" + FCST_INPUT_DIR="${vx_fcst_input_basedir}" + ;; + "RETOP") + OBS_INPUT_DIR="${OBS_DIR}" + OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_RETOP_FN_TEMPLATE}" + FCST_INPUT_DIR="${vx_fcst_input_basedir}" + ;; + esac elif [ "${grid_or_point}" = "point" ]; then OBS_INPUT_DIR="${vx_output_basedir}/metprd/Pb2nc_obs" - OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_NDAS_SFCorUPA_FN_METPROC_TEMPLATE} ) + OBS_INPUT_FN_TEMPLATE="${OBS_NDAS_ADPSFCorADPUPA_FN_TEMPLATE_PB2NC_OUTPUT}" FCST_INPUT_DIR="${vx_fcst_input_basedir}" fi +OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_INPUT_FN_TEMPLATE} ) # # Construct variable that contains a METplus template of the paths to # the files that the PcpCombine tool has generated (in previous workflow @@ -228,25 +227,25 @@ for (( i=0; i<${NUM_ENS_MEMBERS}; i++ )); do time_lag=$( bc -l <<< "${ENS_TIME_LAG_HRS[$i]}*${SECS_PER_HOUR}" ) - if [ "${field_is_APCPgt01h}" = "TRUE" ] || [ "${FIELDNAME_IN_MET_FILEDIR_NAMES}" = "ASNOW" ]; then - template="${cdate_ensmem_subdir_or_null:+${cdate_ensmem_subdir_or_null}/}metprd/PcpCombine_fcst/${FCST_FN_METPROC_TEMPLATE}" + if [ "${VAR}" = "APCP" ] || [ "${VAR}" = "ASNOW" ]; then + template="${cdate_ensmem_subdir_or_null:+${cdate_ensmem_subdir_or_null}/}metprd/PcpCombine_fcst/${FCST_FN_TEMPLATE_PCPCOMBINE_OUTPUT}" else template="${FCST_SUBDIR_TEMPLATE}/${FCST_FN_TEMPLATE}" fi slash_ensmem_subdir_or_null="/${ensmem_name}" if [ -z "${FCST_INPUT_FN_TEMPLATE}" ]; then - FCST_INPUT_FN_TEMPLATE=" $(eval echo ${template})" + FCST_INPUT_FN_TEMPLATE="$(eval echo ${template})" else FCST_INPUT_FN_TEMPLATE="\ ${FCST_INPUT_FN_TEMPLATE}, - $(eval echo ${template})" +$(eval echo ${template})" fi done OUTPUT_BASE="${vx_output_basedir}${slash_cdate_or_null}" -OUTPUT_DIR="${OUTPUT_BASE}/metprd/${metplus_tool_name}" +OUTPUT_DIR="${OUTPUT_BASE}/metprd/${MetplusToolName}" STAGING_DIR="${OUTPUT_BASE}/stage/${FIELDNAME_IN_MET_FILEDIR_NAMES}" # #----------------------------------------------------------------------- @@ -319,13 +318,9 @@ fi # # First, set the base file names. # -if [ "${field_is_APCPgt01h}" = "TRUE" ]; then - metplus_config_tmpl_fn="APCPgt01h" -else - metplus_config_tmpl_fn="${FIELDNAME_IN_MET_FILEDIR_NAMES}" -fi -metplus_config_tmpl_fn="${metplus_tool_name}_${metplus_config_tmpl_fn}" -metplus_config_fn="${metplus_tool_name}_${FIELDNAME_IN_MET_FILEDIR_NAMES}" +metplus_config_tmpl_fn="${VAR}" +metplus_config_tmpl_fn="${MetplusToolName}_${metplus_config_tmpl_fn}" +metplus_config_fn="${MetplusToolName}_${FIELDNAME_IN_MET_FILEDIR_NAMES}" metplus_log_fn="${metplus_config_fn}" # # Add prefixes and suffixes (extensions) to the base file names. @@ -351,6 +346,13 @@ metplus_config_fp="${OUTPUT_DIR}/${metplus_config_fn}" # settings="\ # +# MET/METplus information. +# + 'metplus_tool_name': '${metplus_tool_name}' + 'MetplusToolName': '${MetplusToolName}' + 'METPLUS_TOOL_NAME': '${METPLUS_TOOL_NAME}' + 'metplus_verbosity_level': '${METPLUS_VERBOSITY_LEVEL}' +# # Date and forecast hour information. # 'cdate': '$CDATE' @@ -373,7 +375,7 @@ settings="\ # Ensemble and member-specific information. # 'num_ens_members': '${NUM_ENS_MEMBERS}' - 'ensmem_indx': '${ENSMEM_INDX:-}' + 'ensmem_name': '${ensmem_name:-}' 'time_lag': '${time_lag:-}' # # Field information. @@ -420,7 +422,7 @@ fi #----------------------------------------------------------------------- # print_info_msg "$VERBOSE" " -Calling METplus to run MET's ${met_tool_name} tool for field(s): ${FIELDNAME_IN_MET_FILEDIR_NAMES}" +Calling METplus to run MET's ${metplus_tool_name} tool for field(s): ${FIELDNAME_IN_MET_FILEDIR_NAMES}" ${METPLUS_PATH}/ush/run_metplus.py \ -c ${METPLUS_CONF}/common.conf \ -c ${metplus_config_fp} || \ @@ -437,7 +439,7 @@ METplus configuration file used is: # print_info_msg " ======================================================================== -METplus ${metplus_tool_name} tool completed successfully. +METplus ${MetplusToolName} tool completed successfully. Exiting script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" diff --git a/scripts/exregional_run_met_gridstat_or_pointstat_vx.sh b/scripts/exregional_run_met_gridstat_or_pointstat_vx.sh index 3982a340d0..c9d8baeefe 100755 --- a/scripts/exregional_run_met_gridstat_or_pointstat_vx.sh +++ b/scripts/exregional_run_met_gridstat_or_pointstat_vx.sh @@ -16,7 +16,7 @@ source_config_for_task "task_run_vx_gridstat|task_run_vx_pointstat|task_run_post # #----------------------------------------------------------------------- # -. $USHdir/get_met_metplus_tool_name.sh +. $USHdir/get_metplus_tool_name.sh . $USHdir/set_vx_params.sh . $USHdir/set_vx_fhr_list.sh # @@ -44,14 +44,15 @@ scrfunc_dir=$( dirname "${scrfunc_fp}" ) #----------------------------------------------------------------------- # # Get the name of the MET/METplus tool in different formats that may be -# needed from the global variable MET_TOOL. +# needed from the global variable METPLUSTOOLNAME. # #----------------------------------------------------------------------- # -get_met_metplus_tool_name \ - generic_tool_name="${MET_TOOL}" \ - outvarname_met_tool_name="met_tool_name" \ - outvarname_metplus_tool_name="metplus_tool_name" +get_metplus_tool_name \ + METPLUSTOOLNAME="${METPLUSTOOLNAME}" \ + outvarname_metplus_tool_name="metplus_tool_name" \ + outvarname_MetplusToolName="MetplusToolName" \ + outvarname_METPLUS_TOOL_NAME="METPLUS_TOOL_NAME" # #----------------------------------------------------------------------- # @@ -64,7 +65,7 @@ print_info_msg " Entering script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" -This is the ex-script for the task that runs the METplus ${metplus_tool_name} +This is the ex-script for the task that runs the METplus ${MetplusToolName} tool to perform deterministic verification of the specified field (VAR) for a single forecast. ========================================================================" @@ -95,7 +96,6 @@ set_vx_params \ field="$VAR" \ accum_hh="${ACCUM_HH}" \ outvarname_grid_or_point="grid_or_point" \ - outvarname_field_is_APCPgt01h="field_is_APCPgt01h" \ outvarname_fieldname_in_obs_input="FIELDNAME_IN_OBS_INPUT" \ outvarname_fieldname_in_fcst_input="FIELDNAME_IN_FCST_INPUT" \ outvarname_fieldname_in_MET_output="FIELDNAME_IN_MET_OUTPUT" \ @@ -144,7 +144,10 @@ if [ "${grid_or_point}" = "grid" ]; then "APCP24h") FIELD_THRESHOLDS="gt0.0, ge0.254, ge0.508, ge1.27, ge2.54, ge3.810, ge6.350, ge8.890, ge12.700, ge25.400" ;; - "ASNOW") + "ASNOW06h") + FIELD_THRESHOLDS="gt0.0, ge2.54, ge5.08, ge10.16, ge20.32" + ;; + "ASNOW24h") FIELD_THRESHOLDS="gt0.0, ge2.54, ge5.08, ge10.16, ge20.32" ;; "REFC") @@ -204,50 +207,46 @@ fi if [ "${grid_or_point}" = "grid" ]; then - OBS_INPUT_FN_TEMPLATE="" - if [ "${field_is_APCPgt01h}" = "TRUE" ]; then - OBS_INPUT_DIR="${vx_output_basedir}/metprd/PcpCombine_obs" - OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_CCPA_APCPgt01h_FN_TEMPLATE} ) - FCST_INPUT_DIR="${vx_output_basedir}${slash_cdate_or_null}/${slash_ensmem_subdir_or_null}/metprd/PcpCombine_fcst" - FCST_INPUT_FN_TEMPLATE=$( eval echo ${FCST_FN_METPROC_TEMPLATE} ) - else - OBS_INPUT_DIR="${OBS_DIR}" - case "${FIELDNAME_IN_MET_FILEDIR_NAMES}" in - "APCP01h") - OBS_INPUT_FN_TEMPLATE="${OBS_CCPA_APCP01h_FN_TEMPLATE}" - FCST_INPUT_DIR="${vx_fcst_input_basedir}" - FCST_INPUT_FN_TEMPLATE=$( eval echo ${FCST_SUBDIR_TEMPLATE:+${FCST_SUBDIR_TEMPLATE}/}${FCST_FN_TEMPLATE} ) - ;; - "ASNOW") - OBS_INPUT_FN_TEMPLATE="${OBS_NOHRSC_ASNOW_FN_TEMPLATE}" - FCST_INPUT_DIR="${vx_output_basedir}${slash_cdate_or_null}/${slash_ensmem_subdir_or_null}/metprd/PcpCombine_fcst" - FCST_INPUT_FN_TEMPLATE=$( eval echo ${FCST_FN_METPROC_TEMPLATE} ) - ;; - "REFC") - OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_REFC_FN_TEMPLATE}" - FCST_INPUT_DIR="${vx_fcst_input_basedir}" - FCST_INPUT_FN_TEMPLATE=$( eval echo ${FCST_SUBDIR_TEMPLATE:+${FCST_SUBDIR_TEMPLATE}/}${FCST_FN_TEMPLATE} ) - ;; - "RETOP") - OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_RETOP_FN_TEMPLATE}" - FCST_INPUT_DIR="${vx_fcst_input_basedir}" - FCST_INPUT_FN_TEMPLATE=$( eval echo ${FCST_SUBDIR_TEMPLATE:+${FCST_SUBDIR_TEMPLATE}/}${FCST_FN_TEMPLATE} ) - ;; - esac - OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_INPUT_FN_TEMPLATE} ) - fi + case "${FIELDNAME_IN_MET_FILEDIR_NAMES}" in + "APCP"*) + OBS_INPUT_DIR="${vx_output_basedir}/metprd/PcpCombine_obs" + OBS_INPUT_FN_TEMPLATE="${OBS_CCPA_APCP_FN_TEMPLATE_PCPCOMBINE_OUTPUT}" + FCST_INPUT_DIR="${vx_output_basedir}${slash_cdate_or_null}/${slash_ensmem_subdir_or_null}/metprd/PcpCombine_fcst" + FCST_INPUT_FN_TEMPLATE="${FCST_FN_TEMPLATE_PCPCOMBINE_OUTPUT}" + ;; + "ASNOW"*) + OBS_INPUT_DIR="${OBS_DIR}" + OBS_INPUT_FN_TEMPLATE="${OBS_NOHRSC_ASNOW_FN_TEMPLATE}" + FCST_INPUT_DIR="${vx_output_basedir}${slash_cdate_or_null}/${slash_ensmem_subdir_or_null}/metprd/PcpCombine_fcst" + FCST_INPUT_FN_TEMPLATE="${FCST_FN_TEMPLATE_PCPCOMBINE_OUTPUT}" + ;; + "REFC") + OBS_INPUT_DIR="${OBS_DIR}" + OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_REFC_FN_TEMPLATE}" + FCST_INPUT_DIR="${vx_fcst_input_basedir}" + FCST_INPUT_FN_TEMPLATE="${FCST_SUBDIR_TEMPLATE:+${FCST_SUBDIR_TEMPLATE}/}${FCST_FN_TEMPLATE}" + ;; + "RETOP") + OBS_INPUT_DIR="${OBS_DIR}" + OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_RETOP_FN_TEMPLATE}" + FCST_INPUT_DIR="${vx_fcst_input_basedir}" + FCST_INPUT_FN_TEMPLATE="${FCST_SUBDIR_TEMPLATE:+${FCST_SUBDIR_TEMPLATE}/}${FCST_FN_TEMPLATE}" + ;; + esac elif [ "${grid_or_point}" = "point" ]; then OBS_INPUT_DIR="${vx_output_basedir}/metprd/Pb2nc_obs" - OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_NDAS_SFCorUPA_FN_METPROC_TEMPLATE} ) + OBS_INPUT_FN_TEMPLATE="${OBS_NDAS_ADPSFCorADPUPA_FN_TEMPLATE_PB2NC_OUTPUT}" FCST_INPUT_DIR="${vx_fcst_input_basedir}" - FCST_INPUT_FN_TEMPLATE=$( eval echo ${FCST_SUBDIR_TEMPLATE:+${FCST_SUBDIR_TEMPLATE}/}${FCST_FN_TEMPLATE} ) + FCST_INPUT_FN_TEMPLATE="${FCST_SUBDIR_TEMPLATE:+${FCST_SUBDIR_TEMPLATE}/}${FCST_FN_TEMPLATE}" fi +OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_INPUT_FN_TEMPLATE} ) +FCST_INPUT_FN_TEMPLATE=$( eval echo ${FCST_INPUT_FN_TEMPLATE} ) OUTPUT_BASE="${vx_output_basedir}${slash_cdate_or_null}/${slash_ensmem_subdir_or_null}" -OUTPUT_DIR="${OUTPUT_BASE}/metprd/${metplus_tool_name}" +OUTPUT_DIR="${OUTPUT_BASE}/metprd/${MetplusToolName}" STAGING_DIR="${OUTPUT_BASE}/stage/${FIELDNAME_IN_MET_FILEDIR_NAMES}" # #----------------------------------------------------------------------- @@ -320,13 +319,9 @@ fi # # First, set the base file names. # -if [ "${field_is_APCPgt01h}" = "TRUE" ]; then - metplus_config_tmpl_fn="APCPgt01h" -else - metplus_config_tmpl_fn="${FIELDNAME_IN_MET_FILEDIR_NAMES}" -fi -metplus_config_tmpl_fn="${metplus_tool_name}_${metplus_config_tmpl_fn}" -metplus_config_fn="${metplus_tool_name}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${ensmem_name}" +metplus_config_tmpl_fn="${VAR}" +metplus_config_tmpl_fn="${MetplusToolName}_${metplus_config_tmpl_fn}" +metplus_config_fn="${MetplusToolName}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${ensmem_name}" metplus_log_fn="${metplus_config_fn}" # # Add prefixes and suffixes (extensions) to the base file names. @@ -352,6 +347,13 @@ metplus_config_fp="${OUTPUT_DIR}/${metplus_config_fn}" # settings="\ # +# MET/METplus information. +# + 'metplus_tool_name': '${metplus_tool_name}' + 'MetplusToolName': '${MetplusToolName}' + 'METPLUS_TOOL_NAME': '${METPLUS_TOOL_NAME}' + 'metplus_verbosity_level': '${METPLUS_VERBOSITY_LEVEL}' +# # Date and forecast hour information. # 'cdate': '$CDATE' @@ -422,7 +424,7 @@ fi #----------------------------------------------------------------------- # print_info_msg "$VERBOSE" " -Calling METplus to run MET's ${met_tool_name} tool for field(s): ${FIELDNAME_IN_MET_FILEDIR_NAMES}" +Calling METplus to run MET's ${metplus_tool_name} tool for field(s): ${FIELDNAME_IN_MET_FILEDIR_NAMES}" ${METPLUS_PATH}/ush/run_metplus.py \ -c ${METPLUS_CONF}/common.conf \ -c ${metplus_config_fp} || \ @@ -439,7 +441,7 @@ METplus configuration file used is: # print_info_msg " ======================================================================== -METplus ${metplus_tool_name} tool completed successfully. +METplus ${MetplusToolName} tool completed successfully. Exiting script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" diff --git a/scripts/exregional_run_met_gridstat_or_pointstat_vx_ensmean.sh b/scripts/exregional_run_met_gridstat_or_pointstat_vx_ensmean.sh index b6c1d9ab07..0ebff19961 100755 --- a/scripts/exregional_run_met_gridstat_or_pointstat_vx_ensmean.sh +++ b/scripts/exregional_run_met_gridstat_or_pointstat_vx_ensmean.sh @@ -16,7 +16,7 @@ source_config_for_task "task_run_vx_ensgrid_mean|task_run_vx_enspoint_mean|task_ # #----------------------------------------------------------------------- # -. $USHdir/get_met_metplus_tool_name.sh +. $USHdir/get_metplus_tool_name.sh . $USHdir/set_vx_params.sh . $USHdir/set_vx_fhr_list.sh # @@ -44,14 +44,15 @@ scrfunc_dir=$( dirname "${scrfunc_fp}" ) #----------------------------------------------------------------------- # # Get the name of the MET/METplus tool in different formats that may be -# needed from the global variable MET_TOOL. +# needed from the global variable METPLUSTOOLNAME. # #----------------------------------------------------------------------- # -get_met_metplus_tool_name \ - generic_tool_name="${MET_TOOL}" \ - outvarname_met_tool_name="met_tool_name" \ - outvarname_metplus_tool_name="metplus_tool_name" +get_metplus_tool_name \ + METPLUSTOOLNAME="${METPLUSTOOLNAME}" \ + outvarname_metplus_tool_name="metplus_tool_name" \ + outvarname_MetplusToolName="MetplusToolName" \ + outvarname_METPLUS_TOOL_NAME="METPLUS_TOOL_NAME" # #----------------------------------------------------------------------- # @@ -64,7 +65,7 @@ print_info_msg " Entering script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" -This is the ex-script for the task that runs the METplus ${metplus_tool_name} +This is the ex-script for the task that runs the METplus ${MetplusToolName} tool to perform verification of the specified field (VAR) on the ensemble mean. ========================================================================" @@ -95,7 +96,6 @@ set_vx_params \ field="$VAR" \ accum_hh="${ACCUM_HH}" \ outvarname_grid_or_point="grid_or_point" \ - outvarname_field_is_APCPgt01h="field_is_APCPgt01h" \ outvarname_fieldname_in_obs_input="FIELDNAME_IN_OBS_INPUT" \ outvarname_fieldname_in_fcst_input="FIELDNAME_IN_FCST_INPUT" \ outvarname_fieldname_in_MET_output="FIELDNAME_IN_MET_OUTPUT" \ @@ -122,9 +122,12 @@ if [ "${grid_or_point}" = "grid" ]; then "APCP24h") FIELD_THRESHOLDS="gt0.0, ge6.350, ge12.700, ge25.400" ;; - "ASNOW") - FIELD_THRESHOLDS="gt0.0, ge2.54, ge5.08, ge10.16, ge20.32" - ;; + "ASNOW06h") + FIELD_THRESHOLDS="gt0.0, ge2.54, ge5.08, ge10.16, ge20.32" + ;; + "ASNOW24h") + FIELD_THRESHOLDS="gt0.0, ge2.54, ge5.08, ge10.16, ge20.32" + ;; "REFC") FIELD_THRESHOLDS="ge20, ge30, ge40, ge50" ;; @@ -161,46 +164,38 @@ fi if [ "${grid_or_point}" = "grid" ]; then - OBS_INPUT_FN_TEMPLATE="" - if [ "${field_is_APCPgt01h}" = "TRUE" ]; then - OBS_INPUT_DIR="${vx_output_basedir}/metprd/PcpCombine_obs" - OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_CCPA_APCPgt01h_FN_TEMPLATE} ) - FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) - else - OBS_INPUT_DIR="${OBS_DIR}" - case "${FIELDNAME_IN_MET_FILEDIR_NAMES}" in - "APCP01h") - OBS_INPUT_FN_TEMPLATE="${OBS_CCPA_APCP01h_FN_TEMPLATE}" - FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) - ;; - "ASNOW") - OBS_INPUT_FN_TEMPLATE="${OBS_NOHRSC_ASNOW_FN_TEMPLATE}" - FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${ACCUM_HH}h_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) - ;; - "REFC") - OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_REFC_FN_TEMPLATE}" - FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) - ;; - "RETOP") - OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_RETOP_FN_TEMPLATE}" - FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) - ;; - esac - OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_INPUT_FN_TEMPLATE} ) - fi + case "${FIELDNAME_IN_MET_FILEDIR_NAMES}" in + "APCP"*) + OBS_INPUT_DIR="${vx_output_basedir}/metprd/PcpCombine_obs" + OBS_INPUT_FN_TEMPLATE="${OBS_CCPA_APCP_FN_TEMPLATE_PCPCOMBINE_OUTPUT}" + ;; + "ASNOW"*) + OBS_INPUT_DIR="${OBS_DIR}" + OBS_INPUT_FN_TEMPLATE="${OBS_NOHRSC_ASNOW_FN_TEMPLATE}" + ;; + "REFC") + OBS_INPUT_DIR="${OBS_DIR}" + OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_REFC_FN_TEMPLATE}" + ;; + "RETOP") + OBS_INPUT_DIR="${OBS_DIR}" + OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_RETOP_FN_TEMPLATE}" + ;; + esac FCST_INPUT_DIR="${vx_output_basedir}${slash_cdate_or_null}/metprd/GenEnsProd" elif [ "${grid_or_point}" = "point" ]; then OBS_INPUT_DIR="${vx_output_basedir}/metprd/Pb2nc_obs" - OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_NDAS_SFCorUPA_FN_METPROC_TEMPLATE} ) + OBS_INPUT_FN_TEMPLATE="${OBS_NDAS_ADPSFCorADPUPA_FN_TEMPLATE_PB2NC_OUTPUT}" FCST_INPUT_DIR="${vx_output_basedir}${slash_cdate_or_null}/metprd/GenEnsProd" - FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_ADP${FIELDNAME_IN_MET_FILEDIR_NAMES}_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) fi +OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_INPUT_FN_TEMPLATE} ) +FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) OUTPUT_BASE="${vx_output_basedir}${slash_cdate_or_null}" -OUTPUT_DIR="${OUTPUT_BASE}/metprd/${metplus_tool_name}_ensmean" +OUTPUT_DIR="${OUTPUT_BASE}/metprd/${MetplusToolName}_ensmean" STAGING_DIR="${OUTPUT_BASE}/stage/${FIELDNAME_IN_MET_FILEDIR_NAMES}_ensmean" # #----------------------------------------------------------------------- @@ -282,13 +277,9 @@ fi # # First, set the base file names. # -if [ "${field_is_APCPgt01h}" = "TRUE" ]; then - metplus_config_tmpl_fn="APCPgt01h" -else - metplus_config_tmpl_fn="${FIELDNAME_IN_MET_FILEDIR_NAMES}" -fi -metplus_config_tmpl_fn="${metplus_tool_name}_ensmean_${metplus_config_tmpl_fn}" -metplus_config_fn="${metplus_tool_name}_ensmean_${FIELDNAME_IN_MET_FILEDIR_NAMES}" +metplus_config_tmpl_fn="${VAR}" +metplus_config_tmpl_fn="${MetplusToolName}_ensmean_${metplus_config_tmpl_fn}" +metplus_config_fn="${MetplusToolName}_ensmean_${FIELDNAME_IN_MET_FILEDIR_NAMES}" metplus_log_fn="${metplus_config_fn}" # # Add prefixes and suffixes (extensions) to the base file names. @@ -314,6 +305,13 @@ metplus_config_fp="${OUTPUT_DIR}/${metplus_config_fn}" # settings="\ # +# MET/METplus information. +# + 'metplus_tool_name': '${metplus_tool_name}' + 'MetplusToolName': '${MetplusToolName}' + 'METPLUS_TOOL_NAME': '${METPLUS_TOOL_NAME}' + 'metplus_verbosity_level': '${METPLUS_VERBOSITY_LEVEL}' +# # Date and forecast hour information. # 'cdate': '$CDATE' @@ -384,7 +382,7 @@ fi #----------------------------------------------------------------------- # print_info_msg "$VERBOSE" " -Calling METplus to run MET's ${met_tool_name} tool for field(s): ${FIELDNAME_IN_MET_FILEDIR_NAMES}" +Calling METplus to run MET's ${metplus_tool_name} tool for field(s): ${FIELDNAME_IN_MET_FILEDIR_NAMES}" ${METPLUS_PATH}/ush/run_metplus.py \ -c ${METPLUS_CONF}/common.conf \ -c ${metplus_config_fp} || \ @@ -401,7 +399,7 @@ METplus configuration file used is: # print_info_msg " ======================================================================== -METplus ${metplus_tool_name} tool completed successfully. +METplus ${MetplusToolName} tool completed successfully. Exiting script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" diff --git a/scripts/exregional_run_met_gridstat_or_pointstat_vx_ensprob.sh b/scripts/exregional_run_met_gridstat_or_pointstat_vx_ensprob.sh index ea9a7fe475..06e7e22241 100755 --- a/scripts/exregional_run_met_gridstat_or_pointstat_vx_ensprob.sh +++ b/scripts/exregional_run_met_gridstat_or_pointstat_vx_ensprob.sh @@ -16,7 +16,7 @@ source_config_for_task "task_run_vx_ensgrid_prob|task_run_vx_enspoint_prob|task_ # #----------------------------------------------------------------------- # -. $USHdir/get_met_metplus_tool_name.sh +. $USHdir/get_metplus_tool_name.sh . $USHdir/set_vx_params.sh . $USHdir/set_vx_fhr_list.sh # @@ -44,14 +44,15 @@ scrfunc_dir=$( dirname "${scrfunc_fp}" ) #----------------------------------------------------------------------- # # Get the name of the MET/METplus tool in different formats that may be -# needed from the global variable MET_TOOL. +# needed from the global variable METPLUSTOOLNAME. # #----------------------------------------------------------------------- # -get_met_metplus_tool_name \ - generic_tool_name="${MET_TOOL}" \ - outvarname_met_tool_name="met_tool_name" \ - outvarname_metplus_tool_name="metplus_tool_name" +get_metplus_tool_name \ + METPLUSTOOLNAME="${METPLUSTOOLNAME}" \ + outvarname_metplus_tool_name="metplus_tool_name" \ + outvarname_MetplusToolName="MetplusToolName" \ + outvarname_METPLUS_TOOL_NAME="METPLUS_TOOL_NAME" # #----------------------------------------------------------------------- # @@ -64,7 +65,7 @@ print_info_msg " Entering script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" -This is the ex-script for the task that runs the METplus ${metplus_tool_name} +This is the ex-script for the task that runs the METplus ${MetplusToolName} tool to perform verification of the specified field (VAR) on the ensemble frequencies/probabilities. ========================================================================" @@ -95,7 +96,6 @@ set_vx_params \ field="$VAR" \ accum_hh="${ACCUM_HH}" \ outvarname_grid_or_point="grid_or_point" \ - outvarname_field_is_APCPgt01h="field_is_APCPgt01h" \ outvarname_fieldname_in_obs_input="FIELDNAME_IN_OBS_INPUT" \ outvarname_fieldname_in_fcst_input="FIELDNAME_IN_FCST_INPUT" \ outvarname_fieldname_in_MET_output="FIELDNAME_IN_MET_OUTPUT" \ @@ -117,46 +117,37 @@ fi if [ "${grid_or_point}" = "grid" ]; then - OBS_INPUT_FN_TEMPLATE="" - if [ "${field_is_APCPgt01h}" = "TRUE" ]; then - OBS_INPUT_DIR="${vx_output_basedir}/metprd/PcpCombine_obs" - OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_CCPA_APCPgt01h_FN_TEMPLATE} ) - FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) - else - OBS_INPUT_DIR="${OBS_DIR}" - case "${FIELDNAME_IN_MET_FILEDIR_NAMES}" in - "APCP01h") - OBS_INPUT_FN_TEMPLATE="${OBS_CCPA_APCP01h_FN_TEMPLATE}" - FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) - ;; - "ASNOW") - OBS_INPUT_FN_TEMPLATE="${OBS_NOHRSC_ASNOW_FN_TEMPLATE}" - FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${ACCUM_HH}h_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) - ;; - "REFC") - OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_REFC_FN_TEMPLATE}" - FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) - ;; - "RETOP") - OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_RETOP_FN_TEMPLATE}" - FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) - ;; - esac - OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_INPUT_FN_TEMPLATE} ) - fi - FCST_INPUT_DIR="${vx_output_basedir}${slash_cdate_or_null}/metprd/GenEnsProd" + case "${FIELDNAME_IN_MET_FILEDIR_NAMES}" in + "APCP"*) + OBS_INPUT_DIR="${vx_output_basedir}/metprd/PcpCombine_obs" + OBS_INPUT_FN_TEMPLATE="${OBS_CCPA_APCP_FN_TEMPLATE_PCPCOMBINE_OUTPUT}" + ;; + "ASNOW"*) + OBS_INPUT_DIR="${OBS_DIR}" + OBS_INPUT_FN_TEMPLATE="${OBS_NOHRSC_ASNOW_FN_TEMPLATE}" + ;; + "REFC") + OBS_INPUT_DIR="${OBS_DIR}" + OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_REFC_FN_TEMPLATE}" + ;; + "RETOP") + OBS_INPUT_DIR="${OBS_DIR}" + OBS_INPUT_FN_TEMPLATE="${OBS_MRMS_RETOP_FN_TEMPLATE}" + ;; + esac elif [ "${grid_or_point}" = "point" ]; then OBS_INPUT_DIR="${vx_output_basedir}/metprd/Pb2nc_obs" - OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_NDAS_SFCorUPA_FN_METPROC_TEMPLATE} ) - FCST_INPUT_DIR="${vx_output_basedir}${slash_cdate_or_null}/metprd/GenEnsProd" - FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_ADP${FIELDNAME_IN_MET_FILEDIR_NAMES}_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) + OBS_INPUT_FN_TEMPLATE="${OBS_NDAS_ADPSFCorADPUPA_FN_TEMPLATE_PB2NC_OUTPUT}" fi +OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_INPUT_FN_TEMPLATE} ) +FCST_INPUT_DIR="${vx_output_basedir}${slash_cdate_or_null}/metprd/GenEnsProd" +FCST_INPUT_FN_TEMPLATE=$( eval echo 'gen_ens_prod_${VX_FCST_MODEL_NAME}_${FIELDNAME_IN_MET_FILEDIR_NAMES}_${OBTYPE}_{lead?fmt=%H%M%S}L_{valid?fmt=%Y%m%d}_{valid?fmt=%H%M%S}V.nc' ) OUTPUT_BASE="${vx_output_basedir}${slash_cdate_or_null}" -OUTPUT_DIR="${OUTPUT_BASE}/metprd/${metplus_tool_name}_ensprob" +OUTPUT_DIR="${OUTPUT_BASE}/metprd/${MetplusToolName}_ensprob" STAGING_DIR="${OUTPUT_BASE}/stage/${FIELDNAME_IN_MET_FILEDIR_NAMES}_ensprob" # #----------------------------------------------------------------------- @@ -238,16 +229,9 @@ fi # # First, set the base file names. # -if [ "${field_is_APCPgt01h}" = "TRUE" ]; then -# Haven't combined the METplus conf jinja template files for APCP > 01h -# for probabilistic ensemble vx tasks yet... -# metplus_config_tmpl_fn="APCPgt01h" - metplus_config_tmpl_fn="${FIELDNAME_IN_MET_FILEDIR_NAMES}" -else - metplus_config_tmpl_fn="${FIELDNAME_IN_MET_FILEDIR_NAMES}" -fi -metplus_config_tmpl_fn="${metplus_tool_name}_ensprob_${metplus_config_tmpl_fn}" -metplus_config_fn="${metplus_tool_name}_ensprob_${FIELDNAME_IN_MET_FILEDIR_NAMES}" +metplus_config_tmpl_fn="${VAR}" +metplus_config_tmpl_fn="${MetplusToolName}_ensprob_${metplus_config_tmpl_fn}" +metplus_config_fn="${MetplusToolName}_ensprob_${FIELDNAME_IN_MET_FILEDIR_NAMES}" metplus_log_fn="${metplus_config_fn}" # # Add prefixes and suffixes (extensions) to the base file names. @@ -273,6 +257,13 @@ metplus_config_fp="${OUTPUT_DIR}/${metplus_config_fn}" # settings="\ # +# MET/METplus information. +# + 'metplus_tool_name': '${metplus_tool_name}' + 'MetplusToolName': '${MetplusToolName}' + 'METPLUS_TOOL_NAME': '${METPLUS_TOOL_NAME}' + 'metplus_verbosity_level': '${METPLUS_VERBOSITY_LEVEL}' +# # Date and forecast hour information. # 'cdate': '$CDATE' @@ -344,7 +335,7 @@ fi #----------------------------------------------------------------------- # print_info_msg "$VERBOSE" " -Calling METplus to run MET's ${met_tool_name} tool for field(s): ${FIELDNAME_IN_MET_FILEDIR_NAMES}" +Calling METplus to run MET's ${metplus_tool_name} tool for field(s): ${FIELDNAME_IN_MET_FILEDIR_NAMES}" ${METPLUS_PATH}/ush/run_metplus.py \ -c ${METPLUS_CONF}/common.conf \ -c ${metplus_config_fp} || \ @@ -361,7 +352,7 @@ METplus configuration file used is: # print_info_msg " ======================================================================== -METplus ${metplus_tool_name} tool completed successfully. +METplus ${MetplusToolName} tool completed successfully. Exiting script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" diff --git a/scripts/exregional_run_met_pb2nc_obs.sh b/scripts/exregional_run_met_pb2nc_obs.sh index c5305643b5..1122df77ae 100755 --- a/scripts/exregional_run_met_pb2nc_obs.sh +++ b/scripts/exregional_run_met_pb2nc_obs.sh @@ -16,7 +16,7 @@ source_config_for_task "task_run_met_pb2nc_obs" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # -. $USHdir/get_met_metplus_tool_name.sh +. $USHdir/get_metplus_tool_name.sh . $USHdir/set_vx_params.sh . $USHdir/set_vx_fhr_list.sh # @@ -44,14 +44,15 @@ scrfunc_dir=$( dirname "${scrfunc_fp}" ) #----------------------------------------------------------------------- # # Get the name of the MET/METplus tool in different formats that may be -# needed from the global variable MET_TOOL. +# needed from the global variable METPLUSTOOLNAME. # #----------------------------------------------------------------------- # -get_met_metplus_tool_name \ - generic_tool_name="${MET_TOOL}" \ - outvarname_met_tool_name="met_tool_name" \ - outvarname_metplus_tool_name="metplus_tool_name" +get_metplus_tool_name \ + METPLUSTOOLNAME="${METPLUSTOOLNAME}" \ + outvarname_metplus_tool_name="metplus_tool_name" \ + outvarname_MetplusToolName="MetplusToolName" \ + outvarname_METPLUS_TOOL_NAME="METPLUS_TOOL_NAME" # #----------------------------------------------------------------------- # @@ -64,7 +65,7 @@ print_info_msg " Entering script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" -This is the ex-script for the task that runs the METplus tool ${metplus_tool_name} +This is the ex-script for the task that runs the METplus tool ${MetplusToolName} to convert NDAS prep buffer observation files to NetCDF format. ========================================================================" # @@ -94,7 +95,6 @@ set_vx_params \ field="$VAR" \ accum_hh="${ACCUM_HH}" \ outvarname_grid_or_point="grid_or_point" \ - outvarname_field_is_APCPgt01h="field_is_APCPgt01h" \ outvarname_fieldname_in_obs_input="FIELDNAME_IN_OBS_INPUT" \ outvarname_fieldname_in_fcst_input="FIELDNAME_IN_FCST_INPUT" \ outvarname_fieldname_in_MET_output="FIELDNAME_IN_MET_OUTPUT" \ @@ -110,12 +110,12 @@ set_vx_params \ vx_output_basedir=$( eval echo "${VX_OUTPUT_BASEDIR}" ) OBS_INPUT_DIR="${OBS_DIR}" -OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_NDAS_SFCorUPA_FN_TEMPLATE} ) +OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_NDAS_ADPSFCorADPUPA_FN_TEMPLATE} ) OUTPUT_BASE="${vx_output_basedir}" -OUTPUT_DIR="${OUTPUT_BASE}/metprd/${metplus_tool_name}_obs" -OUTPUT_FN_TEMPLATE="${OBS_INPUT_FN_TEMPLATE}.nc" -STAGING_DIR="${OUTPUT_BASE}/stage/${metplus_tool_name}_obs" +OUTPUT_DIR="${OUTPUT_BASE}/metprd/${MetplusToolName}_obs" +OUTPUT_FN_TEMPLATE=$( eval echo ${OBS_NDAS_ADPSFCorADPUPA_FN_TEMPLATE_PB2NC_OUTPUT} ) +STAGING_DIR="${OUTPUT_BASE}/stage/${MetplusToolName}_obs" # #----------------------------------------------------------------------- # @@ -187,7 +187,7 @@ fi # # First, set the base file names. # -metplus_config_tmpl_fn="${metplus_tool_name}_obs" +metplus_config_tmpl_fn="${MetplusToolName}_obs" # # Note that we append the cycle date to the name of the configuration # file because we are considering only observations when using Pb2NC, so @@ -231,6 +231,13 @@ metplus_config_fp="${OUTPUT_DIR}/${metplus_config_fn}" # settings="\ # +# MET/METplus information. +# + 'metplus_tool_name': '${metplus_tool_name}' + 'MetplusToolName': '${MetplusToolName}' + 'METPLUS_TOOL_NAME': '${METPLUS_TOOL_NAME}' + 'metplus_verbosity_level': '${METPLUS_VERBOSITY_LEVEL}' +# # Date and forecast hour information. # 'cdate': '$CDATE' @@ -301,7 +308,7 @@ fi #----------------------------------------------------------------------- # print_info_msg "$VERBOSE" " -Calling METplus to run MET's ${met_tool_name} tool on observations of type: ${OBTYPE}" +Calling METplus to run MET's ${metplus_tool_name} tool on observations of type: ${OBTYPE}" ${METPLUS_PATH}/ush/run_metplus.py \ -c ${METPLUS_CONF}/common.conf \ -c ${metplus_config_fp} || \ @@ -318,7 +325,7 @@ METplus configuration file used is: # print_info_msg " ======================================================================== -METplus ${metplus_tool_name} tool completed successfully. +METplus ${MetplusToolName} tool completed successfully. Exiting script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" diff --git a/scripts/exregional_run_met_pcpcombine.sh b/scripts/exregional_run_met_pcpcombine.sh index 61359f3d2d..6db1ff16ba 100755 --- a/scripts/exregional_run_met_pcpcombine.sh +++ b/scripts/exregional_run_met_pcpcombine.sh @@ -16,7 +16,7 @@ source_config_for_task "task_run_met_pcpcombine|task_run_post" ${GLOBAL_VAR_DEFN # #----------------------------------------------------------------------- # -. $USHdir/get_met_metplus_tool_name.sh +. $USHdir/get_metplus_tool_name.sh . $USHdir/set_vx_params.sh . $USHdir/set_vx_fhr_list.sh # @@ -44,14 +44,15 @@ scrfunc_dir=$( dirname "${scrfunc_fp}" ) #----------------------------------------------------------------------- # # Get the name of the MET/METplus tool in different formats that may be -# needed from the global variable MET_TOOL. +# needed from the global variable METPLUSTOOLNAME. # #----------------------------------------------------------------------- # -get_met_metplus_tool_name \ - generic_tool_name="${MET_TOOL}" \ - outvarname_met_tool_name="met_tool_name" \ - outvarname_metplus_tool_name="metplus_tool_name" +get_metplus_tool_name \ + METPLUSTOOLNAME="${METPLUSTOOLNAME}" \ + outvarname_metplus_tool_name="metplus_tool_name" \ + outvarname_MetplusToolName="MetplusToolName" \ + outvarname_METPLUS_TOOL_NAME="METPLUS_TOOL_NAME" # #----------------------------------------------------------------------- # @@ -64,7 +65,7 @@ print_info_msg " Entering script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" -This is the ex-script for the task that runs the METplus ${metplus_tool_name} +This is the ex-script for the task that runs the METplus ${MetplusToolName} tool to combine hourly accumulated precipitation (APCP) data to generate files containing multi-hour accumulated precipitation (e.g. 3-hour, 6- hour, 24-hour). The input files can come from either observations or @@ -97,7 +98,6 @@ set_vx_params \ field="$VAR" \ accum_hh="${ACCUM_HH}" \ outvarname_grid_or_point="grid_or_point" \ - outvarname_field_is_APCPgt01h="field_is_APCPgt01h" \ outvarname_fieldname_in_obs_input="FIELDNAME_IN_OBS_INPUT" \ outvarname_fieldname_in_fcst_input="FIELDNAME_IN_FCST_INPUT" \ outvarname_fieldname_in_MET_output="FIELDNAME_IN_MET_OUTPUT" \ @@ -174,11 +174,11 @@ FCST_INPUT_FN_TEMPLATE="" if [ "${obs_or_fcst}" = "obs" ]; then OBS_INPUT_DIR="${OBS_DIR}" - OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_CCPA_APCP01h_FN_TEMPLATE} ) + OBS_INPUT_FN_TEMPLATE=$( eval echo ${OBS_CCPA_APCP_FN_TEMPLATE} ) OUTPUT_BASE="${vx_output_basedir}" - OUTPUT_DIR="${OUTPUT_BASE}/metprd/${metplus_tool_name}_obs" - OUTPUT_FN_TEMPLATE=$( eval echo ${OBS_CCPA_APCPgt01h_FN_TEMPLATE} ) + OUTPUT_DIR="${OUTPUT_BASE}/metprd/${MetplusToolName}_obs" + OUTPUT_FN_TEMPLATE=$( eval echo ${OBS_CCPA_APCP_FN_TEMPLATE_PCPCOMBINE_OUTPUT} ) STAGING_DIR="${OUTPUT_BASE}/stage/${FIELDNAME_IN_MET_FILEDIR_NAMES}" elif [ "${obs_or_fcst}" = "fcst" ]; then @@ -187,8 +187,8 @@ elif [ "${obs_or_fcst}" = "fcst" ]; then FCST_INPUT_FN_TEMPLATE=$( eval echo ${FCST_SUBDIR_TEMPLATE:+${FCST_SUBDIR_TEMPLATE}/}${FCST_FN_TEMPLATE} ) OUTPUT_BASE="${vx_output_basedir}${slash_cdate_or_null}/${slash_ensmem_subdir_or_null}" - OUTPUT_DIR="${OUTPUT_BASE}/metprd/${metplus_tool_name}_fcst" - OUTPUT_FN_TEMPLATE=$( eval echo ${FCST_FN_METPROC_TEMPLATE} ) + OUTPUT_DIR="${OUTPUT_BASE}/metprd/${MetplusToolName}_fcst" + OUTPUT_FN_TEMPLATE=$( eval echo ${FCST_FN_TEMPLATE_PCPCOMBINE_OUTPUT} ) STAGING_DIR="${OUTPUT_BASE}/stage/${FIELDNAME_IN_MET_FILEDIR_NAMES}" fi @@ -273,7 +273,7 @@ fi # # First, set the base file names. # -metplus_config_tmpl_fn="${metplus_tool_name}_${obs_or_fcst}" +metplus_config_tmpl_fn="${MetplusToolName}_${obs_or_fcst}" metplus_config_fn="${metplus_config_tmpl_fn}_${FIELDNAME_IN_MET_FILEDIR_NAMES}${ENSMEM_INDX:+_${ensmem_name}}" metplus_log_fn="${metplus_config_fn}_$CDATE" # @@ -290,7 +290,7 @@ fi # Add prefixes and suffixes (extensions) to the base file names. # metplus_config_tmpl_fn="${metplus_config_tmpl_fn}_${field}.conf" -metplus_config_fn="${metplus_config_fn}_${field}.conf" +metplus_config_fn="${metplus_config_fn}.conf" metplus_log_fn="metplus.log.${metplus_log_fn}" # #----------------------------------------------------------------------- @@ -310,6 +310,13 @@ metplus_config_fp="${OUTPUT_DIR}/${metplus_config_fn}" # settings="\ # +# MET/METplus information. +# + 'metplus_tool_name': '${metplus_tool_name}' + 'MetplusToolName': '${MetplusToolName}' + 'METPLUS_TOOL_NAME': '${METPLUS_TOOL_NAME}' + 'metplus_verbosity_level': '${METPLUS_VERBOSITY_LEVEL}' +# # Date and forecast hour information. # 'cdate': '$CDATE' @@ -378,7 +385,7 @@ fi #----------------------------------------------------------------------- # print_info_msg "$VERBOSE" " -Calling METplus to run MET's ${met_tool_name} tool for field(s): ${FIELDNAME_IN_MET_FILEDIR_NAMES}" +Calling METplus to run MET's ${metplus_tool_name} tool for field(s): ${FIELDNAME_IN_MET_FILEDIR_NAMES}" ${METPLUS_PATH}/ush/run_metplus.py \ -c ${METPLUS_CONF}/common.conf \ -c ${metplus_config_fp} || \ @@ -395,7 +402,7 @@ METplus configuration file used is: # print_info_msg " ======================================================================== -METplus ${metplus_tool_name} tool completed successfully. +METplus ${MetplusToolName} tool completed successfully. Exiting script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" diff --git a/tests/WE2E/test_configs/custom_grids/config.custom_ESGgrid_Great_Lakes_snow_8km.yaml b/tests/WE2E/test_configs/custom_grids/config.custom_ESGgrid_Great_Lakes_snow_8km.yaml index 51b7d126b6..981c736239 100644 --- a/tests/WE2E/test_configs/custom_grids/config.custom_ESGgrid_Great_Lakes_snow_8km.yaml +++ b/tests/WE2E/test_configs/custom_grids/config.custom_ESGgrid_Great_Lakes_snow_8km.yaml @@ -56,7 +56,7 @@ task_run_post: POST_OUTPUT_DOMAIN_NAME: custom_ESGgrid_Michigan_Ontario verification: VX_FCST_MODEL_NAME: Michigan_Ontario_snow_8km - VX_FIELDS: [ "APCP", "REFC", "RETOP", "SFC", "UPA", "ASNOW" ] + VX_FIELDS: [ "APCP", "REFC", "RETOP", "ADPSFC", "ADPUPA", "ASNOW" ] platform: CCPA_OBS_DIR: '{{ workflow.EXPTDIR }}/CCPA_obs' MRMS_OBS_DIR: '{{ workflow.EXPTDIR }}/MRMS_obs' diff --git a/tests/WE2E/test_configs/verification/config.MET_ensemble_verification_winter_wx.yaml b/tests/WE2E/test_configs/verification/config.MET_ensemble_verification_winter_wx.yaml index 50a91f9f2d..dd3de4e472 100644 --- a/tests/WE2E/test_configs/verification/config.MET_ensemble_verification_winter_wx.yaml +++ b/tests/WE2E/test_configs/verification/config.MET_ensemble_verification_winter_wx.yaml @@ -31,4 +31,4 @@ global: DO_ENSEMBLE: true NUM_ENS_MEMBERS: 10 verification: - VX_FIELDS: [ "APCP", "REFC", "RETOP", "SFC", "UPA", "ASNOW" ] + VX_FIELDS: [ "APCP", "ASNOW", "REFC", "RETOP", "ADPSFC", "ADPUPA" ] diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index 0ad32bb9e6..9b044e3524 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -2385,20 +2385,21 @@ global: # verification (vx) parameters #----------------------------- verification: - #----------------------------------------------------------------------- # - # Templates for CCPA, MRMS, and NDAS observation files. + # METPLUS_VERBOSITY_LEVEL: + # Logging verbosity level used by METplus verification tools. 0 to 5, + # with 0 quiet and 5 loud. # - # OBS_CCPA_APCP01h_FN_TEMPLATE: - # File name template used to obtain the input observation files (in - # the PcpCombine_obs tasks) that contain the 1-hour accumulated - # precipitation (APCP) from which APCP for longer accumulations will - # be generated. + METPLUS_VERBOSITY_LEVEL: 2 + # + # Templates for CCPA, MRMS, and NDAS observation files. # - # OBS_CCPA_APCPgt01h_FN_TEMPLATE: - # File name template used to generate the observation files (in the - # PcpCombine_obs tasks) containing accumulated precipitation for - # accumulation periods longer than 1-hour. + # OBS_CCPA_APCP_FN_TEMPLATE: + # File name template for CCPA accumulated precipitation (APCP) observations. + # This template is used by the workflow tasks that call the METplus PcpCombine + # tool on CCPA obs to find the input observation files containing 1-hour + # APCP and then generate NetCDF files containing either 1-hour or greater + # than 1-hour APCP. # # OBS_NOHRSC_ASNOW_FN_TEMPLATE: # File name template for NOHRSC snow observations. @@ -2408,22 +2409,35 @@ verification: # # OBS_MRMS_RETOP_FN_TEMPLATE: # File name template for MRMS echo top observations. - # - # OBS_NDAS_SFCorUPA_FN_TEMPLATE: + # + # OBS_NDAS_ADPSFCorADPUPA_FN_TEMPLATE: # File name template for NDAS surface and upper air observations. - # - # OBS_NDAS_SFCorUPA_FN_METPROC_TEMPLATE: - # File name template for NDAS surface and upper air observations - # after processing by MET's pb2nc tool (to change format to NetCDF). + # This template is used by the workflow tasks that call the METplus Pb2nc + # tool on NDAS obs to find the input observation files containing ADP + # surface (ADPSFC) or ADP upper air (ADPUPA) fields and then generate + # NetCDF versions of these files. # - - OBS_CCPA_APCP01h_FN_TEMPLATE: '{valid?fmt=%Y%m%d}/ccpa.t{valid?fmt=%H}z.01h.hrap.conus.gb2' - OBS_CCPA_APCPgt01h_FN_TEMPLATE: '${OBS_CCPA_APCP01h_FN_TEMPLATE}_a${ACCUM_HH}h.nc' + OBS_CCPA_APCP_FN_TEMPLATE: '{valid?fmt=%Y%m%d}/ccpa.t{valid?fmt=%H}z.01h.hrap.conus.gb2' OBS_NOHRSC_ASNOW_FN_TEMPLATE: '{valid?fmt=%Y%m%d}/sfav2_CONUS_${ACCUM_HH}h_{valid?fmt=%Y%m%d%H}_grid184.grb2' OBS_MRMS_REFC_FN_TEMPLATE: '{valid?fmt=%Y%m%d}/MergedReflectivityQCComposite_00.50_{valid?fmt=%Y%m%d}-{valid?fmt=%H%M%S}.grib2' OBS_MRMS_RETOP_FN_TEMPLATE: '{valid?fmt=%Y%m%d}/EchoTop_18_00.50_{valid?fmt=%Y%m%d}-{valid?fmt=%H%M%S}.grib2' - OBS_NDAS_SFCorUPA_FN_TEMPLATE: 'prepbufr.ndas.{valid?fmt=%Y%m%d%H}' - OBS_NDAS_SFCorUPA_FN_METPROC_TEMPLATE: '${OBS_NDAS_SFCorUPA_FN_TEMPLATE}.nc' + OBS_NDAS_ADPSFCorADPUPA_FN_TEMPLATE: 'prepbufr.ndas.{valid?fmt=%Y%m%d%H}' + # + # OBS_CCPA_APCP_FN_TEMPLATE_PCPCOMBINE_OUTPUT: + # Template used to specify the names of the output NetCDF observation + # files generated by the worfklow verification tasks that call the METplus + # PcpCombine tool on CCPA observations. (These files will contain obs + # APCP, both for 1 hour and for > 1 hour accumulation periods, in NetCDF + # format.) + # + # OBS_NDAS_ADPSFCorADPUPA_FN_TEMPLATE_PB2NC_OUTPUT: + # Template used to specify the names of the output NetCDF observation + # files generated by the worfklow verification tasks that call the + # METplus Pb2nc tool on NDAS observations. (These files will contain + # obs ADPSFC or ADPUPA fields in NetCDF format.) + # + OBS_CCPA_APCP_FN_TEMPLATE_PCPCOMBINE_OUTPUT: '${OBS_CCPA_APCP_FN_TEMPLATE}_a${ACCUM_HH}h.nc' + OBS_NDAS_ADPSFCorADPUPA_FN_TEMPLATE_PB2NC_OUTPUT: '${OBS_NDAS_ADPSFCorADPUPA_FN_TEMPLATE}.nc' # # VX_FCST_MODEL_NAME: # String that specifies a descriptive name for the model being verified. @@ -2432,11 +2446,11 @@ verification: # # VX_FIELDS: # The fields or groups of fields on which to run verification. Because - # ASNOW is often not of interest in cases outside of winter, and - # because observation files are not located for retrospective - # cases on NOAA HPSS before March 2020, ASNOW is not included by default. - # "ASNOW" may be added to this list in order to include - # the related verification tasks in the workflow. + # accumulated snow (ASNOW) is often not of interest in non-winter cases + # and because observation files for ASNOW are not available on NOAA + # HPSS for retrospective cases before March 2020, by default ASNOW is + # not included VX_FIELDS, but it may be added to this list in order to + # include the verification tasks for ASNOW in the workflow. # # VX_APCP_ACCUMS_HRS: # The 2-digit accumulation periods (in units of hours) to consider for @@ -2451,7 +2465,7 @@ verification: # VX_ASNOW_ACCUMS_HRS will be ignored. # VX_FCST_MODEL_NAME: '{{ nco.NET_default }}.{{ task_run_post.POST_OUTPUT_DOMAIN_NAME }}' - VX_FIELDS: [ "APCP", "REFC", "RETOP", "SFC", "UPA" ] + VX_FIELDS: [ "APCP", "REFC", "RETOP", "ADPSFC", "ADPUPA" ] VX_APCP_ACCUMS_HRS: [ 1, 3, 6, 24 ] VX_ASNOW_ACCUMS_HRS: [ 6, 24 ] # @@ -2475,20 +2489,24 @@ verification: # # File name and path templates used in the verification tasks. # - # FCST_SUBDIR_TEMPLATE: A template for the subdirectory containing - # input forecast files for vx tasks. + # FCST_SUBDIR_TEMPLATE: + # Template for the subdirectory containing forecast files that are + # inputs to the verification tasks. # - # FCST_FN_TEMPLATE: A template for the forecast file names used as - # input to verification tasks. + # FCST_FN_TEMPLATE: + # Template for the names of the forecast files that are inputs to the + # verification tasks. # - # FCST_FN_METPROC_TEMPLATE: A template for how to name the forecast - # files for accumulated precipitation (APCP) with greater than 1-hour - # accumulation (i.e., 3-, 6-, and 24-hour accumulations) after - # processing by PcpCombine. + # FCST_FN_TEMPLATE_PCPCOMBINE_OUTPUT: + # Template used to specify the names of the output NetCDF forecast files + # generated by the worfklow verification tasks that call the METplus + # PcpCombine tool on forecasts. (These files will contain forecast APCP, + # both for 1 hour and for > 1 hour accumulation periods, in NetCDF + # format.) # FCST_SUBDIR_TEMPLATE: '{% if user.RUN_ENVIR == "nco" %}${NET_default}.{init?fmt=%Y%m%d?shift=-${time_lag}}/{init?fmt=%H?shift=-${time_lag}}{% else %}{init?fmt=%Y%m%d%H?shift=-${time_lag}}{% if global.DO_ENSEMBLE %}/${ensmem_name}{% endif %}/postprd{% endif %}' FCST_FN_TEMPLATE: '${NET_default}.t{init?fmt=%H?shift=-${time_lag}}z{% if user.RUN_ENVIR == "nco" and global.DO_ENSEMBLE %}.${ensmem_name}{% endif %}.prslev.f{lead?fmt=%HHH?shift=${time_lag}}.${POST_OUTPUT_DOMAIN_NAME}.grib2' - FCST_FN_METPROC_TEMPLATE: '${NET_default}.t{init?fmt=%H}z{% if user.RUN_ENVIR == "nco" and global.DO_ENSEMBLE %}.${ensmem_name}{% endif %}.prslev.f{lead?fmt=%HHH}.${POST_OUTPUT_DOMAIN_NAME}_${VAR}_a${ACCUM_HH}h.nc' + FCST_FN_TEMPLATE_PCPCOMBINE_OUTPUT: '${NET_default}.t{init?fmt=%H}z{% if user.RUN_ENVIR == "nco" and global.DO_ENSEMBLE %}.${ensmem_name}{% endif %}.prslev.f{lead?fmt=%HHH}.${POST_OUTPUT_DOMAIN_NAME}_${VAR}_a${ACCUM_HH}h.nc' # # For verification tasks that need observational data, this specifies # the maximum number of observation files that may be missing. If more diff --git a/ush/get_met_metplus_tool_name.sh b/ush/get_metplus_tool_name.sh similarity index 56% rename from ush/get_met_metplus_tool_name.sh rename to ush/get_metplus_tool_name.sh index 3802ded893..9ef37f5f13 100644 --- a/ush/get_met_metplus_tool_name.sh +++ b/ush/get_metplus_tool_name.sh @@ -1,17 +1,21 @@ # #----------------------------------------------------------------------- # -# This file defines a function that uses the given generic name of a MET/ -# METplus tool (generic_tool_name; this is a name that does not contain -# any separators like underscores and that may be in upper or lower case) -# to set its name in MET (met_tool_name) and in METplus (metplus_tool_name). -# Note that the tool name in MET is in "snake case" (i.e. uses underscores -# as separators with all lower case) while that in METplus is in "pascal -# case" (i.e. no separators and with first letter of each word capitalized). +# This file defines a function that takes as input the name of a MET/METplus +# tool spelled in upper flat case, i.e. all-caps and without separators +# (e.g. METPLUSTOOLNAME) and returns that name converted to the following +# cases: +# +# 1) Snake case, i.e. in all lower-case with underscores as word separators, +# e.g. metplus_tool_name. +# 2) Pascal case, i.e. without separators and with the first letter of +# each word capitalized, e.g. MetplusToolName. +# 3) Screaming snake case, i.e. in all upper-case with underscores as +# word separators, e.g. METPLUS_TOOL_NAME. # #----------------------------------------------------------------------- # -function get_met_metplus_tool_name() { +function get_metplus_tool_name() { # #----------------------------------------------------------------------- # @@ -31,9 +35,10 @@ function get_met_metplus_tool_name() { #----------------------------------------------------------------------- # local valid_args=( \ - "generic_tool_name" \ - "outvarname_met_tool_name" \ + "METPLUSTOOLNAME" \ "outvarname_metplus_tool_name" \ + "outvarname_MetplusToolName" \ + "outvarname_METPLUS_TOOL_NAME" \ ) process_args valid_args "$@" # @@ -53,8 +58,9 @@ function get_met_metplus_tool_name() { # #----------------------------------------------------------------------- # - local _generic_tool_name_name_ \ - _metplus_tool_name_ + local _metplus_tool_name_ \ + _MetplusToolName_ \ + _METPLUS_TOOL_NAME_ # #----------------------------------------------------------------------- # @@ -63,45 +69,45 @@ function get_met_metplus_tool_name() { # #----------------------------------------------------------------------- # - generic_tool_name=${generic_tool_name,,} - valid_vals_generic_tool_name=( \ + valid_vals_METPLUSTOOLNAME=( \ "PB2NC" "PCPCOMBINE" "GRIDSTAT" "POINTSTAT" "GENENSPROD" "ENSEMBLESTAT" \ - "pb2nc" "pcpcombine" "gridstat" "pointstat" "genensprod" "ensemblestat" \ ) - check_var_valid_value "generic_tool_name" "valid_vals_generic_tool_name" + check_var_valid_value "METPLUSTOOLNAME" "valid_vals_METPLUSTOOLNAME" - case "${generic_tool_name}" in - "pb2nc") - _met_tool_name_="pb2nc" - _metplus_tool_name_="Pb2nc" + case "${METPLUSTOOLNAME}" in + "PB2NC") + _metplus_tool_name_="pb2nc" + _MetplusToolName_="Pb2nc" ;; - "pcpcombine") - _met_tool_name_="pcp_combine" - _metplus_tool_name_="PcpCombine" + "PCPCOMBINE") + _metplus_tool_name_="pcp_combine" + _MetplusToolName_="PcpCombine" ;; - "gridstat") - _met_tool_name_="grid_stat" - _metplus_tool_name_="GridStat" + "GRIDSTAT") + _metplus_tool_name_="grid_stat" + _MetplusToolName_="GridStat" ;; - "pointstat") - _met_tool_name_="point_stat" - _metplus_tool_name_="PointStat" + "POINTSTAT") + _metplus_tool_name_="point_stat" + _MetplusToolName_="PointStat" ;; - "genensprod") - _met_tool_name_="gen_ens_prod" - _metplus_tool_name_="GenEnsProd" + "GENENSPROD") + _metplus_tool_name_="gen_ens_prod" + _MetplusToolName_="GenEnsProd" ;; - "ensemblestat") - _met_tool_name_="ensemble_stat" - _metplus_tool_name_="EnsembleStat" + "ENSEMBLESTAT") + _metplus_tool_name_="ensemble_stat" + _MetplusToolName_="EnsembleStat" ;; *) print_err_msg_exit "\ -Generic name specified for MET/METplus tool (generic_tool_name) is +Generic name specified for MET/METplus tool (METPLUSTOOLNAME) is unupported: - generic_tool_name = \"${generic_tool_name}\"" + METPLUSTOOLNAME = \"${METPLUSTOOLNAME}\"" ;; esac + + _METPLUS_TOOL_NAME_=$(echo_uppercase ${_metplus_tool_name_}) # #----------------------------------------------------------------------- # @@ -109,13 +115,17 @@ unupported: # #----------------------------------------------------------------------- # - if [ ! -z "${outvarname_met_tool_name}" ]; then - printf -v ${outvarname_met_tool_name} "%s" "${_met_tool_name_}" - fi - if [ ! -z "${outvarname_metplus_tool_name}" ]; then printf -v ${outvarname_metplus_tool_name} "%s" "${_metplus_tool_name_}" fi + + if [ ! -z "${outvarname_MetplusToolName}" ]; then + printf -v ${outvarname_MetplusToolName} "%s" "${_MetplusToolName_}" + fi + + if [ ! -z "${outvarname_METPLUS_TOOL_NAME}" ]; then + printf -v ${outvarname_METPLUS_TOOL_NAME} "%s" "${_METPLUS_TOOL_NAME_}" + fi # #----------------------------------------------------------------------- # diff --git a/ush/set_vx_fhr_list.sh b/ush/set_vx_fhr_list.sh index 172b5c52f3..8a1c9735a5 100644 --- a/ush/set_vx_fhr_list.sh +++ b/ush/set_vx_fhr_list.sh @@ -106,7 +106,7 @@ function set_vx_fhr_list() { fhr_int="${accum_hh}" ;; "ASNOW") - if [ ${accum_hh} = "24" ] ; then + if [ "${accum_hh}" = "24" ]; then fhr_min="24" fhr_int="12" else @@ -122,11 +122,11 @@ function set_vx_fhr_list() { fhr_min="00" fhr_int="01" ;; - "SFC") + "ADPSFC") fhr_min="00" fhr_int="01" ;; - "UPA") + "ADPUPA") fhr_min="00" fhr_int="06" ;; diff --git a/ush/set_vx_params.sh b/ush/set_vx_params.sh index 15d154d402..9b67e36d22 100644 --- a/ush/set_vx_params.sh +++ b/ush/set_vx_params.sh @@ -56,7 +56,6 @@ function set_vx_params() { "field" \ "accum_hh" \ "outvarname_grid_or_point" \ - "outvarname_field_is_APCPgt01h" \ "outvarname_fieldname_in_obs_input" \ "outvarname_fieldname_in_fcst_input" \ "outvarname_fieldname_in_MET_output" \ @@ -81,7 +80,6 @@ function set_vx_params() { #----------------------------------------------------------------------- # local _grid_or_point_ \ - _field_is_APCPgt01h_ \ fieldname_in_obs_input \ fieldname_in_fcst_input \ fieldname_in_MET_output \ @@ -107,11 +105,6 @@ The accumulation (accum_hh) must be a 2-digit integer: # String that is set to either "grid" or "point" depending on whether # the field in consideration has obs that are gridded or point-based. # -# field_is_APCPgt01h: -# Flag that specifies whether the input field and accumulation together -# represent accumulated precipitation with accumulation period greater -# than 1 hour. -# # fieldname_in_obs_input: # String used to search for the field in the input observation files # read in by MET. @@ -131,8 +124,7 @@ The accumulation (accum_hh) must be a 2-digit integer: # #----------------------------------------------------------------------- # - _grid_or_point_="FALSE" - _field_is_APCPgt01h_="FALSE" + _grid_or_point_="" fieldname_in_obs_input="" fieldname_in_fcst_input="" fieldname_in_MET_output="" @@ -148,11 +140,8 @@ The accumulation (accum_hh) must be a 2-digit integer: "APCP") fieldname_in_obs_input="${field}" fieldname_in_fcst_input="${field}" - fieldname_in_MET_output="${field}_${accum_hh}" + fieldname_in_MET_output="${field}" fieldname_in_MET_filedir_names="${field}${accum_hh}h" - if [ "${accum_hh}" -gt "01" ]; then - _field_is_APCPgt01h_="TRUE" - fi ;; *) @@ -174,8 +163,8 @@ this observation type (obtype) and field (field) combination: "ASNOW") fieldname_in_obs_input="${field}" fieldname_in_fcst_input="${field}" - fieldname_in_MET_output="${field}_${accum_hh}" - fieldname_in_MET_filedir_names="${field}" + fieldname_in_MET_output="${field}" + fieldname_in_MET_filedir_names="${field}${accum_hh}h" ;; *) @@ -224,14 +213,14 @@ this observation type (obtype) and field (field) combination: _grid_or_point_="point" case "${field}" in - "SFC") + "ADPSFC") fieldname_in_obs_input="" fieldname_in_fcst_input="" fieldname_in_MET_output="${field}" fieldname_in_MET_filedir_names="${field}" ;; - "UPA") + "ADPUPA") fieldname_in_obs_input="" fieldname_in_fcst_input="" fieldname_in_MET_output="${field}" @@ -268,10 +257,6 @@ this observation type (obtype): printf -v ${outvarname_grid_or_point} "%s" "${_grid_or_point_}" fi - if [ ! -z "${outvarname_field_is_APCPgt01h}" ]; then - printf -v ${outvarname_field_is_APCPgt01h} "%s" "${_field_is_APCPgt01h_}" - fi - if [ ! -z "${outvarname_fieldname_in_obs_input}" ]; then printf -v ${outvarname_fieldname_in_obs_input} "%s" "${fieldname_in_obs_input}" fi diff --git a/ush/setup.py b/ush/setup.py index 9c13e0e77b..1d574ec18c 100644 --- a/ush/setup.py +++ b/ush/setup.py @@ -568,7 +568,7 @@ def remove_tag(tasks, tag): "metatask_GenEnsProd_EnsembleStat_MRMS", "metatask_GridStat_MRMS_ensprob"] - vx_fields_all["NDAS"] = ["SFC", "UPA"] + vx_fields_all["NDAS"] = ["ADPSFC", "ADPUPA"] vx_metatasks_all["NDAS"] = ["task_run_MET_Pb2nc_obs", "metatask_PointStat_NDAS_all_mems", "metatask_GenEnsProd_EnsembleStat_NDAS", diff --git a/ush/valid_param_vals.yaml b/ush/valid_param_vals.yaml index 16fb7d827e..1c19cadf79 100644 --- a/ush/valid_param_vals.yaml +++ b/ush/valid_param_vals.yaml @@ -76,6 +76,6 @@ valid_vals_DO_AQM_CHEM_LBCS: [True, False] valid_vals_DO_AQM_GEFS_LBCS: [True, False] valid_vals_DO_AQM_SAVE_AIRNOW_HIST: [True, False] valid_vals_COLDSTART: [True, False] -valid_vals_VX_FIELDS: [ "APCP", "ASNOW", "REFC", "RETOP", "SFC", "UPA" ] +valid_vals_VX_FIELDS: [ "APCP", "ASNOW", "REFC", "RETOP", "ADPSFC", "ADPUPA" ] valid_vals_VX_APCP_ACCUMS_HRS: [ 1, 3, 6, 24 ] valid_vals_VX_ASNOW_ACCUMS_HRS: [ 6, 24 ]