Skip to content

Commit

Permalink
per #1898, made modifications to TCPairs settings based on changes in d…
Browse files Browse the repository at this point in the history
  • Loading branch information
georgemccabe committed Nov 16, 2022
1 parent 9bb6b36 commit 66092a1
Show file tree
Hide file tree
Showing 7 changed files with 127 additions and 39 deletions.
28 changes: 24 additions & 4 deletions docs/Users_Guide/glossary.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10094,13 +10094,33 @@ METplus Configuration Glossary

| *Used by:* StatAnalysis
TC_PAIRS_DIAG_NAME
Specify the value for 'diag_name' in the MET configuration file for TCPairs.
TC_PAIRS_DIAG_INFO_MAP<n>_DIAG_SOURCE
Specify the value for the nth 'diag_info_map.diag_source' in the MET configuration file for TCPairs.

| *Used by:* TCPairs
TC_PAIRS_DIAG_CONVERT_MAP<n>_SOURCE
Specify the value for the nth 'diag_convert_map.source' in the MET configuration file for TCPairs.
TC_PAIRS_DIAG_INFO_MAP<n>_TRACK_SOURCE
Specify the value for the nth 'diag_info_map.track_source' in the MET configuration file for TCPairs.

| *Used by:* TCPairs
TC_PAIRS_DIAG_INFO_MAP<n>_FIELD_SOURCE
Specify the value for the nth 'diag_info_map.field_source' in the MET configuration file for TCPairs.

| *Used by:* TCPairs
TC_PAIRS_DIAG_INFO_MAP<n>_MATCH_TO_TRACK
Specify the value for the nth 'diag_info_map.match_to_track' in the MET configuration file for TCPairs.

| *Used by:* TCPairs
TC_PAIRS_DIAG_INFO_MAP<n>_DIAG_NAME
Specify the value for the nth 'diag_info_map.diag_name' in the MET configuration file for TCPairs.

| *Used by:* TCPairs
TC_PAIRS_DIAG_CONVERT_MAP<n>_DIAG_SOURCE
Specify the value for the nth 'diag_convert_map.diag_source' in the MET configuration file for TCPairs.

| *Used by:* TCPairs
Expand Down
26 changes: 19 additions & 7 deletions docs/Users_Guide/wrappers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8225,8 +8225,12 @@ METplus Configuration
| :term:`TC_PAIRS_CHECK_DUP`
| :term:`TC_PAIRS_INTERP12`
| :term:`TC_PAIRS_MATCH_POINTS`
| :term:`TC_PAIRS_DIAG_NAME`
| :term:`TC_PAIRS_DIAG_CONVERT_MAP<n>_SOURCE`
| :term:`TC_PAIRS_DIAG_INFO_MAP<n>_DIAG_SOURCE`
| :term:`TC_PAIRS_DIAG_INFO_MAP<n>_TRACK_SOURCE`
| :term:`TC_PAIRS_DIAG_INFO_MAP<n>_FIELD_SOURCE`
| :term:`TC_PAIRS_DIAG_INFO_MAP<n>_MATCH_TO_TRACK`
| :term:`TC_PAIRS_DIAG_INFO_MAP<n>_DIAG_NAME`
| :term:`TC_PAIRS_DIAG_CONVERT_MAP<n>_DIAG_SOURCE`
| :term:`TC_PAIRS_DIAG_CONVERT_MAP<n>_KEY`
| :term:`TC_PAIRS_DIAG_CONVERT_MAP<n>_CONVERT`
|
Expand Down Expand Up @@ -8511,16 +8515,24 @@ see :ref:`How METplus controls MET config file settings<metplus-control-met>`.
* - :term:`TC_PAIRS_INTERP12`
- interp12

**${METPLUS_DIAG_NAME}**
**${METPLUS_DIAG_INFO_MAP_LIST}**

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

