Skip to content

Commit

Permalink
per #1464, add support for setting prob_pct_thresh, eclv_points, and …
Browse files Browse the repository at this point in the history
…new output_flag values (pct, pstd, pjc, prc, and eclv)
  • Loading branch information
georgemccabe committed Mar 4, 2022
1 parent 14ceb71 commit b50e281
Show file tree
Hide file tree
Showing 6 changed files with 144 additions and 11 deletions.
35 changes: 35 additions & 0 deletions docs/Users_Guide/glossary.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5716,6 +5716,31 @@ METplus Configuration Glossary

| *Used by:* EnsembleStat
ENSEMBLE_STAT_OUTPUT_FLAG_PCT
Specify the value for 'output_flag.pct' in the MET configuration file for EnsembleStat.

| *Used by:* EnsembleStat
ENSEMBLE_STAT_OUTPUT_FLAG_PSTD
Specify the value for 'output_flag.pstd' in the MET configuration file for EnsembleStat.

| *Used by:* EnsembleStat
ENSEMBLE_STAT_OUTPUT_FLAG_PJC
Specify the value for 'output_flag.pjc' in the MET configuration file for EnsembleStat.

| *Used by:* EnsembleStat
ENSEMBLE_STAT_OUTPUT_FLAG_PRC
Specify the value for 'output_flag.prc' in the MET configuration file for EnsembleStat.

| *Used by:* EnsembleStat
ENSEMBLE_STAT_OUTPUT_FLAG_ECLV
Specify the value for 'output_flag.eclv' in the MET configuration file for EnsembleStat.

| *Used by:* EnsembleStat
ENSEMBLE_STAT_ENSEMBLE_FLAG_LATLON
Specify the value for 'ensemble_flag.latlon' in the MET configuration file for EnsembleStat.

Expand Down Expand Up @@ -9110,3 +9135,13 @@ METplus Configuration Glossary
Specify the value for 'climo_cdf.direct_prob' in the MET configuration file for SeriesAnalysis.

| *Used by:* SeriesAnalysis
ENSEMBLE_STAT_PROB_PCT_THRESH
Specify the value for 'prob_pct_thresh' in the MET configuration file for EnsembleStat.

| *Used by:* EnsembleStat
ENSEMBLE_STAT_ECLV_POINTS
Specify the value for 'eclv_points' in the MET configuration file for EnsembleStat.

| *Used by:* EnsembleStat
39 changes: 39 additions & 0 deletions docs/Users_Guide/wrappers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,11 @@ METplus Configuration
| :term:`ENSEMBLE_STAT_OUTPUT_FLAG_ORANK`
| :term:`ENSEMBLE_STAT_OUTPUT_FLAG_SSVAR`
| :term:`ENSEMBLE_STAT_OUTPUT_FLAG_RELP`
| :term:`ENSEMBLE_STAT_OUTPUT_FLAG_PCT`
| :term:`ENSEMBLE_STAT_OUTPUT_FLAG_PSTD`
| :term:`ENSEMBLE_STAT_OUTPUT_FLAG_PJC`
| :term:`ENSEMBLE_STAT_OUTPUT_FLAG_PRC`
| :term:`ENSEMBLE_STAT_OUTPUT_FLAG_ECLV`
| :term:`ENSEMBLE_STAT_ENSEMBLE_FLAG_LATLON`
| :term:`ENSEMBLE_STAT_ENSEMBLE_FLAG_MEAN`
| :term:`ENSEMBLE_STAT_ENSEMBLE_FLAG_STDEV`
Expand All @@ -288,6 +293,8 @@ METplus Configuration
| :term:`ENSEMBLE_STAT_ENS_MEMBER_IDS`
| :term:`ENSEMBLE_STAT_CONTROL_ID`
| :term:`ENSEMBLE_STAT_GRID_WEIGHT_FLAG`
| :term:`ENSEMBLE_STAT_PROB_PCT_THRESH`
| :term:`ENSEMBLE_STAT_ECLV_POINTS`
| :term:`ENSEMBLE_STAT_VERIFICATION_MASK_TEMPLATE` (optional)
| :term:`ENS_VAR<n>_NAME` (optional)
| :term:`ENS_VAR<n>_LEVELS` (optional)
Expand Down Expand Up @@ -507,6 +514,28 @@ see :ref:`How METplus controls MET config file settings<metplus-control-met>`.
* - :term:`ENSEMBLE_STAT_NMEP_SMOOTH_WIDTH`
- nmep_smooth.type.width

