From cc4568df41cae28a9222ea7931bfee51466111c9 Mon Sep 17 00:00:00 2001 From: Cory Martin Date: Fri, 2 Aug 2024 17:09:49 +0000 Subject: [PATCH] Use ensemble member for mask in snow recentering (#1242) This PR uses the first ensemble member to mask the snow recentering increment, and changes the logic so that anything below the min value and above the max value is masked out. --- parm/jcb-gdas | 2 +- utils/land/land_ensrecenter.h | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/parm/jcb-gdas b/parm/jcb-gdas index 41ee2a2..9c322d9 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit 41ee2a276e2688d19eef7d3dcb9567e3042f6843 +Subproject commit 9c322d98d7aab4e1cfca8588f6913d8bee190dde diff --git a/utils/land/land_ensrecenter.h b/utils/land/land_ensrecenter.h index e673582..6e14528 100644 --- a/utils/land/land_ensrecenter.h +++ b/utils/land/land_ensrecenter.h @@ -133,9 +133,10 @@ namespace gdasapp { incrMaskConfig.get("variable", maskvarname); double minvalue = incrMaskConfig.getDouble("minvalue", -9e36); double maxvalue = incrMaskConfig.getDouble("maxvalue", 9e36); + const eckit::LocalConfiguration maskBkgConfig(incrMaskConfig, "background"); oops::Variables maskVars(incrMaskConfig, "variable"); fv3jedi::State maskbkg(geom, maskVars, cycleDate); - maskbkg.read(bkgConfig); + maskbkg.read(maskBkgConfig); atlas::FieldSet xbFs; maskbkg.toFieldSet(xbFs); /// Create the atlas fieldset for the output increment @@ -144,7 +145,7 @@ namespace gdasapp { /// Loop over all points, if the mask is in range, zero out the increments auto bkgMask = atlas::array::make_view(xbFs[maskvarname]); for (atlas::idx_t jnode = 0; jnode < bkgMask.shape(0); ++jnode) { - if (bkgMask(jnode, 0) > minvalue && bkgMask(jnode, 0) < maxvalue) { + if (bkgMask(jnode, 0) < minvalue || bkgMask(jnode, 0) > maxvalue) { for (auto & var : varList.variables()) { auto inc = atlas::array::make_view(ensincFs[var]); for (atlas::idx_t level = 0; level < ensincFs[var].shape(1); ++level) {