dtcenter / METplus

Python scripting infrastructure for MET tools.
https://metplus.readthedocs.io
Apache License 2.0
98 stars 37 forks source link

Add Difficulty Index use-case for NRL transitioned capability #628

Closed TaraJensen closed 3 years ago

TaraJensen commented 4 years ago

Describe the New Feature

The Difficulty Index is now transitioned to METcalcpy and METplotpy. Now, the DTC needs to add a METplus use case that produces the Difficulty Index using these capabilities.

Here is a description of the Difficulty Index from NRL: "The overall aim of this work is to graphically represent the expected difficulty of a decision based on a set of forecasts (ensemble) of, e.g., significant wave height as a function of space and time. There are two basic factors that can make a decision difficult. The first factor is the proximity of the ensemble mean forecast to a decision threshold, e.g. 12ft seas. If the ensemble mean is either much lower or much higher than the threshold, the decision is easier; if it is closer to the threshold, the decision is harder. The second factor is the forecast precision, or ensemble spread. The greater the spread around the ensemble mean, the more likely it is that there will be ensemble members both above and below the decision threshold, making the decision harder. The challenge is combing these factors into a continuous function that allows the user to assess relative risk."

Acceptance Testing

Model data: NCEP WaveWatch III data

Tests Required for new functionality: Outputs needs to match the output provided by NRL original code.

Time Estimate

Estimate the amount of work required here. Issues should represent approximately 1 to 3 days of work. 3 working days

Sub-Issues

Consider breaking the new feature down into sub-issues.

Relevant Deadlines

January 18, 2021

Funding Source

NRL - 2700021

Define the Metadata

Assignee

Labels

Projects and Milestone

Define Related Issue(s)

Consider the impact to the other METplus components.

https://github.com/dtcenter/METcalcpy/issues/27 https://github.com/dtcenter/METcalcpy/issues/37 https://github.com/dtcenter/METplotpy/issues/47

New Feature Checklist

See the METplus Workflow for details.

georgemccabe commented 3 years ago

On feature_628_diff_index, the new use case is running in the use case tests via GitHub Actions with error. METcalcpy and METplotpy are obtained via manage_externals.

I believe the only step remaining is to write the use case documentation.

Side note: A PR was created for changes to METplotpy (https://github.com/dtcenter/METplotpy/pull/77) to fix part of the difficulty index code so it can use the latest version of matplotlib (3.3.3) instead of relying on an old version. This change replaces the use of deprecated functionality that will no longer be supported in 2 minor versions of matplotlib. Once merged into develop, this change will automatically apply to this use case and improve the output.