Skip to content

Fix TC-Gen to only count misses from requested initialization hours and lead times. #2148

@JohnHalleyGotway

Description

@JohnHalleyGotway

Describe the Problem

This issue was raised by @halperin-erau via dtcenter/METplus#1596. I tested TC-Gen and was able to independently verify the unexpected behavior. The TC-Gen tool can stratify results by model initialization hour using the init_hour config file entry and lead times using lead. While this filtering works when stratifying HITS and FALSE ALARMS, it does not work to filter MISSES.

Expected Behavior

When init_hour = [ "12" ]; in the TC-Gen configuration file, only genesis cases corresponding to a 12-hour model initialization should be classified as a MISS. However, checking the log output, many non-12 initialization times are classified as MISSES.

Environment

Describe your runtime environment:
1. Machine: Mac Laptop, but not machine-specific
2. OS: MacOS, but not OS-specific
3. Software version number(s): MET version 10.1.1

To Reproduce

Describe the steps to reproduce the behavior:
1. In the development environment, run:

perl/unit.pl xml/unit_tc_gen.xml

2. Modify test/config/TCGenConfig_2016 to set:

init_hour = [ "12" ];

*3. Rerun unit_tc_gen.xml and inspect MET_test_output/tc_gen/tc_gen_2016.log.
4. Note the presence of NON-12 hour initializations being counted as MISSES:

egrep MISS MET_test_output/tc_gen/tc_gen_2016.log | egrep "_120000" | wc -l
    2347
egrep MISS MET_test_output/tc_gen/tc_gen_2016.log | egrep -v "_120000" | wc -l
    2130

It should be 2347 Misses with an init hour of 12 and 0 for non-12 hour initializations.

Relevant Deadlines

List relevant project deadlines here or state NONE.

Funding Source

Define the source of funding and account keys here or state NONE.

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Select component(s)
  • Select priority
  • Select requestor(s)

Projects and Milestone

  • Select Organization level Project for support of the current coordinated release
  • Select Repository level Project for development toward the next official release or add alert: NEED PROJECT ASSIGNMENT label
  • Select Milestone as the next bugfix version

Define Related Issue(s)

Consider the impact to the other METplus components.

Bugfix Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding Source.
  • Fork this repository or create a branch of main_<Version>.
    Branch name: bugfix_<Issue Number>_main_<Version>_<Description>
  • Fix the bug and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Push local changes to GitHub.
  • Submit a pull request to merge into main_<Version>.
    Pull request: bugfix <Issue Number> main_<Version> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s) and Linked issues
    Select: Organization level software support Project for the current coordinated release
    Select: Milestone as the next bugfix version
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Complete the steps above to fix the bug on the develop branch.
    Branch name: bugfix_<Issue Number>_develop_<Description>
    Pull request: bugfix <Issue Number> develop <Description>
    Select: Reviewer(s) and Linked issues
    Select: Repository level development cycle Project for the next official release
    Select: Milestone as the next official version
  • Close this issue.

Metadata

Metadata

Type

No type

Projects

Relationships

None yet

Development

No branches or pull requests

Issue actions