Skip to content

StatAnalysis - Support looping over groups of list items #1870

@georgemccabe

Description

@georgemccabe

Currently you can define lists of items that set values in the wrapped StatAnalysisConfig file, such as fcst_lead (FCST_LEAD_LIST), and obs_valid_hour (OBS_VALID_HOUR_LIST). Each of these lists can be added to either LOOP_LIST_ITEMS where each item in the list will be passed to a call to stat_analysis one at a time, or GROUP_LIST_ITEMS where all items in the list will be passed to every call to stat_analysis. There is currently no way to define multiple groups of items to pass into calls to the tool, such as fcst_lead = 0-24, then fcst_lead = 24-48.

Describe the Enhancement

Add support for settings groups of items that can be looped over. For example:

FCST_LEAD_LIST1 = 1,2,3
FCST_LEAD_LIST2 = 4,5,6
LOOP_LIST_ITEMS = FCST_LEAD_LIST

should call stat_analysis once with fcst_lead = [1,2,3];, then call stat_analysis with fcst_lead = [4,5,6];

Time Estimate

~1-2 days

Sub-Issues

Consider breaking the enhancement down into sub-issues.

  • Add a checkbox for each sub-issue here.

Relevant Deadlines

5.0.0

Funding Source

None

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required - @CPKalb as needed for testing

Labels

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

Projects and Milestone

  • Select Repository and/or Organization level Project(s) or add alert: NEED PROJECT ASSIGNMENT label
  • Select Milestone as the next official version or Future Versions

Define Related Issue(s)

Consider the impact to the other METplus components.

Enhancement 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.
  • Add any new Python packages to the METplus Components Python Requirements table.
  • 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 Linked issues
    Select: Repository level development cycle Project for the next official release
    Select: Milestone as the next official version
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions