Closed JohnHalleyGotway closed 2 years ago
After consultation with CIRA, it was decided to revise the naming schema for the DIAG_SOURCE values to include the group/center that is responsible for the diagnostics (alternatively, the actual model name). The DEV suffix indicates that a perfect prog technique is used to derive the diagnostics (based on analyses). The RT suffix indicates that the diagnostics are computed along some forecast track in real-time.
The DIAG_SOURCE column should support the following values at this time:
Because a stretch goal for this project is to allow for the diagnostics to be computed along any arbitrary specified track (in which the model vortex would be first removed), as well as to allow for different resolutions of models fields to be used, several additional attributes are needed to fully define the source, track, and resolution of the diagnostics.
Thus, the following additional attributes need to be added to the TCDIAG line type in TCPAIRS:
John and Jonathan discussed this offline. The plan is to meet Monday to hash all this out and figure out the best solution.
Issues for discussion:
As discussed on 11/10/22, we could add new output column(s) between the existing DIAG_SOURCE
and N_DIAG
columns to indicate what data was used to create the model diagnostics.
Ideally we'd be able to extract this metadata from the diagnostic data files being read. But they do NOT currently contain this info. So that's not a viable option. Although it is possible that a future version of the CIRA diagnostics could add this metadata. For now, recommend that we define it via the TC-Pairs configuration file.
At the TC-Diag project meeting on 11/14/2022, @jvigh, @KathrynNewman, and @JohnHalleyGotway met and decided to make the following changes:
TRACK_SOURCE
and FIELD_SOURCE
. While the input model resolution may be important, it could easily be indicated in the FIELD_SOURCE string. None of the other MET tools explicitly state the model resolution in the output, but we provide the model
and desc
config options to indicate that type of info... or any other important info that would need to be distinguished in the output... e.g. GFS_0p5
versus GFS_1p0
.diag_name
config file entry into a larger diag_info_map
entry where each of these settings (including the requested diag names) can be specified separately for each diagnostic source. The default diag_name
setting of an entry list just processes ALL diagnostics found in the input.
diag_info_map = [
{
diag_source = "SHIPS_DIAG_RT"; // Defines behavior for `-diag SHIPS_DIAG_DEV path` on the command line
track_source = "OFCL"; // Written to TRACK_SOURCE output column
field_source = "GFS_0p50"; // Written to MODEL_SOURCE output column
match_to_track = [ "OFCL" ]; // Matches these diagnostic values to both of these tracks
diag_name = []; // List of requested diagnostics (empty means "all")
},
{
diag_source = "CIRA_DIAG_RT"; // Defines behavior for `-diag SHIPS_DIAG_DEV path` on the command line
track_source = "GFS"; // Written to TRACK_SOURCE output column
field_source = "GFS_0p50"; // Written to MODEL_SOURCE output column
match_to_track = [ "GFS" ]; // Matches these diagnostic values to both of these tracks
diag_name = []; // List of requested diagnostics (empty means "all")
}
];
-diag
from the command line since match_to_track
replaces its functionality and all metadata should be defined in the same spot.diag_convert_map
rename source
to diag_source
for consistency with diag_info_map
and the DIAG_SOURCE
output column name. But it'll be easy for users to define metadata for new or modified diagnostic sources.diag_info_map
and diag_convert_map
, allow for partial string matching of the diag_source
name. That means we won't have to duplicate all the conversion functions for SHIPS_DIAG_DEV
and SHIPS_DIAG_RT
. Instead we'd just set diag_source = "SHIPS_DIAG"
We could eventually support python embedding in this context, where the user provides diagnostics in any format but also provides a python script for parsing that format! That python script would serve up a known data structure consisting of lists of diagnostic names and values with some things like lat, lon, and lead_time being required elements.
Describe the Enhancement
Pull request #2315 for issue #392 added a new TCDIAG line type to the output of TC-Pairs. That issue contained the majority of the work but some cleanup tasks remain. Please see below:
-tcdiag
and-lsdiag
command line options that were consolidated into a single-diag
command line option.Do NOT plan to do this for version 11.0.0:
Time Estimate
Estimate the amount of work required here. Issues should represent approximately 1 to 3 days of work.
Sub-Issues
Consider breaking the enhancement 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.
Enhancement Checklist
See the METplus Workflow for details.
feature_<Issue Number>_<Description>
feature <Issue Number> <Description>