* - METplus Config(s)
- MET Config File
* - :term:`TC_PAIRS_DIAG_NAME`
- diag_name
* - :term:`TC_PAIRS_DIAG_INFO_MAP<n>_DIAG_SOURCE`
- diag_info_map.diag_source
* - :term:`TC_PAIRS_DIAG_INFO_MAP<n>_TRACK_SOURCE`
- diag_info_map.track_source
* - :term:`TC_PAIRS_DIAG_INFO_MAP<n>_FIELD_SOURCE`
- diag_info_map.field_source
* - :term:`TC_PAIRS_DIAG_INFO_MAP<n>_MATCH_TO_TRACK`
- diag_info_map.match_to_track
* - :term:`TC_PAIRS_DIAG_INFO_MAP<n>_DIAG_NAME`
- diag_info_map.diag_name

**${METPLUS_DIAG_CONVERT_MAP_LIST}**

Expand All @@ -8530,8 +8542,8 @@ see :ref:`How METplus controls MET config file settings<metplus-control-met>`.

* - METplus Config(s)
- MET Config File
* - :term:`TC_PAIRS_DIAG_CONVERT_MAP<n>_SOURCE`
- diag_convert_map.source
* - :term:`TC_PAIRS_DIAG_CONVERT_MAP<n>_DIAG_SOURCE`
- diag_convert_map.diag_source
* - :term:`TC_PAIRS_DIAG_CONVERT_MAP<n>_KEY`
- diag_convert_map.key
* - :term:`TC_PAIRS_DIAG_CONVERT_MAP<n>_CONVERT`
Expand Down
66 changes: 48 additions & 18 deletions internal/tests/pytests/wrappers/tc_pairs/test_tc_pairs_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -485,34 +485,64 @@ def test_tc_pairs_storm_id_lists(metplus_config, config_overrides,
{'DIAG_ARG': ('-diag TCDIAG /some/path/2014121318.dat '
'-diag LSDIAG_RT /some/path/rt_2014121318.dat '
'model=OFCL,SHIP')}),
# 45 diag_name
('VALID', {'TC_PAIRS_DIAG_NAME': 'TC_DIAG, TC_DIAG2', },
{'METPLUS_DIAG_NAME': 'diag_name = ["TC_DIAG", "TC_DIAG2"];'}),
# 46 diag_convert_map 1 dictionary in list
# 45 diag_convert_map 1 dictionary in list
('VALID', {
'TC_PAIRS_DIAG_CONVERT_MAP1_SOURCE': 'TCDIAG',
'TC_PAIRS_DIAG_CONVERT_MAP1_DIAG_SOURCE': 'CIRA_DIAG',
'TC_PAIRS_DIAG_CONVERT_MAP1_KEY': '(10C),(10KT),(10M/S)',
'TC_PAIRS_DIAG_CONVERT_MAP1_CONVERT': 'x/10',
},
{'METPLUS_DIAG_CONVERT_MAP_LIST': 'diag_convert_map = [{source = "TCDIAG";key = ["(10C)", "(10KT)", "(10M/S)"];convert(x) = x/10;}];'}),
# 47 diag_convert_map 2 dictionaries in list
{'METPLUS_DIAG_CONVERT_MAP_LIST': (
'diag_convert_map = [{diag_source = "CIRA_DIAG";'
'key = ["(10C)", "(10KT)", "(10M/S)"];convert(x) = x/10;}];'
)}),
# 46 diag_convert_map 2 dictionaries in list
('VALID', {
'TC_PAIRS_DIAG_CONVERT_MAP1_SOURCE': 'TCDIAG',
'TC_PAIRS_DIAG_CONVERT_MAP1_DIAG_SOURCE': 'CIRA_DIAG',
'TC_PAIRS_DIAG_CONVERT_MAP1_KEY': '(10C),(10KT),(10M/S)',
'TC_PAIRS_DIAG_CONVERT_MAP1_CONVERT': 'x/10',
'TC_PAIRS_DIAG_CONVERT_MAP2_SOURCE': 'LSDIAG_RT',
'TC_PAIRS_DIAG_CONVERT_MAP2_DIAG_SOURCE': 'SHIPS_DIAG',
'TC_PAIRS_DIAG_CONVERT_MAP2_KEY': 'LAT,LON,CSST,RSST,DSST,DSTA',
'TC_PAIRS_DIAG_CONVERT_MAP2_CONVERT': 'x/100',
},
{'METPLUS_DIAG_CONVERT_MAP_LIST': ('diag_convert_map = [{source = '
'"TCDIAG";key = ["(10C)", '
'"(10KT)", "(10M/S)"];'
'convert(x) = x/10;},'
'{source = "LSDIAG_RT";key = ['
'"LAT", "LON", "CSST", "RSST", '
'"DSST", "DSTA"];'
'convert(x) = x/100;}];')}),
{'METPLUS_DIAG_CONVERT_MAP_LIST': (
'diag_convert_map = [{diag_source = "CIRA_DIAG";'
'key = ["(10C)", "(10KT)", "(10M/S)"];convert(x) = x/10;},'
'{diag_source = "SHIPS_DIAG";key = ["LAT", "LON", "CSST", '
'"RSST", "DSST", "DSTA"];convert(x) = x/100;}];'
)}),
# 47 diag_info_map 1 dictionary in list
('VALID', {
'TC_PAIRS_DIAG_INFO_MAP1_DIAG_SOURCE': 'CIRA_DIAG_RT',
'TC_PAIRS_DIAG_INFO_MAP1_TRACK_SOURCE': 'GFS',
'TC_PAIRS_DIAG_INFO_MAP1_FIELD_SOURCE': 'GFS_0p50',
'TC_PAIRS_DIAG_INFO_MAP1_MATCH_TO_TRACK': 'GFS',
'TC_PAIRS_DIAG_INFO_MAP1_DIAG_NAME': 'MY_NAME',
},
{'METPLUS_DIAG_INFO_MAP_LIST': (
'diag_info_map = [{diag_source = "CIRA_DIAG_RT";'
'track_source = "GFS";field_source = "GFS_0p50";'
'match_to_track = ["GFS"];diag_name = ["MY_NAME"];}];')}),
# 48 diag_info_map 2 dictionaries in list
('VALID', {
'TC_PAIRS_DIAG_INFO_MAP1_DIAG_SOURCE': 'CIRA_DIAG_RT',
'TC_PAIRS_DIAG_INFO_MAP1_TRACK_SOURCE': 'GFS',
'TC_PAIRS_DIAG_INFO_MAP1_FIELD_SOURCE': 'GFS_0p50',
'TC_PAIRS_DIAG_INFO_MAP1_MATCH_TO_TRACK': 'GFS',
'TC_PAIRS_DIAG_INFO_MAP1_DIAG_NAME': 'MY_NAME',
'TC_PAIRS_DIAG_INFO_MAP2_DIAG_SOURCE': 'SHIPS_DIAG_RT',
'TC_PAIRS_DIAG_INFO_MAP2_TRACK_SOURCE': 'OFCL',
'TC_PAIRS_DIAG_INFO_MAP2_FIELD_SOURCE': 'GFS_0p50',
'TC_PAIRS_DIAG_INFO_MAP2_MATCH_TO_TRACK': 'OFCL',
'TC_PAIRS_DIAG_INFO_MAP2_DIAG_NAME': 'MY_NAME2',
},
{'METPLUS_DIAG_INFO_MAP_LIST': (
'diag_info_map = [{diag_source = "CIRA_DIAG_RT";'
'track_source = "GFS";field_source = "GFS_0p50";'
'match_to_track = ["GFS"];diag_name = ["MY_NAME"];},'
'{diag_source = "SHIPS_DIAG_RT";track_source = "OFCL";'
'field_source = "GFS_0p50";match_to_track = ["OFCL"]'
';diag_name = ["MY_NAME2"];}];'
)}),
]
)
@pytest.mark.wrapper
Expand Down
22 changes: 19 additions & 3 deletions metplus/wrappers/tc_pairs_wrapper.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ class TCPairsWrapper(CommandBuilder):
'METPLUS_CHECK_DUP',
'METPLUS_INTERP12',
'METPLUS_MATCH_POINTS',
'METPLUS_DIAG_NAME',
'METPLUS_DIAG_INFO_MAP_LIST',
'METPLUS_DIAG_CONVERT_MAP_LIST',
]

