dtcenter/METplus

Enhancement: Add support for a Point2Grid config wrapper

Opened this issue · 11 comments

Describe the Enhancement

In this discussion, Need Point2Grid metplus wrapper for EVSv2.0 #2539, Ho-ChunHuang-NOAA mentioned the need to use Point2Grid app to map GOES ABI AOD to model grid for EVS2 AOD verification for AQM, RAP, HRRR, and GEFS-Chem. A Point2GridConfig_wrapped file does not currently exist at https://github.com/dtcenter/METplus/tree/develop/parm/met_config. It seems that METplus does not currently include logic for populating and passing a config file to the MET point2grid tool.

Please note that currently, the METplus documentation states with regard to the MET Configuration, "None. Point2Grid does not use configuration files.", but the MET Point2Grid usage statement indicates that it supports an optional configuration file. The METplus documentation is incorrect and should be updated.

Time Estimate

(For @georgemccabe to fill in.)

Sub-Issues

Consider breaking the enhancement down into sub-issues.

  • Add a checkbox for each sub-issue here.

Relevant Deadlines

6.0.0-beta5

Funding Source

TBD

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

Simply a reminder to check discussion of 2539 regarding the problem of using "POINT2GRID_QC_FLAGS=" in METplus config file to select the quality of mapped AOD.

@jprestop @georgemccabe I need some answer of whether there is a bug on the usage of "POINT2GRID_QC_FLAGS =" in Point2Grid. Please see detail of comment on April 4 2024 in issue 2539.

I set the POINT2GRID_QC_FLAGS = 0, but the result is like POINT2GRID_QC_FLAGS ="0,1,2".

Thank you.

Hi @Ho-ChunHuang-NOAA, there was a bug in the Point2Grid wrapper that did not properly apply the -qc 0 argument if the value set was 0. The code incorrectly interpreted a zero value as an empty value. This was fixed for METplus bugfix release v5.0.2 (PR: #2101) and v5.1.0 (PR: #2140).

Please let me know if you need any additional information.

Hi, George:

Simply to confirm that the bug fix version will accepts

POINT2GRID_QC_FLAGS =
0
1
2
0,1
0,1,2 (I think it is the default)

Hi @Ho-ChunHuang-NOAA,

Yes, POINT2GRID_QC_FLAGS accepts a comma-separated list of integers, so all of those examples you provided are valid inputs. I am not sure what the default behavior is if no QC flags are specified, but my best guess is that it does not filter by the QC field if no value is specified. @JohnHalleyGotway, can you provide any additional insight?

@georgemccabe and @Ho-ChunHuang-NOAA, I see a potential source of confusion here.

In general, Point2Grid reads point data and processes it onto a regular grid. It can accept multiple types of input point data, including both GOES satellite data and the NetCDF output created by other MET point pre-processing tools, like PB2NC, ASCII2NC, and MADIS2NC.

Let me clarify two details about quality control:

  1. The -qc command line option applies specifically to GOES data inputs. It's described in the Point2Grid Usage as follows:

The -qc flags option specifies a comma-separated list of quality control (QC) flags, for example “0,1”. This should only be applied if grid_mapping is set to “goes_imager_projection” and the QC variable exists.

This GOES filtering logic is only applied when the -qc option is specified on the command line. You can see that logic on this line of point2grid.cc. To that end, the default behavior is to NOT APPLY any quality control filtering to GOES data unless -qc is specified on the command line.

  1. I see a Point2Grid config file entry named quality_mark_thresh. Checking in the actual code for Point2Grid, I see that that entry is being parsed, it is NOT actually be used at all.

I strongly suspect that this was just copied from the PB2NC tool when Point2Grid was originally written. It does not actually belong here. Instead, we should remove quality_mark_thresh and replace it with the obs_quality_inc and obs_quality_exc options seen here in the PointStatConfig file.

These would apply when processing the NetCDF output from PB2NC, ASCII2NC, and MADIS2NC and give the user to option to specifically include or exclude obs based on their quality control values.

I'd recommend that we write up an issue to change this for MET version 12.0.0.

I'm laying out these details here to prevent any confusion between the -qc command line option and the spurious quality_mark_thresh config file option that doesn't currently actually do anything!

@georgemccabe @JohnHalleyGotway Hi, George: Thanks for the information. I was using the METPlus v5.0.2 when I encountered the POINT2GRID_QC_FLAG = 0 issue in #2539 . I rerun my scripts in METPlus v6.0.0-beta3, and the log output indicates the METPlus did interpret POINT2GRID_QC_FLAG = 0 as "-qc 0". The comparison of AOD graphics also confirms that the the mapped point2grid nc files by METPlus wrapper is high quality AOD as expected.

@Ho-ChunHuang-NOAA Is this enhancement required for EVS v2.0, and should therefore be included in the METplus-6.0.0 release?

@AliciaBentley-NOAA YES. This is for AQM AOD and GEFS AOD verification and they are scheduled to be in EVSv2.0.

Thanks, @Ho-ChunHuang-NOAA. This particular METplus issue was marked as "stalled" ~3 weeks ago when I originally asked. I'll tag the DTC folks and see what can be done. If you need something in METplus for EVS v2.0, please continue to advocate for it. Not all of the open METplus issues will make it into the official release.

Tagging @JohnHalleyGotway @j-opatz @georgemccabe @jprestop @DanielAdriaansen

Hi @AliciaBentley-NOAA and @Ho-ChunHuang-NOAA,

This work is actually completed in a branch (draft pull request #2580) but is waiting for dtcenter/MET#2880 to be completed since there are some corresponding changes needed to the Point2Grid MET tool. I just marked that issue as required for the release to make sure that work gets completed.