Skip to content

Commit c0c82c6

Browse files
committed
update for aerosol_aeronet
1 parent b8375b2 commit c0c82c6

File tree

1 file changed

+43
-2
lines changed

1 file changed

+43
-2
lines changed

e3sm_diags/plot/aerosol_aeronet_plot.py

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,48 @@
2222
]
2323
# Border padding relative to subplot axes for saving individual panels
2424
# (left, bottom, right, top) in page coordinates.
25-
BORDER_PADDING = (-0.06, -0.03, 0.13, 0.03)
25+
BORDER_PADDING_COLORMAP = (-0.06, 0.25, 0.13, 0.25)
26+
BORDER_PADDING_SCATTER = (-0.08, -0.04, 0.15, 0.04)
27+
28+
29+
def _save_plot_aerosol_aeronet(fig, parameter):
30+
"""Save aerosol_aeronet plots with different border padding for each panel."""
31+
import os
32+
from matplotlib.transforms import Bbox
33+
from e3sm_diags.driver.utils.io import _get_output_dir
34+
35+
# Save the main plot
36+
for f in parameter.output_format:
37+
f = f.lower().split(".")[-1]
38+
fnm = os.path.join(
39+
_get_output_dir(parameter),
40+
parameter.output_file + "." + f,
41+
)
42+
plt.savefig(fnm)
43+
logger.info(f"Plot saved in: {fnm}")
44+
45+
# Save individual subplots with different border padding
46+
border_paddings = [BORDER_PADDING_COLORMAP, BORDER_PADDING_SCATTER]
47+
48+
for f in parameter.output_format_subplot:
49+
fnm = os.path.join(
50+
_get_output_dir(parameter),
51+
parameter.output_file,
52+
)
53+
page = fig.get_size_inches()
54+
55+
for idx, (panel, border_padding) in enumerate(zip(PANEL_CFG, border_paddings)):
56+
# Extent of subplot
57+
subpage = np.array(panel).reshape(2, 2)
58+
subpage[1, :] = subpage[0, :] + subpage[1, :]
59+
subpage = subpage + np.array(border_padding).reshape(2, 2)
60+
subpage = list(((subpage) * page).flatten())
61+
extent = Bbox.from_extents(*subpage)
62+
63+
# Save subplot
64+
fname = fnm + ".%i." % idx + f
65+
plt.savefig(fname, bbox_inches=extent)
66+
logger.info(f"Sub-plot saved in: {fname}")
2667

2768

2869
def plot(
@@ -108,4 +149,4 @@ def plot(
108149

109150
plt.loglog(ref_site_arr, test_site_arr, "kx", markersize=3.0, mfc="none")
110151

111-
_save_plot(fig, parameter, PANEL_CFG, BORDER_PADDING)
152+
_save_plot_aerosol_aeronet(fig, parameter)

0 commit comments

Comments
 (0)