Expand Down Expand Up @@ -180,7 +180,7 @@ def create_c_dict(self):

self.add_met_config(name='match_points', data_type='bool')

self.add_met_config(name='diag_name', data_type='list')
self._handle_diag_info_map()

self._handle_diag_convert_map()

Expand Down Expand Up @@ -419,9 +419,25 @@ def _handle_consensus(self):
if not return_code:
self.isOK = False

def _handle_diag_info_map(self):
dict_items = {
'diag_source': 'string',
'track_source': 'string',
'field_source': 'string',
'match_to_track': 'list',
'diag_name': 'list',
}
return_code = add_met_config_dict_list(config=self.config,
app_name=self.app_name,
output_dict=self.env_var_dict,
dict_name='diag_info_map',
dict_items=dict_items)
if not return_code:
self.isOK = False

def _handle_diag_convert_map(self):
dict_items = {
'source': 'string',
'diag_source': 'string',
'key': 'list',
'convert': ('string', 'remove_quotes'),
}
Expand Down
4 changes: 2 additions & 2 deletions parm/met_config/TCPairsConfig_wrapped
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,8 @@ watch_warn = {
}


//diag_name =
${METPLUS_DIAG_NAME}
//diag_info_map = {
${METPLUS_DIAG_INFO_MAP_LIST}

