Skip to content

Fix Point-Stat runtime error when verifying CF-compliant NetCDF files. #1782

@JohnHalleyGotway

Description

@JohnHalleyGotway

Describe the Problem

This issue was reported by the UK MetOffice via met-help:
https://rt.rap.ucar.edu/rt/Ticket/Display.html?id=99819

The following call to Point-Stat errors out:

point_stat prods_op_gl-mn_20210302_00_012.nc lndsyn_2021030212.nc PointStatConfig
DEBUG 1: Forecast File: prods_op_gl-mn_20210302_00_012.nc
DEBUG 1: Observation File: lndsyn_2021030212.nc
WARNING: MetNcCFDataFile::collect_time_offsets(VarInfo &) -> Not found time out of 1.
ERROR  : 
ERROR  : MetNcCFDataFile::collect_time_offsets(VarInfo &) -> variable "air_temperature" has unknown error (999).
ERROR  :

However the plot_data_plane tool is able to plot this data without error and it does parse the timestamp correctly:

plot_data_plane prods_op_gl-mn_20210302_00_012.nc prods_op_gl-mn_20210302_00_012.ps 'name="air_temperature"; level="(*,*)";' -v 4
DEBUG 4:      valid time: 20210302_120000

Expected Behavior

plot_data_plane's call to the MetNcCFDataFile::data_plane() function in data2d_nccf.cc is able handle the way this timing information is stored in this NetCDF file. However, point_stat's call to MetNcCFDataFile::data_plane_array() results in this error message. The task for this issue is to port over logic from data_plane() to data_plane_array() to enable it to process the single timestep in this file without error.

Environment

Describe your runtime environment:
1. Machine: Mac Laptop
2. OS: MacOS
3. Software version number(s): replicated with met-9.1 and met-10.0.0-beta5. Please fix this for MET version 10.0.0.

To Reproduce

Describe the steps to reproduce the behavior:
1. Download these files:
prods_op_gl-mn_20210302_00_012.nc.txt
lndsyn_2021030212.nc.txt
PointStatConfig.txt

2. Rename them to strip off the .txt suffix

mv prods_op_gl-mn_20210302_00_012.nc.txt prods_op_gl-mn_20210302_00_012.nc
mv lndsyn_2021030212.nc.txt lndsyn_2021030212.nc
mv PointStatConfig.txt PointStatConfig

3. Run Point-Stat from MET's develop branch:

point_stat  prods_op_gl-mn_20210302_00_012.nc lndsyn_2021030212.nc PointStatConfig

4. See error

WARNING: MetNcCFDataFile::collect_time_offsets(VarInfo &) -> Not found time out of 1.
ERROR  : 
ERROR  : MetNcCFDataFile::collect_time_offsets(VarInfo &) -> variable "air_temperature" has unknown error (999).
ERROR  : 

5. Compare to the processing logic of plot_data_plane:

plot_data_plane prods_op_gl-mn_20210302_00_012.nc prods_op_gl-mn_20210302_00_012.ps 'name="air_temperature"; level="(*,*)";' -v 4

Relevant Deadlines

ASAP, for inclusion in met-10.0.0.

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: Howard Soh
  • Select scientist(s) or no scientist required: John Opatz

Labels

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

Projects and Milestone

  • Review projects and select relevant Repository and Organization ones or add "alert:NEED PROJECT ASSIGNMENT" label
  • Select milestone to relevant 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.
  • 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), Project(s), Milestone, and Linked issues
  • 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>
  • Close this issue.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions