From f479a40a3ae8002520241bf2218c722f005413b2 Mon Sep 17 00:00:00 2001 From: CoryMartin-NOAA Date: Fri, 28 Jun 2024 19:36:33 +0000 Subject: [PATCH 1/6] prepare for computing aero b matrix previous cycle --- parm/aero/berror/aero_diagb.yaml.j2 | 12 +++++++----- parm/aero/berror/aero_diffusionparm.yaml.j2 | 12 +++++++----- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/parm/aero/berror/aero_diagb.yaml.j2 b/parm/aero/berror/aero_diagb.yaml.j2 index f8e22f61..0bf32575 100644 --- a/parm/aero/berror/aero_diagb.yaml.j2 +++ b/parm/aero/berror/aero_diagb.yaml.j2 @@ -1,3 +1,5 @@ +{% set offset_td = "+3H" | to_timedelta %} +{% set background_time = current_cycle | add_to_datetime(offset_td) %} geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -10,9 +12,9 @@ geometry: npy: {{ npy_ges }} npz: {{ npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml -date: '{{ current_cycle | to_isotime }}' +date: '{{ background_time | to_isotime }}' background: - datetime: '{{ current_cycle | to_isotime }}' + datetime: '{{ background_time | to_isotime }}' filetype: fms restart state variables: [mass_fraction_of_sulfate_in_air, mass_fraction_of_hydrophobic_black_carbon_in_air, @@ -25,9 +27,9 @@ background: mass_fraction_of_sea_salt002_in_air, mass_fraction_of_sea_salt003_in_air, mass_fraction_of_sea_salt004_in_air] datapath: ./bkg - filename_core: '{{ current_cycle | to_fv3time }}.fv_core.res.nc' - filename_trcr: '{{ current_cycle | to_fv3time }}.fv_tracer.res.nc' - filename_cplr: '{{ current_cycle | to_fv3time }}.coupler.res' + filename_core: '{{ background_time | to_fv3time }}.fv_core.res.nc' + filename_trcr: '{{ background_time | to_fv3time }}.fv_tracer.res.nc' + filename_cplr: '{{ background_time | to_fv3time }}.coupler.res' background error: filetype: fms restart diff --git a/parm/aero/berror/aero_diffusionparm.yaml.j2 b/parm/aero/berror/aero_diffusionparm.yaml.j2 index d82a12ac..f0924845 100644 --- a/parm/aero/berror/aero_diffusionparm.yaml.j2 +++ b/parm/aero/berror/aero_diffusionparm.yaml.j2 @@ -1,3 +1,5 @@ +{% set offset_td = "+3H" | to_timedelta %} +{% set background_time = current_cycle | add_to_datetime(offset_td) %} geometry: fms initialization: namelist filename: ./fv3jedi/fmsmpp.nml @@ -10,14 +12,14 @@ geometry: npy: {{ npy_ges }} npz: {{ npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml -date: '{{ current_cycle | to_isotime }}' +date: '{{ background_time | to_isotime }}' background: - datetime: '{{ current_cycle | to_isotime }}' + datetime: '{{ background_time | to_isotime }}' filetype: fms restart datapath: ./bkg - filename_core: '{{ current_cycle | to_fv3time }}.fv_core.res.nc' - filename_trcr: '{{ current_cycle | to_fv3time }}.fv_tracer.res.nc' - filename_cplr: '{{ current_cycle | to_fv3time }}.coupler.res' + filename_core: '{{ background_time | to_fv3time }}.fv_core.res.nc' + filename_trcr: '{{ background_time | to_fv3time }}.fv_tracer.res.nc' + filename_cplr: '{{ background_time | to_fv3time }}.coupler.res' state variables: [mass_fraction_of_sulfate_in_air, mass_fraction_of_hydrophobic_black_carbon_in_air, mass_fraction_of_hydrophilic_black_carbon_in_air, From 40c2d77e4849c6caa57421cc932296abb217d135 Mon Sep 17 00:00:00 2001 From: CoryMartin-NOAA Date: Fri, 28 Jun 2024 20:43:20 +0000 Subject: [PATCH 2/6] use middle of window --- parm/aero/berror/aero_diagb.yaml.j2 | 2 +- parm/aero/berror/aero_diffusionparm.yaml.j2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/parm/aero/berror/aero_diagb.yaml.j2 b/parm/aero/berror/aero_diagb.yaml.j2 index 0bf32575..d029954f 100644 --- a/parm/aero/berror/aero_diagb.yaml.j2 +++ b/parm/aero/berror/aero_diagb.yaml.j2 @@ -1,4 +1,4 @@ -{% set offset_td = "+3H" | to_timedelta %} +{% set offset_td = "+6H" | to_timedelta %} {% set background_time = current_cycle | add_to_datetime(offset_td) %} geometry: fms initialization: diff --git a/parm/aero/berror/aero_diffusionparm.yaml.j2 b/parm/aero/berror/aero_diffusionparm.yaml.j2 index f0924845..8a632876 100644 --- a/parm/aero/berror/aero_diffusionparm.yaml.j2 +++ b/parm/aero/berror/aero_diffusionparm.yaml.j2 @@ -1,4 +1,4 @@ -{% set offset_td = "+3H" | to_timedelta %} +{% set offset_td = "+6H" | to_timedelta %} {% set background_time = current_cycle | add_to_datetime(offset_td) %} geometry: fms initialization: From 50dc266b71ae0b5230cb7334060949017e80d545 Mon Sep 17 00:00:00 2001 From: CoryMartin-NOAA Date: Tue, 9 Jul 2024 16:42:36 +0000 Subject: [PATCH 3/6] initial commit before compile/test --- parm/aero/berror/aero_diagb.yaml.j2 | 29 ++++++--- utils/chem/chem_diagb.h | 96 ++++++++++++++++------------- 2 files changed, 75 insertions(+), 50 deletions(-) diff --git a/parm/aero/berror/aero_diagb.yaml.j2 b/parm/aero/berror/aero_diagb.yaml.j2 index 8499cf90..3e9bc0de 100644 --- a/parm/aero/berror/aero_diagb.yaml.j2 +++ b/parm/aero/berror/aero_diagb.yaml.j2 @@ -35,12 +35,27 @@ background error: filename_trcr: stddev.fv_tracer.res.nc filename_cplr: stddev.coupler.res -climate background error stddev: - filetype: fms restart - skip coupler file: true - datapath: ./clm_stddev - filename_trcr: stddev.fv_tracer.res.nc - filename_cplr: stddev.coupler.res +climate background error: + geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ layout_x }} + - {{ layout_y }} + npx: {{ npx_clim_b }} + npy: {{ npy_clim_b }} + npz: {{ npz_ges }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml + climate background error stddev: + filetype: fms restart + skip coupler file: true + datapath: ./clm_stddev + filename_trcr: stddev.fv_tracer.res.nc + filename_cplr: stddev.coupler.res + diagb weight: 0.5 + staticb rescaling factor: 2.0 variables: name: @@ -60,8 +75,6 @@ variables: - mass_fraction_of_sea_salt004_in_air rescale: 2.0 # rescales the filtered std. dev. by "rescale" -diagb weight: 0.5 -staticb rescaling factor: 2.0 number of halo points: 4 number of neighbors: 16 simple smoothing: diff --git a/utils/chem/chem_diagb.h b/utils/chem/chem_diagb.h index 55ecfcc3..ecb2c732 100644 --- a/utils/chem/chem_diagb.h +++ b/utils/chem/chem_diagb.h @@ -230,54 +230,66 @@ namespace gdasapp { } // Rescale - double rescale; - fullConfig.get("rescale", rescale); - util::multiplyFieldSet(bkgErrFs, rescale); - - // Hybrid diagb_weight coefficient - // std = diagb_weight*diagb_std + (1-diagb_weight)*Climat_std - double diagb_weight; - fullConfig.get("diagb weight", diagb_weight); - // Initialize and read the climatological background error standard deviation field - oops::Log::info() << "====================== read climat bkg error std dev" << std::endl; - fv3jedi::Increment ClimBkgErrorStdDev(geom, chemVars, cycleDate); - ClimBkgErrorStdDev.zero(); - const eckit::LocalConfiguration ClimBkgErrorStdDevConfig(fullConfig, - "climate background error stddev"); - ClimBkgErrorStdDev.read(ClimBkgErrorStdDevConfig); - atlas::FieldSet ClimBkgErrorStdDevFs; - ClimBkgErrorStdDev.toFieldSet(ClimBkgErrorStdDevFs); - - // Replace negative values with zeros - for (const auto &var : chemVars.variables()) { - auto ClimBkgErrView = atlas::array::make_view(ClimBkgErrorStdDevFs[var]); - for (atlas::idx_t jnode = 0; jnode < ClimBkgErrorStdDevFs[var].shape(0); ++jnode) { - for (atlas::idx_t level = 0; level < ClimBkgErrorStdDevFs[var].shape(1); ++level) { - ClimBkgErrView(jnode, level) = std::max(ClimBkgErrView(jnode, level), 0.0); - } - } + if (fullConfig.has("rescale")) { + double rescale; + fullConfig.get("rescale", rescale); + util::multiplyFieldSet(bkgErrFs, rescale); } - // Staticb rescale - double rescale_staticb; - fullConfig.get("staticb rescaling factor", rescale_staticb); + bkgErr.fromFieldSet(bkgErrFs); + + // Hybrid B option + if (fullConfig.has("climate background error")) { + const eckit::LocalConfiguration ClimBConfig(fullConfig, "climate background error"); + // Hybrid diagb_weight coefficient + // std = diagb_weight*diagb_std + (1-diagb_weight)*Climat_std + double diagb_weight; + ClimBConfig.get("diagb weight", diagb_weight); + // Initialize and read the climatological background error standard deviation field + oops::Log::info() << "====================== read climat bkg error std dev" << std::endl; + const eckit::LocalConfiguration climBGeomConfig(ClimBConfig, "geometry"); + const fv3jedi::Geometry climBGeom(climBGeomConfig, this->getComm()); + fv3jedi::Increment ClimBkgErrorStdDevOrig(climBGeom, chemVars, cycleDate); + ClimBkgErrorStdDevOrig.zero(); + const eckit::LocalConfiguration ClimBkgErrorStdDevConfig(ClimBConfig, + "climate background error stddev"); + ClimBkgErrorStdDevOrig.read(ClimBkgErrorStdDevConfig); + // interpolate to background resolution + fv3jedi::Increment ClimBkgErrorStdDev(geom, ClimBkgErrorStdDevOrig); + atlas::FieldSet ClimBkgErrorStdDevFs; + ClimBkgErrorStdDev.toFieldSet(ClimBkgErrorStdDevFs); + + // Replace negative values with zeros + for (const auto &var : chemVars.variables()) { + auto ClimBkgErrView = atlas::array::make_view(ClimBkgErrorStdDevFs[var]); + for (atlas::idx_t jnode = 0; jnode < ClimBkgErrorStdDevFs[var].shape(0); ++jnode) { + for (atlas::idx_t level = 0; level < ClimBkgErrorStdDevFs[var].shape(1); ++level) { + ClimBkgErrView(jnode, level) = std::max(ClimBkgErrView(jnode, level), 0.0); + } + } + } + + // Staticb rescale + double rescale_staticb; + ClimBConfig.get("staticb rescaling factor", rescale_staticb); - // Combine diagb and climatological background errors - fv3jedi::Increment stddev_hybrid(geom, chemVars, cycleDate); - stddev_hybrid.zero(); + // Combine diagb and climatological background errors + fv3jedi::Increment stddev_hybrid(geom, chemVars, cycleDate); + stddev_hybrid.zero(); - // Convert FieldSets to States for accumulation - fv3jedi::State bkgErrState(geom, chemVars, cycleDate); - bkgErrState.fromFieldSet(bkgErrFs); + // Convert FieldSets to States for accumulation + fv3jedi::State bkgErrState(geom, chemVars, cycleDate); + bkgErrState.fromFieldSet(bkgErrFs); - fv3jedi::State ClimBkgErrorStdDevState(geom, chemVars, cycleDate); - ClimBkgErrorStdDevState.fromFieldSet(ClimBkgErrorStdDevFs); + fv3jedi::State ClimBkgErrorStdDevState(geom, chemVars, cycleDate); + ClimBkgErrorStdDevState.fromFieldSet(ClimBkgErrorStdDevFs); - // Accumulate the fields with the given weights - stddev_hybrid.accumul(diagb_weight, bkgErrState); - stddev_hybrid.accumul((1.0 - diagb_weight)*rescale_staticb, ClimBkgErrorStdDevState); - // Use the hybrid increment - bkgErr = stddev_hybrid; + // Accumulate the fields with the given weights + stddev_hybrid.accumul(diagb_weight, bkgErrState); + stddev_hybrid.accumul((1.0 - diagb_weight)*rescale_staticb, ClimBkgErrorStdDevState); + // Use the hybrid increment + bkgErr = stddev_hybrid; + } // Save the background error const eckit::LocalConfiguration bkgErrorConfig(fullConfig, "background error"); From b2bea994426508e4f1b57570ff4c1566e7bd654e Mon Sep 17 00:00:00 2001 From: CoryMartin-NOAA Date: Tue, 9 Jul 2024 18:24:01 +0000 Subject: [PATCH 4/6] before merge --- parm/aero/berror/aero_diagb.yaml.j2 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/parm/aero/berror/aero_diagb.yaml.j2 b/parm/aero/berror/aero_diagb.yaml.j2 index 3e9bc0de..dff8aff9 100644 --- a/parm/aero/berror/aero_diagb.yaml.j2 +++ b/parm/aero/berror/aero_diagb.yaml.j2 @@ -25,6 +25,7 @@ background: mass_fraction_of_sea_salt002_in_air, mass_fraction_of_sea_salt003_in_air, mass_fraction_of_sea_salt004_in_air] datapath: ./bkg + skip coupler file: true filename_core: '{{ current_cycle | to_fv3time }}.fv_core.res.nc' filename_trcr: '{{ current_cycle | to_fv3time }}.fv_tracer.res.nc' filename_cplr: '{{ current_cycle | to_fv3time }}.coupler.res' @@ -44,8 +45,8 @@ climate background error: layout: - {{ layout_x }} - {{ layout_y }} - npx: {{ npx_clim_b }} - npy: {{ npy_clim_b }} + npx: 97 + npy: 97 npz: {{ npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml climate background error stddev: From 375cbb19e50470f48774c19d3d54751876ba438f Mon Sep 17 00:00:00 2001 From: CoryMartin-NOAA Date: Thu, 11 Jul 2024 19:04:45 +0000 Subject: [PATCH 5/6] Include changes for convert state --- parm/aero/berror/aero_diagb.yaml.j2 | 28 ++++++------ parm/aero/berror/aero_diffusionparm.yaml.j2 | 12 ++--- parm/aero/berror/aero_interp.yaml.j2 | 50 +++++++++++++++++++++ utils/chem/chem_diagb.h | 1 + 4 files changed, 71 insertions(+), 20 deletions(-) create mode 100644 parm/aero/berror/aero_interp.yaml.j2 diff --git a/parm/aero/berror/aero_diagb.yaml.j2 b/parm/aero/berror/aero_diagb.yaml.j2 index 18b9f558..4e50d496 100644 --- a/parm/aero/berror/aero_diagb.yaml.j2 +++ b/parm/aero/berror/aero_diagb.yaml.j2 @@ -8,13 +8,13 @@ geometry: layout: - {{ layout_x }} - {{ layout_y }} - npx: {{ npx_ges }} - npy: {{ npy_ges }} - npz: {{ npz_ges }} + npx: {{ npx_anl }} + npy: {{ npy_anl }} + npz: {{ npz_anl }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml -date: '{{ background_time | to_isotime }}' +date: '{{ background_time | to_isotime }}' background: - datetime: '{{ background_time | to_isotime }}' + datetime: '{{ background_time | to_isotime }}' filetype: fms restart state variables: [mass_fraction_of_sulfate_in_air, mass_fraction_of_hydrophobic_black_carbon_in_air, @@ -27,9 +27,9 @@ background: mass_fraction_of_sea_salt002_in_air, mass_fraction_of_sea_salt003_in_air, mass_fraction_of_sea_salt004_in_air] datapath: ./bkg - filename_core: '{{ background_time | to_fv3time }}.fv_core.res.nc' - filename_trcr: '{{ background_time | to_fv3time }}.fv_tracer.res.nc' - filename_cplr: '{{ background_time | to_fv3time }}.coupler.res' + filename_core: '{{ background_time | to_fv3time }}.anlres.fv_core.res.nc' + filename_trcr: '{{ background_time | to_fv3time }}.anlres.fv_tracer.res.nc' + filename_cplr: '{{ background_time | to_fv3time }}.anlres.coupler.res' background error: filetype: fms restart @@ -46,8 +46,8 @@ climate background error: layout: - {{ layout_x }} - {{ layout_y }} - npx: 97 - npy: 97 + npx: {{ npx_clim_b }} + npy: {{ npy_clim_b }} npz: {{ npz_ges }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml climate background error stddev: @@ -56,7 +56,7 @@ climate background error: datapath: ./clm_stddev filename_trcr: stddev.fv_tracer.res.nc filename_cplr: stddev.coupler.res - diagb weight: 0.5 + diagb weight: 0.9 staticb rescaling factor: 2.0 variables: @@ -76,9 +76,9 @@ variables: - mass_fraction_of_sea_salt003_in_air - mass_fraction_of_sea_salt004_in_air -rescale: 2.0 # rescales the filtered std. dev. by "rescale" -number of halo points: 4 +rescale: 20.0 # rescales the filtered std. dev. by "rescale" +number of halo points: 16 number of neighbors: 16 simple smoothing: - horizontal iterations: 0 + horizontal iterations: 0 vertical iterations: 0 diff --git a/parm/aero/berror/aero_diffusionparm.yaml.j2 b/parm/aero/berror/aero_diffusionparm.yaml.j2 index 8a632876..9423bdff 100644 --- a/parm/aero/berror/aero_diffusionparm.yaml.j2 +++ b/parm/aero/berror/aero_diffusionparm.yaml.j2 @@ -8,18 +8,18 @@ geometry: layout: - {{ layout_x }} - {{ layout_y }} - npx: {{ npx_ges }} - npy: {{ npy_ges }} - npz: {{ npz_ges }} + npx: {{ npx_anl }} + npy: {{ npy_anl }} + npz: {{ npz_anl }} field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml date: '{{ background_time | to_isotime }}' background: datetime: '{{ background_time | to_isotime }}' filetype: fms restart datapath: ./bkg - filename_core: '{{ background_time | to_fv3time }}.fv_core.res.nc' - filename_trcr: '{{ background_time | to_fv3time }}.fv_tracer.res.nc' - filename_cplr: '{{ background_time | to_fv3time }}.coupler.res' + filename_core: '{{ background_time | to_fv3time }}.anlres.fv_core.res.nc' + filename_trcr: '{{ background_time | to_fv3time }}.anlres.fv_tracer.res.nc' + filename_cplr: '{{ background_time | to_fv3time }}.anlres.coupler.res' state variables: [mass_fraction_of_sulfate_in_air, mass_fraction_of_hydrophobic_black_carbon_in_air, mass_fraction_of_hydrophilic_black_carbon_in_air, diff --git a/parm/aero/berror/aero_interp.yaml.j2 b/parm/aero/berror/aero_interp.yaml.j2 new file mode 100644 index 00000000..674345e5 --- /dev/null +++ b/parm/aero/berror/aero_interp.yaml.j2 @@ -0,0 +1,50 @@ +{% set offset_td = "+6H" | to_timedelta %} +{% set background_time = current_cycle | add_to_datetime(offset_td) %} +input geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ layout_x }} + - {{ layout_y }} + npx: {{ npx_ges }} + npy: {{ npy_ges }} + npz: {{ npz_ges }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml +output geometry: + fms initialization: + namelist filename: ./fv3jedi/fmsmpp.nml + field table filename: ./fv3jedi/field_table + akbk: ./fv3jedi/akbk.nc4 + layout: + - {{ layout_x }} + - {{ layout_y }} + npx: {{ npx_anl }} + npy: {{ npy_anl }} + npz: {{ npz_anl }} + field metadata override: ./fv3jedi/fv3jedi_fieldmetadata_restart.yaml +states: +- input: + datetime: '{{ background_time | to_isotime }}' + filetype: fms restart + state variables: [mass_fraction_of_sulfate_in_air, + mass_fraction_of_hydrophobic_black_carbon_in_air, + mass_fraction_of_hydrophilic_black_carbon_in_air, + mass_fraction_of_hydrophobic_organic_carbon_in_air, + mass_fraction_of_hydrophilic_organic_carbon_in_air, + mass_fraction_of_dust001_in_air, mass_fraction_of_dust002_in_air, + mass_fraction_of_dust003_in_air, mass_fraction_of_dust004_in_air, + mass_fraction_of_dust005_in_air, mass_fraction_of_sea_salt001_in_air, + mass_fraction_of_sea_salt002_in_air, mass_fraction_of_sea_salt003_in_air, + mass_fraction_of_sea_salt004_in_air] + datapath: ./bkg + filename_core: '{{ background_time | to_fv3time }}.fv_core.res.nc' + filename_trcr: '{{ background_time | to_fv3time }}.fv_tracer.res.nc' + filename_cplr: '{{ background_time | to_fv3time }}.coupler.res' + output: + filetype: fms restart + datapath: ./bkg + filename_core: 'anlres.fv_core.res.nc' + filename_trcr: 'anlres.fv_tracer.res.nc' + filename_cplr: 'anlres.coupler.res' diff --git a/utils/chem/chem_diagb.h b/utils/chem/chem_diagb.h index ecb2c732..703d4841 100644 --- a/utils/chem/chem_diagb.h +++ b/utils/chem/chem_diagb.h @@ -132,6 +132,7 @@ namespace gdasapp { // Loop through variables for (auto & var : chemVars.variables()) { + nodeColumns.haloExchange(xbFs[var]); oops::Log::info() << "====================== std dev for " << var << std::endl; auto bkg = atlas::array::make_view(xbFs[var]); auto stdDevBkg = atlas::array::make_view(bkgErrFs[var]); From 63fff0dad06f2603065ae2c57331a985f598087e Mon Sep 17 00:00:00 2001 From: CoryMartin-NOAA Date: Thu, 11 Jul 2024 19:18:52 +0000 Subject: [PATCH 6/6] make more options configurable --- parm/aero/berror/aero_diagb.yaml.j2 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/parm/aero/berror/aero_diagb.yaml.j2 b/parm/aero/berror/aero_diagb.yaml.j2 index 4e50d496..31cf00b3 100644 --- a/parm/aero/berror/aero_diagb.yaml.j2 +++ b/parm/aero/berror/aero_diagb.yaml.j2 @@ -56,8 +56,8 @@ climate background error: datapath: ./clm_stddev filename_trcr: stddev.fv_tracer.res.nc filename_cplr: stddev.coupler.res - diagb weight: 0.9 - staticb rescaling factor: 2.0 + diagb weight: {{ aero_diagb_weight }} + staticb rescaling factor: {{ aero_staticb_rescaling_factor }} variables: name: @@ -76,9 +76,9 @@ variables: - mass_fraction_of_sea_salt003_in_air - mass_fraction_of_sea_salt004_in_air -rescale: 20.0 # rescales the filtered std. dev. by "rescale" -number of halo points: 16 -number of neighbors: 16 +rescale: {{ aero_diagb_rescale }} # rescales the filtered std. dev. by "rescale" +number of halo points: {{ aero_diagb_n_halo }} +number of neighbors: {{ aero_diagb_n_neighbors }} simple smoothing: - horizontal iterations: 0 - vertical iterations: 0 + horizontal iterations: {{ aero_diagb_smooth_horiz_iter }} + vertical iterations: {{ aero_diagb_smooth_vert_iter }}