-
Notifications
You must be signed in to change notification settings - Fork 120
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
[develop] Fixing several issues, including 966 (bash octal issue); add new winter weather verification test with staged data #997
[develop] Fixing several issues, including 966 (bash octal issue); add new winter weather verification test with staged data #997
Conversation
…BCS are now "netcdf", and PREEXISTING_DIR_METHOD is now "quit"
…unique even if the same expt_subdir
…better way of handling output frequency in the app
…the accumulation period for diagnostic variables in the weather model, and it was set to 6 for GFS_v17_p8
…ity). This avoids having to do weird things with MET verification in case those fields don't exist
… to a separate PR, since that will require changing a LOT of test files
… on, so no need for conditional test. Also, add "get_obs_nohrsc" dependency for ASNOW tasks.
…ctionary key used by monitor_jobs
…est directories in run_WE2E_tests.py
- Update documentation for more clarity about obs types, and why some things are done a certain way - Start forecast hour loop at zero, but skip retrieving obs at hour zero for CCPA and NOHRSC (since these are accumulation vars) - Standardize order and messaging for file-on-disk checks across all ob types - For NDAS, re-organize logic so that the later, more complete obs files are pulled from HPSS, as well as getting the 0h obs files
@@ -154,6 +154,8 @@ | |||
"gfs_phys", "BC_AOD_550", "bc_aod550", "fv3_history2d", "all", .false., "none", 2 | |||
"gfs_phys", "OC_AOD_550", "oc_aod550", "fv3_history2d", "all", .false., "none", 2 | |||
"gfs_phys", "SS_AOD_550", "ss_aod550", "fv3_history2d", "all", .false., "none", 2 | |||
# Reflectivity from Thompson microphysics |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't this be 'GFDL microphysics'? This is a GFS SDF.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GFSv17 P8 is testing with Thompson!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's correct @michelleharrold. I'm not sure if it was different previously, but from what I can see currently the FV3_GFS_v17_p8
suite uses Thompson microphysics: https://github.com/NOAA-EMC/fv3atm/blob/bba399053d3939241938f19ee598895eea54fd65/ccpp/suites/suite_FV3_GFS_v17_p8.xml#L76
checking snowfall verification statistics, and a test for custom domains | ||
with staged netCDF data. | ||
checking snowfall verification statistics using observations retrieved from | ||
HPSS, and a test for custom domains with RAP data retrieved from HPSS | ||
user: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could HRRR ICs be used for this domain too? Just curious why RAP is mentioned by itself.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was simply making the description more verbose: this test specifically retrieves RAP data, but GFS and HRRR (and GEFS/GDAS for that matter) can also be retrieved.
Now that you mention it though I'm pretty sure this custom domain might extend a bit north of the HRRR domain, so those ICs might not be possible for this specific domain.
@@ -36,7 +36,7 @@ def get_crontab_contents(called_from_cron, machine, debug): | |||
# call the system version of crontab at /usr/bin/crontab. | |||
# | |||
crontab_cmd = "crontab" | |||
if machine == "CHEYENNE" or machine == "DERECHO": | |||
if machine == "CHEYENNE": | |||
if called_from_cron: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there no Derecho support for the App at the moment?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The App currently runs on Derecho. Given the decommissioning of Cheyenne, I think that DERECHO
should be kept, while CHEYENNE
should be removed here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Derecho does not suffer from the same issue that this logic accounts for, see my PR description for why this fix was included (and on a related note, #998). Cheyenne functionality should be removed in its entirety in a separate PR, I feel that's beyond the scope of this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for removing the last vestiges of the FV3_GFS_2017_gfdlmp
/_regional
CCPP suites from the repository! I was able to successfully test that the change in ush/get_crontab_contents.py
works while using run_WE2E_tests.py
on Derecho and using the --launch cron
option. I was also able to successfully run the new MET_ensemble_verification_winter_wx
test on Gaea C5:
----------------------------------------------------------------------------------------------------
Experiment name | Status | Core hours used
----------------------------------------------------------------------------------------------------
MET_ensemble_verification_winter_wx_20240104094734 COMPLETE 208.52
----------------------------------------------------------------------------------------------------
Total COMPLETE 208.52
Approving this PR now.
The coverage WE2E tests were manually ran on Derecho and they all successfully passed:
|
The
|
@MichaelLueken Thanks for letting me know, can you point me to the location of Jenkins tests on Hercules? I'm not sure where to find that information, is it in the Wiki somewhere? |
@mkavulich - The Jenkins workspace for your test on Hercules is:
At the bottom of the Contributor's Guide, there are paths to the Jenkins workspaces on the various machines. |
@MichaelLueken For the record I am getting "Permission denied" errors when I attempt to view the contents of |
@mkavulich - Thanks for bringing this to my attention. I have opened an issue with the EPIC Platform team to see if they can make the Jenkins workspace on Hercules readable for developers outside of the epic account. |
…his bug has existed for a while but only causes a failure after my Octal bug fix...and for some reason was only failing on Hercules?? (Derecho and Hera tests both passed)
@MichaelLueken This PR is ready for a re-test on Hercules. For anyone curious about the details: This was a very strange confluence of circumstances revealing an old bug where some logic in exregional_run_met_pcpcombine.sh that was only used for forecast jobs (not for observations) needed to be moved inside an if-block to avoid utilizing undefined variables (specifically, the variable |
@mkavulich - The WE2E tests successfully passed on Hercules:
Merging this work now. |
DESCRIPTION OF CHANGES:
This started as a fairly simple change (don't they always) to fix Issue #966 and add a new winter weather verification test in support of the RRFS agile framework project and has since snowballed into solving a number of outstanding and newly discovered issues.
New test
MET_ensemble_verification_winter_wx
is added. This test will exercise a number of yet-untested capabilities in the workflow, including a 10-member ensemble, snowfall verification with staged data (so can be run on all platforms, not just Jet and Hera), and several SPP settings.Resolved issues
ENSMEM_INDX
to ensure it is a base-10 integer, to avoid problems with bash interpreting numbers with a leading zero as octal.EXPT_SUBDIR
a default value "experiment" to avoid unnecessary complications and work for users. Additionally, the default behavior if an experiment directory already exists is changed to "quit" rather than "delete"fhzero=6
is removed from the weather model namelist for CCPP suiteFV3_GFS_v17_p8
, which allows precipitation and other accumulations to be made every hour rather than 6 hours (SRW output is always hourly, so this makes sense). Also, updatediag_table.FV3_GFS_v17_p8
so that all output files will be hourlyget_crontab_contents.py
for DerechoOther fixes
General improvements
diag_table.FV3_GFS_v17_p8
so that all output files will be hourlymonitor_jobs.py
to ensure the yaml file does not contain duplicate experiment directoriesWORKFLOW_ID
variable (so that it could be used in the workflow if necessary).Type of change
TESTS CONDUCTED:
Ran fundamental tests on several platforms. Ran some manual tests for the above-mentioned WE2E and monitor_jobs features, including catting together several WE2E yaml files in a way that previously failed to ensure they now succeed.
Ran all verification tests (including new test) on Hera, Orion, and Derecho to ensure nothing changed unexpectedly. I also compared existing tests to develop on Hera, and confirmed that the additional NDAS obs are now being pulled and used for verification tasks, which resulted in expected differences in verification results.
MET_verification_winter_wx
andMET_ensemble_verification_only_vx_time_lag
, which only work on Jet and Hera)MET_verification_winter_wx
andMET_ensemble_verification_only_vx_time_lag
, which only work on Jet and Hera)DEPENDENCIES:
None
DOCUMENTATION:
Working on updates to documentation (mostly for the new test); will merge when ready
ISSUE:
CHECKLIST
CONTRIBUTORS:
Thanks to @EdwardSnyder-NOAA for help staging the new test data