Skip to content

Enhancement: Add support for multiple interp widths #2049

@georgemccabe

Description

@georgemccabe

Tools like EnsembleStat and GridStat support a list of interp method/widths:

interp = {
   field      = BOTH;
   vld_thresh = 1.0;
   shape      = SQUARE;

   type = [
      {
         method = NEAREST;
         width  = 1;
      }
   ];
}

However, the wrappers only support setting a single method and width.

This can be configured by using MET config overrides, but we should support it directly:
ENSEMBLE_STAT_MET_CONFIG_OVERRIDES = interp = {type = [{method = NEAREST;width=3;},{method = NEAREST;width=5;}];}

Testing reveals that we want METplus to allow by method and width to be set as lists. The parse_conf_interp() function in MET actually uses all permutations of values in that list.

For example, type = [ { method = [ HIRA, UW_MEAN ]; width = [ 3, 5, 7 ]; } ]; produces output for the 2 x 3 = 6 permutations listed below:

DEBUG 2: Verifying against point observations.
DEBUG 2: Processing point verification TMP/Z2 versus TMP/Z2, for observation type ADPSFC, over region FULL, for interpolation method HIRA_SQUARE(9), using 0 matched pairs.
DEBUG 2: Processing point verification TMP/Z2 versus TMP/Z2, for observation type ADPSFC, over region FULL, for interpolation method HIRA_SQUARE(25), using 0 matched pairs.
DEBUG 2: Processing point verification TMP/Z2 versus TMP/Z2, for observation type ADPSFC, over region FULL, for interpolation method HIRA_SQUARE(49), using 0 matched pairs.
DEBUG 2: Processing point verification TMP/Z2 versus TMP/Z2, for observation type ADPSFC, over region FULL, for interpolation method UW_MEAN_SQUARE(9), using 0 matched pairs.
DEBUG 2: Processing point verification TMP/Z2 versus TMP/Z2, for observation type ADPSFC, over region FULL, for interpolation method UW_MEAN_SQUARE(25), using 0 matched pairs.
DEBUG 2: Processing point verification TMP/Z2 versus TMP/Z2, for observation type ADPSFC, over region FULL, for interpolation method UW_MEAN_SQUARE(49), using 0 matched pairs.

Describe the Enhancement

Provide a description of the enhancement request here.

Time Estimate

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

Sub-Issues

Consider breaking the enhancement down into sub-issues.

  • Add a checkbox for each sub-issue here.

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 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 Development 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