Skip to content

Commit

Permalink
edit in-place modified derived variables (#805)
Browse files Browse the repository at this point in the history
* edit in-place modified derived variables

to distinguish them from raw values potentially requested elsewhere in the code.

* prepend ABURD* and Mass_ vars

* add runtime checks for bad units
  • Loading branch information
mahf708 authored Apr 12, 2024
1 parent 893db5c commit 09de700
Show file tree
Hide file tree
Showing 10 changed files with 190 additions and 178 deletions.
4 changes: 2 additions & 2 deletions e3sm_diags/derivations/acme.py
Original file line number Diff line number Diff line change
Expand Up @@ -2191,7 +2191,7 @@ def aero_burden_fxn(var):

# Add burden vars to derived_variables
for aero_burden_item in aero_burden_list:
derived_variables[aero_burden_item] = OrderedDict(
derived_variables[f"_{aero_burden_item}"] = OrderedDict(
[((aero_burden_item,), aero_burden_fxn)]
)

Expand Down Expand Up @@ -2222,7 +2222,7 @@ def aero_mass_fxn(var):

# Add burden vars to derived_variables
for aero_mass_item in aero_mass_list:
derived_variables[aero_mass_item] = OrderedDict(
derived_variables[f"_{aero_mass_item}"] = OrderedDict(
[((aero_mass_item,), aero_mass_fxn)]
)

Expand Down
12 changes: 12 additions & 0 deletions e3sm_diags/driver/aerosol_budget_driver.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,21 @@ def calc_column_integral(data, aerosol, season):
try:
# if ABURDEN terms are available, use them
burden = data.get_climo_variable(f"ABURDEN{aerosol_name}", season)
if burden.units != "kg/m2":
raise RuntimeError(
f"ERROR in aerosol_budget_driver/calc_column_integral!"
f"ABURDEN{aerosol_name} at season {season} has units {burden.units}."
f"But kg/m2 units were expected."
)
except RuntimeError:
# if not, use the Mass_ terms and integrate over the column
mass = data.get_climo_variable(f"Mass_{aerosol}", season)
if mass.units != "kg/kg":
raise RuntimeError(
f"ERROR in aerosol_budget_driver/calc_column_integral!"
f"Mass_{aerosol} at season {season} has units {mass.units}."
f"But kg/kg units were expected."
)
hyai, hybi, ps = data.get_extra_variables_only(
f"Mass_{aerosol}", season, extra_vars=["hyai", "hybi", "PS"]
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -320,147 +320,147 @@ diff_levels = [-10, -8, -6, -4, -2, -1, -0.5, -0.25, 0.25, 0.5, 1, 2, 4, 6, 8, 1
[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_bc_srf"]
variables = ["_Mass_bc_srf"]
contour_levels = [0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550]
diff_levels = [-600, -400, -200, -100, -50, -25, -10, -5, 5, 10, 25, 50, 100, 200, 400, 600]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_ncl_srf"]
variables = ["_Mass_ncl_srf"]
contour_levels = [0, 50, 100, 200, 500, 1000, 5000, 10000, 20000]
diff_levels = [-1500, -1000, -500, -250, -100, -50, -25, -10, 10, 25, 50, 100, 250, 500, 1000, 1500]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_so4_srf"]
variables = ["_Mass_so4_srf"]
contour_levels = [0, 50, 100, 200, 400, 600, 800, 1000, 1500, 2000, 2500]
diff_levels = [-2000, -1500, -1000, -500, -250, -100, -50, -25, -10, 10, 25, 50, 100, 250, 500, 1000, 1500, 2000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_dst_srf"]
variables = ["_Mass_dst_srf"]
contour_levels = [0, 1000, 2000, 5000, 10000, 20000, 40000, 60000, 80000, 100000]
diff_levels = [-15000, -10000, -5000, -2500, -1000, -500, -250, -100, -50, -25, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000, 15000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_pom_srf"]
variables = ["_Mass_pom_srf"]
contour_levels = [0, 50, 100, 200, 400, 600, 800, 1000, 1500, 2000, 2500]
diff_levels = [-2000, -1500, -1000, -500, -250, -100, -50, -25, -10, 10, 25, 50, 100, 250, 500, 1000, 1500, 2000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_soa_srf"]
variables = ["_Mass_soa_srf"]
contour_levels = [0, 50, 100, 200, 400, 600, 800, 1000, 1500, 2000, 2500, 3000, 4000]
diff_levels = [-3000, -2000, -1500, -1000, -500, -250, -100, -50, -25, -10, 10, 25, 50, 100, 250, 500, 1000, 1500, 2000, 3000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_mom_srf"]
variables = ["_Mass_mom_srf"]
contour_levels = [0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 650, 750]
diff_levels = [-100, -50, -25, -10, -5, 5, 10, 25, 50, 100]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_bc_850"]
variables = ["_Mass_bc_850"]
contour_levels = [0, 5, 10, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200]
diff_levels = [-150, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 150]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_ncl_850"]
variables = ["_Mass_ncl_850"]
contour_levels = [0, 50, 100, 200, 500, 1000, 2000, 3000, 4000, 5000, 7000]
diff_levels = [-500, -400, -300, -200, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_so4_850"]
variables = ["_Mass_so4_850"]
contour_levels = [0, 10, 20, 50, 100, 150, 200, 250, 500, 750, 1000, 1500, 2000]
diff_levels = [-1500, -1000, -500, -400, -300, -200, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1000, 1500]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_dst_850"]
variables = ["_Mass_dst_850"]
contour_levels = [0, 1000, 2000, 5000, 10000, 20000, 30000, 40000, 50000, 70000, 90000, 120000]
diff_levels = [-10000, -8000, -6000, -4000, -2000, -1000, -500, -300, -200, -100, -50, -20, -10, 10, 20,50, 100, 200, 300, 500, 1000, 2000, 4000, 6000, 8000, 10000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_pom_850"]
variables = ["_Mass_pom_850"]
contour_levels = [0, 10, 20, 50, 100, 150, 200, 250, 500, 750, 1000, 1500, 2000]
diff_levels = [-900, -600, -400, -200, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 600, 900]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_soa_850"]
variables = ["_Mass_soa_850"]
contour_levels = [0, 50, 100, 200, 500, 1000, 2000, 3000, 4000, 5000, 7000]
diff_levels = [-3000, -1500, -500, -400, -300, -200, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1500, 3000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_mom_850"]
variables = ["_Mass_mom_850"]
contour_levels = [0, 1, 2, 5, 10, 20, 30, 40, 50, 100, 150, 200, 300]
diff_levels = [-30, -20, -10, -5, -4, -3, -2, -1, -0.5, 0.5, 1, 2, 3, 4, 5, 10, 20, 30]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_bc_330"]
variables = ["_Mass_bc_330"]
contour_levels = [0, 1, 2, 5, 10, 20, 30, 40, 50, 60]
diff_levels = [-50, -40, -30, -20, -10, -5, -4, -3, -2, -1, -0.5, 0.5, 1, 2, 3, 4, 5, 10, 20, 30, 40, 50]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_ncl_330"]
variables = ["_Mass_ncl_330"]
contour_levels = [0, 1, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 500]
diff_levels = [-50, -40, -30, -20, -10, -5, -4, -3, -2, -1, -0.5, 0.5, 1, 2, 3, 4, 5, 10, 20, 30, 40, 50]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_so4_330"]
variables = ["_Mass_so4_330"]
contour_levels = [0, 10, 20, 50, 100, 200, 300, 400, 500, 700, 1000]
diff_levels = [-700, -500, -400, -300, -200, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 700]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_dst_330"]
variables = ["_Mass_dst_330"]
contour_levels = [0, 100, 200, 500, 1000, 2000, 3000, 4000, 5000, 7000, 10000, 13000]
diff_levels = [-1000, -700, -500, -400, -300, -200, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 700, 1000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_pom_330"]
variables = ["_Mass_pom_330"]
contour_levels = [0, 1, 2, 5, 10, 20, 30, 40, 50, 100, 150, 200, 300]
diff_levels = [-200, -150, -100, -50, -40, -30, -20, -10, -5, -4, -3, -2, -1, -0.5, 0.5, 1, 2, 3, 4, 5, 10, 20, 30, 40, 50, 100, 150, 200]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_soa_330"]
variables = ["_Mass_soa_330"]
contour_levels = [0, 10, 20, 50, 100, 200, 300, 400, 500, 700, 1000, 1200]
diff_levels = [-700, -500, -400, -300, -200, -100, -50, -40, -30, -20, -10, -5, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 700]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "model_vs_model"
variables = ["Mass_mom_330"]
variables = ["_Mass_mom_330"]
contour_levels = [0, 0.1, 0.2, 0.5, 1, 2, 3, 4, 5, 7, 10]
diff_levels = [-1, -0.7, -0.5, -0.4, -0.3, -0.2, -0.1, -0.05, -0.02, -0.01, -0.005, 0.005, 0.01, 0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 1]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -474,147 +474,147 @@ diff_levels = [-20,-15,-10,-5,-2,2,5,10,15,20]
[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_bc_srf"]
variables = ["_Mass_bc_srf"]
contour_levels = [0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550]
diff_levels = [-600, -400, -200, -100, -50, -25, -10, -5, 5, 10, 25, 50, 100, 200, 400, 600]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_ncl_srf"]
variables = ["_Mass_ncl_srf"]
contour_levels = [0, 50, 100, 200, 500, 1000, 5000, 10000, 20000]
diff_levels = [-1500, -1000, -500, -250, -100, -50, -25, -10, 10, 25, 50, 100, 250, 500, 1000, 1500]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_so4_srf"]
variables = ["_Mass_so4_srf"]
contour_levels = [0, 50, 100, 200, 400, 600, 800, 1000, 1500, 2000, 2500]
diff_levels = [-2000, -1500, -1000, -500, -250, -100, -50, -25, -10, 10, 25, 50, 100, 250, 500, 1000, 1500, 2000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_dst_srf"]
variables = ["_Mass_dst_srf"]
contour_levels = [0, 1000, 2000, 5000, 10000, 20000, 40000, 60000, 80000, 100000]
diff_levels = [-15000, -10000, -5000, -2500, -1000, -500, -250, -100, -50, -25, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000, 15000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_pom_srf"]
variables = ["_Mass_pom_srf"]
contour_levels = [0, 50, 100, 200, 400, 600, 800, 1000, 1500, 2000, 2500]
diff_levels = [-2000, -1500, -1000, -500, -250, -100, -50, -25, -10, 10, 25, 50, 100, 250, 500, 1000, 1500, 2000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_soa_srf"]
variables = ["_Mass_soa_srf"]
contour_levels = [0, 50, 100, 200, 400, 600, 800, 1000, 1500, 2000, 2500, 3000, 4000]
diff_levels = [-3000, -2000, -1500, -1000, -500, -250, -100, -50, -25, -10, 10, 25, 50, 100, 250, 500, 1000, 1500, 2000, 3000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_mom_srf"]
variables = ["_Mass_mom_srf"]
contour_levels = [0, 50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 650, 750]
diff_levels = [-100, -50, -25, -10, -5, 5, 10, 25, 50, 100]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_bc_850"]
variables = ["_Mass_bc_850"]
contour_levels = [0, 5, 10, 20, 40, 60, 80, 100, 120, 140, 160, 180, 200]
diff_levels = [-150, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 150]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_ncl_850"]
variables = ["_Mass_ncl_850"]
contour_levels = [0, 50, 100, 200, 500, 1000, 2000, 3000, 4000, 5000, 7000]
diff_levels = [-500, -400, -300, -200, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_so4_850"]
variables = ["_Mass_so4_850"]
contour_levels = [0, 10, 20, 50, 100, 150, 200, 250, 500, 750, 1000, 1500, 2000]
diff_levels = [-1500, -1000, -500, -400, -300, -200, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1000, 1500]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_dst_850"]
variables = ["_Mass_dst_850"]
contour_levels = [0, 1000, 2000, 5000, 10000, 20000, 30000, 40000, 50000, 70000, 90000, 120000]
diff_levels = [-10000, -8000, -6000, -4000, -2000, -1000, -500, -300, -200, -100, -50, -20, -10, 10, 20,50, 100, 200, 300, 500, 1000, 2000, 4000, 6000, 8000, 10000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_pom_850"]
variables = ["_Mass_pom_850"]
contour_levels = [0, 10, 20, 50, 100, 150, 200, 250, 500, 750, 1000, 1500, 2000]
diff_levels = [-900, -600, -400, -200, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 600, 900]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_soa_850"]
variables = ["_Mass_soa_850"]
contour_levels = [0, 50, 100, 200, 500, 1000, 2000, 3000, 4000, 5000, 7000]
diff_levels = [-3000, -1500, -500, -400, -300, -200, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 1500, 3000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_mom_850"]
variables = ["_Mass_mom_850"]
contour_levels = [0, 1, 2, 5, 10, 20, 30, 40, 50, 100, 150, 200, 300]
diff_levels = [-30, -20, -10, -5, -4, -3, -2, -1, -0.5, 0.5, 1, 2, 3, 4, 5, 10, 20, 30]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_bc_330"]
variables = ["_Mass_bc_330"]
contour_levels = [0, 1, 2, 5, 10, 20, 30, 40, 50, 60]
diff_levels = [-50, -40, -30, -20, -10, -5, -4, -3, -2, -1, -0.5, 0.5, 1, 2, 3, 4, 5, 10, 20, 30, 40, 50]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_ncl_330"]
variables = ["_Mass_ncl_330"]
contour_levels = [0, 1, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 500]
diff_levels = [-50, -40, -30, -20, -10, -5, -4, -3, -2, -1, -0.5, 0.5, 1, 2, 3, 4, 5, 10, 20, 30, 40, 50]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_so4_330"]
variables = ["_Mass_so4_330"]
contour_levels = [0, 10, 20, 50, 100, 200, 300, 400, 500, 700, 1000]
diff_levels = [-700, -500, -400, -300, -200, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 700]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_dst_330"]
variables = ["_Mass_dst_330"]
contour_levels = [0, 100, 200, 500, 1000, 2000, 3000, 4000, 5000, 7000, 10000, 13000]
diff_levels = [-1000, -700, -500, -400, -300, -200, -100, -50, -40, -30, -20, -10, -5, -2, 2, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 700, 1000]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_pom_330"]
variables = ["_Mass_pom_330"]
contour_levels = [0, 1, 2, 5, 10, 20, 30, 40, 50, 100, 150, 200, 300]
diff_levels = [-200, -150, -100, -50, -40, -30, -20, -10, -5, -4, -3, -2, -1, -0.5, 0.5, 1, 2, 3, 4, 5, 10, 20, 30, 40, 50, 100, 150, 200]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_soa_330"]
variables = ["_Mass_soa_330"]
contour_levels = [0, 10, 20, 50, 100, 200, 300, 400, 500, 700, 1000, 1200]
diff_levels = [-700, -500, -400, -300, -200, -100, -50, -40, -30, -20, -10, -5, 5, 10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 700]

[#]
sets = ["annual_cycle_zonal_mean"]
case_id = "aero-no-ref-data"
variables = ["Mass_mom_330"]
variables = ["_Mass_mom_330"]
contour_levels = [0, 0.1, 0.2, 0.5, 1, 2, 3, 4, 5, 7, 10]
diff_levels = [-1, -0.7, -0.5, -0.4, -0.3, -0.2, -0.1, -0.05, -0.02, -0.01, -0.005, 0.005, 0.01, 0.02, 0.05, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 1]

Expand Down
Loading

0 comments on commit 09de700

Please sign in to comment.