Skip to content

Sort files read from directories to provide consistent behavior across platforms. #1989

@JohnHalleyGotway

Description

@JohnHalleyGotway

Describe the Enhancement

This issue has arisen via METplus at least once but also shows up in cross-platform testing prior to official releases. I several places, the MET code reads/processes files from a directory. However, the order in which those files are read can vary from platform to platform. The order in which files are read can cause small differences in the results.

For example, when running through METplus GitHub actions, the units for "PWAT" in the MTD output files change:

ERROR: FCST_UNITS differs:
A: kg/m^2
B: kg_m^-2

One possible explanation is the order in which the GRIB2 tables are being read:

grep '"PWAT"' grib2_*
grib2_af_gpp.txt:0 14 0 25 57 0 1 3 "PWAT" "Precipitable water" "kg m^-2"
grib2_all.txt:0 1 0 255 0 0 1 3  "PWAT"  "Precipitable Water"  "kg/m^2"

Rather than remaining subject to the order provided by the filesystem, update the library code to sort those files. Recommend running a regression test versus the develop branch to assess the impact of this change.

Time Estimate

1 day

Sub-Issues

Consider breaking the enhancement down into sub-issues.
None needed.

Relevant Deadlines

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: @JohnHalleyGotway
  • Select scientist(s) or no scientist required: none needed

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.
  • 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

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions