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

Enhance Multivariate MODE to support differing numbers of forecast and observation input fields #2706

Closed
14 of 22 tasks
davidalbo opened this issue Oct 5, 2023 · 2 comments · Fixed by #2742
Closed
14 of 22 tasks
Assignees
Labels
component: code cleanup Code cleanup and maintenance issue priority: high High Priority type: enhancement Improve something that it is currently doing type: new feature Make it do something new
Milestone

Comments

@davidalbo
Copy link
Contributor

davidalbo commented Oct 5, 2023

Describe the Enhancement

  • Allow different number of obs and forecast inputs to create super objects, and to produce output when all the intensity flags are false.
  • Add logic to tell Mode which obs input (with intensity=TRUE) should be compared to which fcst input (with intensity = TRUE).
  • multivar_logic and multivar_intensity would be parsed from the fcst and obs dictionaries rather than top-level config file context.

Link to documentation on readthedocs

Time Estimate

30 hours

Sub-Issues

Consider breaking the enhancement down into sub-issues.

  • Add a checkbox for each sub-issue here.

Relevant Deadlines

November 7 (beta2)

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

  • Review default alert labels
  • Select component(s)
  • Select priority
  • Select requestor(s)

Milestone and Projects

  • Select Milestone as the next official version or Backlog of Development Ideas
  • For the next official version, select the MET-X.Y.Z Development project

Define Related Issue(s)

Consider the impact to the other METplus components.

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) and Development issue
    Select: Milestone as the next official version
    Select: MET-X.Y.Z Development project for development toward the next official release
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.
@davidalbo davidalbo added type: enhancement Improve something that it is currently doing type: new feature Make it do something new alert: NEED ACCOUNT KEY Need to assign an account key to this issue alert: NEED CYCLE ASSIGNMENT Need to assign to a release development cycle labels Oct 5, 2023
@davidalbo davidalbo added this to the MET 12.0.0 milestone Oct 5, 2023
@davidalbo davidalbo added component: code cleanup Code cleanup and maintenance issue priority: high High Priority and removed alert: NEED CYCLE ASSIGNMENT Need to assign to a release development cycle labels Oct 5, 2023
@JohnHalleyGotway JohnHalleyGotway moved this from 🔖 Ready to 🏗 In progress in MET-12.0.0 Development Oct 19, 2023
@davidalbo
Copy link
Contributor Author

davidalbo commented Nov 7, 2023

Notes taken along the way:

  • Chose to use the first (0th) forecast or obs as the verification grid template, when regridding has "to_grid = FCST" or "to_grid = OBS", This needs to be documented.
  • Need to figure out what to do with some of the 'perc_thresh' options, currently I'm disabling them when creating fcst simple objects or obs simple objects. Some of these options use two inputs. We should meet about this one.
  • Here and there were requirements that array lengths between obs and fcsts needed to be the same, for example the conv_radius array. I've relaxed those requirements, but... currently mvmode doesn't allow multiple conv_radii. Revisit if we ever do allow multiple conv_radii/conv_thresh and/or quilting.
  • I'm replacing multivar_intensity_flag with comparison arrays multivar_intensity_compare_fcst = [ 2, 1 ]; multivar_intensity_compare_obs = [2, 2]; This needs to be documented and put into the default config. and metplus as an issue
  • Did I break traditional mode with all these changes? More likely than anything I've done so far. How can I test to see if I broke traditional mode?
  • Traditional mode requires number of conv thresholds = number of conv radii, why is this? Currently mvmode requires both these numbers to be 1. If relaxed, would it be possible that individual obs have different values, and different fcsts have different values, and obs values not equal to fcst values? Gets very complex very fast. The code WILL break down depending on what is allowed in mvmode.

@hertneky
Copy link
Contributor

@davidalbo I added the documentation. I also added a link to the rendered documentation on readthedocs in the main issue description.

@davidalbo davidalbo linked a pull request Nov 16, 2023 that will close this issue
15 tasks
@JohnHalleyGotway JohnHalleyGotway moved this from 🏗 In progress to 👀 In review in MET-12.0.0 Development Nov 17, 2023
JohnHalleyGotway added a commit that referenced this issue Nov 17, 2023
@JohnHalleyGotway JohnHalleyGotway moved this from 👀 In review to ✅ Done in MET-12.0.0 Development Nov 17, 2023
@JohnHalleyGotway JohnHalleyGotway changed the title Allow different number of fcst and obs inputs for Multivariate Mode Enhance Multivariate MODE to support differing numbers of forecast and observation input fields Nov 17, 2023
@JohnHalleyGotway JohnHalleyGotway removed the alert: NEED ACCOUNT KEY Need to assign an account key to this issue label Oct 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: code cleanup Code cleanup and maintenance issue priority: high High Priority type: enhancement Improve something that it is currently doing type: new feature Make it do something new
Projects
No open projects
Status: 🏁 Done
Development

Successfully merging a pull request may close this issue.

3 participants