-
Notifications
You must be signed in to change notification settings - Fork 26
Description
Describe the New Feature
In MET, we currently calculate HSS with the following equation:
HSS = ((n_11 + n_00) - C_2) / (T-C_2) --- link here for better written version
Where n_11 is correct hits, n_00 is correct misses, T is the total number of observations, and C_2 is derived from the nxn contingency table.
With the new enhancement, CPC would have a way to control the value of C_2 independent from the contingency table. This stems from their calculation of a HeidkenoEC and HeidkewithEC, which have the following two equations:
HeidkenoEC=(numCorrect - numExpected)/(count - numExpected)
HeidkewithEC=((numCorrect of nonEC fcsts + numCorrect of EC fcsts) - numExpected)/(count - numExpected)
The significant (and impacted) variable from these equations is numExpected, which is defined as count / number of categories. Count is the number of valid fcst-ob pairs (for HeidkewithEC, count is sum of valid EC and non EC fcst-ob pairs).
Based on comment below (#1749 (comment)), @JohnHalleyGotway recommends that we:
- add a configurable option to Point-Stat and Grid-Stat for setting an HSS C2 value to be used as a number between 0 and 1. When computing the modified HSS, compute C2 as the configurable values * the number of pairs. Be sure let the HSS C2 rate be specified separately for each verification task to enable flexibility.
- add 2 MCTS output columns to indicate the constant HSS C2 value used (the rate or actual integer?) and the modified HSS value computed.
- add a configurable option to Series-Analysis to enable the C2 rate to either be set as a constant value between 0 and 1 or as a grid of such values. If the latter, then let the C2 rate vary for each grid point at which the modified HSS is computed.
Acceptance Testing
The dataset to test against will be a POE precipitation for 2-week forecast leads, with a focus on terciles (i.e. 3 categories). These files contain 19 percentile thresholds, with each percentile having its own probability field of exceeding that climatology percentile.
Success of this issue will be determined on the replication of CPC in-house HSS calculations in a medium (values, images, etc) they find most useful.
Time Estimate
Unknown, need more input from engineer/need more project definition
Sub-Issues
Consider breaking the new feature down into sub-issues.
No sub-issues needed.
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: John HG
- Select scientist(s) or no scientist required: John O and Eric
Labels
- Select component(s)
- Select priority
- Select requestor(s)
Projects and Milestone
- Review projects and select relevant Repository and Organization ones or add "alert:NEED PROJECT ASSIGNMENT" label
- Select milestone to next major version milestone or "Future Versions"
Define Related Issue(s)
Consider the impact to the other METplus components.
- METplus, MET, METdatadb, METviewer, METexpress, METcalcpy, METplotpy
- METdatadb issue to load the updated MCTS line type (Add loading of updated MCTC and MCTS line types for new HSS statistic. METdataio#54)
- METviewer issue to keep a running list of schema changes for the next release (Enhance METviewer database schema to comply with MET-10.1.0 METviewer#286)
- METviewer issue to plot the new statistic type (Enhance METviewer to aggregate and plot the HSS_EC statistic from the MCTS line type. METviewer#285)
- METplus issue to make C2 a configurable option for MET (dtcenter/MET#???)
New Feature 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 develop.
Branch name:feature_<Issue Number>_<Description>
- Complete the development 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 develop.
Pull request:feature <Issue Number> <Description>
- Define the pull request metadata, as permissions allow.
Select: Reviewer(s), Project(s), Milestone, and Linked issues - Iterate until the reviewer(s) accept and merge your changes.
- Delete your fork or branch.
- Close this issue.