From d58c804a4637c672ac1ad7e1eaa72a8a94b4ad4f Mon Sep 17 00:00:00 2001 From: ChengzhuZhang Date: Wed, 23 Oct 2024 14:00:41 -0700 Subject: [PATCH 1/3] convert units --- .../zonal_mean_2d_stratosphere_model_vs_obs.cfg | 12 ++++++------ e3sm_diags/driver/zonal_mean_2d_driver.py | 10 +++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/e3sm_diags/driver/default_diags/zonal_mean_2d_stratosphere_model_vs_obs.cfg b/e3sm_diags/driver/default_diags/zonal_mean_2d_stratosphere_model_vs_obs.cfg index 2346bec34..fcd749617 100644 --- a/e3sm_diags/driver/default_diags/zonal_mean_2d_stratosphere_model_vs_obs.cfg +++ b/e3sm_diags/driver/default_diags/zonal_mean_2d_stratosphere_model_vs_obs.cfg @@ -47,8 +47,8 @@ variables = ["H2OLNZ"] ref_name = "MERRA2" reference_name = "MERRA2 Reanalysis" seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] -contour_levels = [0.001, 0.0015, 0.002,0.0025,0.003,0.0035,0.004,0.0045,0.005] -diff_levels = [-0.001, -0.00075, -0.00050, -0.00025, -0.00005,0.00005,0.00025, 0.0005,0.00075,0.001] +contour_levels = [0.6,0.8, 1, 1.2, 1.6, 2, 2.5, 3, 3.5, 4] +diff_levels = [-3, -2,-1.5,-1,-0.5,-0.1,0.1,0.5,1,1.5,2,3] [#] sets = ["zonal_mean_2d_stratosphere"] @@ -71,7 +71,7 @@ reference_name = "MERRA2 Reanalysis" seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] diff_type = "relative" diff_title = "(Model - Obs.)/Obs. * 100" -contour_levels = [0.001, 0.0015, 0.002,0.0025,0.003,0.0035,0.004,0.0045,0.005] +contour_levels = [0.6,0.8, 1, 1.2, 1.6, 2, 2.5, 3, 3.5, 4] diff_levels = [-100, -75, -50, -30, -15, -5, 5, 15, 30, 50, 75, 100] [#] @@ -147,8 +147,8 @@ variables = ["H2OLNZ"] ref_name = "ERA5" reference_name = "ERA5 Reanalysis" seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] -contour_levels = [0.001, 0.0015, 0.002,0.0025,0.003,0.0035,0.004,0.0045,0.005] -diff_levels = [-0.001, -0.00075, -0.00050, -0.00025, -0.00005,0.00005,0.00025, 0.0005,0.00075,0.001] +contour_levels = [0.6,0.8, 1, 1.2, 1.6, 2, 2.5, 3, 3.5, 4] +diff_levels = [-3, -2,-1.5,-1,-0.5,-0.1,0.1,0.5,1,1.5,2,3] [#] sets = ["zonal_mean_2d_stratosphere"] @@ -171,5 +171,5 @@ reference_name = "ERA5 Reanalysis" seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] diff_type = "relative" diff_title = "(Model - Obs.)/Obs. * 100" -contour_levels = [0.001, 0.0015, 0.002,0.0025,0.003,0.0035,0.004,0.0045,0.005] +contour_levels = [0.6,0.8, 1, 1.2, 1.6, 2, 2.5, 3, 3.5, 4] diff_levels = [-100, -75, -50, -30, -15, -5, 5, 15, 30, 50, 75, 100] diff --git a/e3sm_diags/driver/zonal_mean_2d_driver.py b/e3sm_diags/driver/zonal_mean_2d_driver.py index 0ddb14519..f2a79af99 100755 --- a/e3sm_diags/driver/zonal_mean_2d_driver.py +++ b/e3sm_diags/driver/zonal_mean_2d_driver.py @@ -161,16 +161,16 @@ def run_diag( # Note this is a special case to handle small values of stratosphere specific humidity. # The general derived variable process converts specific humidity to units [g/kg] - # Following converts from g/kg to ppm + # Following converts from g/kg to ppm by volume. if ( parameter.current_set == "zonal_mean_2d_stratosphere" and parameter.var_id == "Q" ): - mv1_p = mv1_p * 1000.0 - mv1_p.units = "ppm" - mv2_p = mv2_p * 1000.0 - mv2_p.units = "ppm" + mv1_p = mv1_p * 28.97 / 18.0 * 1000.0 + mv1_p.units = "ppmv" + mv2_p = mv2_p * 28.97 / 18.0 * 1000.0 + mv2_p.units = "ppmv" # Regrid towards the lower resolution of the two # variables for calculating the difference. mv1_p_reg, mv2_p_reg = utils.general.regrid_to_lower_res( From 5c209ed32c8ec56ffb23f0dc1c975b7d063e47df Mon Sep 17 00:00:00 2001 From: chengzhuzhang Date: Wed, 23 Oct 2024 16:47:32 -0500 Subject: [PATCH 2/3] adjust contour levels --- ...onal_mean_2d_stratosphere_model_vs_obs.cfg | 24 +++++++++---------- e3sm_diags/driver/zonal_mean_2d_driver.py | 14 +++++------ 2 files changed, 18 insertions(+), 20 deletions(-) diff --git a/e3sm_diags/driver/default_diags/zonal_mean_2d_stratosphere_model_vs_obs.cfg b/e3sm_diags/driver/default_diags/zonal_mean_2d_stratosphere_model_vs_obs.cfg index fcd749617..75430dfbf 100644 --- a/e3sm_diags/driver/default_diags/zonal_mean_2d_stratosphere_model_vs_obs.cfg +++ b/e3sm_diags/driver/default_diags/zonal_mean_2d_stratosphere_model_vs_obs.cfg @@ -37,8 +37,8 @@ variables = ["Q"] ref_name = "MERRA2" reference_name = "MERRA2 Reanalysis" seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] -contour_levels = [0.6,0.8, 1, 1.2, 1.6, 2, 2.5, 3, 3.5, 4] -diff_levels = [-3, -2,-1.5,-1,-0.5,-0.1,0.1,0.5,1,1.5,2,3] +contour_levels = [0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,7,8] +diff_levels = [-4, -3, -2, -1, -0.5,-0.1, 0.1,0.5, 1,2,3,4] [#] sets = ["zonal_mean_2d_stratosphere"] @@ -47,8 +47,8 @@ variables = ["H2OLNZ"] ref_name = "MERRA2" reference_name = "MERRA2 Reanalysis" seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] -contour_levels = [0.6,0.8, 1, 1.2, 1.6, 2, 2.5, 3, 3.5, 4] -diff_levels = [-3, -2,-1.5,-1,-0.5,-0.1,0.1,0.5,1,1.5,2,3] +contour_levels = [0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,7,8] +diff_levels = [-4, -3, -2, -1, -0.5,-0.1, 0.1,0.5, 1,2,3,4] [#] sets = ["zonal_mean_2d_stratosphere"] @@ -59,7 +59,7 @@ reference_name = "MERRA2 Reanalysis" seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] diff_type = "relative" diff_title = "(Model - Obs.)/Obs. * 100" -contour_levels = [0.6,0.8, 1, 1.2, 1.6, 2, 2.5, 3, 3.5, 4] +contour_levels = [0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,7,8] diff_levels = [-100, -75, -50, -30, -15, -5, 5, 15, 30, 50, 75, 100] [#] @@ -71,7 +71,7 @@ reference_name = "MERRA2 Reanalysis" seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] diff_type = "relative" diff_title = "(Model - Obs.)/Obs. * 100" -contour_levels = [0.6,0.8, 1, 1.2, 1.6, 2, 2.5, 3, 3.5, 4] +contour_levels = [0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,7,8] diff_levels = [-100, -75, -50, -30, -15, -5, 5, 15, 30, 50, 75, 100] [#] @@ -137,8 +137,8 @@ variables = ["Q"] ref_name = "ERA5" reference_name = "ERA5 Reanalysis" seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] -contour_levels = [0.6,0.8, 1, 1.2, 1.6, 2, 2.5, 3, 3.5, 4] -diff_levels = [-3, -2,-1.5,-1,-0.5,-0.1,0.1,0.5,1,1.5,2,3] +contour_levels = [0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,7,8] +diff_levels = [-4, -3, -2, -1, -0.5,-0.1, 0.1,0.5, 1,2,3,4] [#] sets = ["zonal_mean_2d_stratosphere"] @@ -147,8 +147,8 @@ variables = ["H2OLNZ"] ref_name = "ERA5" reference_name = "ERA5 Reanalysis" seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] -contour_levels = [0.6,0.8, 1, 1.2, 1.6, 2, 2.5, 3, 3.5, 4] -diff_levels = [-3, -2,-1.5,-1,-0.5,-0.1,0.1,0.5,1,1.5,2,3] +contour_levels = [0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,7,8] +diff_levels = [-4, -3, -2, -1, -0.5,-0.1, 0.1,0.5, 1,2,3,4] [#] sets = ["zonal_mean_2d_stratosphere"] @@ -159,7 +159,7 @@ reference_name = "ERA5 Reanalysis" seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] diff_type = "relative" diff_title = "(Model - Obs.)/Obs. * 100" -contour_levels = [0.6,0.8, 1, 1.2, 1.6, 2, 2.5, 3, 3.5, 4] +contour_levels = [0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,7,8] diff_levels = [-100, -75, -50, -30, -15, -5, 5, 15, 30, 50, 75, 100] [#] @@ -171,5 +171,5 @@ reference_name = "ERA5 Reanalysis" seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] diff_type = "relative" diff_title = "(Model - Obs.)/Obs. * 100" -contour_levels = [0.6,0.8, 1, 1.2, 1.6, 2, 2.5, 3, 3.5, 4] +contour_levels = [0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,7,8] diff_levels = [-100, -75, -50, -30, -15, -5, 5, 15, 30, 50, 75, 100] diff --git a/e3sm_diags/driver/zonal_mean_2d_driver.py b/e3sm_diags/driver/zonal_mean_2d_driver.py index f2a79af99..20fa1fad5 100755 --- a/e3sm_diags/driver/zonal_mean_2d_driver.py +++ b/e3sm_diags/driver/zonal_mean_2d_driver.py @@ -163,14 +163,12 @@ def run_diag( # The general derived variable process converts specific humidity to units [g/kg] # Following converts from g/kg to ppm by volume. - if ( - parameter.current_set == "zonal_mean_2d_stratosphere" - and parameter.var_id == "Q" - ): - mv1_p = mv1_p * 28.97 / 18.0 * 1000.0 - mv1_p.units = "ppmv" - mv2_p = mv2_p * 28.97 / 18.0 * 1000.0 - mv2_p.units = "ppmv" + if parameter.current_set == "zonal_mean_2d_stratosphere": + if parameter.var_id == "Q" or parameter.var_id == "H2OLNZ": + mv1_p = mv1_p * 28.97 / 18.0 * 1000.0 + mv1_p.units = "ppmv" + mv2_p = mv2_p * 28.97 / 18.0 * 1000.0 + mv2_p.units = "ppmv" # Regrid towards the lower resolution of the two # variables for calculating the difference. mv1_p_reg, mv2_p_reg = utils.general.regrid_to_lower_res( From 0bacc3d5ecdc10aeb4c1a8e3060f3ce657394bc6 Mon Sep 17 00:00:00 2001 From: chengzhuzhang Date: Wed, 23 Oct 2024 16:49:22 -0500 Subject: [PATCH 3/3] update for model for model --- .../zonal_mean_2d_stratosphere_model_vs_model.cfg | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/e3sm_diags/driver/default_diags/zonal_mean_2d_stratosphere_model_vs_model.cfg b/e3sm_diags/driver/default_diags/zonal_mean_2d_stratosphere_model_vs_model.cfg index 9bd684ed4..8fdc4642d 100644 --- a/e3sm_diags/driver/default_diags/zonal_mean_2d_stratosphere_model_vs_model.cfg +++ b/e3sm_diags/driver/default_diags/zonal_mean_2d_stratosphere_model_vs_model.cfg @@ -24,13 +24,21 @@ seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "1 contour_levels = [0.5,1,2,5,10,15,20,25,30,40,50,70] diff_levels = [-15,-10,-5,-2,-1,-0.5, 0.5, 1,2,5,10,15] +[#] +sets = ["zonal_mean_2d_stratosphere"] +case_id = "model_vs_model" +variables = ["H2OLNZ"] +seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] +contour_levels = [0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,7,8] +diff_levels = [-4, -3, -2, -1, -0.5,-0.1, 0.1,0.5, 1,2,3,4] + [#] sets = ["zonal_mean_2d_stratosphere"] case_id = "model_vs_model" variables = ["Q"] seasons = ["ANN", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "DJF", "MAM", "JJA", "SON"] -contour_levels = [0.6,0.8, 1, 1.2, 1.6, 2, 2.5, 3, 3.5, 4] -diff_levels = [-3, -2,-1.5,-1,-0.5,-0.1,0.1,0.5,1,1.5,2,3] +contour_levels = [0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,7,8] +diff_levels = [-4, -3, -2, -1, -0.5,-0.1, 0.1,0.5, 1,2,3,4] [#] sets = ["zonal_mean_2d_stratosphere"]