Skip to content

Bugfix: Fix logic for Python embedding with data censoring and/or conversion #2575

@JohnHalleyGotway

Description

@JohnHalleyGotway

Describe the Problem

This issue was raised via discussion dtcenter/METplus#2214 and an explanation of the problem/solution can be found in this comment.

The fix is to modify the logic of src/libcode/vx_data2d_python/data2d_python.cc to apply data censoring and conversion operations on a copy of the DataPlane object read from the python script, rather than modifying the DataPlane object stored in the class. Otherwise, those operations will be applied each time MetPythonDataFile::data_plane() is called!

Expected Behavior

@CPKalb found that running Grid-Stat with Python embedding and specifying a convert(x) function does not work as expected with MET version 11.0.1. The values written the NetCDF matched pairs file from Grid-Stat indicate that the conversion operation was applied 2 times.

To Reproduce

Describe the steps to reproduce the behavior:
Replicated the issue on seneca in /d1/projects/METplus/discussions/2214/run.sh

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 Organization level Project for support of the current coordinated release
  • Select Repository level Project for development toward the next official release or add alert: NEED CYCLE ASSIGNMENT label
  • Select Milestone as the next bugfix version

Define Related Issue(s)

Consider the impact to the other METplus components.

Bugfix 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 main_<Version>.
    Branch name: bugfix_<Issue Number>_main_<Version>_<Description>
  • Fix the bug 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 main_<Version>.
    Pull request: bugfix <Issue Number> main_<Version> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s) and Development issues
    Select: Organization level software support Project for the current coordinated release
    Select: Milestone as the next bugfix version
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Complete the steps above to fix the bug on the develop branch.
    Branch name: bugfix_<Issue Number>_develop_<Description>
    Pull request: bugfix <Issue Number> develop <Description>
    Select: Reviewer(s) and Development issues
    Select: Repository level development cycle Project for the next official release
    Select: Milestone as the next official version
  • Close this issue.

Metadata

Metadata

Type

No type

Projects

Status

✅ Done

Relationships

None yet

Development

No branches or pull requests

Issue actions