//diag_convert_map = {
${METPLUS_DIAG_CONVERT_MAP_LIST}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,12 @@ TC_PAIRS_MISSING_VAL = -9999

#TC_PAIRS_MATCH_POINTS =

#TC_PAIRS_DIAG_NAME =
#TC_PAIRS_DIAG_CONVERT_MAP1_SOURCE =
#TC_PAIRS_DIAG_INFO_MAP1_DIAG_SOURCE =
#TC_PAIRS_DIAG_INFO_MAP1_TRACK_SOURCE =
#TC_PAIRS_DIAG_INFO_MAP1_FIELD_SOURCE =
#TC_PAIRS_DIAG_INFO_MAP1_MATCH_TO_TRACK =
#TC_PAIRS_DIAG_INFO_MAP1_DIAG_NAME =

#TC_PAIRS_DIAG_CONVERT_MAP1_DIAG_SOURCE =
#TC_PAIRS_DIAG_CONVERT_MAP1_KEY =
#TC_PAIRS_DIAG_CONVERT_MAP1_CONVERT =
11 changes: 8 additions & 3 deletions parm/use_cases/met_tool_wrapper/TCPairs/TCPairs_tropical.conf
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,12 @@ TC_PAIRS_DLAND_FILE = MET_BASE/tc_data/dland_global_tenth_degree.nc

#TC_PAIRS_MATCH_POINTS =

#TC_PAIRS_DIAG_NAME =
#TC_PAIRS_DIAG_CONVERT_MAP1_SOURCE =
#TC_PAIRS_DIAG_INFO_MAP1_DIAG_SOURCE =
#TC_PAIRS_DIAG_INFO_MAP1_TRACK_SOURCE =
#TC_PAIRS_DIAG_INFO_MAP1_FIELD_SOURCE =
#TC_PAIRS_DIAG_INFO_MAP1_MATCH_TO_TRACK =
#TC_PAIRS_DIAG_INFO_MAP1_DIAG_NAME =

#TC_PAIRS_DIAG_CONVERT_MAP1_DIAG_SOURCE =
#TC_PAIRS_DIAG_CONVERT_MAP1_KEY =
#TC_PAIRS_DIAG_CONVERT_MAP1_CONVERT =
#TC_PAIRS_DIAG_CONVERT_MAP1_CONVERT =

0 comments on commit 66092a1

Please sign in to comment.