Skip to content

Enhance the MET tools to fully support writing gridded range/azimuth data to NetCDF output files #3096

@JohnHalleyGotway

Description

@JohnHalleyGotway

Describe the Enhancement

As of MET-12.0.0, the tc_rmw, rmw_analysis, and tc_diag tools write range/azimuth data to NetCDF output files. Issue #3064 enhanced the MET tools to read data from these NetCDF files and store the spatial information in a range/azimuth grid (RngAziGrid). However, several additional desired range/azimuth enhancements were beyond the scope of #3064.

For example, while pcp_combine can read range/azimuth data from a tc_rmw output file, it exits when attempting to write it to an output file for the range/azimuth grid:

pcp_combine -add tc_rmw_hwrf_gonzalo.nc 'name="RH"; level="(0,0,*,*)";' add.nc
... 
ERROR  : range_azimuth_grid_output() -> support for writing NetCDF range/azimuth files is currently limited to the tc_rmw, rmw_analysis, and tc_diag tools!

This issue is to more fully support range/azimuth grids across all of the MET tools with the following enhancements:

  • Provide a method for defining range/azimuth grids using a grid specification string, as described in Appendix B.
  • Testing Enhance the MET statistics tools to read and process range/azimuth data from the TC-RMW and RMW-Analysis tools #3064 functionality to support reading range/azimuth grids from tc_rmw, rmw_analysis, and tc_diag to confirm that all are supported. Suspect issues with tc_diag where the time dimension is used instead of the track_point and the center lat/lon location is in TrackLat/TrackLon instead of FullTrackLat/FullTrackLon. Update the logic to handle these diffs.
    • Fix vx_data2d_nc_met library to handle both TC-RMW and TC-Diag time and location conventions.
    • Add ability to set grid for RMW-Analysis output.
  • Enhance the vx_nc_util and vx_tc_util libraries to support writing range/azimuth NetCDF output files (e.g. pcp_combine and grid_stat matched pairs).
  • Enhance tc_rmw and rmw_analysis to write the standard global attributes for FileOrigins, MET_version, and MET_tool (and could include Projection: Range Azimuth) that is noticeably missing.
  • Reconfigure existing unit tests for range/azimuth inputs to enable optional NetCDF output files (e.g. turn on Grid-Stat NetCDF matched pairs).
  • Add unit test for series_analysis run on range/azimuth inputs.
  • Consider refining the tc_rmw, rmw_analysis, and tc_diag tools to make better use of common library functionality in vx_nc_util and/or vx_tc_util.
  • Consider enhancing the vx_data2d_nc_met library to support convenience data lookup with the @ notation, like support level = "(@20141013_12,@850,*,*)"; instead of just integer dimension indices level = "(0,0,*,*)";
    • Adding full support for this, or restructuring the vx_data2d_nc_met and vx_data2d_nc_cf libraries to provide it, is beyond the scope of this issue. But I did add the following warning message in case @value notation is used:
WARNING: 
WARNING: VarInfoNcMet::set_magic() -> problem parsing "RH(4,@500,*,*)" for the vx_data2d_nc_met library.
WARNING: NetCDF dimensions must be specified as 0-based integer indices rather than using the NetCDF dimension "@value" notation.
WARNING: 

Time Estimate

Approx 1 week

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

NOAA R2O HAFS 2783604 (PRJ013282)
Up to 40 hours in FY25 Q3.

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Review default alert labels
  • Select component(s)
  • Select priority
  • Select requestor(s)

Milestone and Projects

  • Select Milestone as a MET-X.Y.Z version, Consider for Next Release, or Backlog of Development Ideas
  • For a MET-X.Y.Z version, select the MET-X.Y.Z Development project

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 Development issue
    Select: Milestone as the next official version
    Select: MET-X.Y.Z Development project for development toward the next official release
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.

Metadata

Metadata

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions