-
Notifications
You must be signed in to change notification settings - Fork 38
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
Update setting of environment variables for MET config files to add support for all to METPLUS_ vars #768
Comments
Dan and I are working on branch feature_768_met_config ASCII2NC Changes made to these wrappers are easy to replicate in the other wrappers. Some variables have already been supported in the other wrappers with changes to be consistent across wrappers. Still need to finish: GridDiag |
Finished: To go: Still need to test changes against previous version to ensure output is the same and update docs |
All wrappers have now implemented the new method for setting environment variables. |
@DanielAdriaansen I added a check for unused environment variables in the wrapped MET config files. Any item that is in the wrappers WRAPPER_ENV_VAR_KEYS list that is not found in the wrapped MET config file will produce a warning:
This should make it easier for you to see what has not yet been updated in the files in parm/met_config. Keep in mind that if I have forgotten to add a variable name to the wrapper's list, then it will not show up here. |
The diff output from running develop and this branch can be found on kiowa here: /d1/personal/mccabe/diff-output/diff.log The differences in the CyclonePlotter text file are due to the wrapper writing the output in a different order each run, which will be resolved with this PR: #797 The differences in the TCStat output have been resolved in a config change on the feature branch feature_768_met_config |
All met_tool_wrapper GridStat use cases were tested with the new wrapped GridStat config file and no differences between the output of each use case using the wrapped GridStat config file from this branch and the wrapped GridStat config file from the develop branch were noted. Documentation for the met_tool_wrapper GridStat use cases has been updated. Next up will be testing model_applications GridStat use cases:
|
All of the GridStat model_applications use cases have been updated in two places:
No testing was done on these changes locally. I will be moving to the next wrapper now. A checklist of sorts based on my experience with GridStat:
|
Checklist for each wrapper:
|
PointStat is complete. Automation is running now. Here are the modified use cases:
Docs build. |
Moving to StatAnalysis:
|
StatAnalysis is complete. All use cases appear to be passing automation. Here are the modified use cases:
Docs build- some issues with items not in conf glossary. Will resolve later. |
Moving to SeriesAnalysis:
|
SeriesAnalysis is complete. Automation has not run yet. Here are the modified use cases:
Note that it appears all SeriesAnalysis use cases were already using the _wrapped MET config file, and that file already contained all the new METPLUS_* items supported by series_analysis_wrapper so theoretically these changes are only for documentation and all use cases should still run. Docs build- some issues with items not in conf glossary. Will resolve later. |
Moving to TcGen:
|
TCGen is complete. Automation has not run yet. Here are the modified use cases:
Note that it appears all TCGen use cases were already using the _wrapped MET config file, and that file already contained all the new METPLUS_* items supported by tc_gen_wrapper so theoretically these changes are only for documentation and all use cases should still run. Docs build- some issues with items not in conf glossary. Will resolve later. NOTE- these changes align with METv9.1 When #801 is complete this section will need to be updated appropriately. |
Moving to TcPairs:
|
TCPairs is complete. Automation has not run yet. Here are the modified use cases:
Docs build- some issues with items not in conf glossary. Will resolve later. The use cases using TCPairs should be monitored because the _wrapped MET config file was changed for these use cases. |
Moving to TcRMW:
|
While doing this work, I learned that the values for fcst_raw_plot.color_table and the equivalent obs color table were incorrect in the parm/met_config/MODEConfig_wrapped file (differs from share/met/config version). This will result in differences in ps output. Use cases that should have no differences if the color scale is changed back to the wrong default (may not be a complete list):
The following run includes overriding the color scale to the old value for these 3 cases. If no differences occur in result, then we can safely assume that the output of these 3 use cases will differ and that is expected: |
…nges from #768 available to be able to do the same for MODE config, but I added the overrides that will be needed when that is available
Update: The following are output in the difference output that are expected changes: Caused by incorrect default color table in default wrapped MET config:met_tool_wrapperText diff convection_allowing_models:0-5Text diff convection_allowing_models:6+Text diff New output from new use cases (PointStat_python_embedding and MODE_python_embedding) that are not found in truth data setmet_tool_wrapperfile not found (new output) Extra masking fields were generated mistakenlyWe need @lindsayrblank to confirm that the extra fields are not needed, but I believe this to be the case.
This should actually be set to:
because we want to only use the poly values to determine the grid. All of the downstream output from MODE is identical to the truth data, which implies that the extra mask output fields are not being used in the use case. COMPARING GridStat_MODE_fcstIMS_obsNCEP_sea_ice/model_applications/cryosphere/sea_ice/GridStat/20190201/grid_stat/grid_stat_IMS_ICEC_vs_NCEP_ICEC_Z0_000000L_20190201_220000V.stat Comparing text files COMPARING GridStat_MODE_fcstIMS_obsNCEP_sea_ice/model_applications/cryosphere/sea_ice/GridStat/20190201/grid_stat/grid_stat_IMS_ICEC_vs_NCEP_ICEC_Z0_000000L_20190201_220000V_pairs.nc Comparing NetCDF No output lines in truth dataprecipitationText diff Threshold values were removed from this use case, which caused there to be no output lines. 5 threshold values were added back and the use case now produces output. |
Full logs of the differences tests can be viewed here (for ~90 days): |
We should also update the docs about adding a new use case to note that a MET conf file is no longer needed- the _wrapped file should be used. https://dtcenter.github.io/METplus/latest/Contributors_Guide/add_use_case.html |
We are moving towards a new format of setting environment variables that are read by the wrapped MET config files.
METPLUS_MODEL = model = "WRF";
or
METPLUS_MODEL = ""
We should continue to support the old naming of environment variables for a few releases so that users' wrapped MET config files that use the old naming do not need to be updated immediately upon switching to v4.0.0.
We should keep track of the list of METPLUS_ variables that are used for each wrapper and output a warning log message if any of them are not currently being utilized in the user's wrapped MET config file so that they are aware that they can update their file to add additional capability.
We should add a "MET Configuration" section to the Python Wrappers page in the User's Guide to describe how each environment variable corresponds to the METplus configuration variables. Currently there are a couple examples that have this information. Here is one: https://dtcenter.github.io/METplus/latest/Users_Guide/wrappers.html#tc-rmw-met-conf
Once the information about the env vars set for the MET config files are in the Python Wrappers section, we should remove that content from each use case documentation file and instead provide a link to the appropriate section in the Python Wrappers section so that this information does not need to be updated in multiple places.
Describe the Enhancement
Engineering: Modifications to each wrapper should be made to
Documentation:
Time Estimate
~5 days
Sub-Issues
Consider breaking the enhancement down into sub-issues.
Relevant Deadlines
4.0.0
Funding Source
2790541 (no longer valid)
Now split between 2702691, 2788881, 2799991
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.
Branch name:
feature_<Issue Number>_<Description>
Pull request:
feature <Issue Number> <Description>
Select: Reviewer(s), Project(s), Milestone, and Linked issues
The text was updated successfully, but these errors were encountered: