Add Increment Quality Control Utilities#1223
Conversation
|
FYI reviewers: I'll need to also issue a |
| if (fullConfig.has("increment postprocessing")) { | ||
| const eckit::LocalConfiguration incPostprocConfig(fullConfig, "increment postprocessing"); | ||
| postprocessIncrements(incs, incPostprocConfig); | ||
| postprocessIncrements(ens, incs, incPostprocConfig); |
There was a problem hiding this comment.
is ens passed here meant to be analyses or backgrounds?
There was a problem hiding this comment.
From the rest of my review, it's meant to be backgrounds, and that's what ens is, so no concerns here.
There was a problem hiding this comment.
background
shlyaeva
left a comment
There was a problem hiding this comment.
I skipped reviewing files in Utils/incrqc since they were ported from gdasapp where they were both reviewed and rigorously tested through gfsv17 retro tests (ensuring bounds on deterministic increments).
The rest of the code changes look good to me.
We're missing the "ssh" check to resolve the current issue in the v17 retro, sorry, I submitted the PR a bit too quickly. |
# Description Copy/pasted from [JCSDA-internal/soca/pull/1223](JCSDA-internal/soca#1223): This PR adds increment quality control (QC) utilities to SOCA to enforce physical consistency of ocean analysis increments prior to output. The new functionality applies configurable bounds on temperature and salinity increments, checks and corrects water column stability to prevent density inversions, and constrains steric height contributions to limit unrealistic SSH increments. Density calculations use the UNESCO 1983 equation of state, and the QC can be applied iteratively with optional smoothing. The QC is integrated into the ensemble analysis postprocessing workflow via a new qcIncrement() call in AnalysisPostproc, ensuring that all analysis increments satisfy physical constraints before being written out. This PR adds new functionality; changes in analysis increments are expected when QC thresholds are active, particularly in regions or cycles with large or unbalanced increments. # Companion PRs - NOAA-EMC/jcb-gdas#232 - NOAA-EMC/soca#3 # Issues Resolves # # Automated CI tests to run in Global Workflow <!-- Which Global Workflow CI tests are required to adequately test this PR? --> - [ ] atm_jjob <!-- JEDI atm single cycle DA !--> - [ ] C96C48_ufs_hybatmDA <!-- JEDI atm cycled DA !--> - [ ] C96C48_hybatmsnowDA <!-- JEDI snow cycled DA !--> - [ ] C96_gcafs_cycled <!-- JEDI aerosol cycled DA !--> - [ ] C48mx500_3DVarAOWCDA <!-- JEDI low-res marine 3DVar cycled DA !--> - [ ] C48mx500_hybAOWCDA <!-- JEDI marine hybrid envar cycled DA !--> - [ ] C96C48_ufsgsi_hybatmDA <!-- JEDI atm Var with GSI EnKF cycled DA !--> - [ ] C48_ufsenkf_atmDA <!-- JEDI atm EnKF cycled DA !--> - [ ] C96C48_hybatmDA <!-- GSI atm cycled DA !-->
|
Just adding @DavidSRussell primarily for future PRs. Still looking into this one. |
Dooruk
left a comment
There was a problem hiding this comment.
Tests pass for me. Thanks for adding this in SOCA.
Are these additions meant to be read only, because I suspect changes here would break your workflow, correct? Or only the capabilities in ensampproc.yml are used in EMC's workflow?
@Dooruk You are certainly more than welcome to propose changes (in subsequent PR's). |
Description
This PR adds increment quality control (QC) utilities to SOCA to enforce physical consistency of ocean analysis increments prior to output. The new functionality applies configurable bounds on temperature and salinity increments, checks and corrects water column stability to prevent density inversions, and constrains steric height contributions to limit unrealistic SSH increments. Density calculations use the UNESCO 1983 equation of state, and the QC can be applied iteratively with optional smoothing.
The QC is integrated into the ensemble analysis postprocessing workflow via a new
qcIncrement()call inAnalysisPostproc, ensuring that all analysis increments satisfy physical constraints before being written out.This PR adds new functionality; changes in analysis increments are expected when QC thresholds are active, particularly in regions or cycles with large or unbalanced increments.
Issue(s) addressed
Testing
test_soca_ensanpprocctestNote
We'll need to reflect these changes in the soca fork and release branch here https://github.com/NOAA-EMC/soca/tree/cd6730a8c95c3d536c42f0e114ca54050ca172c8