**${METPLUS_PROB_PCT_THRESH}**

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

* - METplus Config(s)
- MET Config File
* - :term:`ENSEMBLE_STAT_PROB_PCT_THRESH`
- prob_pct_thresh

**${METPLUS_ECLV_POINTS}**

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

* - METplus Config(s)
- MET Config File
* - :term:`ENSEMBLE_STAT_ECLV_POINTS`
- eclv_points

**${METPLUS_FCST_FILE_TYPE}**

.. list-table::
Expand Down Expand Up @@ -795,6 +824,16 @@ see :ref:`How METplus controls MET config file settings<metplus-control-met>`.
- output_flag.ssvar
* - :term:`ENSEMBLE_STAT_OUTPUT_FLAG_RELP`
- output_flag.relp
* - :term:`ENSEMBLE_STAT_OUTPUT_FLAG_PCT`
- output_flag.pct
* - :term:`ENSEMBLE_STAT_OUTPUT_FLAG_PSTD`
- output_flag.pstd
* - :term:`ENSEMBLE_STAT_OUTPUT_FLAG_PJC`
- output_flag.pjc
* - :term:`ENSEMBLE_STAT_OUTPUT_FLAG_PRC`
- output_flag.prc
* - :term:`ENSEMBLE_STAT_OUTPUT_FLAG_ECLV`
- output_flag.eclv

**${METPLUS_ENSEMBLE_FLAG_DICT}**

Expand Down
35 changes: 32 additions & 3 deletions internal_tests/pytests/ensemble_stat/test_ensemble_stat_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,21 @@ def test_handle_climo_file_variables(metplus_config, config_overrides,
({'ENSEMBLE_STAT_OUTPUT_FLAG_RELP': 'STAT', },
{'METPLUS_OUTPUT_FLAG_DICT': 'output_flag = {relp = STAT;}'}),
({'ENSEMBLE_STAT_OUTPUT_FLAG_PCT': 'STAT', },
{'METPLUS_OUTPUT_FLAG_DICT': 'output_flag = {pct = STAT;}'}),
({'ENSEMBLE_STAT_OUTPUT_FLAG_PSTD': 'STAT', },
{'METPLUS_OUTPUT_FLAG_DICT': 'output_flag = {pstd = STAT;}'}),
({'ENSEMBLE_STAT_OUTPUT_FLAG_PJC': 'STAT', },
{'METPLUS_OUTPUT_FLAG_DICT': 'output_flag = {pjc = STAT;}'}),
({'ENSEMBLE_STAT_OUTPUT_FLAG_PRC': 'STAT', },
{'METPLUS_OUTPUT_FLAG_DICT': 'output_flag = {prc = STAT;}'}),
({'ENSEMBLE_STAT_OUTPUT_FLAG_ECLV': 'STAT', },
{'METPLUS_OUTPUT_FLAG_DICT': 'output_flag = {eclv = STAT;}'}),
({
'ENSEMBLE_STAT_OUTPUT_FLAG_ECNT': 'STAT',
'ENSEMBLE_STAT_OUTPUT_FLAG_RPS': 'STAT',
Expand All @@ -330,12 +345,20 @@ def test_handle_climo_file_variables(metplus_config, config_overrides,
'ENSEMBLE_STAT_OUTPUT_FLAG_ORANK': 'STAT',
'ENSEMBLE_STAT_OUTPUT_FLAG_SSVAR': 'STAT',
'ENSEMBLE_STAT_OUTPUT_FLAG_RELP': 'STAT',
'ENSEMBLE_STAT_OUTPUT_FLAG_PCT': 'STAT',
'ENSEMBLE_STAT_OUTPUT_FLAG_PSTD': 'STAT',
'ENSEMBLE_STAT_OUTPUT_FLAG_PJC': 'STAT',
'ENSEMBLE_STAT_OUTPUT_FLAG_PRC': 'STAT',
'ENSEMBLE_STAT_OUTPUT_FLAG_ECLV': 'STAT',
},
{
'METPLUS_OUTPUT_FLAG_DICT': ('output_flag = {ecnt = STAT;'
'rps = STAT;rhist = STAT;'
'phist = STAT;orank = STAT;'
'ssvar = STAT;relp = STAT;}')}),
'rps = STAT;rhist = STAT;'
'phist = STAT;orank = STAT;'
'ssvar = STAT;relp = STAT;'
'pct = STAT;pstd = STAT;'
'pjc = STAT;prc = STAT;eclv = STAT;'
'}')}),
# ensemble_flag
({'ENSEMBLE_STAT_ENSEMBLE_FLAG_LATLON': 'FALSE', },
{'METPLUS_ENSEMBLE_FLAG_DICT': 'ensemble_flag = {latlon = FALSE;}'}),
Expand Down Expand Up @@ -632,6 +655,12 @@ def test_handle_climo_file_variables(metplus_config, config_overrides,
({'ENSEMBLE_STAT_GRID_WEIGHT_FLAG': 'COS_LAT', },
{'METPLUS_GRID_WEIGHT_FLAG': 'grid_weight_flag = COS_LAT;'}),
({'ENSEMBLE_STAT_PROB_PCT_THRESH': '==0.25', },
{'METPLUS_PROB_PCT_THRESH': 'prob_pct_thresh = [==0.25];'}),
({'ENSEMBLE_STAT_ECLV_POINTS': '0.05', },
{'METPLUS_ECLV_POINTS': 'eclv_points = 0.05;'}),
]
)
def test_ensemble_stat_single_field(metplus_config, config_overrides,
Expand Down
31 changes: 23 additions & 8 deletions metplus/wrappers/ensemble_stat_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,8 @@ class EnsembleStatWrapper(CompareGriddedWrapper):
'METPLUS_ENS_MEMBER_IDS',
'METPLUS_CONTROL_ID',
'METPLUS_GRID_WEIGHT_FLAG',
'METPLUS_PROB_PCT_THRESH',
'METPLUS_ECLV_POINTS',
]

