Skip to content

Enhance Ensemble-Stat, Point-Stat, Plot-Point-Obs, and Point2Grid to support python embedding of point observations. #1844

@j-opatz

Description

@j-opatz

Describe the New Feature

This issue was originally titled "Allow read into memory for Point2Grid". However this feature request should be done as part of a larger task to more broadly support python embedding of point observations across multiple tools. Currently, this type of python embedding is only supported in ascii2nc. This task is to expand that support to include point_stat, ensemble_stat, point2grid, and plot_point_obs. I believe those are all the tools which read the NetCDF point observation files written by the *2NC point pre-processing tools. If needed, consider breaking this issue out into separate ones for each of those tools. Make sure that the conventions for requesting python embedding of point observations are as consistent as possible across these tools.

Currently, The MET user's guide states the Point2Grid tool "...takes point observations from a NetCDF output file from one of the four previously mentioned MET tools (ascii2nc, madis2nc, pb2nc, lidar2nc) and creates a gridded NetCDF file." The original workflow did not take advantage of the Python embedding, which is now prevalent in MET.

A recent use case highlighted the cumbersome task of converting an ASCII file to a grid for analysis, via (ASCII2NC w/ Python Embedding) --> (Point2Grid) --> (GridStat). The ASCII2NC tool creates netCDF files each time it runs, but since these files are immediately passed into Point2Grid, they only take up disk space and are unwanted by the user.

The desire is for the Point2Grid tool to no longer require a file input when it is a tool called in a series of tools (as described above). Instead, Point2Grid should be able to utilize a file or point data from a memory-read list which the user provides via Python embedding.

Acceptance Testing

An ASCII file of any amount of point data will suffice for testing. @j-opatz can provide an example file and companion Python script if required.
The successful resolution of this issue will be Point2Grid being able to read in point data from memory.

Time Estimate

Need input from engineer

Sub-Issues

Consider breaking the new feature down into sub-issues.

  • Add a checkbox for each sub-issue here.

Relevant Deadlines

None

Funding Source

2788881 (do not charge as of 16Dec21)
Instead split 2792541, 2702691, 2799991, 2700042,

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

New Feature 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

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions