Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature 1464 EnsembleStat probabilistic additions #1479

Merged
merged 3 commits into from
Mar 7, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions docs/Users_Guide/glossary.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5732,6 +5732,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 @@ -9126,3 +9151,18 @@ METplus Configuration Glossary
Specify the value for 'climo_cdf.direct_prob' in the MET configuration file for SeriesAnalysis.

| *Used by:* SeriesAnalysis

ENSEMBLE_STAT_PROB_CAT_THRESH
Specify the value for 'prob_cat_thresh' in the MET configuration file for EnsembleStat.

| *Used by:* EnsembleStat

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
51 changes: 51 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,9 @@ METplus Configuration
| :term:`ENSEMBLE_STAT_ENS_MEMBER_IDS`
| :term:`ENSEMBLE_STAT_CONTROL_ID`
| :term:`ENSEMBLE_STAT_GRID_WEIGHT_FLAG`
| :term:`ENSEMBLE_STAT_PROB_CAT_THRESH`
| :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 +515,39 @@ see :ref:`How METplus controls MET config file settings<metplus-control-met>`.
* - :term:`ENSEMBLE_STAT_NMEP_SMOOTH_WIDTH`
- nmep_smooth.type.width

**${METPLUS_PROB_CAT_THRESH}**

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

* - METplus Config(s)
- MET Config File
* - :term:`ENSEMBLE_STAT_PROB_CAT_THRESH`
- prob_cat_thresh

**${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 +836,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
38 changes: 35 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,15 @@ 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_CAT_THRESH': '<=0.25', },
{'METPLUS_PROB_CAT_THRESH': 'prob_cat_thresh = [<=0.25];'}),

({'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
36 changes: 28 additions & 8 deletions metplus/wrappers/ensemble_stat_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@ class EnsembleStatWrapper(CompareGriddedWrapper):
'METPLUS_ENS_MEMBER_IDS',
'METPLUS_CONTROL_ID',
'METPLUS_GRID_WEIGHT_FLAG',
'METPLUS_PROB_CAT_THRESH',
'METPLUS_PROB_PCT_THRESH',
'METPLUS_ECLV_POINTS',
]

# handle deprecated env vars used pre v4.0.0
Expand All @@ -75,14 +78,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 +355,17 @@ 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')

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

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

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

//prob_cat_thresh =
${METPLUS_PROB_CAT_THRESH}

//prob_pct_thresh =
${METPLUS_PROB_PCT_THRESH}

//eclv_points =
${METPLUS_ECLV_POINTS}


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

//
Expand Down
11 changes: 10 additions & 1 deletion parm/use_cases/met_tool_wrapper/EnsembleStat/EnsembleStat.conf
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@ ENSEMBLE_STAT_DESC = NA
OBS_ENSEMBLE_STAT_WINDOW_BEGIN = -5400
OBS_ENSEMBLE_STAT_WINDOW_END = 5400


ENSEMBLE_STAT_ENS_THRESH = 1.0

ENSEMBLE_STAT_ENS_VLD_THRESH = 1.0
Expand Down Expand Up @@ -132,6 +131,10 @@ ENSEMBLE_STAT_NMEP_SMOOTH_GAUSSIAN_RADIUS = 120
ENSEMBLE_STAT_NMEP_SMOOTH_METHOD = GAUSSIAN
ENSEMBLE_STAT_NMEP_SMOOTH_WIDTH = 1

#ENSEMBLE_STAT_PROB_CAT_THRESH =
#ENSEMBLE_STAT_PROB_PCT_THRESH = ==0.25
#ENSEMBLE_STAT_ECLV_POINTS = 0.05

ENSEMBLE_STAT_MESSAGE_TYPE = ADPSFC

ENSEMBLE_STAT_DUPLICATE_FLAG = NONE
Expand Down Expand Up @@ -192,6 +195,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