# handle deprecated env vars used pre v4.0.0
Expand All @@ -75,14 +77,20 @@ class EnsembleStatWrapper(CompareGriddedWrapper):
'CLIMO_STDEV_FILE',
]

OUTPUT_FLAGS = ['ecnt',
'rps',
'rhist',
'phist',
'orank',
'ssvar',
'relp'
]
OUTPUT_FLAGS = [
'ecnt',
'rps',
'rhist',
'phist',
'orank',
'ssvar',
'relp',
'pct',
'pstd',
'pjc',
'prc',
'eclv',
]

ENSEMBLE_FLAGS = ['latlon',
'mean',
Expand Down Expand Up @@ -346,6 +354,13 @@ def create_c_dict(self):
extra_args={'remove_quotes': True,
'uppercase': True})

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

self.add_met_config(name='eclv_points',
data_type='float')

# old method of setting MET config values
c_dict['ENS_THRESH'] = (
self.config.getstr('config', 'ENSEMBLE_STAT_ENS_THRESH', '1.0')
Expand Down
7 changes: 7 additions & 0 deletions parm/met_config/EnsembleStatConfig_wrapped
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,13 @@ ${METPLUS_NBRHD_PROB_DICT}
//
${METPLUS_NMEP_SMOOTH_DICT}

//prob_pct_thresh =
${METPLUS_PROB_PCT_THRESH}

//eclv_points =
${METPLUS_ECLV_POINTS}


////////////////////////////////////////////////////////////////////////////////

//
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,8 @@ ENSEMBLE_STAT_DESC = NA
OBS_ENSEMBLE_STAT_WINDOW_BEGIN = -5400
OBS_ENSEMBLE_STAT_WINDOW_END = 5400

#ENSEMBLE_STAT_PROB_PCT_THRESH = ==0.25
#ENSEMBLE_STAT_ECLV_POINTS = 0.05

ENSEMBLE_STAT_ENS_THRESH = 1.0

Expand Down Expand Up @@ -192,6 +194,12 @@ ENSEMBLE_STAT_OUTPUT_FLAG_PHIST = BOTH
ENSEMBLE_STAT_OUTPUT_FLAG_ORANK = BOTH
ENSEMBLE_STAT_OUTPUT_FLAG_SSVAR = BOTH
ENSEMBLE_STAT_OUTPUT_FLAG_RELP = BOTH
#ENSEMBLE_STAT_OUTPUT_FLAG_PCT = BOTH
#ENSEMBLE_STAT_OUTPUT_FLAG_PSTD = BOTH
#ENSEMBLE_STAT_OUTPUT_FLAG_PJC = BOTH
#ENSEMBLE_STAT_OUTPUT_FLAG_PRC = BOTH
#ENSEMBLE_STAT_OUTPUT_FLAG_ECLV = BOTH


ENSEMBLE_STAT_ENSEMBLE_FLAG_LATLON = TRUE
ENSEMBLE_STAT_ENSEMBLE_FLAG_MEAN = TRUE
Expand Down

0 comments on commit b50e281

Please sign in to comment.