-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New Use Case: StatAnalysis Python Embedding to read native grid (u-grid) #1561
Comments
See dakota:/d3/projects/JEDI |
On 6/2/2021, @j-opatz @TaraJensen and @JohnHalleyGotway met with Mark Miesch to discuss MET interfacing with JEDI. Could be worthwhile to attend a JEDI training academy. JEDI documentation: bump and saber would be good libraries with which to interface. JEDI is really spread over many repositories... 8 or 9 of them. New release JEDI-FV3 version 1.0 and IODA 2.0 coming mid-June. IODA 2.0 does not yet fully support MET-office ODB but there's been a lot of progress. Getting closer. Internal repository, IODA-Converters can ready ODB files but they'll eventually be readable directly. Questions.
Recommend that we move development up to Cheyenne, run JEDI there, and demonstrate that we can interface with it there. The h-of-x application writes out h-of-x files. The h-of-x application is part of oops. It writes output to a file. MET could be enhanced to read matched pairs from those files. Eventually, MET could potentially read this data from memory rather than via a temporary file. The Atlas package from ECMWF is being incorporated into JEDI. It can be used to create grids and grid meshes for subsetting tasks for mpi: |
Some sample LFRic netcdf files attached for testing. This is the data originally sent in March 2021. I have asked if there is something more up to date. I do not know whether this has been tested with the JEDI libraries. Awaiting further info. |
Further info/update wrt use of JEDI-BUMP from someone working on JEDI in Met Office. The good news. The bad news.
|
Here's a new sample of LFRic - obtained in September. Philip Gill also says: |
Some clarification: the term "native" can refer to any kind of grid, unstructured (ugrid) or structured mesh (lat-lon) but simply refers to the mesh that the model is integrated on. Often times we do not verify our forecasts on the native (structured) grid, e.g. WMO CBS statistics are calculated on a 1.5deg regular lat-lon grid. This is not the native grid for any of the global NWP models that submit/exchange statistics. As far as this issue goes I think it will soon be time to break into sub-issues, and treat this issue as the overarching one. I see at least two sub-issues (for now) addressing distinct tasks which can be completed in isolation of each other:
|
ESMpy might be a possible solution to reading the u-grid |
Marion sent scripts for vinterp and hinterp to Will and Tara. She's uncertain if they should be attached to the open GitHub issue. Will attach here if it is found worthwhile and cleared for doing so. |
Describe the New Use Case
Note that this was originally an issue in MET with the plan of adding support directly to the C++ tools. However, as of 4/6/2022, the plan has changed to leveraging existing python functionality for an initial implementation. Along with that, we'll need a new use case to demonstrate that functionality. In the long run, enhancements could be added directly to MET to support unstructured grids, but those would be described in a different issue.
Here's the original text of this issue for background:
This issue is the result of a meeting with Mark Miesch about JEDI on 1/23/2020.
Consider enhancing MET to leverage the JEDI C++ interface for reading data from LFRic, FV3, MPAS, Neptune, WRF, and SOCA. The geometry object in JEDI can instantiate a grid.
JEDI Source Code (not public): https://github.com/JCSDA/oops
State.h header file defines the State class. Each model instantiates a State in a different way, including grid information and parallel distribution information. The State object will retrieve a model value at a given location by calling getValues(). This returns a GeoVaLs object for the model values at the requested location(s). The "State::read(const eckit::Configuration &)" member function can read data from a model output file and populates the state object. The "State::geometry()" member function contains the grid information.
Dependencies: ecmwf/eckit, oops, FV3 JEDI, oops depends on boost headers (not actually compiled).
JEDI is built using ecbuild.
ecmwf/eckit does all the MPI handling.
Some functional steps...
Here's a specific idea:
(1) Work on Hera.
(2) Enhance MET to support a new configurable option to interface with JEDI from FV3.
(3) Specifically, enhance Point-Stat to call Shape::getValues() for each observation location and generate matched pairs.
(4) Compute the resulting statistics.
So really "JEDI" is a new input "file type"... from which you extract forecast values.
This is needed by September 30, 2020 (end of Q4).
Use Case Name and Category
Provide use case name, following Contributor's Guide naming template, and list which category the use case will reside in.
If a new category is needed for this use case, provide its name and brief justification
Input Data
List input data types and sources.
Provide a total input file size, keeping necessary data to a minimum.
Acceptance Testing
Describe tests required for new functionality.
As use case develops, provide a run time here
Time Estimate
Estimate the amount of work required here.
Issues should represent approximately 1 to 3 days of work.
Sub-Issues
Consider breaking the new feature down into sub-issues.
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
Labels
Projects and Milestone
Define Related Issue(s)
Consider the impact to the other METplus components.
New Use Case Checklist
See the METplus Workflow for details.
Branch name:
feature_<Issue Number>_<Description>
Pull request:
feature <Issue Number> <Description>
Select: Reviewer(s) and Linked issues
Select: Repository level development cycle Project for the next official release
Select: Milestone as the next official version
The text was updated successfully, but these errors were encountered: