From 41d3ba5a1a7aacb22b98e865d5fb179f921e4e62 Mon Sep 17 00:00:00 2001 From: Francesca Pearce Date: Fri, 20 May 2022 11:53:10 +0100 Subject: [PATCH 01/59] Adding all the files for calculating the full column and ocean heat transports. Includes 4 files per transport calculation: recipe, poisson solver, single model and multi model diagnostics. Committed as a separate folder - files will eventually need to be distributed to the correct /recipes and /diag_scripts directories. --- .../multi_model_diagnostics.py | 742 ++++++++++++++++++ .../multi_model_oht_diag.py | 649 +++++++++++++++ .../implied_heat_transport/poisson_solver.py | 256 ++++++ .../poisson_solver_oht.py | 411 ++++++++++ .../recipe_ocean_transport.yml | 120 +++ .../recipe_transport.yml | 175 +++++ .../single_model_diagnostics.py | 429 ++++++++++ .../single_model_oht_diag.py | 297 +++++++ 8 files changed, 3079 insertions(+) create mode 100644 esmvaltool/implied_heat_transport/multi_model_diagnostics.py create mode 100644 esmvaltool/implied_heat_transport/multi_model_oht_diag.py create mode 100644 esmvaltool/implied_heat_transport/poisson_solver.py create mode 100644 esmvaltool/implied_heat_transport/poisson_solver_oht.py create mode 100644 esmvaltool/implied_heat_transport/recipe_ocean_transport.yml create mode 100644 esmvaltool/implied_heat_transport/recipe_transport.yml create mode 100644 esmvaltool/implied_heat_transport/single_model_diagnostics.py create mode 100644 esmvaltool/implied_heat_transport/single_model_oht_diag.py diff --git a/esmvaltool/implied_heat_transport/multi_model_diagnostics.py b/esmvaltool/implied_heat_transport/multi_model_diagnostics.py new file mode 100644 index 0000000000..9790aed456 --- /dev/null +++ b/esmvaltool/implied_heat_transport/multi_model_diagnostics.py @@ -0,0 +1,742 @@ +""" Multi model diagnostics +1. Solve the Poisson equation for each dataset +2. Compare to CERES-EBAF results +3. Produce comparison plots +""" + +import logging +from pathlib import Path + +import cartopy.crs as ccrs +import iris +import matplotlib.pyplot as plt +import numpy as np +from cycler import cycler +from matplotlib import gridspec +from poisson_solver import spherical_poisson + +from esmvaltool.diag_scripts.shared import ( + group_metadata, + run_diagnostic, + save_data, + save_figure, +) + +# Initialise logger +logger = logging.getLogger(Path(__file__).stem) + + +def get_provenance_record(plot_type, ancestor_files): + # Create a provenance record describing the diagnostic data and plot. + + record = { + 'statistics': ['mean'], + 'domains': ['global'], + 'plot_types': [plot_type], + 'authors': [ + 'andela_bouwe', + 'righi_mattia', + ], + 'references': [ + 'acknow_project', + ], + 'ancestors': ancestor_files, + } + return record + + +def call_poisson(cube, variable, tol=None): + logger.info('{0}'.format(cube)) + + # Remove average of flux field to account for storage term + data = cube.data.copy() + grid = iris.analysis.cartography.area_weights(cube, normalize=True) + data_mean = np.average(data, weights=grid.data) + data -= data_mean + + logger.info("Calling spherical_poisson") + poisson, mht = spherical_poisson(logger, + forcing=data * (6371e3**2.0), + tolerance=tol) + logger.info("Ending spherical_poisson") + + # Poisson data cube + p_cube = cube.copy() + p_cube.rename(variable + '_poisson') + p_cube.units = 'W' + p_cube.data = poisson[1:-1, 1:-1] + + # MHT data cube + mht_cube = cube.copy() + mht_cube = mht_cube.collapsed('longitude', iris.analysis.MEAN) + mht_cube.rename(variable + '_mht') + mht_cube.units = 'W' + mht_cube.data = mht + + # Flux data cube + cube.rename(variable + '_flux') + cube.units = 'W.m-2' + cube.data = data + + return p_cube, mht_cube, cube + + +def compute_p_field_diagnostic(model_dict, cfg): + # Sort experiments by variables + exp_dataset = group_metadata(model_dict, 'exp', sort='variable_group') + + # Define dicts to hold the data + p_dict = {} + mht_dict = {} + flux_dict = {} + + for exp_nme in exp_dataset: + logger.info("Experiment: %s", exp_nme) + p_cube = iris.cube.CubeList([]) + mht_cube = iris.cube.CubeList([]) + flux_cube = iris.cube.CubeList([]) + + for attributes in exp_dataset[exp_nme]: + input_file = attributes['filename'] + variable_name = attributes['short_name'] + logger.info("Loading %s", input_file) + cube = iris.load_cube(input_file) + + # Model key for dicts + key = '{0}_{1}'.format(attributes['dataset'], attributes['exp']) + + # If flux is upwelling, x -1 + if attributes['short_name'] in [ + 'rlut', 'rlutcs', 'rsut', 'rsutcs' + ]: + cube *= -1 + + # Call the Poisson solver + p, mht, flux = call_poisson(cube, variable_name) + p_cube.append(p) + mht_cube.append(mht) + flux_cube.append(cube) + + # Save data cubes + provenance_record = get_provenance_record( + plot_type='map', ancestor_files=exp_dataset) + filename = attributes['alias'] + '_' + attributes['dataset'] + \ + '_' + attributes['mip'] + '_' + attributes['exp'] + '_' + \ + attributes['ensemble'] + '_' + attributes['variable_group'] \ + + '_' + str(attributes['start_year']) + '-' \ + + str(attributes['end_year']) + save_data(filename + '_poisson', provenance_record, cfg, p) + save_data(filename + '_mht', provenance_record, cfg, mht) + + del p, mht, flux, provenance_record, filename + + # Add iris cubelist to dictionary + p_dict[key] = p_cube + mht_dict[key] = mht_cube + flux_dict[key] = flux_cube + del key, p_cube, mht_cube, flux_cube + + return p_dict, mht_dict, flux_dict + + +def ceres_p_field_diagnostic(model_dict, cfg): + # Calculate diagnostics for CERES-EBAF data + + # Load iris cubes: rlut, rlutcs, rsut, rsutcs, rsdt + for attributes in model_dict: + input_file = attributes['filename'] + logger.info('{0}'.format(input_file)) + cube = iris.load_cube(input_file) + + if attributes['short_name'] == 'rlut': + rlut = cube.copy() + rlut *= -1 + rlut.long_name = attributes['short_name'] + elif attributes['short_name'] == 'rsut': + rsut = cube.copy() + rsut *= -1 + rsut.long_name = attributes['short_name'] + elif attributes['short_name'] == 'rlutcs': + rlutcs = cube.copy() + rlutcs *= -1 + rlutcs.long_name = attributes['short_name'] + elif attributes['short_name'] == 'rsutcs': + rsutcs = cube.copy() + rsutcs *= -1 + rsutcs.long_name = attributes['short_name'] + elif attributes['short_name'] == 'rsdt': + rsdt = cube.copy() + rsdt.long_name = attributes['short_name'] + del cube + + # Define additional variables + rsnt = rsdt + rsut + rsnt.long_name = 'rsnt' + rtnt = rsnt + rlut + rtnt.long_name = 'rtnt' + swcre = rsut - rsutcs + swcre.long_name = 'swcre' + lwcre = rlut - rlutcs + lwcre.long_name = 'lwcre' + netcre = swcre + lwcre + netcre.long_name = 'netcre' + + p_dict = {} + mht_dict = {} + flux_dict = {} + + cube_list = [rtnt, rsnt, rlut, rsut, rsutcs, netcre, swcre, lwcre] + + p_cube = iris.cube.CubeList([]) + mht_cube = iris.cube.CubeList([]) + flux_cube = iris.cube.CubeList([]) + + for cube in cube_list: + # Solve Poisson equation for each variable + p, mht, flux = call_poisson(cube, variable=cube.long_name, tol=2e-4) + p_cube.append(p) + mht_cube.append(mht) + flux_cube.append(cube) + del p, mht, cube + + # Add data to dictionaries + key = 'CERES-EBAF' + p_dict[key] = p_cube + mht_dict[key] = mht_cube + flux_dict[key] = flux_cube + + logger.info("Finished processing observational data.") + return p_dict, mht_dict, flux_dict + + +def mht_plot(variables, mht, ancestor_files, cfg, pltname): + """MHT plot Produces two plots comparing the estimated MHT of the different + models against CERES-EBAF. + + 1. '_mht_CERES-EBAF.png' + The first subplot gives the MHT of CERES-EBAF for all of the given + variables, then the difference between the model and CERES result in + each of the other subplots. Each variable has its own subplot for the + differences. The axes are not forced to the same limits as the + differences can vary between the variables. + 2. '_mht_comp.png' + Shows the full MHT estimates for all of the models and CERES-EBAF + (shown in black). Allows for easy comparison between the shapes of the + MHT curves, but doesn't give the same detail as the difference plots. + Each variable has its own subplot. + """ + + # Variables + var_dict = { + 'rtnt': 'Net TOA', + 'rsnt': 'Net SW', + 'rlut': 'Net LW', + 'rlutcs': '-1 x OLR (clear)', + 'rsut': '-1 x OSR (all)', + 'rsutcs': '-1 x OSR (clear)', + 'rsdt': 'ISR', + 'netcre': 'NET CRE', + 'swcre': 'SW CRE', + 'lwcre': 'LW CRE' + } + ''' MHT comparison plot: compares difference with CERES-EBAF ''' + # Different sized plots depending on number of variables + plt.figure(figsize=(15, 6)) + if len(variables) == 2: + gs = gridspec.GridSpec(2, 3, height_ratios=[7, 1]) + elif len(variables) == 3: + gs = gridspec.GridSpec(2, 4, height_ratios=[7, 1]) + + # Plot CERES-EBAF results separately + ax = plt.subplot(gs[:1, :1]) + for i, x in enumerate(variables): + cube = mht['CERES-EBAF'].extract_cube(x + '_mht') + ax.plot(cube.coord('latitude').points, + cube.data / 1e15, + label=var_dict[x]) + del cube + + ymin, ymax = ax.get_ylim() + ylim = np.max([np.abs(ymin), np.abs(ymax)]) + ax.set_ylim(-ylim, ylim) + ax.set_xlim(-90, 90) + ax.set_xticks(np.arange(-90, 120, 30)) + ax.axhline(0, -90, 90, color='k', ls=':') + ax.axvline(0, -ylim, ylim, color='k', ls=':') + ax.set_xlabel('Latitude') + ax.set_ylabel('MHT (PW)') + ax.set_title('CERES-EBAF') + ax.legend() + vlim = ylim + del ymin, ymax, ylim + + # Bespoke color cycler to remove those used for the CERES-EBAF + # Cycles through linestyles for when there are many comparison models + cc = (cycler(linestyle=['-', '--', '-.']) * cycler('color', [ + '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', + '#17becf' + ])) + + # Plot difference for all variables/models + for i, x in enumerate(variables): + ax = plt.subplot(gs[:1, i + 1:i + 2]) + ax.set_prop_cycle(cc) + j = 0 + for y in mht: + if y == 'CERES-EBAF': + continue + ceres = mht['CERES-EBAF'].extract_cube(x + '_mht') + cube = mht[y].extract_cube(x + '_mht') + ax.plot(cube.coord('latitude').points, + (cube.data - ceres.data) / 1e15, + label=y) + del cube + j += 1 + + ymin, ymax = ax.get_ylim() + ylim = np.max([np.abs(ymin), np.abs(ymax)]) + ax.axhline(0, -90, 90, color='k', ls=':') + ax.axvline(0, -10, 10, color='k', ls=':') + ax.set_ylim(-ylim, ylim) + ax.set_xlim(-90, 90) + ax.set_xticks(np.arange(-90, 120, 30)) + ax.set_xlabel('Latitude') + ax.set_title(var_dict[x] + ': (model - CERES-EBAF)') + del ymin, ymax, ylim + + handles, labels = ax.get_legend_handles_labels() + + # Legend spans the width of the difference subplots + plt.subplot(gs[1:, 1:]) + plt.axis('off') + plt.legend(handles, labels, ncol=3, loc='upper center') + + plt.tight_layout() + + # Save plots + provenance_record = get_provenance_record(plot_type='zonal', + ancestor_files=cfg) + logger.info('{0}'.format(provenance_record)) + save_figure(pltname + '_CERES-EBAF', provenance_record, cfg) + plt.close() + ''' MHT plot: compares full MHT with CERES-EBAF ''' + # Reset color cycler + cc = (cycler(linestyle=['-', '--', '-.']) * cycler('color', [ + '#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', + '#e377c2', '#7f7f7f', '#bcbd22', '#17becf' + ])) + + # Different size plots depending on number of variables + plt.figure(figsize=(15, 6)) + if len(variables) == 2: + gs = gridspec.GridSpec(2, 2, height_ratios=[7, 1]) + elif len(variables) == 3: + gs = gridspec.GridSpec(2, 3, height_ratios=[7, 1]) + + # Plot MHT for all models including CERES-EBAF (black line) + for i, x in enumerate(variables): + ax = plt.subplot(gs[:1, i:i + 1]) + ax.set_prop_cycle(cc) + for y in mht: + cube = mht[y].extract_cube(x + '_mht') + if y == 'CERES-EBAF': + ax.plot(cube.coord('latitude').points, + cube.data / 1e15, + 'k', + ls='-', + lw=2, + label=y) + else: + ax.plot(cube.coord('latitude').points, + cube.data / 1e15, + label=y) + + ax.set_ylim(-vlim, vlim) + ax.set_xlim(-90, 90) + ax.set_xticks(np.arange(-90, 120, 30)) + ax.axhline(0, -90, 90, color='k', ls=':') + ax.axvline(0, -vlim, vlim, color='k', ls=':') + ax.set_xlabel('Latitude') + ax.set_ylabel('MHT (PW)') + ax.set_title(var_dict[x]) + + handles, labels = ax.get_legend_handles_labels() + del cube + + # Legend spans the width of the full plot + plt.subplot(gs[1:, :]) + plt.axis('off') + plt.legend(handles, labels, ncol=3, loc='upper center') + + plt.tight_layout() + + # Save plot + provenance_record = get_provenance_record(plot_type='zonal', + ancestor_files=cfg) + logger.info('{0}'.format(provenance_record)) + save_figure(pltname + '_comp', provenance_record, cfg) + + +def quiver_plot(variables, cubelist, ancestor_files, cfg, pltname): + """Maps of scalar p-fields or input flux fields Produces a single plot with + multiple subplots comparing the CERES-EBAF field to the different model + fields. + + The CERES-EBAF field is shown is full, with all variables sharing + the same colorbar. The difference between each model and CERES-EBAF + are shown as separate subplots for each variables. All of the + difference subplots share the same colorbar. For the scalar p-field + maps the direction of the implied heat transport is shown by white + arrows. The arrows are normalised across the different plots and + variables (separate for the difference plots and CERES-EBAF), so the + lengths can be directly compared for the magnitude of the heat + transport. + """ + + # Variables + var_dict = { + 'rtnt': 'Net TOA', + 'rsnt': 'Net SW', + 'rlut': 'Net LW', + 'rlutcs': '-1 x OLR (clear)', + 'rsut': '-1 x OSR (all)', + 'rsutcs': '-1 x OSR (clear)', + 'rsdt': 'ISR', + 'netcre': 'NET CRE', + 'swcre': 'SW CRE', + 'lwcre': 'LW CRE' + } + + # Data type + dtype = pltname.split('_')[-1] + if dtype == 'flux': + cbar_label = 'Flux (W/m2)' + div = 1 + elif dtype == 'poisson': + cbar_label = 'Scalar p-field (PW)' + div = 1e15 + + # Size of plot parameters + # Change these if plots are not displaying properly + if len(cubelist) == 2: + ncols = 2 + nrows = 1 + xlen = 8 + elif len(cubelist) <= 5: + ncols = 2 + nrows = int(np.ceil((len(cubelist) - 1) / 2)) + xlen = 10 + elif len(cubelist) <= 7: + ncols = 3 + nrows = 2 + xlen = 15 + else: + ncols = 4 + nrows = int(np.ceil((len(cubelist) - 1) / 4)) + xlen = 20 + + # Create figure axes + height_ratio = np.ones((nrows * len(variables)) + 1) + height_ratio[:(nrows * len(variables))] *= 7 + + plt.figure(figsize=(xlen, 5 * nrows)) + gs = gridspec.GridSpec((nrows * len(variables)) + 1, + ncols + 1, + height_ratios=height_ratio) + gs.update(hspace=0.5) + + vmin = 0 + vmax = 0 + wmin = 0 + wmax = 0 + + # Calculate the plot limits + # - Same colorbar for CERES plots + # - Same colorbar for difference plots + for i, p in enumerate(variables): + for j, q in enumerate(cubelist): + if q == 'CERES-EBAF': + cube = cubelist[q].extract_cube(p + '_' + dtype) + tmp = np.average(cube.data) + + plt.figure() + plt.axes(projection=ccrs.PlateCarree()) + plt.contourf(cube.coord('longitude').points, + cube.coord('latitude').points, + tmp - cube.data, + levels=10, + transform=ccrs.PlateCarree(central_longitude=0)) + cbar = plt.colorbar() + cmin, cmax = cbar.mappable.get_clim() + vmin = np.min([vmin, cmin]) + vmax = np.max([vmax, cmax]) + del tmp, cube + plt.close() + + else: + cube = cubelist[q].extract_cube(p + '_' + dtype) + tmp_cube = cube.data - np.average(cube.data) + ceres = cubelist['CERES-EBAF'].extract_cube(p + '_' + dtype) + tmp_ceres = ceres.data - np.average(ceres.data) + + plt.figure() + plt.axes(projection=ccrs.PlateCarree()) + plt.contourf(cube.coord('longitude').points, + cube.coord('latitude').points, + tmp_cube - tmp_ceres, + levels=10, + transform=ccrs.PlateCarree(central_longitude=0)) + cbar = plt.colorbar() + cmin, cmax = cbar.mappable.get_clim() + wmin = np.min([wmin, cmin]) + wmax = np.max([wmax, cmax]) + del cube, ceres, tmp_cube, tmp_ceres + plt.close() + + wlim = np.max([np.abs(wmin), np.abs(wmax)]) + levels1 = np.linspace(vmin / div, vmax / div, 11) # CERES + levels2 = np.linspace(-wlim / div, wlim / div, 11) # difference + + # Plot the maps + for m, p in enumerate(variables): + j = 0 + for i, q in enumerate(cubelist): + # CERES-EBAF data + if q == 'CERES-EBAF': + cube = cubelist[q].extract_cube(p + '_' + dtype) + tmp = np.average(cube.data) + ax1 = plt.subplot(gs[(m * nrows):(m * nrows) + 1, 0], + projection=ccrs.PlateCarree()) + cb1 = ax1.contourf( + cube.coord('longitude').points, + cube.coord('latitude').points, (tmp - cube.data) / div, + levels=levels1, + transform=ccrs.PlateCarree(central_longitude=0)) + plt.gca().coastlines() + + if dtype == 'poisson': + # Plot heat transport arrows on p-field + x, y = np.meshgrid( + cube.coord('longitude').points, + cube.coord('latitude').points) + v, u = np.gradient(cube.data, 1e14, 1e14) + if m == 0: + Q = ax1.quiver(x[15::25, 15::32], + y[15::25, 15::32], + u[15::25, 15::32], + v[15::25, 15::32], + pivot='mid', + color='w') + Q._init() + else: + ax1.quiver(x[15::25, 15::32], + y[15::25, 15::32], + u[15::25, 15::32], + v[15::25, 15::32], + scale=Q.scale, + pivot='mid', + color='w') + del x, y, u, v + + ax1.set_xticks(np.arange(-180, 190, 60)) + ax1.set_xticklabels( + ['180', '120W', '60W', '0', '60E', '120E', '180']) + ax1.set_yticks(np.arange(-90, 100, 30)) + ax1.set_yticklabels( + ['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + ax1.set_title('{0}: CERES-EBAF'.format(var_dict[p])) + del tmp + + # Difference between models and CERES-EBAF + else: + # Subplot details + if (i + 1) >= ncols: + if i % ncols == 0: + j += 1 + k = (i + 1) - (j * ncols) + else: + k = i + 1 + + cube = cubelist[q].extract_cube(p + '_' + dtype) + tmp_cube = cube.data - np.average(cube.data) + ceres = cubelist['CERES-EBAF'].extract_cube(p + '_' + dtype) + tmp_ceres = ceres.data - np.average(ceres.data) + + ax2 = plt.subplot(gs[(m * nrows) + j:(m * nrows) + j + 1, + k:k + 1], + projection=ccrs.PlateCarree()) + cb2 = ax2.contourf( + cube.coord('longitude').points, + cube.coord('latitude').points, + (tmp_cube - tmp_ceres) / div, + levels=levels2, + transform=ccrs.PlateCarree(central_longitude=0), + cmap='coolwarm') + plt.gca().coastlines(color='k') + + if dtype == 'poisson': + # Heat transport arrows + x, y = np.meshgrid( + cube.coord('longitude').points, + cube.coord('latitude').points) + v, u = np.gradient(tmp_cube - tmp_ceres, 1e14, 1e14) + if m == 0: + R = ax2.quiver(x[15::25, 15::32], + y[15::25, 15::32], + u[15::25, 15::32], + v[15::25, 15::32], + pivot='mid', + color='w') + R._init() + else: + ax2.quiver(x[15::25, 15::32], + y[15::25, 15::32], + u[15::25, 15::32], + v[15::25, 15::32], + scale=R.scale, + pivot='mid', + color='w') + del x, y, u, v + + ax2.set_xticks(np.arange(-180, 190, 60)) + ax2.set_xticklabels( + ['180', '120W', '60W', '0', '60E', '120E', '180']) + ax2.set_yticks(np.arange(-90, 100, 30)) + ax2.set_yticklabels( + ['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + if len(cubelist) > 3: + ax2.set_title('{0}'.format(q)) + else: + ax2.set_title('{0} - CERES-EBAF'.format(q)) + del cube, tmp_cube, ceres, tmp_ceres + + # Plot colorbars + ax1 = plt.subplot(gs[-1, 0]) + plt.colorbar(cb1, cax=ax1, orientation='horizontal', label=cbar_label) + + ax2 = plt.subplot(gs[-1, 1:]) + plt.colorbar(cb2, + cax=ax2, + orientation='horizontal', + label='Anomaly ' + cbar_label.split(' ')[-1]) + + # Plot adjustments + if len(variables) == 2: + plt.subplots_adjust(left=0.1, right=0.9, top=0.97, bottom=0.1) + elif len(variables) < 5: + plt.subplots_adjust(left=0.1, right=0.9, top=0.97, bottom=0.07) + elif len(variables) == 5: + plt.subplots_adjust(left=0.06, right=0.94, top=0.97, bottom=0.07) + + # Save plot + provenance_record = get_provenance_record(plot_type='map', + ancestor_files=cfg) + save_figure(pltname, provenance_record, cfg) + + +def plot_multi_model_diagnostics(poisson, mht, flux, ancestor_files, cfg): + basename = 'multi_model_implied' + + # TOA: net, sw, lw + variables = ['rtnt', 'rsnt', 'rlut'] + mht_plot(variables, + mht, + ancestor_files, + cfg, + pltname=basename + '_toa_mht') + quiver_plot(variables, + poisson, + ancestor_files, + cfg, + pltname=basename + '_toa_poisson') + quiver_plot(variables, + flux, + ancestor_files, + cfg, + pltname=basename + '_toa_flux') + + # OSR: clear vs. all sky + variables = ['rsut', 'rsutcs'] + mht_plot(variables, + mht, + ancestor_files, + cfg, + pltname=basename + '_osr_mht') + quiver_plot(variables, + poisson, + ancestor_files, + cfg, + pltname=basename + '_osr_poisson') + quiver_plot(variables, + flux, + ancestor_files, + cfg, + pltname=basename + '_osr_flux') + + # CRE: net, sw, lw + variables = ['netcre', 'swcre', 'lwcre'] + mht_plot(variables, + mht, + ancestor_files, + cfg, + pltname=basename + '_cre_mht') + quiver_plot(variables, + poisson, + ancestor_files, + cfg, + pltname=basename + '_cre_poisson') + quiver_plot(variables, + flux, + ancestor_files, + cfg, + pltname=basename + '_cre_flux') + + +def main(cfg): + """Solve the Poisson equation and estimate the meridional heat + transport.""" + input_data = cfg['input_data'].values() + + # Dictionaries for data cubes + model_p = {} + model_mht = {} + model_flux = {} + ceres = False + + # Group data by dataset + logger.info("Group input data by model, sort by experiment") + model_dataset = group_metadata(input_data, 'dataset', sort='exp') + + for model_name in model_dataset: + # Treat CERES-EBAF data separately + if model_name == 'CERES-EBAF': + ceres = True + continue + + logger.info("Processing model data: %s", model_name) + p, mht, flux = compute_p_field_diagnostic(model_dataset[model_name], + cfg) + model_p.update(p) + model_mht.update(mht) + model_flux.update(flux) + del p, mht, flux + + if ceres is True: + model_name = 'CERES-EBAF' + logger.info("Processing observational data: CERES-EBAF") + # Need to calculate some fluxes for CERES-EBAF + p, mht, flux = ceres_p_field_diagnostic(model_dataset[model_name], cfg) + model_p.update(p) + model_mht.update(mht) + model_flux.update(flux) + del p, mht, flux + + # Plotting multi-model diagnostics + plot_multi_model_diagnostics(model_p, model_mht, model_flux, input_data, + cfg) + + +if __name__ == '__main__': + + with run_diagnostic() as config: + main(config) diff --git a/esmvaltool/implied_heat_transport/multi_model_oht_diag.py b/esmvaltool/implied_heat_transport/multi_model_oht_diag.py new file mode 100644 index 0000000000..b4dc5bc291 --- /dev/null +++ b/esmvaltool/implied_heat_transport/multi_model_oht_diag.py @@ -0,0 +1,649 @@ +""" Multi model diagnostics +1. Solve the Poisson equation for each dataset +2. Calculate/process observational dataset +3. Compare simulations to observational data +4. Produce comparison plots +""" + +import logging +from pathlib import Path + +import cartopy.crs as ccrs +import iris +import matplotlib.pyplot as plt +import numpy as np +from cycler import cycler +from matplotlib import gridspec +from poisson_solver_oht import spherical_ocean_poisson +from scipy.ndimage import binary_fill_holes + +from esmvaltool.diag_scripts.shared import ( + group_metadata, + run_diagnostic, + save_data, + save_figure, +) + +# Initialise logger +logger = logging.getLogger(Path(__file__).stem) + + +def get_provenance_record(plot_type, ancestor_files): + # Create a provenance record describing the diagnostic data and plot + + record = { + 'statistics': ['mean'], + 'domains': ['global'], + 'plot_types': [plot_type], + 'authors': [ + 'andela_bouwe', + 'righi_mattia', + ], + 'references': [ + 'acknow_project', + ], + 'ancestors': ancestor_files, + } + return record + + +def call_poisson(cube, mask): + # Remove average of flux field to account for storage term + data = cube.data.copy() + grid = iris.analysis.cartography.area_weights(cube, normalize=True) + data_mean = np.average(data, weights=np.ma.array(grid, mask=mask)) + data -= data_mean + data *= (1 - mask) + + logger.info("Calling spherical_poisson") + poisson, mht, dx, dy = spherical_ocean_poisson(logger, + forcing=data * + (6371e3**2.0), + mask=(1 - mask)) + logger.info("Ending spherical_poisson") + + # Poisson data cube + p_cube = cube.copy() + p_cube.rename('poisson') + p_cube.units = 'W' + p_cube.data = poisson[1:-1, 1:-1] + + # MHT data cube list + mht_list = iris.cube.CubeList([]) + for x in mht: + basin = cube.copy() + basin = basin.collapsed('longitude', iris.analysis.MEAN) + basin.rename(x) + basin.units = 'W' + basin.data = mht[x] + mht_list.append(basin) + del basin + + # Gradient cube list + dx_cube = cube.copy() + dx_cube.rename('dx gradient') + dx_cube.units = 'W' + dx_cube.data = dx + + dy_cube = cube.copy() + dy_cube.rename('dy gradient') + dy_cube.units = 'W' + dy_cube.data = dy + + grad_list = iris.cube.CubeList([dx_cube, dy_cube]) + del dx_cube, dy_cube + + # Flux data cube + cube.rename('flux') + cube.units = 'W.m-2' + cube.data = data + + return p_cube, mht_list, cube, grad_list + + +def masks(cfg): + mask = iris.load_cube(cfg['mask']) + + # Close any seas not connected to the oceans + # e.g. Mediterranean Sea at some resolutions + (y, x) = np.shape(mask) + wrap_mask = np.zeros([y, x + 2]) + wrap_mask[:, 1:-1] = mask.data + wrap_mask[:, 0] = mask.data[:, -1] + wrap_mask[:, -1] = mask.data[:, 0] + + wrap_mask = binary_fill_holes(wrap_mask) + mask.data = wrap_mask[:, 1:-1] + + # Return wrapped mask + return mask + + +def calc_nsf(dataset, mask, cfg): + # Calculate NSF from the input fluxes + # NSF = (rlds - rlus) + (rsds - rsus) - (hfls + hfss) + + nsf_dict = {} + for attributes in dataset: + input_file = attributes['filename'] + variable_name = attributes['short_name'] + logger.info("Loading %s", input_file) + cube = iris.load_cube(input_file) + nsf_dict[variable_name] = cube.data + + nsf = cube.copy() + nsf.rename('Net Surface Flux') + nsf.data = (nsf_dict['rlds'] - nsf_dict['rlus']) + \ + (nsf_dict['rsds'] - nsf_dict['rsus']) - \ + (nsf_dict['hfss'] + nsf_dict['hfls']) + + # Regrid NSF to the same grid as mask + nsf = nsf.regrid(mask, iris.analysis.AreaWeighted()) + if 'variable_id' in nsf.attributes: + del nsf.attributes['variable_id'] + + return nsf + + +def compute_p_field_diagnostic(model_name, model_dict, cfg): + # Define mask + mask = masks(cfg) + + # Define data dicts + p_dict = {} + mht_dict = {} + flux_dict = {} + grad_dict = {} + files_dict = {} + + # Determine number of experiments + exp_dataset = group_metadata(model_dict, 'exp', sort='variable_group') + + for exp_nme in exp_dataset: + logger.info("Experiment: %s", exp_nme) + key = model_name + '_' + exp_nme + + # Calculate NSF/solve Poisson equation + nsf = calc_nsf(exp_dataset[exp_nme], mask, cfg) + p, mht, flux, gradient = call_poisson(nsf, mask.data) + + # Save data to dict + p_dict[key] = p + mht_dict[key] = mht + flux_dict[key] = flux + grad_dict[key] = gradient + + files_dict = {} + for attributes in exp_dataset[exp_nme]: + variable_name = attributes['short_name'] + input_file = attributes['filename'] + files_dict[variable_name] = input_file + filename = attributes['dataset'] + '_' + \ + attributes['mip'] + '_' + attributes['exp'] + '_' + \ + attributes['ensemble'] + '_nsf_' + \ + str(attributes['start_year']) + '-' + \ + str(attributes['end_year']) + + # Save data cubes + provenance_record = get_provenance_record(plot_type='map', + ancestor_files=exp_dataset) + save_data(filename + '_poisson', provenance_record, cfg, p) + save_data(filename + '_mht', provenance_record, cfg, mht) + + return p_dict, mht_dict, flux_dict, grad_dict, files_dict, mask + + +def plot_multi_model_diagnostics(poisson, mht, flux, gradient, mask, files, + cfg): + # Plot comparison of models to observational dataset + mht_plot(mht, files, cfg) + quiver_plot(poisson, gradient, mask.data, files, cfg) + quiver_plot(flux, gradient, mask.data, files, cfg) + return + + +def mht_plot(mht, ancestor_files, cfg): + """MHT plot Produces two plots comparing the estimated MHT of the different + models to the observational dataset provided. + + 1. '_obs_ocean_mht.png' + Gives the MHT for the given obs dataset, then shows the difference + between the model and obs for each basin in separate subplots. All the + difference subplots are presented with the same y-limits to allow for + easy comparison. + 2. '_ocean_mht.png' + Four subplots showing the MHT for each model in each basin. The + observational results are presented as a thick black solid line. Allows + for easy comparison between the shapes of the MHT curves, but doesn't + give the same detail as the difference plots. + For both plots each model is presented in a different colour/linestyle + configuration. + """ + + # MHT plot: direct comparison to observations + # Color/linestyle cycler to ensure no models are the same + cc = (cycler(linestyle=['-', '--', '-.']) * cycler('color', [ + '#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', + '#e377c2', '#7f7f7f', '#bcbd22', '#17becf' + ])) + + fig, axs = plt.subplots(2, 2, figsize=(10, 8)) + for i, x in enumerate(['global', 'atlantic', 'pacific', 'indian']): + ax = plt.subplot(2, 2, i + 1) + + for y in mht: + cube = mht[y].extract_cube(x) + if y == cfg['obs_name']: + # Plot observational data separately (black line) + ax.plot(cube.coord('latitude').points, + cube.data / 1e15, + label=y, + color='k', + lw=2, + zorder=100) + ax.set_prop_cycle(cc) + else: + ax.plot(cube.coord('latitude').points, + cube.data / 1e15, + label=y) + plt.xlim(-90, 90) + plt.xticks(np.arange(-90, 120, 30)) + plt.hlines(0, -90, 90, color='k', linestyles=':') + if i == 0: + ymin, ymax = plt.ylim() + ylim = np.max([np.abs(ymin), np.abs(ymax)]) + plt.ylim(-ylim, ylim) + plt.vlines(0, -ylim, ylim, color='k', linestyles=':') + plt.title(x) + plt.xlabel('Latitude') + plt.ylabel('MHT (PW)') + + # Plot legend to right of figure outside subplots + plt.legend(bbox_to_anchor=(1.04, 0.5), loc="center left") + plt.tight_layout() + + # Save figure + provenance_record = get_provenance_record(plot_type='zonal', + ancestor_files=ancestor_files) + save_figure('multi_model_ocean_mht', provenance_record, cfg) + + # MHT plot: difference compared to observations + # Color/linestyle cycler to ensure no models are the same + cc = (cycler(linestyle=['-', '--', '-.']) * cycler( + 'color', + ['#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])) + + if cfg['obs_name'] in mht: + obs_name = cfg['obs_name'] + vlim = 0 + + fig, axs = plt.subplots(2, 2, figsize=(10, 8)) + ax1 = plt.subplot(2, 3, 1) # Obs + # Subplot for each basin + for i, x in enumerate(['global', 'atlantic', 'pacific', 'indian']): + if i > 1: + ax = plt.subplot(2, 3, i + 3) + else: + ax = plt.subplot(2, 3, i + 2) + ax.set_prop_cycle(cc) + obs = mht[obs_name].extract_cube(x) + for y in mht: + if y == obs_name: + # Obs plotted in separate subplot + ax1.plot(cube.coord('latitude').points, + obs.data / 1e15, + label=x) + ax1.set_xlim(-90, 90) + ax1.set_xticks(np.arange(-90, 120, 30)) + ax1.axhline(0, -90, 90, color='k', linestyle=':') + + if i == 3: + dmin, dmax = ax1.get_ylim() + dlim = np.max([np.abs(dmin), np.abs(dmax)]) + ax1.set_ylim(-dlim, dlim) + ax1.axvline(0, -dlim, dlim, color='k', linestyle=':') + del dmin, dmax, dlim + + ax1.set_xlabel('Latitude') + ax1.set_ylabel('MHT (PW)') + ax1.set_title(y) + ax1.legend() + continue + + cube = mht[y].extract_cube(x) + ax.plot(cube.coord('latitude').points, + (cube.data - obs.data) / 1e15, + label=y) + plt.xlim(-90, 90) + plt.xticks(np.arange(-90, 120, 30)) + plt.hlines(0, -90, 90, color='k', linestyles=':') + if i == 0: + ymin, ymax = plt.ylim() + ylim = np.max([np.abs(ymin), np.abs(ymax)]) + vlim = np.max([vlim, ylim]) + # Get model names for legend + handles, labels = ax.get_legend_handles_labels() + + # Keep y-limits the same across all difference plots + plt.ylim(-vlim, vlim) + plt.vlines(0, -vlim, vlim, color='k', linestyles=':') + plt.title(x) + plt.xlabel('Latitude') + plt.ylabel('MHT (PW)') + + # Plot legend of models under the observational plot + ax2 = plt.subplot(2, 3, 4) + plt.axis('off') + ax2.legend(handles, labels, loc='center left') + plt.tight_layout() + + # Save plot + provenance_record = get_provenance_record( + plot_type='zonal', ancestor_files=ancestor_files) + save_figure('multi_model_' + obs_name + '_ocean_mht', + provenance_record, cfg) + + +def quiver_plot(data, gradient, mask, ancestor_files, cfg): + """Maps of scalar p-fields/input flux fields Produces four plots of maps + comparing the observational data to models. + + Creates the + same two plots for both the NSF maps and the scalar p-field. + 1. 'multi_model_ocean_flux/poisson.png' + Plots the full maps for the observational data followed by all of the + models. All of the subplots share the same colorbar allowing for direct + comparison of the maps. + 2. 'multi_model_obs_ocean_flux.png' + Shwows the full map for the observational data with its own colorbar, + followed by all of the difference between the model maps and the + observational map. The model difference subplots all share the same + colorbar allowing for better comparison of the difference between + models. + """ + + # Plot 1. + # Determine colorbar levels + vmin, vmax = 0, 0 + for x in data: + # Different factor depending on p-field or NSF + cube = data[x] + if cube.name() == 'poisson': + div = 1e15 + else: + div = 1 + + plt.figure() + plt.contourf(cube.data, levels=10) + cbar = plt.colorbar() + cmin, cmax = cbar.mappable.get_clim() + vmin = np.min([vmin, cmin]) + vmax = np.max([vmax, cmax]) + plt.close() + + del cube + + levels1 = np.linspace(vmin / div, vmax / div, 21) + del vmin, vmax + + # Size of plot parameters + # Change these if plots are not displaying properly + if len(data) <= 4: + ncols = 2 + nrows = int(np.ceil(len(data) / 2)) + elif len(data) <= 6: + ncols = 3 + nrows = 2 + else: + ncols = 4 + nrows = int(np.ceil(len(data) / 4)) + + # Create figure axes + height_ratio = np.ones(nrows + 1) + height_ratio[:nrows] *= 7 + + plt.figure(figsize=(15, 4 * nrows)) + gs = gridspec.GridSpec(nrows + 1, ncols, height_ratios=height_ratio) + + j = 0 + cube = 0 + # Plot each model individually + for i, model in enumerate(data): + # Iterate over subplots + if i >= ncols: + if i % ncols == 0: + j += 1 + k = i - (j * ncols) + else: + k = i + + del cube + cube = data[model] + + ax = plt.subplot(gs[j:j + 1, k:k + 1], projection=ccrs.PlateCarree()) + cb = ax.contourf( + cube.coord('longitude').points, + cube.coord('latitude').points, + np.ma.array(cube.data / div, mask=mask), + levels=levels1, + transform=ccrs.PlateCarree(central_longitude=0), + cmap='viridis' if cube.name() == 'poisson' else 'plasma') + plt.gca().coastlines() + + ax.set_xticks(np.arange(-180, 190, 60)) + ax.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) + ax.set_yticks(np.arange(-90, 100, 30)) + ax.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + ax.set_title(model) + + # Plot colorbar at bottom spanning length of plot + ax = plt.subplot(gs[-1, :]) + plt.colorbar(cb, + cax=ax, + orientation='horizontal', + label='Scalar p-field (PW)' + if cube.name() == 'poisson' else 'Flux (w/m2)') + + # Adjust and save plot + plt.subplots_adjust(left=0.1, right=0.9, top=0.95, bottom=0.1) + provenance_record = get_provenance_record(plot_type='map', + ancestor_files=ancestor_files) + save_figure('mulit_model_ocean_' + cube.name(), provenance_record, cfg) + + # Plot 2. + # Difference between models and obs + if cfg['obs_name'] in data: + obs_name = cfg['obs_name'] + + # Determine colorbar levels + vmin, vmax = 0, 0 + for x in data: + cube = data[x] + obs = data[obs_name].data - np.average(data[obs_name].data) + # Define different factors for p-field/NSF maps + if cube.name() == 'poisson': + div = 1e15 + else: + div = 1 + cube = cube.data - np.average(cube.data) + + plt.figure() + plt.contourf(cube - obs, levels=10) + cbar = plt.colorbar() + cmin, cmax = cbar.mappable.get_clim() + vmin = np.min([vmin, cmin]) + vmax = np.max([vmax, cmax]) + plt.close() + + del cube + + vlim = np.max([np.abs(vmin), np.abs(vmax)]) + levels1 = np.linspace(-vlim / div, vlim / div, 21) + del vmin, vmax + + # Size of plot parameters + # Change these if plots are not displaying properly + if len(data) <= 5: + ncols = 2 + nrows = int(np.ceil((len(data) - 1) / 2)) + xlen = 15 + elif len(data) <= 7: + ncols = 3 + nrows = 2 + xlen = 15 + else: + ncols = 4 + nrows = int(np.ceil((len(data) - 1) / 4)) + xlen = 20 + + # Create figure axes + height_ratio = np.ones(nrows + 1) + height_ratio[:nrows] *= 7 + + plt.figure(figsize=(xlen, 4 * nrows)) + gs = gridspec.GridSpec(nrows + 1, + ncols + 1, + height_ratios=height_ratio) + + j = 0 + for i, model in enumerate(data): + if model == obs_name: + # Plot observational map separately + cube = data[model] + ax = plt.subplot(gs[nrows - 1:nrows, 0], + projection=ccrs.PlateCarree()) + cb = ax.contourf( + cube.coord('longitude').points, + cube.coord('latitude').points, + np.ma.array(cube.data / div, mask=mask), + levels=21, + transform=ccrs.PlateCarree(central_longitude=0), + cmap='viridis' if cube.name() == 'poisson' else 'plasma') + plt.gca().coastlines() + + ax.set_xticks(np.arange(-180, 190, 60)) + ax.set_xticklabels( + ['180', '120W', '60W', '0', '60E', '120E', '180']) + ax.set_yticks(np.arange(-90, 100, 30)) + ax.set_yticklabels( + ['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + ax.set_title(model) + + ax = plt.subplot(gs[-1, :1]) + plt.colorbar(cb, + cax=ax, + orientation='horizontal', + label='Scalar p-field (PW)' + if cube.name() == 'poisson' else 'Flux (w/m2)') + continue + + if (i - 1) >= ncols: + if (i - 1) % ncols == 0: + j += 1 + k = i - (j * ncols) + else: + k = i + + del cube + # Plot difference between model and obs + cube = data[model] + tmp_cube = cube.data - np.average(cube.data) + + ax = plt.subplot(gs[j:j + 1, k:k + 1], + projection=ccrs.PlateCarree()) + cb = ax.contourf(cube.coord('longitude').points, + cube.coord('latitude').points, + np.ma.array((tmp_cube - obs) / div, mask=mask), + levels=levels1, + transform=ccrs.PlateCarree(central_longitude=0), + cmap='coolwarm') + plt.gca().coastlines() + + ax.set_xticks(np.arange(-180, 190, 60)) + ax.set_xticklabels( + ['180', '120W', '60W', '0', '60E', '120E', '180']) + ax.set_yticks(np.arange(-90, 100, 30)) + ax.set_yticklabels( + ['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + ax.set_title(model + ' - ' + obs_name) + + # Add subplot for colorbar shared between difference plots + ax = plt.subplot(gs[-1, 1:]) + plt.colorbar(cb, + cax=ax, + orientation='horizontal', + label='Scalar p-field (PW)' + if cube.name() == 'poisson' else 'Flux (w/m2)') + + # Save plot + plt.subplots_adjust(left=0.1, right=0.9, top=0.95, bottom=0.1) + provenance_record = get_provenance_record( + plot_type='map', ancestor_files=ancestor_files) + save_figure('mulit_model_' + obs_name + '_ocean_' + cube.name(), + provenance_record, cfg) + + +def main(cfg): + """Solve the Poisson equation and estimate the meridional heat + transport.""" + # Get a description of the preprocessed data that we will use as input. + input_data = cfg['input_data'].values() + + # Dictionaries for data cubes + model_p = {} + model_mht = {} + model_flux = {} + model_grad = {} + model_files = {} + + # Observational comparison data + if cfg['obs_data'] is not False: + mask = masks(cfg) + + # Regrid to mask shape + obs_cube = iris.load_cube(cfg['obs_data']) + obs_cube = obs_cube.regrid(mask, iris.analysis.AreaWeighted()) + obs_name = cfg['obs_name'] + + # Solve Poisson equation + model_p[obs_name], model_mht[obs_name], \ + model_flux[obs_name], model_grad[obs_name] = \ + call_poisson(obs_cube, mask.data) + + # Save data cubes + provenance_record = get_provenance_record( + plot_type='map', ancestor_files=cfg['obs_data']) + save_data(obs_name + '_poisson', provenance_record, cfg, + model_p[obs_name]) + save_data(obs_name + '_mht', provenance_record, cfg, + model_mht[obs_name]) + save_data(obs_name + '_flux', provenance_record, cfg, + model_flux[obs_name]) + del provenance_record + + model_files[obs_name] = cfg['obs_name'] + + # Group data by dataset + logger.info("Group input data by model, sort by experiment") + model_dataset = group_metadata(input_data, 'dataset', sort='exp') + + for model_name in model_dataset: + logger.info("Processing model data: %s", model_name) + # Solve Poisson equation + p, mht, flux, grad, files, mask = compute_p_field_diagnostic( + model_name, model_dataset[model_name], cfg) + model_p.update(p) + model_mht.update(mht) + model_flux.update(flux) + model_grad.update(grad) + model_files.update(files) + + # Multi-model plots + plot_multi_model_diagnostics(model_p, model_mht, model_flux, model_grad, + mask, model_files, cfg) + + +if __name__ == '__main__': + + with run_diagnostic() as config: + main(config) diff --git a/esmvaltool/implied_heat_transport/poisson_solver.py b/esmvaltool/implied_heat_transport/poisson_solver.py new file mode 100644 index 0000000000..d8aba51361 --- /dev/null +++ b/esmvaltool/implied_heat_transport/poisson_solver.py @@ -0,0 +1,256 @@ +"""Poisson solver for the full ocean-atmosphere column. The Poisson equation is +solved by numerically using the biconjugate gradient stabilized (BiCGSTAB) +method. + +The solution is achieved when the difference between the input field (radiative +flux) and the Laplacian of the output field is less than the stated tolerance. +If the solver fails to converge, the tolerance can be increased. + +Convergence is achieved faster by using a preconditioner on the output field. + +The meridional heat transport is estimated as the gradient of the scalar +p-field output of the Poisson solver. +""" + +import numpy as np + + +def set_metrics(): + # Define variables used in the solver + hp = np.zeros(M) + hv = np.zeros(M + 1) + + y = -0.5 * np.pi + 0.5 * dy + hv[0] = 0.0 + for j in range(0, M): + hp[j] = np.cos(y) + hv[j + 1] = np.cos(y + 0.5 * dy) + y += dy + hv[-1] = 0.0 + + return hp, hv + + +def set_matrix(hp, hv): + # Storing the full matrix + A_p = np.zeros([M, N]) + A_e = np.zeros([M, N]) + A_w = np.zeros([M, N]) + A_s = np.zeros([M, N]) + A_n = np.zeros([M, N]) + + # ILU factors + M_p = np.zeros([M + 1, N + 1]) + M_e = np.zeros([M + 1, N + 1]) + M_w = np.zeros([M + 1, N + 1]) + M_s = np.zeros([M + 1, N + 1]) + M_n = np.zeros([M + 1, N + 1]) + + # Spherical Laplacian variables + A = 1.0 / (dx**2.) + B = 1.0 / (dy**2.) + + # First calculate the Poisson equations 5-point stencil + # A_w is the contribution from i-1, A_e is from i+1, + # A_s is j-1, A_n is j+1, and A_p is the diagonal + for j in range(0, M): + tx = A / hp[j]**2.0 + ty = B / hp[j] + + for i in range(0, N): + A_w[j, i] = tx + A_e[j, i] = tx + A_s[j, i] = ty * hv[j] + A_n[j, i] = ty * hv[j + 1] + A_p[j, i] = -(A_w[j, i] + A_e[j, i] + A_s[j, i] + A_n[j, i]) + + # ILU/SIP preconditioner factors: alf = 0.0 is ILU + alf = 0.9 + M_p += 1.0 + + for j in range(1, M + 1): + for i in range(1, N + 1): + M_s[j, i] = A_s[j - 1, i - 1] / (1.0 + alf * M_e[j - 1, i]) + M_w[j, i] = A_w[j - 1, i - 1] / (1.0 + alf * M_n[j, i - 1]) + + M_p[j, i] = A_p[j-1, i-1] - \ + M_s[j, i]*(M_n[j-1, i] - alf*M_e[j-1, i]) -\ + M_w[j, i]*(M_e[j, i-1] - alf*M_n[j, i-1]) + M_p[j, i] = 1.0 / M_p[j, i] + + M_e[j, i] = (A_e[j - 1, i - 1] - + alf * M_s[j, i] * M_e[j - 1, i]) * M_p[j, i] + M_n[j, i] = (A_n[j - 1, i - 1] - + alf * M_w[j, i] * M_n[j, i - 1]) * M_p[j, i] + + return A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p + + +def swap_bounds(fld): + # Extends the array by one in all directions + # As the array is periodic it allows for easier computations at boundaries + wrap_pnt = int(N / 2 + 1) + for i in range(1, N + 1): + fld[0, i] = fld[1, wrap_pnt] + fld[M + 1, i] = fld[M, wrap_pnt] + wrap_pnt += 1 + if wrap_pnt > N: + wrap_pnt = 1 + + fld[:, 0] = fld[:, N] + fld[:, N + 1] = fld[:, 1] + + return fld + + +def calc_Ax(x, A_e, A_w, A_s, A_n, A_p): + # Laplacian equation + Ax = np.zeros([M + 2, N + 2]) + + x = swap_bounds(x) + for j in range(1, M + 1): + for i in range(1, N + 1): + Ax[j, i] = A_s[j-1, i-1]*x[j-1, i] + A_w[j-1, i-1]*x[j, i-1] + \ + A_e[j-1, i-1]*x[j, i+1] + A_n[j-1, i-1]*x[j+1, i] + \ + A_p[j-1, i-1]*x[j, i] + + Ax = swap_bounds(Ax) + return Ax + + +def dot_prod(x, y): + # Calculate dot product of two matrices + dot_prod = 0 + + for j in range(1, M + 1): + for i in range(1, N + 1): + dot_prod += x[j, i] * y[j, i] + + return dot_prod + + +def precon(x, M_e, M_w, M_s, M_n, M_p): + # Preconditioner + Cx = np.zeros([M + 2, N + 2]) + for j in range(1, M + 1): + for i in range(1, N + 1): + Cx[j, i] = M_p[j, i] * (x[j, i] - M_s[j, i] * Cx[j - 1, i] - + M_w[j, i] * Cx[j, i - 1]) + + Cx = swap_bounds(Cx) + + for j in range(M, 0, -1): + for i in range(N, 0, -1): + Cx[j, + i] = Cx[j, + i] - M_e[j, i] * Cx[j, i + 1] - M_n[j, i] * Cx[j + 1, i] + + Cx = swap_bounds(Cx) + return Cx + + +def bicgstab(logger, x, b, A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p): + # Bi-conjugate gradient stabilized numerical solver + sc_err = dot_prod(b, b) + + Ax = calc_Ax(x, A_e, A_w, A_s, A_n, A_p) + + r = b - Ax + cr = r + + alf = 1.0 + omg = 1.0 + nrm = 1.0 + imx = 1000 + + p = np.zeros([M + 2, N + 2]) + v = np.zeros([M + 2, N + 2]) + + it = 0 + while it < imx: + rho = dot_prod(r, cr) + + bet = (rho / nrm) * (alf / omg) + + t = r - bet * omg * v + + s = precon(t, M_e, M_w, M_s, M_n, M_p) + p = s + bet * p + + v = calc_Ax(p, A_e, A_w, A_s, A_n, A_p) + nrm = dot_prod(cr, v) + + alf = rho / nrm + s = r - alf * v + + cs = precon(s, M_e, M_w, M_s, M_n, M_p) + t = calc_Ax(cs, A_e, A_w, A_s, A_n, A_p) + + tt = dot_prod(t, t) + ts = dot_prod(t, s) + omg = ts / tt + + x = x + alf * p + omg * cs + r = s - omg * t + + nrm = rho + + if abs(omg) < 1.0e-16: + logger.info('Terminating Poisson solver.') + quit() + + err = np.sqrt(dot_prod(r, r) / sc_err) + if err < tol: + break + + it += 1 + + return x + + +def calc_mht(sol): + # MHT = Grad(P) + y = np.arange(-0.5 * np.pi + 0.5 * dy, 0.5 * np.pi, dy) + + grad_phi = np.gradient(sol, dy, axis=0) + grad_phi = grad_phi[1:-1, 1:-1] + MHT = np.sum((grad_phi.T * np.cos(y) * dx).T, axis=1) + + return MHT + + +def spherical_poisson(logger, forcing, tolerance=None): + # Define global variables + logger.info("spherical_poisson: Setting global variables") + + global N, M, dx, dy, tol + (M, N) = (np.shape(forcing)) + N = int(N) + M = int(M) + dx = 2.0 * np.pi / N + dy = np.pi / M + if tolerance is None: + tol = 2.0e-4 + else: + tol = tolerance + + logger.info("spherical_poisson: Calling set_metrics") + hp, hv = set_metrics() + + logger.info("spherical_poisson: Calling set_matrix") + A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p = set_matrix(hp, hv) + + # Solving the Poisson equation + rhs = np.zeros([M + 2, N + 2]) + sol = np.zeros([M + 2, N + 2]) + logger.info("spherical_poisson: Solving poisson equation") + rhs[1:-1, 1:-1] = forcing + rhs = swap_bounds(rhs) + sol = bicgstab(logger, sol, rhs, A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, + M_n, M_p) + + # Calculating meridional heat transport + logger.info("spherical_poisson: Calculating MHT") + mht = calc_mht(sol) + + return sol, mht diff --git a/esmvaltool/implied_heat_transport/poisson_solver_oht.py b/esmvaltool/implied_heat_transport/poisson_solver_oht.py new file mode 100644 index 0000000000..6890ba2be0 --- /dev/null +++ b/esmvaltool/implied_heat_transport/poisson_solver_oht.py @@ -0,0 +1,411 @@ +"""Poisson solver for over the ocean only. The Poisson equation is solved +numerically using the biconjugate gradient stabilized (BiCGSTAB) method. To +ensure a solution over the ocean only, Neumann boundary conditions are +implemented such that the normal derivative at the boundary is zero. The +simplest method of applying this boundary condition is to zero the land flux. + +The solution is achieved when the difference between the net surface flux and +the Laplacian of the output field is less than the stated tolerance. If the +solver fails to converge, the tolerance can be increased. + +Convergence is achieved faster by using a preconditioner on the output field. + +The meridional heat transport is estimated as the gradient of the scalar +p-field output of the Poisson solver. This is done using a central difference +method with exceptions at the land-sea boundaries. +""" + +import numpy as np +from scipy.ndimage import binary_fill_holes + + +def set_metrics(): + # Defines variables used in the solver + hp = np.zeros(M) + hv = np.zeros(M + 1) + + y = -0.5 * np.pi + 0.5 * dy + hv[0] = 0.0 + for j in range(0, M): + hp[j] = np.cos(y) + hv[j + 1] = np.cos(y + 0.5 * dy) + y += dy + hv[-1] = 0.0 + + return hp, hv + + +def set_matrix(hp, hv, mask): + # Storing the full matrix + A_p = np.zeros([M, N]) + A_e = np.zeros([M, N]) + A_w = np.zeros([M, N]) + A_s = np.zeros([M, N]) + A_n = np.zeros([M, N]) + + # ILU factors + M_p = np.zeros([M + 1, N + 1]) + M_e = np.zeros([M + 1, N + 1]) + M_w = np.zeros([M + 1, N + 1]) + M_s = np.zeros([M + 1, N + 1]) + M_n = np.zeros([M + 1, N + 1]) + + # Spherical Laplacian variables + A = 1.0 / (dx**2.) + B = 1.0 / (dy**2.) + + # First calculate the Poisson equations 5-point stencil + # A_w is the contribution from i-1, A_e is from i+1, + # A_s is j-1, A_n is j+1, and A_p is the diagonal + for j in range(0, M): + tx = A / hp[j]**2.0 + ty = B / hp[j] + + for i in range(0, N): + A_w[j, i] = tx + A_e[j, i] = tx + A_s[j, i] = ty * hv[j] + A_n[j, i] = ty * hv[j + 1] + A_p[j, i] = -(A_w[j, i] + A_e[j, i] + A_s[j, i] + A_n[j, i]) + + if mask[j + 1, i + 1] == 0: + A_w[j, i] = 0.0 + A_e[j, i] = 0.0 + A_s[j, i] = 0.0 + A_n[j, i] = 0.0 + A_p[j, i] = 1.0 + + # ILU/SIP preconditioner factors: alf = 0.0 is ILU + alf = 0.9 + M_p += 1.0 + + # Preconditioner only needs to act at sea points + for j in range(1, M + 1): + for i in range(1, N + 1): + if (mask[j, i] == 1): + M_s[j, i] = A_s[j - 1, i - 1] / (1.0 + alf * M_e[j - 1, i]) + M_w[j, i] = A_w[j - 1, i - 1] / (1.0 + alf * M_n[j, i - 1]) + + M_p[j, i] = A_p[j-1, i-1] - \ + M_s[j, i]*(M_n[j-1, i] - alf*M_e[j-1, i]) -\ + M_w[j, i]*(M_e[j, i-1] - alf*M_n[j, i-1]) + M_p[j, i] = 1.0 / M_p[j, i] + + M_e[j, i] = (A_e[j - 1, i - 1] - + alf * M_s[j, i] * M_e[j - 1, i]) * M_p[j, i] + M_n[j, i] = (A_n[j - 1, i - 1] - + alf * M_w[j, i] * M_n[j, i - 1]) * M_p[j, i] + + return A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p + + +def swap_bounds(fld): + # Extends the array by one in all directions + # As the array is periodic is allows for easier comparison at boundaries + wrap_pnt = int(N / 2 + 1) + for i in range(1, N + 1): + fld[0, i] = fld[1, wrap_pnt] + fld[M + 1, i] = fld[M, wrap_pnt] + wrap_pnt += 1 + if wrap_pnt > N: + wrap_pnt = 1 + + fld[:, 0] = fld[:, N] + fld[:, N + 1] = fld[:, 1] + + return fld + + +def calc_Ax(x, A_e, A_w, A_s, A_n, mask): + # Laplcian equation + # Only solved at ocean points (mask = 1) + # Uses mask to remove contribution of land points at boundary + Ax = np.zeros([M + 2, N + 2]) + + x = swap_bounds(x) + for j in range(1, M + 1): + for i in range(1, N + 1): + if mask[j, i] == 1: + Ax[j, i] = mask[j-1, i]*A_s[j-1, i-1]*(x[j-1, i]-x[j, i]) + \ + mask[j, i-1]*A_w[j-1, i-1]*(x[j, i-1]-x[j, i]) + \ + mask[j, i+1]*A_e[j-1, i-1]*(x[j, i+1]-x[j, i]) + \ + mask[j+1, i]*A_n[j-1, i-1]*(x[j+1, i]-x[j, i]) + + Ax = swap_bounds(Ax) + return Ax + + +def dot_prod(x, y): + # Calculate dot product of two matrices + dot_prod = 0 + + for j in range(1, M + 1): + for i in range(1, N + 1): + dot_prod += x[j, i] * y[j, i] + + return dot_prod + + +def precon(x, M_e, M_w, M_s, M_n, M_p): + # Preconditioner + Cx = np.zeros([M + 2, N + 2]) + for j in range(1, M + 1): + for i in range(1, N + 1): + Cx[j, i] = M_p[j, i] * (x[j, i] - M_s[j, i] * Cx[j - 1, i] - + M_w[j, i] * Cx[j, i - 1]) + + Cx = swap_bounds(Cx) + + for j in range(M, 0, -1): + for i in range(N, 0, -1): + Cx[j, + i] = Cx[j, + i] - M_e[j, i] * Cx[j, i + 1] - M_n[j, i] * Cx[j + 1, i] + + Cx = swap_bounds(Cx) + return Cx + + +def bicgstab(logger, x, b, A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p, + mask): + # Bi-conjugate gradient stabilized numerical solver + sc_err = dot_prod(b, b) + + Ax = calc_Ax(x, A_e, A_w, A_s, A_n, mask) + + r = b - Ax + cr = r + + alf = 1.0 + omg = 1.0 + nrm = 1.0 + imx = 1000 + + p = np.zeros([M + 2, N + 2]) + v = np.zeros([M + 2, N + 2]) + + it = 0 + while it < imx: + rho = dot_prod(r, cr) + + bet = (rho / nrm) * (alf / omg) + + t = r - bet * omg * v + + s = precon(t, M_e, M_w, M_s, M_n, M_p) + p = s + bet * p + + v = calc_Ax(p, A_e, A_w, A_s, A_n, mask) + nrm = dot_prod(cr, v) + + alf = rho / nrm + s = r - alf * v + + cs = precon(s, M_e, M_w, M_s, M_n, M_p) + t = calc_Ax(cs, A_e, A_w, A_s, A_n, mask) + + tt = dot_prod(t, t) + ts = dot_prod(t, s) + omg = ts / tt + + x = x + alf * p + omg * cs + r = s - omg * t + + nrm = rho + + if abs(omg) < 1.0e-16: + logger.info('Terminating Poisson solver.') + quit() + + err = np.sqrt(dot_prod(r, r) / sc_err) + if err < tol: + break + + it += 1 + + return x + + +def calc_mht(sol, mask, wrap_mask): + # MHT = Grad(P) + grad_phi = np.zeros([M, N]) + wrap_mask = wrap_mask[:, 1:-1] + sol = sol[:, 1:-1] + + y = np.arange(-0.5 * np.pi + 0.5 * dy, 0.5 * np.pi, dy) + + for i in range(1, M + 1): + for j in range(0, N): + # Ocean points only + if wrap_mask[i, j] == 1: + if (wrap_mask[i + 1, j] == 0) and (wrap_mask[i - 1, j] == 0): + # If land N+S, gradient = 0 + grad_phi[i - 1, j] = 0 + elif wrap_mask[i + 1, j] == 0: + # If land N, assume N = current ocean + grad_phi[i - 1, j] = (sol[i, j] - sol[i - 1, j]) / (2 * dy) + elif wrap_mask[i - 1, j] == 0: + # If land S, assume S = current ocean + grad_phi[i - 1, j] = (sol[i + 1, j] - sol[i, j]) / (2 * dy) + else: + # Surrounded by ocean + grad_phi[i - 1, + j] = (sol[i + 1, j] - sol[i - 1, j]) / (2 * dy) + + # Multiply by mask to get individual basin MHT + grad_phi *= mask + mht = np.sum((grad_phi.T * np.cos(y) * dx).T, axis=1) + + return mht + + +def calc_gradient(sol, wrap_mask): + # MHT = Grad(P) + # Used to calculate gradient in both x and y directions + # Needed for quiver plot arrows showing transport direction/magnitude + + # Northwards transport + grad_y = np.zeros([M, N]) + wrap_y = wrap_mask[:, 1:-1] + sol_y = sol[:, 1:-1] + + for i in range(1, M + 1): + for j in range(0, N): + # Ocean points only + if wrap_y[i, j] == 1: + if (wrap_y[i + 1, j] == 0) and (wrap_y[i - 1, j] == 0): + grad_y[i - 1, j] = 0 + elif wrap_y[i + 1, j] == 0: + grad_y[i - 1, + j] = (sol_y[i, j] - sol_y[i - 1, j]) / (2 * dy) + elif wrap_y[i - 1, j] == 0: + grad_y[i - 1, + j] = (sol_y[i + 1, j] - sol_y[i, j]) / (2 * dy) + else: + grad_y[i - 1, + j] = (sol_y[i + 1, j] - sol_y[i - 1, j]) / (2 * dy) + + del wrap_y, sol_y + + # Eastwards transport + grad_x = np.zeros([M, N]) + wrap_x = wrap_mask[1:-1, :] + sol_x = sol[1:-1, :] + + for i in range(0, M): + for j in range(1, N + 1): + # Ocean points only + if wrap_x[i, j] == 1: + if (wrap_x[i, j + 1] == 0) and (wrap_x[i, j - 1] == 0): + grad_x[i, j - 1] = 0 + elif wrap_x[i, j + 1] == 0: + grad_x[i, + j - 1] = (sol_x[i, j] - sol_x[i, j - 1]) / (2 * dx) + elif wrap_x[i, j - 1] == 0: + grad_x[i, + j - 1] = (sol_x[i, j + 1] - sol_x[i, j]) / (2 * dx) + else: + grad_x[i, j - + 1] = (sol_x[i, j + 1] - sol_x[i, j - 1]) / (2 * dx) + + del wrap_x, sol_x + + return grad_x, grad_y + + +def define_masks(mask): + # BASINS + # Drake Passage: 71 W = 360-71 = 289 E + # Southern Ocean: 147 E + # Southern Ocean: 20 E + # Arctic: 80 W = 360-80 = 280 E + # Artic: 100 E = 100 + + xd = 360 / N + yd = 180 / M + + # Pacific + pacific = mask.copy() + pacific = 1 - pacific + pacific[:, int(np.ceil(289 / xd)):] = 1 # Drake Passage + pacific[:int(np.ceil(81 / yd)), :int(np.floor(147 / + xd))] = 1 # Southern Ocean + pacific[int(np.floor(97 / yd)):, int(np.floor(280 / xd)):] = 1 # Arctic + pacific[int(np.floor(138 / yd)):, :int(np.floor(54 / xd))] = 1 # Arctic + pacific[int(np.floor(75 / yd)):int(np.ceil(100 / + yd)), :int(np.ceil(38 / + xd))] = 1 + pacific = binary_fill_holes(pacific) + # Binary fill holes used to remove inland seas + # Also removes e.g. Med if the resolution is too low so the sea is cut off + # from the ocean + + # Indian + indian = mask.copy() + indian = 1 - indian + 1 - pacific + indian[:, :int(np.floor(20 / xd))] = 1 + indian[:, int(np.ceil(200 / xd)):] = 1 + indian[int(np.floor(150 / yd)):, :] = 1 + + # Atlantic + atlantic = mask.copy() + atlantic = 1 - atlantic + 1 - pacific + 1 - indian + + masks = { + 'global': mask, + 'atlantic': 1 - atlantic, + 'pacific': 1 - pacific, + 'indian': 1 - indian + } + + return masks + + +def spherical_ocean_poisson(logger, forcing, mask, tolerance=None): + # Define global variables + logger.info("spherical_ocean_poisson: Setting global variables") + + global N, M, dx, dy, tol + (M, N) = (np.shape(mask)) + N = int(N) + M = int(M) + dx = 2.0 * np.pi / N + dy = np.pi / M + if tolerance is None: + tol = 3.0e-2 + else: + tol = tolerance + + logger.info("spherical_ocean_poisson: Calling set_metrics") + hp, hv = set_metrics() + + # Defining masks + wrap_mask = np.zeros([M + 2, N + 2]) + wrap_mask[1:-1, 1:-1] = mask + wrap_mask = swap_bounds(wrap_mask) + + basins = define_masks(mask) + + # Solving the Poisson equation + logger.info("spherical_ocean_poisson: Calling set_matrix") + A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p = set_matrix( + hp, hv, wrap_mask) + + rhs = np.zeros([M + 2, N + 2]) + rhs[1:-1, 1:-1] = forcing + rhs = swap_bounds(rhs) + + logger.info("spherical_ocean_poisson: Solving poisson equation") + sol = np.zeros([M + 2, N + 2]) + sol = bicgstab(logger, sol, rhs, A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, + M_n, M_p, wrap_mask) + + # Calculating meridional heat transport + logger.info("spherical_ocean_poisson: Calculating MHT") # + mht = {} + for x in basins: + mht[x] = calc_mht(sol, basins[x], wrap_mask) + + x, y = calc_gradient(sol, wrap_mask) + + return sol, mht, x, y diff --git a/esmvaltool/implied_heat_transport/recipe_ocean_transport.yml b/esmvaltool/implied_heat_transport/recipe_ocean_transport.yml new file mode 100644 index 0000000000..f9d891da1e --- /dev/null +++ b/esmvaltool/implied_heat_transport/recipe_ocean_transport.yml @@ -0,0 +1,120 @@ +# ESMValTool +# recipe_ocean_transport.yml +--- +documentation: + title: Recipe to estimate implied ocean heat transport. + + description: | + This recipe solves the spherical Poisson equation for the net surface flux (NSF) + over the ocean to produce an estimate of the implied heat transport within the + ocean. + + Requires a 'mask' (iris compatible) data cube which identifies the position of the + land-sea boundaries. + - Ocean = 0 + - Land = 1 + + A caveat of this recipe is that the pattern of ocean heat content (OHC) is not + considered. Instead the OHC term is assumed to have no spatial variability and the + storage term is taken to be the global-mean of the NSF. + + The 'single_model' script focuses on a single simulation and produces three plots. + 1. A comparison of the merdional heat transport (MHT) in the global ocean, and the + pacific, indian and atlantic ocean basins. + 2. The scalar p-field output from the Poisson solver which is used to the estimate + the heat transport, with arrows overlaid showing the direction of transport. + 3. A plot showing the scalar p-field compared to the input NSF field. + If multiple datasets are chosen, the plots will be produced for each dataset. + + The 'multi_model' script compares the chosen models to the observational data + for the same time period. 6 plots are produced in total regardless of the number + of datasets chosen. Requires an input of the observational data for the chosen time + period in an iris compatible format, and the name of the dataset. + + authors: + - andela_bouwe + - righi_mattia + + maintainer: + - schlund_manuel + + references: + - acknow_project + + projects: + - esmval + - c3s-magic + +datasets: + - {dataset: BCC-ESM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + - {dataset: FGOALS-g3, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + - {dataset: IITM-ESM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + - {dataset: ACCESS-ESM1-5, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + - {dataset: ACCESS-CM2, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + - {dataset: MIROC6, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + - {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon} + - {dataset: CESM2-FV2, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + - {dataset: NorCPM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + - {dataset: NorESM2-LM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + - {dataset: NESM3, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + +preprocessors: + + climate_mean_global: + climate_statistics: + operator: mean + +diagnostics: + + ocean_heat_transport: + description: Global map of divergent energy and the corresponding meridional heat transport. + themes: + - phys + realms: + - atmos + variables: + rlds: + short_name: rlds + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + rlus: + short_name: rlus + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + rsds: + short_name: rsds + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + rsus: + short_name: rsus + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + hfls: + short_name: hfls + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + hfss: + short_name: hfss + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + scripts: + #single_model: + # script: /data/users/fpearce/git_work/ESMValTool/esmvaltool/implied_heat_transport/single_model_oht_diag.py + # mask: '/net/data/users/fpearce/ocean_poisson/landmask.nc' + multi_model: + script: /data/users/fpearce/git_work/ESMValTool/esmvaltool/implied_heat_transport/multi_model_oht_diag.py + mask: '/net/data/users/fpearce/ocean_poisson/landmask.nc' + obs_data: '/net/data/users/fpearce/ocean_poisson/deepc_2001_2014.nc' + obs_name: 'DEEP-C' diff --git a/esmvaltool/implied_heat_transport/recipe_transport.yml b/esmvaltool/implied_heat_transport/recipe_transport.yml new file mode 100644 index 0000000000..224cbad590 --- /dev/null +++ b/esmvaltool/implied_heat_transport/recipe_transport.yml @@ -0,0 +1,175 @@ +# ESMValTool +# recipe_transport.yml +--- +documentation: + title: Implied heat transport + + description: | + This recipe solves the spherical Poisson equation for a number of + top-of-the-atmosphere (TOA) radiative fluxes: + - net toa + - net sw + - net lw + - outgoing sw + - incoming sw + From the scalar p-field output of the Poisson solver the implied heat + transport of the full atmosphere-ocean column can be estimates, with the + contribution from each flux quantified. + + The implied heat transport due to clouds is also estimated using both the clear + and all-sky versions of the radiative fluxes. + + A caveat of this recipe is that the pattern of ocean heat content (OHC) is + not considered. Instead the OHC term is assumed to have no spatial variability + and the storage term is taken to be the global-mean of the given flux. + + The 'single_model' script focuses on a single simulation and produces a number + of plots comparing the results of the Poisson solver output of different radiative + fluxes. If multiple datasets are chosen, the plots will be produced for each + dataset. + + The 'multi-model' script directly compares the chosen models to the + CERES-EBAF results for the same time period. Only one set of plots are produced + regardless of the number of datasets. Requires the 'additional_datasets' field + to be included and filled in with the CERES-EBAF details from obs4MIPS. + + + authors: + - andela_bouwe + - righi_mattia + + maintainer: + - schlund_manuel + + references: + - acknow_project + + projects: + - esmval + - c3s-magic + +datasets: + - {dataset: BCC-ESM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + #- {dataset: FGOALS-g3, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + #- {dataset: IITM-ESM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} +# - {dataset: CNRM-ESM2-1, project: CMIP6, exp: amip, ensemble: r1i1p1f2, grid: gn, mip: Amon} +# - {dataset: CNRM-CM6-1, project: CMIP6, exp: amip, ensemble: r1i1p1f2, grid: gn, mip: Amon} + #- {dataset: ACCESS-ESM1-5, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + #- {dataset: ACCESS-CM2, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} +# - {dataset: MPI-ESM-1-2-HAM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} +# - {dataset: IPSL-CM6A-LR, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + #- {dataset: MIROC6, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + #- {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon} +# - {dataset: UKESM1-0-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f4, grid: gn, mip: Amon} +# - {dataset: MPI-ESM1-2-LR, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + #- {dataset: GISS-E2-1-G, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + #- {dataset: CESM2-FV2,project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + #- {dataset: NorCPM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + #- {dataset: NorESM2-LM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + #- {dataset: NESM3, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + +preprocessors: + + climate_mean_global: + regrid: + # Use the lowest resolution grid of your chosen data for the target + target_grid: 1.875x1.25 + scheme: area_weighted + climate_statistics: + operator: mean + + +diagnostics: + + implied_heat_transport: + description: Solves the Poisson solver and produces a number of comparison plots. + themes: + - phys + realms: + - atmos + variables: + rtnt: + derive: true + short_name: rtnt + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + rsnt: + derive: true + short_name: rsnt + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + rlut: + short_name: rlut + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + additional_datasets: + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, + start_year: 2001, end_year: 2014} + rlutcs: + short_name: rlutcs + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + additional_datasets: + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, + start_year: 2001, end_year: 2014} + rsutcs: + short_name: rsutcs + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + additional_datasets: + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, + start_year: 2001, end_year: 2014} + rsut: + short_name: rsut + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + additional_datasets: + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, + start_year: 2001, end_year: 2014} + rsdt: + short_name: rsdt + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + additional_datasets: + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, + start_year: 2001, end_year: 2014} + netcre: + derive: true + short_name: netcre + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + swcre: + derive: true + short_name: swcre + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + lwcre: + derive: true + short_name: lwcre + mip: Amon + preprocessor: climate_mean_global + start_year: 2001 + end_year: 2014 + scripts: + #single_model: + # script: /data/users/fpearce/git_work/ESMValTool/esmvaltool/implied_heat_transport/single_model_diagnostics.py + multi_model: + script: /data/users/fpearce/git_work/ESMValTool/esmvaltool/implied_heat_transport/multi_model_diagnostics.py diff --git a/esmvaltool/implied_heat_transport/single_model_diagnostics.py b/esmvaltool/implied_heat_transport/single_model_diagnostics.py new file mode 100644 index 0000000000..f0d0bf6c30 --- /dev/null +++ b/esmvaltool/implied_heat_transport/single_model_diagnostics.py @@ -0,0 +1,429 @@ +""" Single model diagnostics +1. Solve the Poisson solver +2. Produce and save plots +""" + +import logging +from pathlib import Path + +import cartopy.crs as ccrs +import iris +import matplotlib.pyplot as plt +import numpy as np +from matplotlib import gridspec +from poisson_solver import spherical_poisson + +from esmvaltool.diag_scripts.shared import ( + group_metadata, + run_diagnostic, + save_figure, +) + +# Initialise logger +logger = logging.getLogger(Path(__file__).stem) + + +def get_provenance_record(plot_type, ancestor_files): + # Create a provenance record describing the diagnostic data and plot. + + record = { + 'statistics': ['mean'], + 'domains': ['global'], + 'plot_types': [plot_type], + 'authors': [ + 'andela_bouwe', + 'righi_mattia', + ], + 'references': [ + 'acknow_project', + ], + 'ancestors': ancestor_files, + } + return record + + +def call_poisson(cube, variable): + # Remove average of flux field to account for storage term + data = cube.data.copy() + grid = iris.analysis.cartography.area_weights(cube, normalize=True) + data_mean = np.average(data, weights=grid.data) + data -= data_mean + + logger.info("Calling spherical_poisson") + poisson, mht = spherical_poisson(logger, + forcing=data * (6371e3**2.0), + tolerance=2.0e-4) + logger.info("Ending spherical_poisson") + + # Poisson data cube + p_cube = cube.copy() + p_cube.rename(variable + '_poisson') + p_cube.units = 'W' + p_cube.data = poisson[1:-1, 1:-1] + + # MHT data cube + mht_cube = cube.copy() + mht_cube = mht_cube.collapsed('longitude', iris.analysis.MEAN) + mht_cube.rename(variable + '_mht') + mht_cube.units = 'W' + mht_cube.data = mht + + # Flux data cube + cube.rename(variable + '_flux') + cube.units = 'W.m-2' + cube.data = data + + return p_cube, mht_cube, cube + + +def compute_p_field_diagnostic(model_dict, cfg): + # Sort experiments by variable + exp_dataset = group_metadata(model_dict, 'exp', sort='variable_group') + + # Define dicts to hold the data + p_dict = {} + mht_dict = {} + flux_dict = {} + files_dict = {} + + for exp_nme in exp_dataset: + logger.info("Experiment: %s", exp_nme) + p_cube = iris.cube.CubeList([]) + mht_cube = iris.cube.CubeList([]) + flux_cube = iris.cube.CubeList([]) + + for attributes in exp_dataset[exp_nme]: + input_file = attributes['filename'] + variable_name = attributes['short_name'] + logger.info("Loading %s", input_file) + cube = iris.load_cube(input_file) + + # Model key for dicts + key = '{0}_{1}'.format(attributes['dataset'], attributes['exp']) + if key not in files_dict: + files_dict[key] = {} + files_dict[key][variable_name] = input_file + + # If flux is upwelling, x -1 + if attributes['short_name'] in [ + 'rlut', 'rlutcs', 'rsut', 'rsutcs' + ]: + cube *= -1 + + # Call the Poisson solver + p, mht, flux = call_poisson(cube, variable_name) + p_cube.append(p) + mht_cube.append(mht) + flux_cube.append(cube) + + del p, mht + + # Add iris cubelist to dictionary + p_dict[key] = p_cube + mht_dict[key] = mht_cube + flux_dict[key] = flux_cube + del key, p_cube, mht_cube, flux_cube + + return p_dict, mht_dict, flux_dict, files_dict + + +def mht_plot(variables, mht, ancestor_files, cfg, pltname): + """MHT plot Produces a single plot comparing the estimated MHT due to the + input variables. + + MHT is presented in PW, plotted against latitude. Up to three + variables are on each plot. + """ + + # Variables + var_dict = { + 'rtnt': 'Net TOA', + 'rsnt': 'Net SW', + 'rlut': 'Net LW', + 'rlutcs': '-1 x OLR (clear)', + 'rsut': '-1 x OSR (all)', + 'rsutcs': '-1 x OSR (clear)', + 'netcre': 'NET CRE', + 'swcre': 'SW CRE', + 'lwcre': 'LW CRE' + } + + # MHT comparison plot + plt.figure() + for i, x in enumerate(variables): + cube = mht.extract_cube(x + '_mht') + plt.plot(cube.coord('latitude').points, + cube.data / 1e15, + label=var_dict[x]) + del cube + plt.xlim(-90, 90) + ymin, ymax = plt.ylim() + ylim = np.max([np.abs(ymin), np.abs(ymax)]) + plt.ylim(-ylim, ylim) + plt.xticks(np.arange(-90, 120, 30)) + plt.hlines(0, -90, 90, color='k', linestyles=':') + plt.vlines(0, -10, 10, color='k', linestyles=':') + plt.xlabel('Latitude') + plt.ylabel('MHT (PW)') + plt.legend() + plt.tight_layout() + + provenance_record = get_provenance_record(plot_type='zonal', + ancestor_files=ancestor_files) + save_figure(pltname, provenance_record, cfg) + + +def quiver_plot(variables, poisson, flux, ancestor_files, cfg, pltname): + """Maps of scalar p-fields and corresponding flux The maps are plotted such + that the variables share the same colorbar (one each for the flux maps and + the scalar p-field maps). + + Scalar p-field is plotted as PW, flux maps are W/m2. The scalar + p-field maps have arrows imposed over the map which show the + direction of the implied heat transport. The arrows are also + normalised across the different variables so the lengths can be + directly compared (a longer arrow corresponds to a larger heat + transport). + """ + + # Variables + var_dict = { + 'rtnt': 'Net TOA', + 'rsnt': 'Net SW', + 'rlut': 'Net LW', + 'rlutcs': '-1 x OLR (clear)', + 'rsut': '-1 x OSR (all)', + 'rsutcs': '-1 x OSR (clear)', + 'netcre': 'NET CRE', + 'swcre': 'SW CRE', + 'lwcre': 'LW CRE' + } + + # Variables to determine map extent + # Allows for same colorbar across subplots + vmin = 0 + vmax = 0 + wmin = 0 + wmax = 0 + + for i, p in enumerate(variables): + # Scalar p-field + cube = poisson.extract_cube(p + '_poisson') + tmp = np.average(cube.data) + + plt.figure() + plt.axes(projection=ccrs.PlateCarree()) + plt.contourf(cube.coord('longitude').points, + cube.coord('latitude').points, + cube.data - tmp, + levels=10, + transform=ccrs.PlateCarree(central_longitude=0)) + plt.gca().coastlines() + cbar = plt.colorbar() + cmin, cmax = cbar.mappable.get_clim() + vmin = np.min([vmin, cmin]) + vmax = np.max([vmax, cmax]) + del tmp, cube + plt.close() + + # Flux + cube = flux.extract_cube(p + '_flux') + tmp = np.average(cube.data) + + plt.figure() + plt.axes(projection=ccrs.PlateCarree()) + plt.contourf(cube.coord('longitude').points, + cube.coord('latitude').points, + cube.data - tmp, + levels=10, + transform=ccrs.PlateCarree(central_longitude=0)) + plt.gca().coastlines() + cbar = plt.colorbar() + cmin, cmax = cbar.mappable.get_clim() + wmin = np.min([wmin, cmin]) + wmax = np.max([wmax, cmax]) + del tmp + plt.close() + + levels1 = np.linspace(vmin / 1e15, vmax / 1e15, 11) + levels2 = np.linspace(wmin, wmax, 11) + + len_p = len(variables) + if len_p == 3: + plt.figure(figsize=(10, 10)) + gs = gridspec.GridSpec(22, 2) + gs.update(wspace=0.25, hspace=1.5) + elif len_p == 2: + plt.figure(figsize=(10, 6.5)) + gs = gridspec.GridSpec(15, 2) + gs.update(wspace=0.25, hspace=1.5) + + for i, p in enumerate(variables): + # Scalar p-field + cube = poisson.extract_cube(p + '_poisson') + tmp = np.average(cube.data) + + x, y = np.meshgrid( + cube.coord('longitude').points, + cube.coord('latitude').points) + v, u = np.gradient(cube.data, 1e14, 1e14) + u = u[1:-1, 1:-1] + v = v[1:-1, 1:-1] + + ax1 = plt.subplot(gs[i * 7:(i * 7) + 7, 0], + projection=ccrs.PlateCarree()) + cb1 = ax1.contourf(cube.coord('longitude').points, + cube.coord('latitude').points, + (cube.data - tmp) / 1e15, + levels=levels1, + transform=ccrs.PlateCarree(central_longitude=0)) + plt.gca().coastlines() + if i == 0: + R = ax1.quiver(x[15::25, 15::32], + y[15::25, 15::32], + u[15::25, 15::32], + v[15::25, 15::32], + pivot='mid', + color='w') + R._init() + else: + ax1.quiver(x[15::25, 15::32], + y[15::25, 15::32], + u[15::25, 15::32], + v[15::25, 15::32], + scale=R.scale, + pivot='mid', + color='w') + ax1.set_xticks(np.arange(-180, 190, 60)) + ax1.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) + ax1.set_yticks(np.arange(-90, 100, 30)) + ax1.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + ax1.set_title(var_dict[p]) + del cube, tmp, u, v, x, y + + # Flux + cube = flux.extract_cube(p + '_flux') + tmp = np.average(cube.data) + ax2 = plt.subplot(gs[i * 7:(i * 7) + 7, 1], + projection=ccrs.PlateCarree()) + cb2 = ax2.contourf(cube.coord('longitude').points, + cube.coord('latitude').points, + cube.data - tmp, + levels=levels2, + transform=ccrs.PlateCarree(central_longitude=0), + cmap='plasma') + plt.gca().coastlines() + ax2.set_xticks(np.arange(-180, 190, 60)) + ax2.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) + ax2.set_yticks(np.arange(-90, 100, 30)) + ax2.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + ax2.set_title(var_dict[p]) + del tmp + + ax1 = plt.subplot(gs[-1, 0]) + plt.colorbar(cb1, + cax=ax1, + orientation='horizontal', + label='Scalar p-field (PW)') + + ax2 = plt.subplot(gs[-1, 1]) + plt.colorbar(cb2, cax=ax2, orientation='horizontal', label='Flux (W/m2)') + + if len_p == 3: + plt.subplots_adjust(left=0.1, right=0.94, top=1.0, bottom=0.11) + elif len_p == 2: + plt.subplots_adjust(left=0.11, right=0.9, top=1.0, bottom=0.13) + + provenance_record = get_provenance_record(plot_type='map', + ancestor_files=ancestor_files) + save_figure(pltname, provenance_record, cfg) + + +def plot_single_model_diagnostics(poisson, mht, flux, basename, ancestor_files, + cfg): + + # TOA: net, lw, sw + variables = ['rtnt', 'rsnt', 'rlut'] + mht_plot(variables, + mht, + ancestor_files, + cfg, + pltname=basename + '_toa_mht') + quiver_plot(variables, + poisson, + flux, + ancestor_files, + cfg, + pltname=basename + '_toa_p_field') + + # OSR: clear vs. all sky + variables = ['rsut', 'rsutcs'] + mht_plot(variables, + mht, + ancestor_files, + cfg, + pltname=basename + '_osr_mht') + quiver_plot(variables, + poisson, + flux, + ancestor_files, + cfg, + pltname=basename + '_osr_p_field') + + # CRE: net, lw, sw + variables = ['netcre', 'swcre', 'lwcre'] + mht_plot(variables, + mht, + ancestor_files, + cfg, + pltname=basename + '_cre_mht') + quiver_plot(variables, + poisson, + flux, + ancestor_files, + cfg, + pltname=basename + '_cre_p_field') + + +def main(cfg): + """Solve the Poisson equation and estimate the meridional heat + transport.""" + input_data = cfg['input_data'].values() + + # Dictionaries for data cubes + model_p = {} + model_mht = {} + model_flux = {} + model_files = {} + + # Group data by dataset + logger.info("Group input data by model, sort by experiment") + model_dataset = group_metadata(input_data, 'dataset', sort='exp') + + # Solve Poisson equation for each dataset + for model_name in model_dataset: + if model_name == 'CERES-EBAF': + # Ignore any observational data + continue + + logger.info("Processing model data: %s", model_name) + p, mht, flux, files = compute_p_field_diagnostic( + model_dataset[model_name], cfg) + model_p.update(p) + model_mht.update(mht) + model_flux.update(flux) + model_files.update(files) + del p, mht, flux, files + + # Produce plots + for model in model_mht: + output_basename = model + plot_single_model_diagnostics(model_p[model], model_mht[model], + model_flux[model], output_basename, + model_files[model], cfg) + + +if __name__ == '__main__': + + with run_diagnostic() as config: + main(config) diff --git a/esmvaltool/implied_heat_transport/single_model_oht_diag.py b/esmvaltool/implied_heat_transport/single_model_oht_diag.py new file mode 100644 index 0000000000..8d2d5f16ad --- /dev/null +++ b/esmvaltool/implied_heat_transport/single_model_oht_diag.py @@ -0,0 +1,297 @@ +""" Single model diagnostics +1. Solve the Poisson solver over the ocean +2. Produce and save plots +""" + +import logging +from pathlib import Path + +import cartopy.crs as ccrs +import iris +import matplotlib.pyplot as plt +import numpy as np +from matplotlib import gridspec +from poisson_solver_oht import spherical_ocean_poisson +from scipy.ndimage import binary_fill_holes + +from esmvaltool.diag_scripts.shared import ( + group_metadata, + run_diagnostic, + save_figure, +) + +# Initialise logger +logger = logging.getLogger(Path(__file__).stem) + + +def get_provenance_record(plot_type, ancestor_files): + # Create a provenance record describing the diagnostic data and plot. + + record = { + 'statistics': ['mean'], + 'domains': ['global'], + 'plot_types': [plot_type], + 'authors': [ + 'andela_bouwe', + 'righi_mattia', + ], + 'references': [ + 'acknow_project', + ], + 'ancestors': ancestor_files, + } + return record + + +def call_poisson(cube, mask): + # Remove average of flux field to account for storage term + data = cube.data.copy() + grid = iris.analysis.cartography.area_weights(cube, normalize=True) + data_mean = np.average(data, weights=np.ma.array(grid, mask=mask)) + data -= data_mean + data *= (1 - mask) + + logger.info("Calling spherical_poisson") + poisson, mht, dx, dy = spherical_ocean_poisson(logger, + forcing=data * + (6371e3**2.0), + mask=(1 - mask)) + logger.info("Ending spherical_poisson") + + # Poisson data cube + p_cube = cube.copy() + p_cube.rename('poisson') + p_cube.units = 'W' + p_cube.data = poisson[1:-1, 1:-1] + + # Flux data cube + cube.rename('flux') + cube.units = 'W.m-2' + cube.data = data + + return p_cube, mht, cube, dx, dy + + +def masks(cfg): + mask = iris.load_cube(cfg['mask']) + + plt.figure() + plt.contourf(mask.data) + plt.colorbar() + plt.savefig('tst.png') + + # Close any seas not connected to the oceans + # e.g. Mediterranean Sea at some resolutions + (y, x) = np.shape(mask) + wrap_mask = np.zeros([y, x + 2]) + wrap_mask[:, 1:-1] = mask.data + wrap_mask[:, 0] = mask.data[:, -1] + wrap_mask[:, -1] = mask.data[:, 0] + + wrap_mask = binary_fill_holes(wrap_mask) + mask.data = wrap_mask[:, 1:-1] + + # Return wrapped mask + return mask + + +def calc_nsf(dataset, mask): + # Calculate NSF from the input fluxes + # NSF = (rlds - rlus) + (rsds - rsus) - (hfls + hfss) + + nsf_dict = {} + for attributes in dataset: + input_file = attributes['filename'] + variable_name = attributes['short_name'] + logger.info("Loading %s", input_file) + cube = iris.load_cube(input_file) + nsf_dict[variable_name] = cube.data + + nsf = cube.copy() + nsf.rename('Net Surface Flux') + nsf.data = (nsf_dict['rlds'] - nsf_dict['rlus']) + \ + (nsf_dict['rsds'] - nsf_dict['rsus']) - \ + (nsf_dict['hfss'] + nsf_dict['hfls']) + + # Regrid NSF to the same grid as mask + nsf = nsf.regrid(mask, iris.analysis.AreaWeighted()) + if 'variable_id' in nsf.attributes: + del nsf.attributes['variable_id'] + + return nsf + + +def compute_p_field_diagnostic(model_name, model_dict, cfg): + # Define mask + mask = masks(cfg) + + # Determine number of experiments + exp_dataset = group_metadata(model_dict, 'exp', sort='variable_group') + + for exp_nme in exp_dataset: + # Calculate MHT/solve Poisson equation + logger.info("Experiment: %s", exp_nme) + nsf = calc_nsf(exp_dataset[exp_nme], mask) + p, mht, flux, dx, dy = call_poisson(nsf, mask.data) + + files_dict = {} + for attributes in exp_dataset[exp_nme]: + variable_name = attributes['short_name'] + input_file = attributes['filename'] + files_dict[variable_name] = input_file + + ancestor_files = files_dict + basename = model_name + '_' + exp_nme + + # Plotting + mht_plot(mht, flux, ancestor_files, cfg, pltname=basename) + quiver_plot(p, + flux, + mask.data, + dx, + dy, + ancestor_files, + cfg, + pltname=basename) + + +def mht_plot(mht, cube, ancestor_files, cfg, pltname): + """MHT plot Produces a single plot which compares the total ocean MHT to + the Atlantic, Indian and Pacific ocean contributions.""" + + plt.figure() + for x in mht: + plt.plot(cube.coord('latitude').points, mht[x] / 1e15, label=x) + plt.xlim(-90, 90) + ymin, ymax = plt.ylim() + ylim = np.max([np.abs(ymin), np.abs(ymax)]) + plt.ylim(-ylim, ylim) + plt.xticks(np.arange(-90, 120, 30)) + plt.hlines(0, -90, 90, color='k', linestyles=':') + plt.vlines(0, -10, 10, color='k', linestyles=':') + plt.xlabel('Latitude') + plt.ylabel('MHT (PW)') + plt.legend() + plt.title(pltname) + plt.tight_layout() + + # Save plot + provenance_record = get_provenance_record(plot_type='zonal', + ancestor_files=ancestor_files) + save_figure(pltname + '_mht', provenance_record, cfg) + + +def quiver_plot(poisson, flux, mask, dx, dy, ancestor_files, cfg, pltname): + """Scalar p-field/NSF maps Produces two plots per dataset. + + 1. The scalar p-field and the input flux field as subplots. + 2. Scalar p-field plotted individually with arrows showing + the direction/magnitude of the heat transport. + In all maps the land points are masked out and the land + boundaries are plotted. + """ + + # Determine levels + plt.figure() + plt.contourf( + poisson.coord('longitude').points, + poisson.coord('latitude').points, + np.ma.array(poisson.data / 1e15, mask=mask)) + cbar = plt.colorbar() + cmin, cmax = cbar.mappable.get_clim() + plt.close() + + levels1 = np.linspace(cmin, cmax, 21) + + # Poisson p-field + flux field + plt.figure(figsize=(12, 5)) + gs = gridspec.GridSpec(1, 2) + + ax1 = plt.subplot(gs[0, 0], projection=ccrs.PlateCarree()) + cb1 = ax1.contourf(poisson.coord('longitude').points, + poisson.coord('latitude').points, + np.ma.array(poisson.data / 1e15, mask=mask), + levels=11, + transform=ccrs.PlateCarree(central_longitude=0)) + plt.gca().coastlines() + ax1.set_xticks(np.arange(-180, 190, 60)) + ax1.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) + ax1.set_yticks(np.arange(-90, 100, 30)) + ax1.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + plt.colorbar(cb1, orientation='horizontal', label='Scalar p-field (PW)') + + ax2 = plt.subplot(gs[0, 1], projection=ccrs.PlateCarree()) + cb2 = ax2.contourf(flux.coord('longitude').points, + flux.coord('latitude').points, + np.ma.array(flux.data, mask=mask), + levels=10, + transform=ccrs.PlateCarree(central_longitude=0), + cmap='plasma') + plt.gca().coastlines() + ax2.set_xticks(np.arange(-180, 190, 60)) + ax2.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) + ax2.set_yticks(np.arange(-90, 100, 30)) + ax2.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + plt.colorbar(cb2, orientation='horizontal', label='Flux (W/m2)') + + plt.suptitle(pltname, y=0.9) + plt.tight_layout() + + provenance_record = get_provenance_record(plot_type='map', + ancestor_files=ancestor_files) + save_figure(pltname + '_poisson_flux', provenance_record, cfg) + + # Poisson p-field + quiver + plt.figure(figsize=(10, 6)) + ax1 = plt.subplot(1, 1, 1, projection=ccrs.PlateCarree()) + + x, y = np.meshgrid( + poisson.coord('longitude').points, + poisson.coord('latitude').points) + v, u = dy / 1e15, dx / 1e15 + + cb1 = ax1.contourf(poisson.coord('longitude').points, + poisson.coord('latitude').points, + np.ma.array(poisson.data / 1e15, mask=mask), + levels=levels1, + transform=ccrs.PlateCarree(central_longitude=0)) + plt.gca().coastlines() + ax1.quiver(np.ma.array(x, mask=mask)[9::18, 6::12], + np.ma.array(y, mask=mask)[9::18, 6::12], + np.ma.array(u, mask=mask)[9::18, 6::12], + np.ma.array(v, mask=mask)[9::18, 6::12], + pivot='mid', + color='k') + + ax1.set_xticks(np.arange(-180, 190, 60)) + ax1.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) + ax1.set_yticks(np.arange(-90, 100, 30)) + ax1.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + + plt.colorbar(cb1, orientation='horizontal', label='Scalar p-field (PW)') + plt.title(pltname) + + save_figure(pltname + '_poisson', provenance_record, cfg) + + +def main(cfg): + """Solve the Poisson equation and estimate the meridional heat + transport.""" + + # Get a description of the preprocessed data that we will use as input. + input_data = cfg['input_data'].values() + + # Group data by dataset + logger.info("Group input data by model, sort by experiment") + model_dataset = group_metadata(input_data, 'dataset', sort='exp') + + # Solve Poisson equation and produce plots + for model_name in model_dataset: + logger.info("Processing model data: %s", model_name) + compute_p_field_diagnostic(model_name, model_dataset[model_name], cfg) + + +if __name__ == '__main__': + + with run_diagnostic() as config: + main(config) From b1369847452ce19980fe023e90e4e71cbdb65596 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Thu, 20 Oct 2022 16:11:19 +0100 Subject: [PATCH 02/59] "#2472: Update authors list and move recipy." --- .../recipe_transport.yml => recipes/recipe_toa_iht.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename esmvaltool/{implied_heat_transport/recipe_transport.yml => recipes/recipe_toa_iht.yml} (100%) diff --git a/esmvaltool/implied_heat_transport/recipe_transport.yml b/esmvaltool/recipes/recipe_toa_iht.yml similarity index 100% rename from esmvaltool/implied_heat_transport/recipe_transport.yml rename to esmvaltool/recipes/recipe_toa_iht.yml From 54aa22f4ddf2a988d7da7a1a8fcbc984f76dddc9 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Thu, 20 Oct 2022 16:13:45 +0100 Subject: [PATCH 03/59] #2472: Update authors list and move recipy. --- esmvaltool/config-references.yml | 4 ++++ esmvaltool/recipes/recipe_toa_iht.yml | 14 ++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/esmvaltool/config-references.yml b/esmvaltool/config-references.yml index b63467d1f8..f00d160504 100644 --- a/esmvaltool/config-references.yml +++ b/esmvaltool/config-references.yml @@ -110,6 +110,10 @@ authors: name: Bock, Lisa institute: DLR, Germany orcid: https://orcid.org/0000-0001-7058-5938 + bodas-salcedo_alejandro: + name: Bodas-Salcedo, Alejandro + institute: MetOffice, UK + orcid: bojovic_dragana: name: Bojovic, Dragana institute: BSC, Spain diff --git a/esmvaltool/recipes/recipe_toa_iht.yml b/esmvaltool/recipes/recipe_toa_iht.yml index 224cbad590..05254a1b67 100644 --- a/esmvaltool/recipes/recipe_toa_iht.yml +++ b/esmvaltool/recipes/recipe_toa_iht.yml @@ -35,18 +35,16 @@ documentation: authors: - - andela_bouwe - - righi_mattia + - bodas-salcedo_alejandro maintainer: - - schlund_manuel + - bodas-salcedo_alejandro references: - acknow_project projects: - esmval - - c3s-magic datasets: - {dataset: BCC-ESM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} @@ -169,7 +167,7 @@ diagnostics: start_year: 2001 end_year: 2014 scripts: - #single_model: - # script: /data/users/fpearce/git_work/ESMValTool/esmvaltool/implied_heat_transport/single_model_diagnostics.py - multi_model: - script: /data/users/fpearce/git_work/ESMValTool/esmvaltool/implied_heat_transport/multi_model_diagnostics.py + single_model: + script: /data/users/fpearce/git_work/ESMValTool/esmvaltool/implied_heat_transport/single_model_diagnostics.py + #multi_model: + # script: /data/users/fpearce/git_work/ESMValTool/esmvaltool/implied_heat_transport/multi_model_diagnostics.py From 02f36181fcabce49d64e716a7a9a384526301ca5 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Thu, 20 Oct 2022 17:34:40 +0100 Subject: [PATCH 04/59] #2472: fix directory structure. --- esmvaltool/config-references.yml | 4 ++++ .../toa_iht}/multi_model_diagnostics.py | 0 .../toa_iht}/multi_model_oht_diag.py | 0 .../toa_iht}/poisson_solver.py | 0 .../toa_iht}/poisson_solver_oht.py | 0 .../toa_iht}/recipe_ocean_transport.yml | 0 .../toa_iht}/single_model_diagnostics.py | 0 .../toa_iht}/single_model_oht_diag.py | 0 esmvaltool/recipes/recipe_toa_iht.yml | 19 ++++++++++--------- 9 files changed, 14 insertions(+), 9 deletions(-) rename esmvaltool/{implied_heat_transport => diag_scripts/toa_iht}/multi_model_diagnostics.py (100%) rename esmvaltool/{implied_heat_transport => diag_scripts/toa_iht}/multi_model_oht_diag.py (100%) rename esmvaltool/{implied_heat_transport => diag_scripts/toa_iht}/poisson_solver.py (100%) rename esmvaltool/{implied_heat_transport => diag_scripts/toa_iht}/poisson_solver_oht.py (100%) rename esmvaltool/{implied_heat_transport => diag_scripts/toa_iht}/recipe_ocean_transport.yml (100%) rename esmvaltool/{implied_heat_transport => diag_scripts/toa_iht}/single_model_diagnostics.py (100%) rename esmvaltool/{implied_heat_transport => diag_scripts/toa_iht}/single_model_oht_diag.py (100%) diff --git a/esmvaltool/config-references.yml b/esmvaltool/config-references.yml index 0e4420e733..803bb54e4e 100644 --- a/esmvaltool/config-references.yml +++ b/esmvaltool/config-references.yml @@ -391,6 +391,10 @@ authors: name: Pandde, Amarjiit institute: Univ. of Arizona, USA orcid: + pearce_francesca: + name: Pearce, Francesca + institute: MetOffice, UK + orcid: perez-zanon_nuria: name: Perez-Zanon, Nuria institute: BSC, Spain diff --git a/esmvaltool/implied_heat_transport/multi_model_diagnostics.py b/esmvaltool/diag_scripts/toa_iht/multi_model_diagnostics.py similarity index 100% rename from esmvaltool/implied_heat_transport/multi_model_diagnostics.py rename to esmvaltool/diag_scripts/toa_iht/multi_model_diagnostics.py diff --git a/esmvaltool/implied_heat_transport/multi_model_oht_diag.py b/esmvaltool/diag_scripts/toa_iht/multi_model_oht_diag.py similarity index 100% rename from esmvaltool/implied_heat_transport/multi_model_oht_diag.py rename to esmvaltool/diag_scripts/toa_iht/multi_model_oht_diag.py diff --git a/esmvaltool/implied_heat_transport/poisson_solver.py b/esmvaltool/diag_scripts/toa_iht/poisson_solver.py similarity index 100% rename from esmvaltool/implied_heat_transport/poisson_solver.py rename to esmvaltool/diag_scripts/toa_iht/poisson_solver.py diff --git a/esmvaltool/implied_heat_transport/poisson_solver_oht.py b/esmvaltool/diag_scripts/toa_iht/poisson_solver_oht.py similarity index 100% rename from esmvaltool/implied_heat_transport/poisson_solver_oht.py rename to esmvaltool/diag_scripts/toa_iht/poisson_solver_oht.py diff --git a/esmvaltool/implied_heat_transport/recipe_ocean_transport.yml b/esmvaltool/diag_scripts/toa_iht/recipe_ocean_transport.yml similarity index 100% rename from esmvaltool/implied_heat_transport/recipe_ocean_transport.yml rename to esmvaltool/diag_scripts/toa_iht/recipe_ocean_transport.yml diff --git a/esmvaltool/implied_heat_transport/single_model_diagnostics.py b/esmvaltool/diag_scripts/toa_iht/single_model_diagnostics.py similarity index 100% rename from esmvaltool/implied_heat_transport/single_model_diagnostics.py rename to esmvaltool/diag_scripts/toa_iht/single_model_diagnostics.py diff --git a/esmvaltool/implied_heat_transport/single_model_oht_diag.py b/esmvaltool/diag_scripts/toa_iht/single_model_oht_diag.py similarity index 100% rename from esmvaltool/implied_heat_transport/single_model_oht_diag.py rename to esmvaltool/diag_scripts/toa_iht/single_model_oht_diag.py diff --git a/esmvaltool/recipes/recipe_toa_iht.yml b/esmvaltool/recipes/recipe_toa_iht.yml index 05254a1b67..e507bbc046 100644 --- a/esmvaltool/recipes/recipe_toa_iht.yml +++ b/esmvaltool/recipes/recipe_toa_iht.yml @@ -36,6 +36,7 @@ documentation: authors: - bodas-salcedo_alejandro + - pearce_francesca maintainer: - bodas-salcedo_alejandro @@ -108,7 +109,7 @@ diagnostics: end_year: 2014 additional_datasets: - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, - start_year: 2001, end_year: 2014} + start_year: 2001, end_year: 2010} rlutcs: short_name: rlutcs mip: Amon @@ -117,7 +118,7 @@ diagnostics: end_year: 2014 additional_datasets: - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, - start_year: 2001, end_year: 2014} + start_year: 2001, end_year: 2010} rsutcs: short_name: rsutcs mip: Amon @@ -126,7 +127,7 @@ diagnostics: end_year: 2014 additional_datasets: - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, - start_year: 2001, end_year: 2014} + start_year: 2001, end_year: 2010} rsut: short_name: rsut mip: Amon @@ -135,7 +136,7 @@ diagnostics: end_year: 2014 additional_datasets: - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, - start_year: 2001, end_year: 2014} + start_year: 2001, end_year: 2010} rsdt: short_name: rsdt mip: Amon @@ -144,30 +145,30 @@ diagnostics: end_year: 2014 additional_datasets: - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, - start_year: 2001, end_year: 2014} + start_year: 2001, end_year: 2010} netcre: derive: true short_name: netcre mip: Amon preprocessor: climate_mean_global start_year: 2001 - end_year: 2014 + end_year: 2010 swcre: derive: true short_name: swcre mip: Amon preprocessor: climate_mean_global start_year: 2001 - end_year: 2014 + end_year: 2010 lwcre: derive: true short_name: lwcre mip: Amon preprocessor: climate_mean_global start_year: 2001 - end_year: 2014 + end_year: 2010 scripts: single_model: - script: /data/users/fpearce/git_work/ESMValTool/esmvaltool/implied_heat_transport/single_model_diagnostics.py + script: toa_iht/single_model_diagnostics.py #multi_model: # script: /data/users/fpearce/git_work/ESMValTool/esmvaltool/implied_heat_transport/multi_model_diagnostics.py From e177bbc90eddf3cde0a2b11ed1261fd0e11fd4b7 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 21 Oct 2022 09:20:23 +0100 Subject: [PATCH 05/59] #2472: rename recipe and reduce number of years. --- .../multi_model_diagnostics.py | 0 .../multi_model_oht_diag.py | 0 .../{toa_iht => iht_toa}/poisson_solver.py | 0 .../poisson_solver_oht.py | 0 .../recipe_ocean_transport.yml | 0 .../single_model_diagnostics.py | 0 .../single_model_oht_diag.py | 0 ...{recipe_toa_iht.yml => recipe_iht_toa.yml} | 32 +++++++++---------- 8 files changed, 16 insertions(+), 16 deletions(-) rename esmvaltool/diag_scripts/{toa_iht => iht_toa}/multi_model_diagnostics.py (100%) rename esmvaltool/diag_scripts/{toa_iht => iht_toa}/multi_model_oht_diag.py (100%) rename esmvaltool/diag_scripts/{toa_iht => iht_toa}/poisson_solver.py (100%) rename esmvaltool/diag_scripts/{toa_iht => iht_toa}/poisson_solver_oht.py (100%) rename esmvaltool/diag_scripts/{toa_iht => iht_toa}/recipe_ocean_transport.yml (100%) rename esmvaltool/diag_scripts/{toa_iht => iht_toa}/single_model_diagnostics.py (100%) rename esmvaltool/diag_scripts/{toa_iht => iht_toa}/single_model_oht_diag.py (100%) rename esmvaltool/recipes/{recipe_toa_iht.yml => recipe_iht_toa.yml} (90%) diff --git a/esmvaltool/diag_scripts/toa_iht/multi_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/multi_model_diagnostics.py similarity index 100% rename from esmvaltool/diag_scripts/toa_iht/multi_model_diagnostics.py rename to esmvaltool/diag_scripts/iht_toa/multi_model_diagnostics.py diff --git a/esmvaltool/diag_scripts/toa_iht/multi_model_oht_diag.py b/esmvaltool/diag_scripts/iht_toa/multi_model_oht_diag.py similarity index 100% rename from esmvaltool/diag_scripts/toa_iht/multi_model_oht_diag.py rename to esmvaltool/diag_scripts/iht_toa/multi_model_oht_diag.py diff --git a/esmvaltool/diag_scripts/toa_iht/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py similarity index 100% rename from esmvaltool/diag_scripts/toa_iht/poisson_solver.py rename to esmvaltool/diag_scripts/iht_toa/poisson_solver.py diff --git a/esmvaltool/diag_scripts/toa_iht/poisson_solver_oht.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver_oht.py similarity index 100% rename from esmvaltool/diag_scripts/toa_iht/poisson_solver_oht.py rename to esmvaltool/diag_scripts/iht_toa/poisson_solver_oht.py diff --git a/esmvaltool/diag_scripts/toa_iht/recipe_ocean_transport.yml b/esmvaltool/diag_scripts/iht_toa/recipe_ocean_transport.yml similarity index 100% rename from esmvaltool/diag_scripts/toa_iht/recipe_ocean_transport.yml rename to esmvaltool/diag_scripts/iht_toa/recipe_ocean_transport.yml diff --git a/esmvaltool/diag_scripts/toa_iht/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py similarity index 100% rename from esmvaltool/diag_scripts/toa_iht/single_model_diagnostics.py rename to esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py diff --git a/esmvaltool/diag_scripts/toa_iht/single_model_oht_diag.py b/esmvaltool/diag_scripts/iht_toa/single_model_oht_diag.py similarity index 100% rename from esmvaltool/diag_scripts/toa_iht/single_model_oht_diag.py rename to esmvaltool/diag_scripts/iht_toa/single_model_oht_diag.py diff --git a/esmvaltool/recipes/recipe_toa_iht.yml b/esmvaltool/recipes/recipe_iht_toa.yml similarity index 90% rename from esmvaltool/recipes/recipe_toa_iht.yml rename to esmvaltool/recipes/recipe_iht_toa.yml index e507bbc046..4168899bb2 100644 --- a/esmvaltool/recipes/recipe_toa_iht.yml +++ b/esmvaltool/recipes/recipe_iht_toa.yml @@ -51,16 +51,16 @@ datasets: - {dataset: BCC-ESM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} #- {dataset: FGOALS-g3, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} #- {dataset: IITM-ESM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} -# - {dataset: CNRM-ESM2-1, project: CMIP6, exp: amip, ensemble: r1i1p1f2, grid: gn, mip: Amon} -# - {dataset: CNRM-CM6-1, project: CMIP6, exp: amip, ensemble: r1i1p1f2, grid: gn, mip: Amon} + #- {dataset: CNRM-ESM2-1, project: CMIP6, exp: amip, ensemble: r1i1p1f2, grid: gn, mip: Amon} + #- {dataset: CNRM-CM6-1, project: CMIP6, exp: amip, ensemble: r1i1p1f2, grid: gn, mip: Amon} #- {dataset: ACCESS-ESM1-5, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} #- {dataset: ACCESS-CM2, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} -# - {dataset: MPI-ESM-1-2-HAM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} -# - {dataset: IPSL-CM6A-LR, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + #- {dataset: MPI-ESM-1-2-HAM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + #- {dataset: IPSL-CM6A-LR, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} #- {dataset: MIROC6, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} #- {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon} -# - {dataset: UKESM1-0-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f4, grid: gn, mip: Amon} -# - {dataset: MPI-ESM1-2-LR, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + #- {dataset: UKESM1-0-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f4, grid: gn, mip: Amon} + #- {dataset: MPI-ESM1-2-LR, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} #- {dataset: GISS-E2-1-G, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} #- {dataset: CESM2-FV2,project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} #- {dataset: NorCPM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} @@ -93,20 +93,20 @@ diagnostics: mip: Amon preprocessor: climate_mean_global start_year: 2001 - end_year: 2014 + end_year: 2005 rsnt: derive: true short_name: rsnt mip: Amon preprocessor: climate_mean_global start_year: 2001 - end_year: 2014 + end_year: 2005 rlut: short_name: rlut mip: Amon preprocessor: climate_mean_global start_year: 2001 - end_year: 2014 + end_year: 2005 additional_datasets: - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2010} @@ -115,7 +115,7 @@ diagnostics: mip: Amon preprocessor: climate_mean_global start_year: 2001 - end_year: 2014 + end_year: 2005 additional_datasets: - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2010} @@ -124,7 +124,7 @@ diagnostics: mip: Amon preprocessor: climate_mean_global start_year: 2001 - end_year: 2014 + end_year: 2005 additional_datasets: - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2010} @@ -133,7 +133,7 @@ diagnostics: mip: Amon preprocessor: climate_mean_global start_year: 2001 - end_year: 2014 + end_year: 2005 additional_datasets: - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2010} @@ -142,7 +142,7 @@ diagnostics: mip: Amon preprocessor: climate_mean_global start_year: 2001 - end_year: 2014 + end_year: 2005 additional_datasets: - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2010} @@ -152,21 +152,21 @@ diagnostics: mip: Amon preprocessor: climate_mean_global start_year: 2001 - end_year: 2010 + end_year: 2005 swcre: derive: true short_name: swcre mip: Amon preprocessor: climate_mean_global start_year: 2001 - end_year: 2010 + end_year: 2005 lwcre: derive: true short_name: lwcre mip: Amon preprocessor: climate_mean_global start_year: 2001 - end_year: 2010 + end_year: 2005 scripts: single_model: script: toa_iht/single_model_diagnostics.py From 014d660b648357c28711129581a42c27272a8f4d Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 21 Oct 2022 09:48:21 +0100 Subject: [PATCH 06/59] #2472: tidy up recipe. --- esmvaltool/recipes/recipe_iht_toa.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/esmvaltool/recipes/recipe_iht_toa.yml b/esmvaltool/recipes/recipe_iht_toa.yml index 4168899bb2..acc624613b 100644 --- a/esmvaltool/recipes/recipe_iht_toa.yml +++ b/esmvaltool/recipes/recipe_iht_toa.yml @@ -169,6 +169,6 @@ diagnostics: end_year: 2005 scripts: single_model: - script: toa_iht/single_model_diagnostics.py + script: iht_toa/single_model_diagnostics.py #multi_model: - # script: /data/users/fpearce/git_work/ESMValTool/esmvaltool/implied_heat_transport/multi_model_diagnostics.py + # script: iht_toa/multi_model_diagnostics.py From 44c14b12d01dc1b130bb64a6e66f9178ba2aee79 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 21 Oct 2022 13:23:52 +0100 Subject: [PATCH 07/59] #2472: optimise with numba. --- .../diag_scripts/iht_toa/poisson_solver.py | 38 ++++++++++--------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index d8aba51361..1cb21c7eef 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -8,11 +8,12 @@ Convergence is achieved faster by using a preconditioner on the output field. -The meridional heat transport is estimated as the gradient of the scalar +The heat transport is calculated as the gradient of the scalar p-field output of the Poisson solver. """ import numpy as np +from numba import jit def set_metrics(): @@ -108,46 +109,47 @@ def calc_Ax(x, A_e, A_w, A_s, A_n, A_p): Ax = np.zeros([M + 2, N + 2]) x = swap_bounds(x) - for j in range(1, M + 1): - for i in range(1, N + 1): - Ax[j, i] = A_s[j-1, i-1]*x[j-1, i] + A_w[j-1, i-1]*x[j, i-1] + \ - A_e[j-1, i-1]*x[j, i+1] + A_n[j-1, i-1]*x[j+1, i] + \ - A_p[j-1, i-1]*x[j, i] - + # Ax[j, i] = A_s[j-1, i-1]*x[j-1, i] + A_w[j-1, i-1]*x[j, i-1] + \ + # A_e[j-1, i-1]*x[j, i+1] + A_n[j-1, i-1]*x[j+1, i] + \ + # A_p[j-1, i-1]*x[j, i] + Ax[1:M+1, 1:N+1] = A_s[0:M, 0:N] * x[0:M, 1:N+1] + A_w[0:M, 0:N] * \ + x[1:M+1, 0:N] + A_e[0:M, 0:N] * x[1:M+1, 2:N+2] + A_n[0:M, 0:N] * \ + x[2:M+2, 1:N+1] + A_p[0:M, 0:N] * x[1:M+1, 1:N+1] Ax = swap_bounds(Ax) return Ax def dot_prod(x, y): # Calculate dot product of two matrices - dot_prod = 0 - - for j in range(1, M + 1): - for i in range(1, N + 1): - dot_prod += x[j, i] * y[j, i] - - return dot_prod + return (x[1:M + 1, 1:N + 1] * y[1:M + 1, 1:N + 1]).sum() def precon(x, M_e, M_w, M_s, M_n, M_p): # Preconditioner Cx = np.zeros([M + 2, N + 2]) + precon_a(x, M_w, M_s, M_p, Cx) + Cx = swap_bounds(Cx) + precon_b(M_e, M_n, Cx) + Cx = swap_bounds(Cx) + return Cx + + +@jit +def precon_a(x, M_w, M_s, M_p, Cx): for j in range(1, M + 1): for i in range(1, N + 1): Cx[j, i] = M_p[j, i] * (x[j, i] - M_s[j, i] * Cx[j - 1, i] - M_w[j, i] * Cx[j, i - 1]) - Cx = swap_bounds(Cx) +@jit +def precon_b(M_e, M_n, Cx): for j in range(M, 0, -1): for i in range(N, 0, -1): Cx[j, i] = Cx[j, i] - M_e[j, i] * Cx[j, i + 1] - M_n[j, i] * Cx[j + 1, i] - Cx = swap_bounds(Cx) - return Cx - def bicgstab(logger, x, b, A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p): # Bi-conjugate gradient stabilized numerical solver From a576767f6a5d40aafbb9cf0b2c3eb1ffe757a0f5 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 21 Oct 2022 16:50:34 +0100 Subject: [PATCH 08/59] #2472: add numba package. --- environment.yml | 1 + setup.py | 1 + 2 files changed, 2 insertions(+) diff --git a/environment.yml b/environment.yml index 5e742256cf..0b8185671c 100644 --- a/environment.yml +++ b/environment.yml @@ -35,6 +35,7 @@ dependencies: - natsort - nc-time-axis - netCDF4!=1.6.1 # https://github.com/ESMValGroup/ESMValCore/pull/1724 + - numba - numpy - openpyxl - pandas diff --git a/setup.py b/setup.py index ab52e20ac1..944a2ce5c4 100755 --- a/setup.py +++ b/setup.py @@ -43,6 +43,7 @@ 'natsort', 'nc-time-axis', 'netCDF4!=1.6.1', # github.com/ESMValGroup/ESMValCore/pull/1724 + 'numba', 'numpy', 'openpyxl', 'pandas', From 2d3517e80db4e480e1cc0dc528d38e2b53e9ad75 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Wed, 11 Jan 2023 17:14:10 +0000 Subject: [PATCH 09/59] Comment numba directives. --- esmvaltool/diag_scripts/iht_toa/poisson_solver.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index 1cb21c7eef..3f2c310094 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -13,7 +13,8 @@ """ import numpy as np -from numba import jit + +# from numba import jit def set_metrics(): @@ -134,7 +135,7 @@ def precon(x, M_e, M_w, M_s, M_n, M_p): return Cx -@jit +# @jit def precon_a(x, M_w, M_s, M_p, Cx): for j in range(1, M + 1): for i in range(1, N + 1): @@ -142,7 +143,7 @@ def precon_a(x, M_w, M_s, M_p, Cx): M_w[j, i] * Cx[j, i - 1]) -@jit +# @jit def precon_b(M_e, M_n, Cx): for j in range(M, 0, -1): for i in range(N, 0, -1): From 584919d01591938b7ecbfd80e9649aa28a61ce7e Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Sat, 14 Jan 2023 17:53:07 +0000 Subject: [PATCH 10/59] Outputs Figures 1 to 5. --- .../iht_toa/single_model_diagnostics.py | 699 ++++++++++-------- 1 file changed, 378 insertions(+), 321 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index f0d0bf6c30..0bd154f515 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -42,11 +42,23 @@ def get_provenance_record(plot_type, ancestor_files): return record -def call_poisson(cube, variable): +def var_name_constraint(var_name): + return iris.Constraint(cube_func=lambda c: c.var_name == var_name) + + +def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): + + if flux_cube.coord(latitude).bounds is None: + flux_cube.coord(latitude).guess_bounds() + if flux_cube.coord(longitude).bounds is None: + flux_cube.coord(longitude).guess_bounds() + # Remove average of flux field to account for storage term - data = cube.data.copy() - grid = iris.analysis.cartography.area_weights(cube, normalize=True) - data_mean = np.average(data, weights=grid.data) + data = flux_cube.data.copy() + grid_areas = iris.analysis.cartography.area_weights(flux_cube) + data_mean = flux_cube.collapsed(["longitude", "latitude"], + iris.analysis.MEAN, + weights=grid_areas).data data -= data_mean logger.info("Calling spherical_poisson") @@ -55,334 +67,392 @@ def call_poisson(cube, variable): tolerance=2.0e-4) logger.info("Ending spherical_poisson") - # Poisson data cube - p_cube = cube.copy() - p_cube.rename(variable + '_poisson') - p_cube.units = 'W' + # Energy flux potential (P) + p_cube = flux_cube.copy() + p_cube.var_name = "{}_efp".format(flux_cube.var_name) + p_cube.long_name = "energy_flux_potential_of_{}".format(flux_cube.var_name) + p_cube.standard_name = None + p_cube.units = 'J s-1' p_cube.data = poisson[1:-1, 1:-1] # MHT data cube - mht_cube = cube.copy() + mht_cube = flux_cube.copy() mht_cube = mht_cube.collapsed('longitude', iris.analysis.MEAN) - mht_cube.rename(variable + '_mht') + mht_cube.var_name = "{}_mht".format(flux_cube.var_name) + mht_cube.long_name = "meridional_heat_transport_of_{}".format( + flux_cube.var_name) + mht_cube.standard_name = None mht_cube.units = 'W' mht_cube.data = mht - # Flux data cube - cube.rename(variable + '_flux') - cube.units = 'W.m-2' - cube.data = data + return p_cube, mht_cube - return p_cube, mht_cube, cube - -def compute_p_field_diagnostic(model_dict, cfg): +def compute_efp_and_mht(model_dict): # Sort experiments by variable exp_dataset = group_metadata(model_dict, 'exp', sort='variable_group') - # Define dicts to hold the data - p_dict = {} - mht_dict = {} - flux_dict = {} - files_dict = {} + # Define dict to hold the data + iht_dict = {} + # Loop over experiments for exp_nme in exp_dataset: logger.info("Experiment: %s", exp_nme) - p_cube = iris.cube.CubeList([]) - mht_cube = iris.cube.CubeList([]) - flux_cube = iris.cube.CubeList([]) - + p_cube = iris.cube.CubeList() + mht_cube = iris.cube.CubeList() + flux_cube = iris.cube.CubeList() + files_dict = {} + # Loop over variables for attributes in exp_dataset[exp_nme]: input_file = attributes['filename'] variable_name = attributes['short_name'] logger.info("Loading %s", input_file) cube = iris.load_cube(input_file) - - # Model key for dicts - key = '{0}_{1}'.format(attributes['dataset'], attributes['exp']) - if key not in files_dict: - files_dict[key] = {} - files_dict[key][variable_name] = input_file - - # If flux is upwelling, x -1 - if attributes['short_name'] in [ - 'rlut', 'rlutcs', 'rsut', 'rsutcs' - ]: - cube *= -1 - + files_dict[variable_name] = input_file # Call the Poisson solver - p, mht, flux = call_poisson(cube, variable_name) - p_cube.append(p) + efp, mht = call_poisson(cube) + p_cube.append(efp) mht_cube.append(mht) flux_cube.append(cube) - - del p, mht + del efp, mht, cube # Add iris cubelist to dictionary - p_dict[key] = p_cube - mht_dict[key] = mht_cube - flux_dict[key] = flux_cube - del key, p_cube, mht_cube, flux_cube - - return p_dict, mht_dict, flux_dict, files_dict - - -def mht_plot(variables, mht, ancestor_files, cfg, pltname): - """MHT plot Produces a single plot comparing the estimated MHT due to the - input variables. - - MHT is presented in PW, plotted against latitude. Up to three - variables are on each plot. - """ - - # Variables - var_dict = { - 'rtnt': 'Net TOA', - 'rsnt': 'Net SW', - 'rlut': 'Net LW', - 'rlutcs': '-1 x OLR (clear)', - 'rsut': '-1 x OSR (all)', - 'rsutcs': '-1 x OSR (clear)', - 'netcre': 'NET CRE', - 'swcre': 'SW CRE', - 'lwcre': 'LW CRE' - } - - # MHT comparison plot - plt.figure() - for i, x in enumerate(variables): - cube = mht.extract_cube(x + '_mht') - plt.plot(cube.coord('latitude').points, - cube.data / 1e15, - label=var_dict[x]) - del cube - plt.xlim(-90, 90) - ymin, ymax = plt.ylim() - ylim = np.max([np.abs(ymin), np.abs(ymax)]) - plt.ylim(-ylim, ylim) - plt.xticks(np.arange(-90, 120, 30)) - plt.hlines(0, -90, 90, color='k', linestyles=':') - plt.vlines(0, -10, 10, color='k', linestyles=':') - plt.xlabel('Latitude') - plt.ylabel('MHT (PW)') - plt.legend() - plt.tight_layout() - - provenance_record = get_provenance_record(plot_type='zonal', - ancestor_files=ancestor_files) - save_figure(pltname, provenance_record, cfg) - - -def quiver_plot(variables, poisson, flux, ancestor_files, cfg, pltname): - """Maps of scalar p-fields and corresponding flux The maps are plotted such - that the variables share the same colorbar (one each for the flux maps and - the scalar p-field maps). - - Scalar p-field is plotted as PW, flux maps are W/m2. The scalar - p-field maps have arrows imposed over the map which show the - direction of the implied heat transport. The arrows are also - normalised across the different variables so the lengths can be - directly compared (a longer arrow corresponds to a larger heat - transport). - """ - - # Variables - var_dict = { - 'rtnt': 'Net TOA', - 'rsnt': 'Net SW', - 'rlut': 'Net LW', - 'rlutcs': '-1 x OLR (clear)', - 'rsut': '-1 x OSR (all)', - 'rsutcs': '-1 x OSR (clear)', - 'netcre': 'NET CRE', - 'swcre': 'SW CRE', - 'lwcre': 'LW CRE' - } - - # Variables to determine map extent - # Allows for same colorbar across subplots - vmin = 0 - vmax = 0 - wmin = 0 - wmax = 0 - - for i, p in enumerate(variables): - # Scalar p-field - cube = poisson.extract_cube(p + '_poisson') - tmp = np.average(cube.data) - + iht_dict[exp_nme] = implied_heat_transport(mht_cube, p_cube, flux_cube, + files_dict) + del p_cube, mht_cube, flux_cube + + return iht_dict + + +class implied_heat_transport: + def __init__(self, mht_clim, efp_clim, flx_clim, flx_files): + self.mht_clim = mht_clim + self.efp_clim = efp_clim + self.flx_clim = flx_clim + self.flx_files = flx_files + + # Grid + vname_constraint = var_name_constraint("rtnt") + flux = self.flx_clim.extract_cube(vname_constraint) + self.grid = iris.analysis.cartography.area_weights(flux, + normalize=True) + self.lat = flux.coord('latitude').points + self.lon = flux.coord('longitude').points + del flux + return + + def print(self): + print("=== implied_heat_transport object ===") + print(self.mht_clim) + for x in self.mht_clim: + print(x.long_name, x.var_name) + print(self.efp_clim) + for x in self.efp_clim: + print(x.long_name, x.var_name) + print(self.flx_clim) + for x in self.flx_clim: + print(x.long_name, x.var_name) + print(self.flx_files) + + def hemispheric_symmetry(self, data): + # Calculates hemispheric symmetry value + # S = 0 is perfectly symmetrical + + nh = data[90:] + sh = data[:90] + sh = sh[::-1] + grid = np.sum(self.grid, axis=1)[90:] + + diff = np.abs((nh + sh) * grid) + hem = np.sum(diff) + trop = np.sum(diff[:30]) + mid = np.sum(diff[30:60]) + high = np.sum(diff[60:]) + extratrop = np.sum(diff[30:90]) + return hem, trop, mid, high, extratrop + + def mht_plot(self, var_names, legend_label, ylim=(-10, 10)): + """MHT plot Produces a single plot comparing the estimated MHT due to + the input variables. + + MHT is presented in PW, plotted against latitude. Up to three + variables are on each plot. + """ plt.figure() - plt.axes(projection=ccrs.PlateCarree()) - plt.contourf(cube.coord('longitude').points, - cube.coord('latitude').points, - cube.data - tmp, - levels=10, - transform=ccrs.PlateCarree(central_longitude=0)) - plt.gca().coastlines() - cbar = plt.colorbar() - cmin, cmax = cbar.mappable.get_clim() - vmin = np.min([vmin, cmin]) - vmax = np.max([vmax, cmax]) - del tmp, cube - plt.close() - - # Flux - cube = flux.extract_cube(p + '_flux') - tmp = np.average(cube.data) - - plt.figure() - plt.axes(projection=ccrs.PlateCarree()) - plt.contourf(cube.coord('longitude').points, - cube.coord('latitude').points, - cube.data - tmp, - levels=10, - transform=ccrs.PlateCarree(central_longitude=0)) - plt.gca().coastlines() - cbar = plt.colorbar() - cmin, cmax = cbar.mappable.get_clim() - wmin = np.min([wmin, cmin]) - wmax = np.max([wmax, cmax]) - del tmp - plt.close() - - levels1 = np.linspace(vmin / 1e15, vmax / 1e15, 11) - levels2 = np.linspace(wmin, wmax, 11) - - len_p = len(variables) - if len_p == 3: - plt.figure(figsize=(10, 10)) - gs = gridspec.GridSpec(22, 2) - gs.update(wspace=0.25, hspace=1.5) - elif len_p == 2: - plt.figure(figsize=(10, 6.5)) - gs = gridspec.GridSpec(15, 2) - gs.update(wspace=0.25, hspace=1.5) - - for i, p in enumerate(variables): - # Scalar p-field - cube = poisson.extract_cube(p + '_poisson') - tmp = np.average(cube.data) - - x, y = np.meshgrid( - cube.coord('longitude').points, - cube.coord('latitude').points) - v, u = np.gradient(cube.data, 1e14, 1e14) - u = u[1:-1, 1:-1] - v = v[1:-1, 1:-1] - - ax1 = plt.subplot(gs[i * 7:(i * 7) + 7, 0], - projection=ccrs.PlateCarree()) - cb1 = ax1.contourf(cube.coord('longitude').points, - cube.coord('latitude').points, - (cube.data - tmp) / 1e15, - levels=levels1, - transform=ccrs.PlateCarree(central_longitude=0)) - plt.gca().coastlines() - if i == 0: - R = ax1.quiver(x[15::25, 15::32], - y[15::25, 15::32], - u[15::25, 15::32], - v[15::25, 15::32], + for i in range(len(var_names)): + mht = self.mht_clim.extract_cube(var_name_constraint( + var_names[i])).data / 1e15 + plt.plot(self.lat, mht, label=legend_label[i]) + plt.hlines(0, -90, 90, color='k', linestyles=':') + plt.vlines(0, -10, 10, color='k', linestyles=':') + plt.xlim(-90, 90) + plt.ylim(ylim[0], ylim[1]) + plt.xticks(np.arange(-90, 120, 30)) + plt.xlabel('Latitude') + plt.ylabel('MHT (PW)') + plt.legend() + plt.tight_layout() + return + + def cre_mht_plot(self, + var_names_l, + legend_l, + var_names_r, + legend_r, + ylim=(-1.5, 1.5)): + plt.figure(figsize=(11, 5)) + ax1 = plt.subplot(121) + for i in range(len(var_names_l)): + mht = self.mht_clim.extract_cube( + var_name_constraint(var_names_l[i])).data / 1e15 + ax1.plot(self.lat, mht, label=legend_l[i]) + ax1.axhline(0, color='k', ls=':') + ax1.axvline(0, color='k', ls=':') + ax1.set_xlim(-90, 90) + ax1.set_xticks(np.arange(-90, 120, 30)) + ax1.set_xlabel('Latitude') + ax1.set_ylim(ylim[0], ylim[1]) + ax1.set_ylabel('MHT (PW)') + ax1.annotate('(a)', + xy=(0.01, 0.95), + xycoords='axes fraction', + color='k') + plt.legend() + + ax2 = plt.subplot(122) + col = ['C3', 'C7'] + for i in range(len(var_names_r)): + mht = self.mht_clim.extract_cube( + var_name_constraint(var_names_r[i])).data / 1e15 + ax2.plot(self.lat, mht, label=legend_r[i], color=col[i]) + ax2.axhline(0, color='k', ls=':') + ax2.axvline(0, color='k', ls=':') + ax2.set_xlim(-90, 90) + ax2.set_xticks(np.arange(-90, 120, 30)) + ax2.set_xlabel('Latitude') + ax2.set_ylim(ylim[0], ylim[1]) + ax2.set_ylabel('MHT (PW)') + ax2.annotate('(b)', + xy=(0.01, 0.95), + xycoords='axes fraction', + color='k') + plt.legend(loc='lower right') + plt.tight_layout() + return + + def quiver_steps(self, n, step): + n2 = (n - 2) // step + start = (n - 2 - n2 * step) // 2 + return start + + def quiver_subplot(self, + var_name, + wmin, + wmax, + nwlevs, + wlevstep, + vmin, + vmax, + label=[['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], + xy_label=(0, 1.05), + title=[['', ''], ['', ''], ['', '']]): + x, y = np.meshgrid(self.lon, self.lat) + + levels1 = np.linspace(vmin, vmax, 11) + levels2 = np.linspace(wmin, wmax, nwlevs) + nrows = len(var_name) + # Calculate sampling for vector plot + nlon = len(self.lon) + nlat = len(self.lat) + stepx = 20 + stepy = 20 + startx = self.quiver_steps(nlon, stepx) + starty = self.quiver_steps(nlat, stepy) + + if nrows == 3: + plt.figure(figsize=(10, 10)) + gs = gridspec.GridSpec(22, 2) + gs.update(wspace=0.25, hspace=1.5) + elif nrows == 2: + plt.figure(figsize=(10, 6.5)) + gs = gridspec.GridSpec(15, 2) + gs.update(wspace=0.25, hspace=1.5) + elif nrows == 1: + plt.figure(figsize=(12, 4)) + gs = gridspec.GridSpec(8, 2) + gs.update(wspace=0.25, hspace=1.5) + + for i in range(nrows): + efp = self.efp_clim.extract_cube( + var_name_constraint(var_name[i][0])).data + flx = self.flx_clim.extract_cube( + var_name_constraint(var_name[i][1])).data + efp -= np.average(efp) # Arbitrary choice of origin + flx -= np.average(flx) + v, u = np.gradient(efp, 1e14, 1e14) + u = u[1:-1, 1:-1] + v = v[1:-1, 1:-1] + + ax1 = plt.subplot(gs[i * 7:(i * 7) + 7, 0], + projection=ccrs.PlateCarree()) + cb1 = ax1.contourf(self.lon, + self.lat, + efp / 1e15, + levels=levels1, + transform=ccrs.PlateCarree(central_longitude=0)) + plt.gca().coastlines() + xq = x[starty::stepy, startx::stepx] + yq = y[starty::stepy, startx::stepx] + uq = u[starty::stepy, startx::stepx] + vq = v[starty::stepy, startx::stepx] + if i == 0: + Q = ax1.quiver(xq, + yq, + uq, + vq, + pivot='mid', + color='w', + width=0.005) + Q._init() + else: + ax1.quiver(xq, + yq, + uq, + vq, pivot='mid', + scale=Q.scale, color='w') - R._init() - else: - ax1.quiver(x[15::25, 15::32], - y[15::25, 15::32], - u[15::25, 15::32], - v[15::25, 15::32], - scale=R.scale, - pivot='mid', - color='w') - ax1.set_xticks(np.arange(-180, 190, 60)) - ax1.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) - ax1.set_yticks(np.arange(-90, 100, 30)) - ax1.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) - ax1.set_title(var_dict[p]) - del cube, tmp, u, v, x, y - - # Flux - cube = flux.extract_cube(p + '_flux') - tmp = np.average(cube.data) - ax2 = plt.subplot(gs[i * 7:(i * 7) + 7, 1], - projection=ccrs.PlateCarree()) - cb2 = ax2.contourf(cube.coord('longitude').points, - cube.coord('latitude').points, - cube.data - tmp, - levels=levels2, - transform=ccrs.PlateCarree(central_longitude=0), - cmap='plasma') - plt.gca().coastlines() - ax2.set_xticks(np.arange(-180, 190, 60)) - ax2.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) - ax2.set_yticks(np.arange(-90, 100, 30)) - ax2.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) - ax2.set_title(var_dict[p]) - del tmp - - ax1 = plt.subplot(gs[-1, 0]) - plt.colorbar(cb1, - cax=ax1, - orientation='horizontal', - label='Scalar p-field (PW)') - - ax2 = plt.subplot(gs[-1, 1]) - plt.colorbar(cb2, cax=ax2, orientation='horizontal', label='Flux (W/m2)') - - if len_p == 3: - plt.subplots_adjust(left=0.1, right=0.94, top=1.0, bottom=0.11) - elif len_p == 2: - plt.subplots_adjust(left=0.11, right=0.9, top=1.0, bottom=0.13) - + ax1.set_xticks(np.arange(-180, 190, 60)) + ax1.set_xticklabels( + ['180', '120W', '60W', '0', '60E', '120E', '180']) + ax1.set_yticks(np.arange(-90, 100, 30)) + ax1.set_yticklabels( + ['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + ax1.annotate(label[i][0], + xy=xy_label, + xycoords='axes fraction', + color='k') + ax1.set_title(title[i][0]) + del u, v, uq, vq + + ax2 = plt.subplot(gs[i * 7:(i * 7) + 7, 1], + projection=ccrs.PlateCarree()) + cb2 = ax2.contourf(self.lon, + self.lat, + flx, + levels=levels2, + transform=ccrs.PlateCarree(central_longitude=0), + cmap='RdBu_r') + plt.gca().coastlines() + ax2.set_xticks(np.arange(-180, 190, 60)) + ax2.set_xticklabels( + ['180', '120W', '60W', '0', '60E', '120E', '180']) + ax2.set_yticks(np.arange(-90, 100, 30)) + ax2.set_yticklabels( + ['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + ax2.annotate(label[i][1], + xy=xy_label, + xycoords='axes fraction', + color='k') + ax2.set_title(title[i][1]) + + ax1 = plt.subplot(gs[-1, 0]) + plt.colorbar(cb1, + cax=ax1, + orientation='horizontal', + label='Energy flux potential (PW)') + + ax2 = plt.subplot(gs[-1, 1]) + plt.colorbar(cb2, + cax=ax2, + orientation='horizontal', + label=r'Flux (Wm$^{-2}$)', + ticks=levels2[1::wlevstep]) + + if nrows == 3: + plt.subplots_adjust(left=0.1, right=0.94, top=1.0, bottom=0.11) + elif nrows == 2: + plt.subplots_adjust(left=0.11, right=0.9, top=1.0, bottom=0.13) + elif nrows == 1: + plt.subplots_adjust(left=0.11, right=0.9, top=1.0, bottom=0.20) + + return + + +def efp_maps(iht, model, experiment, cfg): + # Figure 2 + iht.quiver_subplot( + [['rtnt_efp', 'rtnt'], ['rsnt_efp', 'rsnt'], ['rlut_efp', 'rlut']], + wmin=-180, + wmax=180, + nwlevs=19, + wlevstep=4, + vmin=-1.2, + vmax=1.2, + title=[['$P_{TOA}^{TOT}$', "$Delta F_{TOA}^{TOT}$"], + ['$P_{TOA}^{SW}$', "$Delta F_{TOA}^{SW}$"], + ['$P_{TOA}^{LW}$', "$Delta F_{TOA}^{LW}$"]]) provenance_record = get_provenance_record(plot_type='map', - ancestor_files=ancestor_files) - save_figure(pltname, provenance_record, cfg) - - -def plot_single_model_diagnostics(poisson, mht, flux, basename, ancestor_files, - cfg): - - # TOA: net, lw, sw - variables = ['rtnt', 'rsnt', 'rlut'] - mht_plot(variables, - mht, - ancestor_files, - cfg, - pltname=basename + '_toa_mht') - quiver_plot(variables, - poisson, - flux, - ancestor_files, - cfg, - pltname=basename + '_toa_p_field') - - # OSR: clear vs. all sky - variables = ['rsut', 'rsutcs'] - mht_plot(variables, - mht, - ancestor_files, - cfg, - pltname=basename + '_osr_mht') - quiver_plot(variables, - poisson, - flux, - ancestor_files, - cfg, - pltname=basename + '_osr_p_field') - - # CRE: net, lw, sw - variables = ['netcre', 'swcre', 'lwcre'] - mht_plot(variables, - mht, - ancestor_files, - cfg, - pltname=basename + '_cre_mht') - quiver_plot(variables, - poisson, - flux, - ancestor_files, - cfg, - pltname=basename + '_cre_p_field') + ancestor_files=iht.flx_files) + figname = "efp_and_flux_toa_net_{}_{}.png".format(model, experiment) + save_figure(figname, provenance_record, cfg) + # Figure 4 + iht.quiver_subplot( + [['netcre_efp', 'netcre'], ['swcre_efp', 'swcre'], + ['lwcre_efp', 'lwcre']], + wmin=-60, + wmax=60, + nwlevs=13, + wlevstep=2, + vmin=-0.3, + vmax=0.3, + title=[['$P_{TOA}^{TOTCRE}$', '$Delta CRE_{TOA}^{TOT}$'], + ['$P_{TOA}^{SWCRE}$', '$Delta CRE_{TOA}^{SW}$'], + ['$P_{TOA}^{LWCRE}$', '$Delta CRE_{TOA}^{LW}$']]) + provenance_record = get_provenance_record(plot_type='map', + ancestor_files=iht.flx_files) + figname = "efp_and_flux_toa_cre_{}_{}.png".format(model, experiment) + save_figure(figname, provenance_record, cfg) + # Figure 5 + iht.quiver_subplot( + [['rsutcs_efp', 'rsutcs'], ['rsut_efp', 'rsut']], + wmin=-100, + wmax=100, + nwlevs=21, + wlevstep=3, + vmin=-0.3, + vmax=0.3, + title=[['$P_{TOA}^{SWup, clr}$', '$Delta CRE_{TOA}^{SWup, clr}$'], + ['$P_{TOA}^{SWup, all}$', '$Delta CRE_{TOA}^{SWup, all}$']]) + provenance_record = get_provenance_record(plot_type='map', + ancestor_files=iht.flx_files) + figname = "efp_and_flux_toa_rsut_{}_{}.png".format(model, experiment) + save_figure(figname, provenance_record, cfg) + + +def mht_plots(iht, model, experiment, cfg): + # Figure 1 + iht.mht_plot(["rtnt_mht", "rsnt_mht", "rlut_mht"], ['Net', 'SW', 'LW']) + provenance_record = get_provenance_record(plot_type='zonal', + ancestor_files=iht.flx_files) + figname = "mht_toa_net_{}_{}.png".format(model, experiment) + save_figure(figname, provenance_record, cfg) + # Figure 3 + iht.cre_mht_plot(['netcre_mht', 'swcre_mht', 'lwcre_mht'], + ['Net CRE', 'SW CRE', 'LW CRE'], + ['rsut_mht', 'rsutcs_mht'], + ['-1 x OSR (all-sky)', '-1 x OSR (clear-sky)']) + figname = "mht_toa_cre_and_osr_{}_{}.png".format(model, experiment) + save_figure(figname, provenance_record, cfg) + return + + +def plot_single_model_diagnostics(iht_dict, cfg): + # iht_dict is a two-level dictionary: iht_dict[model][experiment] + for model, iht_model in iht_dict.items(): + for experiment, iht_experiment in iht_model.items(): + mht_plots(iht_experiment, model, experiment, cfg) + efp_maps(iht_experiment, model, experiment, cfg) def main(cfg): @@ -390,11 +460,9 @@ def main(cfg): transport.""" input_data = cfg['input_data'].values() - # Dictionaries for data cubes - model_p = {} - model_mht = {} - model_flux = {} - model_files = {} + # Dictionary of iht objects. Each entry of the dictionary + # contains the iht object of a single model/dataset. + iht = {} # Group data by dataset logger.info("Group input data by model, sort by experiment") @@ -405,22 +473,11 @@ def main(cfg): if model_name == 'CERES-EBAF': # Ignore any observational data continue - logger.info("Processing model data: %s", model_name) - p, mht, flux, files = compute_p_field_diagnostic( - model_dataset[model_name], cfg) - model_p.update(p) - model_mht.update(mht) - model_flux.update(flux) - model_files.update(files) - del p, mht, flux, files + iht[model_name] = compute_efp_and_mht(model_dataset[model_name]) # Produce plots - for model in model_mht: - output_basename = model - plot_single_model_diagnostics(model_p[model], model_mht[model], - model_flux[model], output_basename, - model_files[model], cfg) + plot_single_model_diagnostics(iht, cfg) if __name__ == '__main__': From 67d3f5385c14e36bbbdea45c6b73ffcf65f86e47 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Mon, 16 Jan 2023 13:34:31 +0000 Subject: [PATCH 11/59] Fix plot file names and improve style of plots. --- .../iht_toa/single_model_diagnostics.py | 38 ++++++++++++++++--- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 0bd154f515..e4a7bdd1d6 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -10,7 +10,7 @@ import iris import matplotlib.pyplot as plt import numpy as np -from matplotlib import gridspec +from matplotlib import gridspec, rcParams from poisson_solver import spherical_poisson from esmvaltool.diag_scripts.shared import ( @@ -22,6 +22,20 @@ # Initialise logger logger = logging.getLogger(Path(__file__).stem) +rcParams.update({ + 'font.size': 14, + 'text.latex.preamble': [r"\usepackage{amsmath}"], + 'xtick.major.pad': 10, + 'ytick.major.pad': 10, + 'xtick.major.size': 10, + 'ytick.major.size': 10, + 'xtick.minor.size': 5, + 'ytick.minor.size': 5, + 'axes.linewidth': 2, + 'lines.markersize': 8, + 'lines.linewidth': 2 +}) + def get_provenance_record(plot_type, ancestor_files): # Create a provenance record describing the diagnostic data and plot. @@ -139,8 +153,20 @@ def __init__(self, mht_clim, efp_clim, flx_clim, flx_files): self.lat = flux.coord('latitude').points self.lon = flux.coord('longitude').points del flux + + # Compute derived fields + self.derived_fields() return + def derived_fields(self): + for cube in self.mht_clim: + if cube.var_name == "rlut_mht": + dcube = cube.copy() + dcube.data = -dcube.data + dcube.var_name = "rlnt_mht" + dcube.long_name = "rlnt_mht" + self.mht_clim.append(dcube) + def print(self): print("=== implied_heat_transport object ===") print(self.mht_clim) @@ -394,7 +420,7 @@ def efp_maps(iht, model, experiment, cfg): ['$P_{TOA}^{LW}$', "$Delta F_{TOA}^{LW}$"]]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) - figname = "efp_and_flux_toa_net_{}_{}.png".format(model, experiment) + figname = "efp_and_flux_toa_net_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) # Figure 4 iht.quiver_subplot( @@ -411,7 +437,7 @@ def efp_maps(iht, model, experiment, cfg): ['$P_{TOA}^{LWCRE}$', '$Delta CRE_{TOA}^{LW}$']]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) - figname = "efp_and_flux_toa_cre_{}_{}.png".format(model, experiment) + figname = "efp_and_flux_toa_cre_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) # Figure 5 iht.quiver_subplot( @@ -426,13 +452,13 @@ def efp_maps(iht, model, experiment, cfg): ['$P_{TOA}^{SWup, all}$', '$Delta CRE_{TOA}^{SWup, all}$']]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) - figname = "efp_and_flux_toa_rsut_{}_{}.png".format(model, experiment) + figname = "efp_and_flux_toa_rsut_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) def mht_plots(iht, model, experiment, cfg): # Figure 1 - iht.mht_plot(["rtnt_mht", "rsnt_mht", "rlut_mht"], ['Net', 'SW', 'LW']) + iht.mht_plot(["rtnt_mht", "rsnt_mht", "rlnt_mht"], ['Net', 'SW', 'LW']) provenance_record = get_provenance_record(plot_type='zonal', ancestor_files=iht.flx_files) figname = "mht_toa_net_{}_{}.png".format(model, experiment) @@ -442,7 +468,7 @@ def mht_plots(iht, model, experiment, cfg): ['Net CRE', 'SW CRE', 'LW CRE'], ['rsut_mht', 'rsutcs_mht'], ['-1 x OSR (all-sky)', '-1 x OSR (clear-sky)']) - figname = "mht_toa_cre_and_osr_{}_{}.png".format(model, experiment) + figname = "mht_toa_cre_and_osr_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) return From 1b5717b38a7208c695c676d8e61194e8d5067776 Mon Sep 17 00:00:00 2001 From: mo-abodas Date: Tue, 17 Jan 2023 08:58:22 +0000 Subject: [PATCH 12/59] Test flake8 fix and CERES dataset (#2472). --- .../iht_toa/single_model_diagnostics.py | 7 +-- esmvaltool/recipes/recipe_iht_toa.yml | 44 ++++--------------- 2 files changed, 11 insertions(+), 40 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index e4a7bdd1d6..e5efc94f0a 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -448,8 +448,8 @@ def efp_maps(iht, model, experiment, cfg): wlevstep=3, vmin=-0.3, vmax=0.3, - title=[['$P_{TOA}^{SWup, clr}$', '$Delta CRE_{TOA}^{SWup, clr}$'], - ['$P_{TOA}^{SWup, all}$', '$Delta CRE_{TOA}^{SWup, all}$']]) + title=[['$P_{TOA}^{SWup, clr}$', r'$\Delta CRE_{TOA}^{SWup, clr}$'], + ['$P_{TOA}^{SWup, all}$', r'$\Delta CRE_{TOA}^{SWup, all}$']]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) figname = "efp_and_flux_toa_rsut_{}_{}".format(model, experiment) @@ -496,9 +496,6 @@ def main(cfg): # Solve Poisson equation for each dataset for model_name in model_dataset: - if model_name == 'CERES-EBAF': - # Ignore any observational data - continue logger.info("Processing model data: %s", model_name) iht[model_name] = compute_efp_and_mht(model_dataset[model_name]) diff --git a/esmvaltool/recipes/recipe_iht_toa.yml b/esmvaltool/recipes/recipe_iht_toa.yml index acc624613b..163a8af268 100644 --- a/esmvaltool/recipes/recipe_iht_toa.yml +++ b/esmvaltool/recipes/recipe_iht_toa.yml @@ -48,24 +48,13 @@ documentation: - esmval datasets: - - {dataset: BCC-ESM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - #- {dataset: FGOALS-g3, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - #- {dataset: IITM-ESM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - #- {dataset: CNRM-ESM2-1, project: CMIP6, exp: amip, ensemble: r1i1p1f2, grid: gn, mip: Amon} - #- {dataset: CNRM-CM6-1, project: CMIP6, exp: amip, ensemble: r1i1p1f2, grid: gn, mip: Amon} - #- {dataset: ACCESS-ESM1-5, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - #- {dataset: ACCESS-CM2, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - #- {dataset: MPI-ESM-1-2-HAM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - #- {dataset: IPSL-CM6A-LR, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - #- {dataset: MIROC6, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - #- {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon} - #- {dataset: UKESM1-0-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f4, grid: gn, mip: Amon} - #- {dataset: MPI-ESM1-2-LR, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - #- {dataset: GISS-E2-1-G, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - #- {dataset: CESM2-FV2,project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - #- {dataset: NorCPM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - #- {dataset: NorESM2-LM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - #- {dataset: NESM3, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + # - {dataset: BCC-ESM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2010} + # - {dataset: MPI-ESM-1-2-HAM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + # - {dataset: IPSL-CM6A-LR, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + # - {dataset: MIROC6, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + # - {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon} + # - {dataset: UKESM1-0-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f4, grid: gn, mip: Amon} preprocessors: @@ -107,45 +96,30 @@ diagnostics: preprocessor: climate_mean_global start_year: 2001 end_year: 2005 - additional_datasets: - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, - start_year: 2001, end_year: 2010} rlutcs: short_name: rlutcs mip: Amon preprocessor: climate_mean_global start_year: 2001 end_year: 2005 - additional_datasets: - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, - start_year: 2001, end_year: 2010} rsutcs: short_name: rsutcs mip: Amon preprocessor: climate_mean_global start_year: 2001 end_year: 2005 - additional_datasets: - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, - start_year: 2001, end_year: 2010} rsut: short_name: rsut mip: Amon preprocessor: climate_mean_global start_year: 2001 end_year: 2005 - additional_datasets: - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, - start_year: 2001, end_year: 2010} rsdt: short_name: rsdt mip: Amon preprocessor: climate_mean_global start_year: 2001 end_year: 2005 - additional_datasets: - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, - start_year: 2001, end_year: 2010} netcre: derive: true short_name: netcre @@ -170,5 +144,5 @@ diagnostics: scripts: single_model: script: iht_toa/single_model_diagnostics.py - #multi_model: - # script: iht_toa/multi_model_diagnostics.py +# multi_model: +# script: iht_toa/multi_model_diagnostics.py From f1c4f1da927f0ce35921923a6d3d36ff56851046 Mon Sep 17 00:00:00 2001 From: mo-abodas Date: Tue, 17 Jan 2023 13:19:02 +0000 Subject: [PATCH 13/59] Change sign option introduced. Nicer spacing of arrows in plots (#2472). --- .../iht_toa/single_model_diagnostics.py | 60 +++++++++++++------ 1 file changed, 43 insertions(+), 17 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index e5efc94f0a..1b2e1fe19f 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -164,8 +164,23 @@ def derived_fields(self): dcube = cube.copy() dcube.data = -dcube.data dcube.var_name = "rlnt_mht" - dcube.long_name = "rlnt_mht" + dcube.long_name = "meridional_heat_transport_of_rlnt" self.mht_clim.append(dcube) + for cube in self.efp_clim: + if cube.var_name == "rlut_efp": + dcube = cube.copy() + dcube.data = -dcube.data + dcube.var_name = "rlnt_efp" + dcube.long_name = "energy_flux_potential_of_rlnt" + self.efp_clim.append(dcube) + for cube in self.flx_clim: + if cube.var_name == "rlut": + dcube = cube.copy() + dcube.data = -dcube.data + dcube.var_name = "rlnt" + dcube.long_name = "radiative_flux_of_rlnt" + self.flx_clim.append(dcube) + self.print() def print(self): print("=== implied_heat_transport object ===") @@ -250,7 +265,7 @@ def cre_mht_plot(self, for i in range(len(var_names_r)): mht = self.mht_clim.extract_cube( var_name_constraint(var_names_r[i])).data / 1e15 - ax2.plot(self.lat, mht, label=legend_r[i], color=col[i]) + ax2.plot(self.lat, -mht, label=legend_r[i], color=col[i]) ax2.axhline(0, color='k', ls=':') ax2.axvline(0, color='k', ls=':') ax2.set_xlim(-90, 90) @@ -279,19 +294,22 @@ def quiver_subplot(self, wlevstep, vmin, vmax, + nlevs, label=[['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], xy_label=(0, 1.05), - title=[['', ''], ['', ''], ['', '']]): - x, y = np.meshgrid(self.lon, self.lat) + title=[['', ''], ['', ''], ['', '']], + change_sign=[[False, False], [False, False], + [False, False]]): - levels1 = np.linspace(vmin, vmax, 11) + x, y = np.meshgrid(self.lon, self.lat) + levels1 = np.linspace(vmin, vmax, nlevs) levels2 = np.linspace(wmin, wmax, nwlevs) nrows = len(var_name) # Calculate sampling for vector plot nlon = len(self.lon) nlat = len(self.lat) - stepx = 20 - stepy = 20 + stepx = nlon // 20 + stepy = nlat // 10 startx = self.quiver_steps(nlon, stepx) starty = self.quiver_steps(nlat, stepy) @@ -315,6 +333,10 @@ def quiver_subplot(self, var_name_constraint(var_name[i][1])).data efp -= np.average(efp) # Arbitrary choice of origin flx -= np.average(flx) + if change_sign[i][0]: + efp = -efp + if change_sign[i][1]: + flx = -flx v, u = np.gradient(efp, 1e14, 1e14) u = u[1:-1, 1:-1] v = v[1:-1, 1:-1] @@ -408,16 +430,17 @@ def quiver_subplot(self, def efp_maps(iht, model, experiment, cfg): # Figure 2 iht.quiver_subplot( - [['rtnt_efp', 'rtnt'], ['rsnt_efp', 'rsnt'], ['rlut_efp', 'rlut']], + [['rtnt_efp', 'rtnt'], ['rsnt_efp', 'rsnt'], ['rlnt_efp', 'rlnt']], wmin=-180, wmax=180, nwlevs=19, wlevstep=4, vmin=-1.2, vmax=1.2, - title=[['$P_{TOA}^{TOT}$', "$Delta F_{TOA}^{TOT}$"], - ['$P_{TOA}^{SW}$', "$Delta F_{TOA}^{SW}$"], - ['$P_{TOA}^{LW}$', "$Delta F_{TOA}^{LW}$"]]) + nlevs=11, + title=[['$P_{TOA}^{TOT}$', r'$\Delta F_{TOA}^{TOT}$'], + ['$P_{TOA}^{SW}$', r'$\Delta F_{TOA}^{SW}$'], + ['$P_{TOA}^{LW}$', r'$\Delta F_{TOA}^{LW}$']]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) figname = "efp_and_flux_toa_net_{}_{}".format(model, experiment) @@ -432,9 +455,10 @@ def efp_maps(iht, model, experiment, cfg): wlevstep=2, vmin=-0.3, vmax=0.3, - title=[['$P_{TOA}^{TOTCRE}$', '$Delta CRE_{TOA}^{TOT}$'], - ['$P_{TOA}^{SWCRE}$', '$Delta CRE_{TOA}^{SW}$'], - ['$P_{TOA}^{LWCRE}$', '$Delta CRE_{TOA}^{LW}$']]) + nlevs=11, + title=[['$P_{TOA}^{TOTCRE}$', r'$\Delta CRE_{TOA}^{TOT}$'], + ['$P_{TOA}^{SWCRE}$', r'$\Delta CRE_{TOA}^{SW}$'], + ['$P_{TOA}^{LWCRE}$', r'$\Delta CRE_{TOA}^{LW}$']]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) figname = "efp_and_flux_toa_cre_{}_{}".format(model, experiment) @@ -446,10 +470,12 @@ def efp_maps(iht, model, experiment, cfg): wmax=100, nwlevs=21, wlevstep=3, - vmin=-0.3, - vmax=0.3, + vmin=-0.35, + vmax=0.35, + nlevs=11, title=[['$P_{TOA}^{SWup, clr}$', r'$\Delta CRE_{TOA}^{SWup, clr}$'], - ['$P_{TOA}^{SWup, all}$', r'$\Delta CRE_{TOA}^{SWup, all}$']]) + ['$P_{TOA}^{SWup, all}$', r'$\Delta CRE_{TOA}^{SWup, all}$']], + change_sign=[[True, True], [True, True]]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) figname = "efp_and_flux_toa_rsut_{}_{}".format(model, experiment) From f9d91014acc351cd95bc53fe1229960e4315d9c7 Mon Sep 17 00:00:00 2001 From: mo-abodas Date: Thu, 9 Mar 2023 17:56:11 +0000 Subject: [PATCH 14/59] Initial attempt at symmetry metrics. --- .../iht_toa/single_model_diagnostics.py | 211 +++++++++++++++--- esmvaltool/recipes/recipe_iht_toa.yml | 95 +++++--- esmvaltool/references/pearce23jclim.bibtex | 13 ++ 3 files changed, 253 insertions(+), 66 deletions(-) create mode 100644 esmvaltool/references/pearce23jclim.bibtex diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 1b2e1fe19f..93299804f9 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -4,6 +4,7 @@ """ import logging +from copy import deepcopy from pathlib import Path import cartopy.crs as ccrs @@ -112,37 +113,74 @@ def compute_efp_and_mht(model_dict): # Loop over experiments for exp_nme in exp_dataset: logger.info("Experiment: %s", exp_nme) - p_cube = iris.cube.CubeList() - mht_cube = iris.cube.CubeList() - flux_cube = iris.cube.CubeList() + efp_clim = iris.cube.CubeList() + mht_clim = iris.cube.CubeList() + flx_clim = iris.cube.CubeList() + mht_annual = iris.cube.CubeList() files_dict = {} - # Loop over variables + # Loop over variables and do the relevant calculations for attributes in exp_dataset[exp_nme]: input_file = attributes['filename'] variable_name = attributes['short_name'] logger.info("Loading %s", input_file) cube = iris.load_cube(input_file) files_dict[variable_name] = input_file - # Call the Poisson solver - efp, mht = call_poisson(cube) - p_cube.append(efp) - mht_cube.append(mht) - flux_cube.append(cube) + if len(cube.shape) == 3: + mht_exp = iris.cube.CubeList() + # Iterate over time dimension and calculate EFP + for flx in cube.slices_over('time'): + efp, mht = call_poisson(flx) + mht_exp.append(mht) + mht_annual.append(mht_exp.merge_cube()) + else: + # Call the Poisson solver + efp, mht = call_poisson(cube) + efp_clim.append(efp) + mht_clim.append(mht) + flx_clim.append(cube) del efp, mht, cube # Add iris cubelist to dictionary - iht_dict[exp_nme] = implied_heat_transport(mht_cube, p_cube, flux_cube, + iht_dict[exp_nme] = implied_heat_transport(mht_clim, efp_clim, + flx_clim, mht_annual, files_dict) - del p_cube, mht_cube, flux_cube + del mht_clim, efp_clim, flx_clim, mht_annual return iht_dict +def symmetry_metric(data, grid): + """Calculates hemispheric symmetry value. + + :param data: zonal mean of the input variable + :param grid: grid weights + :return: + """ + # S = 0 is perfectly symmetrical. + # As coded, the calculation of the symmetry metrics needs the number of + # latitude points to be multiple of 6, i.e. it needs 30 deg bands. + Nlat = data.shape[0] + if (Nlat // 6) != 0: + logger.error("Grid not compatible with symmetry metric calculation.") + Nlat_hem = Nlat // 2 + Nlat_trop = Nlat_hem // 3 + nh = data[Nlat_hem:] + sh = data[:Nlat_hem] + sh = sh[::-1] + + diff = np.abs((nh + sh) * grid) + hem = np.sum(diff) + trop = np.sum(diff[:Nlat_trop]) + extratrop = np.sum(diff[Nlat_trop:Nlat_hem]) + return hem, trop, extratrop + + class implied_heat_transport: - def __init__(self, mht_clim, efp_clim, flx_clim, flx_files): + def __init__(self, mht_clim, efp_clim, flx_clim, mht_annual, flx_files): self.mht_clim = mht_clim self.efp_clim = efp_clim self.flx_clim = flx_clim + self.mht_annual = mht_annual self.flx_files = flx_files # Grid @@ -159,6 +197,7 @@ def __init__(self, mht_clim, efp_clim, flx_clim, flx_files): return def derived_fields(self): + # Create net LW variables (change sign to the upwelling fluxes) for cube in self.mht_clim: if cube.var_name == "rlut_mht": dcube = cube.copy() @@ -180,6 +219,22 @@ def derived_fields(self): dcube.var_name = "rlnt" dcube.long_name = "radiative_flux_of_rlnt" self.flx_clim.append(dcube) + # Annual MHT of clear-sky net flux + for cube in self.mht_annual: + if cube.var_name == "rsdt_mht": + rsdt_mht_annual = cube.copy() + if cube.var_name == "rsutcs_mht": + rsutcs_mht_annual = cube.copy() + if cube.var_name == "rlutcs_mht": + rlutcs_mht_annual = cube.copy() + rtntcs_mht_annual = rsdt_mht_annual - rsutcs_mht_annual + \ + rlutcs_mht_annual + rtntcs_mht_annual.var_name = "rtntcs_mht" + rtntcs_mht_annual.long_name = "meridional_heat_transport_of_rtntcs" + self.mht_annual.append(rtntcs_mht_annual) + # Times series of MHT symmetry metric + self.mht_symmetry_annual() + # Print contents of IHT object self.print() def print(self): @@ -187,30 +242,70 @@ def print(self): print(self.mht_clim) for x in self.mht_clim: print(x.long_name, x.var_name) + print(self.efp_clim) for x in self.efp_clim: print(x.long_name, x.var_name) + print(self.flx_clim) for x in self.flx_clim: print(x.long_name, x.var_name) - print(self.flx_files) - def hemispheric_symmetry(self, data): - # Calculates hemispheric symmetry value - # S = 0 is perfectly symmetrical + print(self.mht_annual) + for x in self.mht_annual: + print(x.long_name, x.var_name) - nh = data[90:] - sh = data[:90] - sh = sh[::-1] - grid = np.sum(self.grid, axis=1)[90:] + print(self.symmetry_metric) + for x in self.symmetry_metric: + print(x.long_name, x.var_name) + + print(self.flx_files) - diff = np.abs((nh + sh) * grid) - hem = np.sum(diff) - trop = np.sum(diff[:30]) - mid = np.sum(diff[30:60]) - high = np.sum(diff[60:]) - extratrop = np.sum(diff[30:90]) - return hem, trop, mid, high, extratrop + def mht_symmetry_annual(self): + # As coded, the calculation of the symmetry metrics needs the number of + # latitude points to be multiple of 6, i.e. it needs 30 deg bands. + if (self.grid.shape[0] // 6) != 0: + logger.error( + "Grid not compatible with symmetry metric calculation.") + Nlat_2 = self.grid.shape[0] // 2 + grid = np.sum(self.grid, axis=1)[Nlat_2:] + self.symmetry_metric = iris.cube.CubeList() + for mht_series in self.mht_annual: + time_coord = mht_series.coord('time') + Ntime = time_coord.shape[0] + hem = np.zeros(Ntime) + trop = np.zeros(Ntime) + extratrop = np.zeros(Ntime) + for i in np.arange(Ntime): + hem[i], trop[i], extratrop[i] = symmetry_metric( + mht_series.data[i], grid) + # Create the cubes for each metric + long_name = "symmetry_hemisphere_of_{}".format( + mht_series.long_name) + var_name = "s_hem_{}".format(mht_series.var_name) + cube_h = iris.cube.Cube(hem, + long_name=long_name, + var_name=var_name, + units="PW", + dim_coords_and_dims=[(time_coord, 0)]) + long_name = "symmetry_tropics_of_{}".format(mht_series.long_name) + var_name = "s_tro_{}".format(mht_series.var_name) + cube_t = iris.cube.Cube(trop, + long_name=long_name, + var_name=var_name, + units="PW", + dim_coords_and_dims=[(time_coord, 0)]) + long_name = "symmetry_extratropics_of_{}".format( + mht_series.long_name) + var_name = "s_ext_{}".format(mht_series.var_name) + cube_e = iris.cube.Cube(extratrop, + long_name=long_name, + var_name=var_name, + units="PW", + dim_coords_and_dims=[(time_coord, 0)]) + self.symmetry_metric.append(cube_h) + self.symmetry_metric.append(cube_t) + self.symmetry_metric.append(cube_e) def mht_plot(self, var_names, legend_label, ylim=(-10, 10)): """MHT plot Produces a single plot comparing the estimated MHT due to @@ -426,6 +521,41 @@ def quiver_subplot(self, return + def plot_symmetry_time_series(self): + var_list = [["s_hem_rtnt_mht", "s_hem_rtntcs_mht"], + ["s_tro_rtnt_mht", "s_tro_rtntcs_mht"], + ["s_ext_rtnt_mht", "s_ext_rtntcs_mht"]] + col = ['C0', 'C1'] + + plt.figure(figsize=(6, 12)) + iplot = 1 + for var_name in var_list: + print("Extracting " + var_name[0]) + y0 = self.symmetry_metric.extract_cube( + var_name_constraint(var_name[0])) + print("Extracting " + var_name[1]) + y1 = self.symmetry_metric.extract_cube( + var_name_constraint(var_name[1])) + ax = plt.subplot(3, 1, iplot) + ax.plot(y0.coord('time').points, + y0.data, + lw=4, + linestyle='-', + label=var_name[0]) + ax.plot(y1.coord('time').points, + y1.data, + lw=4, + linestyle='-', + label=var_name[1]) + ax.annotate(r'$\sigma$: {0}'.format(np.round(np.std(y0.data), 3)), + (0.05, 0.4 - (0.1 * 0)), + xycoords='axes fraction', + color=col[0]) + ax.set_ylabel(r'$S$ (PW)') + iplot += 1 + plt.tight_layout() + return + def efp_maps(iht, model, experiment, cfg): # Figure 2 @@ -444,6 +574,7 @@ def efp_maps(iht, model, experiment, cfg): provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) figname = "efp_and_flux_toa_net_{}_{}".format(model, experiment) + figname = "figure3_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) # Figure 4 iht.quiver_subplot( @@ -462,6 +593,7 @@ def efp_maps(iht, model, experiment, cfg): provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) figname = "efp_and_flux_toa_cre_{}_{}".format(model, experiment) + figname = "figure4_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) # Figure 5 iht.quiver_subplot( @@ -473,12 +605,13 @@ def efp_maps(iht, model, experiment, cfg): vmin=-0.35, vmax=0.35, nlevs=11, - title=[['$P_{TOA}^{SWup, clr}$', r'$\Delta CRE_{TOA}^{SWup, clr}$'], - ['$P_{TOA}^{SWup, all}$', r'$\Delta CRE_{TOA}^{SWup, all}$']], + title=[['$P_{TOA}^{SWup, clr}$', r'$\Delta F_{TOA}^{SWup, clr}$'], + ['$P_{TOA}^{SWup, all}$', r'$\Delta F_{TOA}^{SWup, all}$']], change_sign=[[True, True], [True, True]]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) figname = "efp_and_flux_toa_rsut_{}_{}".format(model, experiment) + figname = "figure5_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) @@ -487,7 +620,8 @@ def mht_plots(iht, model, experiment, cfg): iht.mht_plot(["rtnt_mht", "rsnt_mht", "rlnt_mht"], ['Net', 'SW', 'LW']) provenance_record = get_provenance_record(plot_type='zonal', ancestor_files=iht.flx_files) - figname = "mht_toa_net_{}_{}.png".format(model, experiment) + figname = "mht_toa_net_{}_{}".format(model, experiment) + figname = "figure1_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) # Figure 3 iht.cre_mht_plot(['netcre_mht', 'swcre_mht', 'lwcre_mht'], @@ -495,6 +629,17 @@ def mht_plots(iht, model, experiment, cfg): ['rsut_mht', 'rsutcs_mht'], ['-1 x OSR (all-sky)', '-1 x OSR (clear-sky)']) figname = "mht_toa_cre_and_osr_{}_{}".format(model, experiment) + figname = "figure2_{}_{}".format(model, experiment) + save_figure(figname, provenance_record, cfg) + return + + +def symmetry_plots(iht, model, experiment, cfg): + # Figure 6 + iht.plot_symmetry_time_series() + provenance_record = get_provenance_record(plot_type='times', + ancestor_files=iht.flx_files) + figname = "figure6_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) return @@ -502,15 +647,19 @@ def mht_plots(iht, model, experiment, cfg): def plot_single_model_diagnostics(iht_dict, cfg): # iht_dict is a two-level dictionary: iht_dict[model][experiment] for model, iht_model in iht_dict.items(): + logger.info("Plotting model: %s", model) for experiment, iht_experiment in iht_model.items(): + logger.info("Plotting experiment: %s", experiment) mht_plots(iht_experiment, model, experiment, cfg) efp_maps(iht_experiment, model, experiment, cfg) + symmetry_plots(iht_experiment, model, experiment, cfg) + return def main(cfg): """Solve the Poisson equation and estimate the meridional heat transport.""" - input_data = cfg['input_data'].values() + input_data = deepcopy(list(cfg['input_data'].values())) # Dictionary of iht objects. Each entry of the dictionary # contains the iht object of a single model/dataset. diff --git a/esmvaltool/recipes/recipe_iht_toa.yml b/esmvaltool/recipes/recipe_iht_toa.yml index 163a8af268..8d293b6191 100644 --- a/esmvaltool/recipes/recipe_iht_toa.yml +++ b/esmvaltool/recipes/recipe_iht_toa.yml @@ -5,33 +5,18 @@ documentation: title: Implied heat transport description: | - This recipe solves the spherical Poisson equation for a number of - top-of-the-atmosphere (TOA) radiative fluxes: - - net toa - - net sw - - net lw - - outgoing sw - - incoming sw - From the scalar p-field output of the Poisson solver the implied heat - transport of the full atmosphere-ocean column can be estimates, with the - contribution from each flux quantified. + Horizontal impied heat transport of the entire column derived from + TOA radiative fluxes. - The implied heat transport due to clouds is also estimated using both the clear - and all-sky versions of the radiative fluxes. +# The 'single_model' script focuses on a single simulation and produces a number +# of plots comparing the results of the Poisson solver output of different radiative +# fluxes. If multiple datasets are chosen, the plots will be produced for each +# dataset. - A caveat of this recipe is that the pattern of ocean heat content (OHC) is - not considered. Instead the OHC term is assumed to have no spatial variability - and the storage term is taken to be the global-mean of the given flux. - - The 'single_model' script focuses on a single simulation and produces a number - of plots comparing the results of the Poisson solver output of different radiative - fluxes. If multiple datasets are chosen, the plots will be produced for each - dataset. - - The 'multi-model' script directly compares the chosen models to the - CERES-EBAF results for the same time period. Only one set of plots are produced - regardless of the number of datasets. Requires the 'additional_datasets' field - to be included and filled in with the CERES-EBAF details from obs4MIPS. +# The 'multi-model' script directly compares the chosen models to the +# CERES-EBAF results for the same time period. Only one set of plots are produced +# regardless of the number of datasets. Requires the 'additional_datasets' field +# to be included and filled in with the CERES-EBAF details from obs4MIPS. authors: @@ -42,35 +27,50 @@ documentation: - bodas-salcedo_alejandro references: - - acknow_project - - projects: - - esmval + - pearce23jclim datasets: + # The CERES-EBAF observations reproduce the results of Pearce and Bodas-Salcedo (2023), + # but it can be applied to model data. + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2005} # - {dataset: BCC-ESM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2010} + # - {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon} + # - {dataset: UKESM1-0-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f4, grid: gn, mip: Amon} # - {dataset: MPI-ESM-1-2-HAM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} # - {dataset: IPSL-CM6A-LR, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} # - {dataset: MIROC6, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - # - {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon} - # - {dataset: UKESM1-0-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f4, grid: gn, mip: Amon} preprocessors: climate_mean_global: regrid: - # Use the lowest resolution grid of your chosen data for the target - target_grid: 1.875x1.25 + # Use the lowest resolution grid of your chosen data for the target 1.875x1.25 + target_grid: 5.0x5.0 scheme: area_weighted climate_statistics: operator: mean + annual_filter: + regrid: + # It is recommended to use a low resolution grid, otherwise the process is + # very expensive computationally + target_grid: 5.0x5.0 + scheme: area_weighted + timeseries_filter: + window: 365 + span: 1850 + filter_type: lowpass # low-pass filter + filter_stats: mean +# rolling_window_statistics: +# coordinate: time +# operator: mean +# window_length: 12 diagnostics: implied_heat_transport: - description: Solves the Poisson solver and produces a number of comparison plots. + title: TOA implied heat transports + description: Energy flux potential and implied heat transports for TOA radiative fluxes. themes: - phys realms: @@ -83,6 +83,13 @@ diagnostics: preprocessor: climate_mean_global start_year: 2001 end_year: 2005 + rtnt_filter: + derive: true + short_name: rtnt + mip: Amon + preprocessor: annual_filter + start_year: 2001 + end_year: 2005 rsnt: derive: true short_name: rsnt @@ -102,12 +109,24 @@ diagnostics: preprocessor: climate_mean_global start_year: 2001 end_year: 2005 + rlutcs_filter: + short_name: rlutcs + mip: Amon + preprocessor: annual_filter + start_year: 2001 + end_year: 2005 rsutcs: short_name: rsutcs mip: Amon preprocessor: climate_mean_global start_year: 2001 end_year: 2005 + rsutcs_filter: + short_name: rsutcs + mip: Amon + preprocessor: annual_filter + start_year: 2001 + end_year: 2005 rsut: short_name: rsut mip: Amon @@ -120,6 +139,12 @@ diagnostics: preprocessor: climate_mean_global start_year: 2001 end_year: 2005 + rsdt_filter: + short_name: rsdt + mip: Amon + preprocessor: annual_filter + start_year: 2001 + end_year: 2005 netcre: derive: true short_name: netcre diff --git a/esmvaltool/references/pearce23jclim.bibtex b/esmvaltool/references/pearce23jclim.bibtex new file mode 100644 index 0000000000..ebfac532ad --- /dev/null +++ b/esmvaltool/references/pearce23jclim.bibtex @@ -0,0 +1,13 @@ +@article{pearce23jclim, + doi = {10.1175/JCLI-D-22-0149.1}, + url = {https://doi.org/10.1175/JCLI-D-22-0149.1}, + year = 2023, + month = {jun}, + publisher = {American Meteorological Society}, + volume = {36}, + number = {9}, + pages = {1--30}, + author = {Francesca Pearce and Alejandro Bodas-Salcedo}, + title = {Implied heat transport from {CERES} data: direct radiative effect of clouds on regional patterns and hemispheric symmetry}, + journal = {Journal of Climate} +} From d510552be528b55c7820a585455cde7fba3342b8 Mon Sep 17 00:00:00 2001 From: mo-abodas Date: Fri, 12 May 2023 17:32:02 +0100 Subject: [PATCH 15/59] Symmetry metrics and tidy up. --- .../iht_toa/single_model_diagnostics.py | 338 +++++++++--------- esmvaltool/recipes/recipe_iht_toa.yml | 23 +- 2 files changed, 190 insertions(+), 171 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 93299804f9..e75efd8e02 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -4,11 +4,14 @@ """ import logging +import sys from copy import deepcopy from pathlib import Path import cartopy.crs as ccrs import iris +import iris.plot as iplt +import matplotlib.dates as mdates import matplotlib.pyplot as plt import numpy as np from matplotlib import gridspec, rcParams @@ -57,6 +60,33 @@ def get_provenance_record(plot_type, ancestor_files): return record +def area_average(cube, latitude='latitude', longitude='longitude', mdtol=1): + """Returns the gridbox weighted area average of a cube (and optionally a + sub-region). + + Compulsory arguments: + cube Cube to be area averaged. + Optional arguments: + latitude, longitude Names of coordinates to be used for latitude + and longitude + mdtol Tolerance for missing data. + Returns: + cube_avg cube which has had area averaging applied across + latitude and longitude coordinates + """ + + if cube.coord(latitude).bounds is None: + cube.coord(latitude).guess_bounds() + if cube.coord(longitude).bounds is None: + cube.coord(longitude).guess_bounds() + grid_areas = iris.analysis.cartography.area_weights(cube) + cube_avg = cube.collapsed([longitude, latitude], + iris.analysis.MEAN, + weights=grid_areas, + mdtol=mdtol) + return cube_avg + + def var_name_constraint(var_name): return iris.Constraint(cube_func=lambda c: c.var_name == var_name) @@ -103,52 +133,6 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): return p_cube, mht_cube -def compute_efp_and_mht(model_dict): - # Sort experiments by variable - exp_dataset = group_metadata(model_dict, 'exp', sort='variable_group') - - # Define dict to hold the data - iht_dict = {} - - # Loop over experiments - for exp_nme in exp_dataset: - logger.info("Experiment: %s", exp_nme) - efp_clim = iris.cube.CubeList() - mht_clim = iris.cube.CubeList() - flx_clim = iris.cube.CubeList() - mht_annual = iris.cube.CubeList() - files_dict = {} - # Loop over variables and do the relevant calculations - for attributes in exp_dataset[exp_nme]: - input_file = attributes['filename'] - variable_name = attributes['short_name'] - logger.info("Loading %s", input_file) - cube = iris.load_cube(input_file) - files_dict[variable_name] = input_file - if len(cube.shape) == 3: - mht_exp = iris.cube.CubeList() - # Iterate over time dimension and calculate EFP - for flx in cube.slices_over('time'): - efp, mht = call_poisson(flx) - mht_exp.append(mht) - mht_annual.append(mht_exp.merge_cube()) - else: - # Call the Poisson solver - efp, mht = call_poisson(cube) - efp_clim.append(efp) - mht_clim.append(mht) - flx_clim.append(cube) - del efp, mht, cube - - # Add iris cubelist to dictionary - iht_dict[exp_nme] = implied_heat_transport(mht_clim, efp_clim, - flx_clim, mht_annual, - files_dict) - del mht_clim, efp_clim, flx_clim, mht_annual - - return iht_dict - - def symmetry_metric(data, grid): """Calculates hemispheric symmetry value. @@ -160,8 +144,10 @@ def symmetry_metric(data, grid): # As coded, the calculation of the symmetry metrics needs the number of # latitude points to be multiple of 6, i.e. it needs 30 deg bands. Nlat = data.shape[0] - if (Nlat // 6) != 0: + if (Nlat % 6) != 0: logger.error("Grid not compatible with symmetry metric calculation.") + sys.exit(1) + Nlat_hem = Nlat // 2 Nlat_trop = Nlat_hem // 3 nh = data[Nlat_hem:] @@ -176,42 +162,62 @@ def symmetry_metric(data, grid): class implied_heat_transport: - def __init__(self, mht_clim, efp_clim, flx_clim, mht_annual, flx_files): - self.mht_clim = mht_clim - self.efp_clim = efp_clim - self.flx_clim = flx_clim - self.mht_annual = mht_annual + def __init__(self, flx_files): self.flx_files = flx_files - # Grid + # Create cube lists for the different datasets + self.flx_clim = iris.cube.CubeList() + self.mht_clim = iris.cube.CubeList() + self.efp_clim = iris.cube.CubeList() + self.mht_rolling_mean = iris.cube.CubeList() + self.symmetry_metric = iris.cube.CubeList() + + # Calculate 12-month rolling means for time series. + self.flx_rolling_mean = iris.cube.CubeList() + for flx_file in flx_files: + flx = iris.load_cube(flx_file) + if len(flx.shape) == 3: + self.flx_rolling_mean.append( + flx.rolling_window('time', iris.analysis.MEAN, 12)) + else: + self.flx_clim.append(flx) + + # Save grid information vname_constraint = var_name_constraint("rtnt") - flux = self.flx_clim.extract_cube(vname_constraint) - self.grid = iris.analysis.cartography.area_weights(flux, - normalize=True) - self.lat = flux.coord('latitude').points - self.lon = flux.coord('longitude').points - del flux - - # Compute derived fields - self.derived_fields() + flx = self.flx_clim.extract_cube(vname_constraint) + self.grid = iris.analysis.cartography.area_weights(flx, normalize=True) + self.lat = flx.coord('latitude').points + self.lon = flx.coord('longitude').points + + # Compute derived fluxes + self.derived_fluxes() + + # Calculate EFP and MHT for each flux + self.compute_efp_and_mht() + + # Times series of MHT symmetry metric + self.mht_symmetry_metrics() + + self.print() return - def derived_fields(self): - # Create net LW variables (change sign to the upwelling fluxes) - for cube in self.mht_clim: - if cube.var_name == "rlut_mht": - dcube = cube.copy() - dcube.data = -dcube.data - dcube.var_name = "rlnt_mht" - dcube.long_name = "meridional_heat_transport_of_rlnt" - self.mht_clim.append(dcube) - for cube in self.efp_clim: - if cube.var_name == "rlut_efp": - dcube = cube.copy() - dcube.data = -dcube.data - dcube.var_name = "rlnt_efp" - dcube.long_name = "energy_flux_potential_of_rlnt" - self.efp_clim.append(dcube) + def compute_efp_and_mht(self): + # Loop over climatologies + for flx in self.flx_clim: + efp, mht = call_poisson(flx) + self.efp_clim.append(efp) + self.mht_clim.append(mht) + # Loop over rolling means + for flx_rm in self.flx_rolling_mean: + mht_series = iris.cube.CubeList() + for flx in flx_rm.slices_over('time'): + efp, mht = call_poisson(flx) + mht_series.append(mht) + # Append MHT rolling mean after merging time series. + self.mht_rolling_mean.append(mht_series.merge_cube()) + + def derived_fluxes(self): + # Net LW (change sign to the upwelling flux) for cube in self.flx_clim: if cube.var_name == "rlut": dcube = cube.copy() @@ -219,26 +225,32 @@ def derived_fields(self): dcube.var_name = "rlnt" dcube.long_name = "radiative_flux_of_rlnt" self.flx_clim.append(dcube) - # Annual MHT of clear-sky net flux - for cube in self.mht_annual: - if cube.var_name == "rsdt_mht": - rsdt_mht_annual = cube.copy() - if cube.var_name == "rsutcs_mht": - rsutcs_mht_annual = cube.copy() - if cube.var_name == "rlutcs_mht": - rlutcs_mht_annual = cube.copy() - rtntcs_mht_annual = rsdt_mht_annual - rsutcs_mht_annual + \ - rlutcs_mht_annual - rtntcs_mht_annual.var_name = "rtntcs_mht" - rtntcs_mht_annual.long_name = "meridional_heat_transport_of_rtntcs" - self.mht_annual.append(rtntcs_mht_annual) - # Times series of MHT symmetry metric - self.mht_symmetry_annual() - # Print contents of IHT object - self.print() + if cube.var_name == "rsdt": + rsdt_clim = cube.copy() + if cube.var_name == "rsutcs": + rsutcs_clim = cube.copy() + if cube.var_name == "rlutcs": + rlutcs_clim = cube.copy() + rtntcs_clim = rsdt_clim - rsutcs_clim - rlutcs_clim + rtntcs_clim.var_name = "rtntcs" + rtntcs_clim.long_name = "radiative_flux_of_rtntcs" + self.flx_clim.append(rtntcs_clim) + # Annual rolling means clear-sky net total TOA + for cube in self.flx_rolling_mean: + if cube.var_name == "rsdt": + rsdt_rolling_mean = cube.copy() + if cube.var_name == "rsutcs": + rsutcs_rolling_mean = cube.copy() + if cube.var_name == "rlutcs": + rlutcs_rolling_mean = cube.copy() + rtntcs_rolling_mean = rsdt_rolling_mean - rsutcs_rolling_mean - \ + rlutcs_rolling_mean + rtntcs_rolling_mean.var_name = "rtntcs" + rtntcs_rolling_mean.long_name = "radiative_flux_of_rtntcs" + self.flx_rolling_mean.append(rtntcs_rolling_mean) def print(self): - print("=== implied_heat_transport object ===") + logger.info("=== implied_heat_transport object ===") print(self.mht_clim) for x in self.mht_clim: print(x.long_name, x.var_name) @@ -251,8 +263,8 @@ def print(self): for x in self.flx_clim: print(x.long_name, x.var_name) - print(self.mht_annual) - for x in self.mht_annual: + print(self.mht_rolling_mean) + for x in self.mht_rolling_mean: print(x.long_name, x.var_name) print(self.symmetry_metric) @@ -261,16 +273,17 @@ def print(self): print(self.flx_files) - def mht_symmetry_annual(self): + def mht_symmetry_metrics(self): # As coded, the calculation of the symmetry metrics needs the number of # latitude points to be multiple of 6, i.e. it needs 30 deg bands. - if (self.grid.shape[0] // 6) != 0: + if (self.grid.shape[0] % 6) != 0: logger.error( "Grid not compatible with symmetry metric calculation.") + sys.exit(1) Nlat_2 = self.grid.shape[0] // 2 grid = np.sum(self.grid, axis=1)[Nlat_2:] - self.symmetry_metric = iris.cube.CubeList() - for mht_series in self.mht_annual: + + for mht_series in self.mht_rolling_mean: time_coord = mht_series.coord('time') Ntime = time_coord.shape[0] hem = np.zeros(Ntime) @@ -283,14 +296,14 @@ def mht_symmetry_annual(self): long_name = "symmetry_hemisphere_of_{}".format( mht_series.long_name) var_name = "s_hem_{}".format(mht_series.var_name) - cube_h = iris.cube.Cube(hem, + cube_h = iris.cube.Cube(hem / 1.0e15, long_name=long_name, var_name=var_name, units="PW", dim_coords_and_dims=[(time_coord, 0)]) long_name = "symmetry_tropics_of_{}".format(mht_series.long_name) var_name = "s_tro_{}".format(mht_series.var_name) - cube_t = iris.cube.Cube(trop, + cube_t = iris.cube.Cube(trop / 1.0e15, long_name=long_name, var_name=var_name, units="PW", @@ -298,7 +311,7 @@ def mht_symmetry_annual(self): long_name = "symmetry_extratropics_of_{}".format( mht_series.long_name) var_name = "s_ext_{}".format(mht_series.var_name) - cube_e = iris.cube.Cube(extratrop, + cube_e = iris.cube.Cube(extratrop / 1.0e15, long_name=long_name, var_name=var_name, units="PW", @@ -423,26 +436,22 @@ def quiver_subplot(self, for i in range(nrows): efp = self.efp_clim.extract_cube( - var_name_constraint(var_name[i][0])).data + var_name_constraint(var_name[i][0])) flx = self.flx_clim.extract_cube( - var_name_constraint(var_name[i][1])).data - efp -= np.average(efp) # Arbitrary choice of origin - flx -= np.average(flx) + var_name_constraint(var_name[i][1])) + efp.data -= np.average(efp.data) # Arbitrary choice of origin + flx.data -= area_average(flx).data if change_sign[i][0]: - efp = -efp + efp.data = -efp.data if change_sign[i][1]: - flx = -flx - v, u = np.gradient(efp, 1e14, 1e14) + flx.data = -flx.data + v, u = np.gradient(efp.data, 1e14, 1e14) u = u[1:-1, 1:-1] v = v[1:-1, 1:-1] - + efp.convert_units("PW") ax1 = plt.subplot(gs[i * 7:(i * 7) + 7, 0], - projection=ccrs.PlateCarree()) - cb1 = ax1.contourf(self.lon, - self.lat, - efp / 1e15, - levels=levels1, - transform=ccrs.PlateCarree(central_longitude=0)) + projection=ccrs.PlateCarree(central_longitude=0)) + cb1 = iplt.contourf(efp, levels=levels1) plt.gca().coastlines() xq = x[starty::stepy, startx::stepx] yq = y[starty::stepy, startx::stepx] @@ -479,13 +488,8 @@ def quiver_subplot(self, del u, v, uq, vq ax2 = plt.subplot(gs[i * 7:(i * 7) + 7, 1], - projection=ccrs.PlateCarree()) - cb2 = ax2.contourf(self.lon, - self.lat, - flx, - levels=levels2, - transform=ccrs.PlateCarree(central_longitude=0), - cmap='RdBu_r') + projection=ccrs.PlateCarree(central_longitude=0)) + cb2 = iplt.contourf(flx, levels=levels2, cmap='RdBu_r') plt.gca().coastlines() ax2.set_xticks(np.arange(-180, 190, 60)) ax2.set_xticklabels( @@ -504,7 +508,6 @@ def quiver_subplot(self, cax=ax1, orientation='horizontal', label='Energy flux potential (PW)') - ax2 = plt.subplot(gs[-1, 1]) plt.colorbar(cb2, cax=ax2, @@ -526,33 +529,37 @@ def plot_symmetry_time_series(self): ["s_tro_rtnt_mht", "s_tro_rtntcs_mht"], ["s_ext_rtnt_mht", "s_ext_rtntcs_mht"]] col = ['C0', 'C1'] + label = [ + r'Global: 0$^\mathrm{o}$ - 90$^\mathrm{o}$', + r'Tropics: 0$^\mathrm{o}$ - 30$^\mathrm{o}$', + r'Extratropics: 30$^\mathrm{o}$ - 90$^\mathrm{o}$' + ] + legend_label = ["TOA net all-sky", "TOA net clear-sky"] plt.figure(figsize=(6, 12)) - iplot = 1 - for var_name in var_list: - print("Extracting " + var_name[0]) + for i, var_name in enumerate(var_list): y0 = self.symmetry_metric.extract_cube( var_name_constraint(var_name[0])) - print("Extracting " + var_name[1]) y1 = self.symmetry_metric.extract_cube( var_name_constraint(var_name[1])) - ax = plt.subplot(3, 1, iplot) - ax.plot(y0.coord('time').points, - y0.data, - lw=4, - linestyle='-', - label=var_name[0]) - ax.plot(y1.coord('time').points, - y1.data, - lw=4, - linestyle='-', - label=var_name[1]) - ax.annotate(r'$\sigma$: {0}'.format(np.round(np.std(y0.data), 3)), - (0.05, 0.4 - (0.1 * 0)), + ax = plt.subplot(3, 1, i + 1) + iplt.plot(y0, lw=4, linestyle='-', label=legend_label[0]) + iplt.plot(y1, lw=4, linestyle='-', label=legend_label[1]) + ax.annotate(r'$\sigma$: {:5.3f}'.format(np.std(y0.data)), + (0.05, 0.55), xycoords='axes fraction', color=col[0]) + ax.annotate(r'$\sigma$: {:5.3f}'.format(np.std(y1.data)), + (0.05, 0.45), + xycoords='axes fraction', + color=col[1]) + ax.set_ylim(0, 0.8) ax.set_ylabel(r'$S$ (PW)') - iplot += 1 + ax.xaxis.set_major_locator(mdates.MonthLocator(bymonth=1)) + ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y')) + ax.set_title(label[i]) + if i == 0: + plt.legend(loc=5) plt.tight_layout() return @@ -573,7 +580,6 @@ def efp_maps(iht, model, experiment, cfg): ['$P_{TOA}^{LW}$', r'$\Delta F_{TOA}^{LW}$']]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) - figname = "efp_and_flux_toa_net_{}_{}".format(model, experiment) figname = "figure3_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) # Figure 4 @@ -592,7 +598,6 @@ def efp_maps(iht, model, experiment, cfg): ['$P_{TOA}^{LWCRE}$', r'$\Delta CRE_{TOA}^{LW}$']]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) - figname = "efp_and_flux_toa_cre_{}_{}".format(model, experiment) figname = "figure4_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) # Figure 5 @@ -610,7 +615,6 @@ def efp_maps(iht, model, experiment, cfg): change_sign=[[True, True], [True, True]]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) - figname = "efp_and_flux_toa_rsut_{}_{}".format(model, experiment) figname = "figure5_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) @@ -620,7 +624,6 @@ def mht_plots(iht, model, experiment, cfg): iht.mht_plot(["rtnt_mht", "rsnt_mht", "rlnt_mht"], ['Net', 'SW', 'LW']) provenance_record = get_provenance_record(plot_type='zonal', ancestor_files=iht.flx_files) - figname = "mht_toa_net_{}_{}".format(model, experiment) figname = "figure1_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) # Figure 3 @@ -628,7 +631,6 @@ def mht_plots(iht, model, experiment, cfg): ['Net CRE', 'SW CRE', 'LW CRE'], ['rsut_mht', 'rsutcs_mht'], ['-1 x OSR (all-sky)', '-1 x OSR (clear-sky)']) - figname = "mht_toa_cre_and_osr_{}_{}".format(model, experiment) figname = "figure2_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) return @@ -660,20 +662,32 @@ def main(cfg): """Solve the Poisson equation and estimate the meridional heat transport.""" input_data = deepcopy(list(cfg['input_data'].values())) + input_data = group_metadata(input_data, 'dataset', sort='variable_group') + + # Arrange input flux files in a 2-level dictionary [model_name][dataset] + flx_files = {} + for model_name, datasets in input_data.items(): + flx_files[model_name] = {} + for dataset in datasets: + if dataset['dataset'] in flx_files[model_name]: + flx_files[model_name][dataset['dataset']].append( + dataset['filename']) + else: + flx_files[model_name][dataset['dataset']] = [ + dataset['filename'] + ] - # Dictionary of iht objects. Each entry of the dictionary - # contains the iht object of a single model/dataset. + # Create dictionary of iht objects. It's a 2-level dictionary + # like flx_files. This is where all the calculations are done. iht = {} - - # Group data by dataset - logger.info("Group input data by model, sort by experiment") - model_dataset = group_metadata(input_data, 'dataset', sort='exp') - - # Solve Poisson equation for each dataset - for model_name in model_dataset: - logger.info("Processing model data: %s", model_name) - iht[model_name] = compute_efp_and_mht(model_dataset[model_name]) - + for model_name, datasets in flx_files.items(): + logger.info("Model %s", model_name) + iht[model_name] = {} + for dataset_name, files in datasets.items(): + logger.info("Dataset %s", dataset_name) + iht[model_name][dataset_name] = implied_heat_transport(files) + + print(iht) # Produce plots plot_single_model_diagnostics(iht, cfg) diff --git a/esmvaltool/recipes/recipe_iht_toa.yml b/esmvaltool/recipes/recipe_iht_toa.yml index 8d293b6191..2752b73404 100644 --- a/esmvaltool/recipes/recipe_iht_toa.yml +++ b/esmvaltool/recipes/recipe_iht_toa.yml @@ -32,7 +32,7 @@ documentation: datasets: # The CERES-EBAF observations reproduce the results of Pearce and Bodas-Salcedo (2023), # but it can be applied to model data. - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2005} + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2004} # - {dataset: BCC-ESM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} # - {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon} # - {dataset: UKESM1-0-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f4, grid: gn, mip: Amon} @@ -42,6 +42,11 @@ datasets: preprocessors: + common_grid: + regrid: + target_grid: 5.0x5.0 + scheme: area_weighted + climate_mean_global: regrid: # Use the lowest resolution grid of your chosen data for the target 1.875x1.25 @@ -83,11 +88,11 @@ diagnostics: preprocessor: climate_mean_global start_year: 2001 end_year: 2005 - rtnt_filter: + rtnt_monthly: derive: true short_name: rtnt mip: Amon - preprocessor: annual_filter + preprocessor: common_grid start_year: 2001 end_year: 2005 rsnt: @@ -109,10 +114,10 @@ diagnostics: preprocessor: climate_mean_global start_year: 2001 end_year: 2005 - rlutcs_filter: + rlutcs_monthly: short_name: rlutcs mip: Amon - preprocessor: annual_filter + preprocessor: common_grid start_year: 2001 end_year: 2005 rsutcs: @@ -121,10 +126,10 @@ diagnostics: preprocessor: climate_mean_global start_year: 2001 end_year: 2005 - rsutcs_filter: + rsutcs_monthly: short_name: rsutcs mip: Amon - preprocessor: annual_filter + preprocessor: common_grid start_year: 2001 end_year: 2005 rsut: @@ -139,10 +144,10 @@ diagnostics: preprocessor: climate_mean_global start_year: 2001 end_year: 2005 - rsdt_filter: + rsdt_monthly: short_name: rsdt mip: Amon - preprocessor: annual_filter + preprocessor: common_grid start_year: 2001 end_year: 2005 netcre: From f71f5d2e1e675e9bc2d59b705ac0b3ca7a403047 Mon Sep 17 00:00:00 2001 From: mo-abodas Date: Tue, 16 May 2023 10:54:51 +0100 Subject: [PATCH 16/59] Remove multi-model and OHT code. --- .../iht_toa/multi_model_diagnostics.py | 742 ------------------ .../iht_toa/multi_model_oht_diag.py | 649 --------------- .../iht_toa/poisson_solver_oht.py | 411 ---------- .../iht_toa/recipe_ocean_transport.yml | 120 --- .../iht_toa/single_model_oht_diag.py | 297 ------- 5 files changed, 2219 deletions(-) delete mode 100644 esmvaltool/diag_scripts/iht_toa/multi_model_diagnostics.py delete mode 100644 esmvaltool/diag_scripts/iht_toa/multi_model_oht_diag.py delete mode 100644 esmvaltool/diag_scripts/iht_toa/poisson_solver_oht.py delete mode 100644 esmvaltool/diag_scripts/iht_toa/recipe_ocean_transport.yml delete mode 100644 esmvaltool/diag_scripts/iht_toa/single_model_oht_diag.py diff --git a/esmvaltool/diag_scripts/iht_toa/multi_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/multi_model_diagnostics.py deleted file mode 100644 index 9790aed456..0000000000 --- a/esmvaltool/diag_scripts/iht_toa/multi_model_diagnostics.py +++ /dev/null @@ -1,742 +0,0 @@ -""" Multi model diagnostics -1. Solve the Poisson equation for each dataset -2. Compare to CERES-EBAF results -3. Produce comparison plots -""" - -import logging -from pathlib import Path - -import cartopy.crs as ccrs -import iris -import matplotlib.pyplot as plt -import numpy as np -from cycler import cycler -from matplotlib import gridspec -from poisson_solver import spherical_poisson - -from esmvaltool.diag_scripts.shared import ( - group_metadata, - run_diagnostic, - save_data, - save_figure, -) - -# Initialise logger -logger = logging.getLogger(Path(__file__).stem) - - -def get_provenance_record(plot_type, ancestor_files): - # Create a provenance record describing the diagnostic data and plot. - - record = { - 'statistics': ['mean'], - 'domains': ['global'], - 'plot_types': [plot_type], - 'authors': [ - 'andela_bouwe', - 'righi_mattia', - ], - 'references': [ - 'acknow_project', - ], - 'ancestors': ancestor_files, - } - return record - - -def call_poisson(cube, variable, tol=None): - logger.info('{0}'.format(cube)) - - # Remove average of flux field to account for storage term - data = cube.data.copy() - grid = iris.analysis.cartography.area_weights(cube, normalize=True) - data_mean = np.average(data, weights=grid.data) - data -= data_mean - - logger.info("Calling spherical_poisson") - poisson, mht = spherical_poisson(logger, - forcing=data * (6371e3**2.0), - tolerance=tol) - logger.info("Ending spherical_poisson") - - # Poisson data cube - p_cube = cube.copy() - p_cube.rename(variable + '_poisson') - p_cube.units = 'W' - p_cube.data = poisson[1:-1, 1:-1] - - # MHT data cube - mht_cube = cube.copy() - mht_cube = mht_cube.collapsed('longitude', iris.analysis.MEAN) - mht_cube.rename(variable + '_mht') - mht_cube.units = 'W' - mht_cube.data = mht - - # Flux data cube - cube.rename(variable + '_flux') - cube.units = 'W.m-2' - cube.data = data - - return p_cube, mht_cube, cube - - -def compute_p_field_diagnostic(model_dict, cfg): - # Sort experiments by variables - exp_dataset = group_metadata(model_dict, 'exp', sort='variable_group') - - # Define dicts to hold the data - p_dict = {} - mht_dict = {} - flux_dict = {} - - for exp_nme in exp_dataset: - logger.info("Experiment: %s", exp_nme) - p_cube = iris.cube.CubeList([]) - mht_cube = iris.cube.CubeList([]) - flux_cube = iris.cube.CubeList([]) - - for attributes in exp_dataset[exp_nme]: - input_file = attributes['filename'] - variable_name = attributes['short_name'] - logger.info("Loading %s", input_file) - cube = iris.load_cube(input_file) - - # Model key for dicts - key = '{0}_{1}'.format(attributes['dataset'], attributes['exp']) - - # If flux is upwelling, x -1 - if attributes['short_name'] in [ - 'rlut', 'rlutcs', 'rsut', 'rsutcs' - ]: - cube *= -1 - - # Call the Poisson solver - p, mht, flux = call_poisson(cube, variable_name) - p_cube.append(p) - mht_cube.append(mht) - flux_cube.append(cube) - - # Save data cubes - provenance_record = get_provenance_record( - plot_type='map', ancestor_files=exp_dataset) - filename = attributes['alias'] + '_' + attributes['dataset'] + \ - '_' + attributes['mip'] + '_' + attributes['exp'] + '_' + \ - attributes['ensemble'] + '_' + attributes['variable_group'] \ - + '_' + str(attributes['start_year']) + '-' \ - + str(attributes['end_year']) - save_data(filename + '_poisson', provenance_record, cfg, p) - save_data(filename + '_mht', provenance_record, cfg, mht) - - del p, mht, flux, provenance_record, filename - - # Add iris cubelist to dictionary - p_dict[key] = p_cube - mht_dict[key] = mht_cube - flux_dict[key] = flux_cube - del key, p_cube, mht_cube, flux_cube - - return p_dict, mht_dict, flux_dict - - -def ceres_p_field_diagnostic(model_dict, cfg): - # Calculate diagnostics for CERES-EBAF data - - # Load iris cubes: rlut, rlutcs, rsut, rsutcs, rsdt - for attributes in model_dict: - input_file = attributes['filename'] - logger.info('{0}'.format(input_file)) - cube = iris.load_cube(input_file) - - if attributes['short_name'] == 'rlut': - rlut = cube.copy() - rlut *= -1 - rlut.long_name = attributes['short_name'] - elif attributes['short_name'] == 'rsut': - rsut = cube.copy() - rsut *= -1 - rsut.long_name = attributes['short_name'] - elif attributes['short_name'] == 'rlutcs': - rlutcs = cube.copy() - rlutcs *= -1 - rlutcs.long_name = attributes['short_name'] - elif attributes['short_name'] == 'rsutcs': - rsutcs = cube.copy() - rsutcs *= -1 - rsutcs.long_name = attributes['short_name'] - elif attributes['short_name'] == 'rsdt': - rsdt = cube.copy() - rsdt.long_name = attributes['short_name'] - del cube - - # Define additional variables - rsnt = rsdt + rsut - rsnt.long_name = 'rsnt' - rtnt = rsnt + rlut - rtnt.long_name = 'rtnt' - swcre = rsut - rsutcs - swcre.long_name = 'swcre' - lwcre = rlut - rlutcs - lwcre.long_name = 'lwcre' - netcre = swcre + lwcre - netcre.long_name = 'netcre' - - p_dict = {} - mht_dict = {} - flux_dict = {} - - cube_list = [rtnt, rsnt, rlut, rsut, rsutcs, netcre, swcre, lwcre] - - p_cube = iris.cube.CubeList([]) - mht_cube = iris.cube.CubeList([]) - flux_cube = iris.cube.CubeList([]) - - for cube in cube_list: - # Solve Poisson equation for each variable - p, mht, flux = call_poisson(cube, variable=cube.long_name, tol=2e-4) - p_cube.append(p) - mht_cube.append(mht) - flux_cube.append(cube) - del p, mht, cube - - # Add data to dictionaries - key = 'CERES-EBAF' - p_dict[key] = p_cube - mht_dict[key] = mht_cube - flux_dict[key] = flux_cube - - logger.info("Finished processing observational data.") - return p_dict, mht_dict, flux_dict - - -def mht_plot(variables, mht, ancestor_files, cfg, pltname): - """MHT plot Produces two plots comparing the estimated MHT of the different - models against CERES-EBAF. - - 1. '_mht_CERES-EBAF.png' - The first subplot gives the MHT of CERES-EBAF for all of the given - variables, then the difference between the model and CERES result in - each of the other subplots. Each variable has its own subplot for the - differences. The axes are not forced to the same limits as the - differences can vary between the variables. - 2. '_mht_comp.png' - Shows the full MHT estimates for all of the models and CERES-EBAF - (shown in black). Allows for easy comparison between the shapes of the - MHT curves, but doesn't give the same detail as the difference plots. - Each variable has its own subplot. - """ - - # Variables - var_dict = { - 'rtnt': 'Net TOA', - 'rsnt': 'Net SW', - 'rlut': 'Net LW', - 'rlutcs': '-1 x OLR (clear)', - 'rsut': '-1 x OSR (all)', - 'rsutcs': '-1 x OSR (clear)', - 'rsdt': 'ISR', - 'netcre': 'NET CRE', - 'swcre': 'SW CRE', - 'lwcre': 'LW CRE' - } - ''' MHT comparison plot: compares difference with CERES-EBAF ''' - # Different sized plots depending on number of variables - plt.figure(figsize=(15, 6)) - if len(variables) == 2: - gs = gridspec.GridSpec(2, 3, height_ratios=[7, 1]) - elif len(variables) == 3: - gs = gridspec.GridSpec(2, 4, height_ratios=[7, 1]) - - # Plot CERES-EBAF results separately - ax = plt.subplot(gs[:1, :1]) - for i, x in enumerate(variables): - cube = mht['CERES-EBAF'].extract_cube(x + '_mht') - ax.plot(cube.coord('latitude').points, - cube.data / 1e15, - label=var_dict[x]) - del cube - - ymin, ymax = ax.get_ylim() - ylim = np.max([np.abs(ymin), np.abs(ymax)]) - ax.set_ylim(-ylim, ylim) - ax.set_xlim(-90, 90) - ax.set_xticks(np.arange(-90, 120, 30)) - ax.axhline(0, -90, 90, color='k', ls=':') - ax.axvline(0, -ylim, ylim, color='k', ls=':') - ax.set_xlabel('Latitude') - ax.set_ylabel('MHT (PW)') - ax.set_title('CERES-EBAF') - ax.legend() - vlim = ylim - del ymin, ymax, ylim - - # Bespoke color cycler to remove those used for the CERES-EBAF - # Cycles through linestyles for when there are many comparison models - cc = (cycler(linestyle=['-', '--', '-.']) * cycler('color', [ - '#d62728', '#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', - '#17becf' - ])) - - # Plot difference for all variables/models - for i, x in enumerate(variables): - ax = plt.subplot(gs[:1, i + 1:i + 2]) - ax.set_prop_cycle(cc) - j = 0 - for y in mht: - if y == 'CERES-EBAF': - continue - ceres = mht['CERES-EBAF'].extract_cube(x + '_mht') - cube = mht[y].extract_cube(x + '_mht') - ax.plot(cube.coord('latitude').points, - (cube.data - ceres.data) / 1e15, - label=y) - del cube - j += 1 - - ymin, ymax = ax.get_ylim() - ylim = np.max([np.abs(ymin), np.abs(ymax)]) - ax.axhline(0, -90, 90, color='k', ls=':') - ax.axvline(0, -10, 10, color='k', ls=':') - ax.set_ylim(-ylim, ylim) - ax.set_xlim(-90, 90) - ax.set_xticks(np.arange(-90, 120, 30)) - ax.set_xlabel('Latitude') - ax.set_title(var_dict[x] + ': (model - CERES-EBAF)') - del ymin, ymax, ylim - - handles, labels = ax.get_legend_handles_labels() - - # Legend spans the width of the difference subplots - plt.subplot(gs[1:, 1:]) - plt.axis('off') - plt.legend(handles, labels, ncol=3, loc='upper center') - - plt.tight_layout() - - # Save plots - provenance_record = get_provenance_record(plot_type='zonal', - ancestor_files=cfg) - logger.info('{0}'.format(provenance_record)) - save_figure(pltname + '_CERES-EBAF', provenance_record, cfg) - plt.close() - ''' MHT plot: compares full MHT with CERES-EBAF ''' - # Reset color cycler - cc = (cycler(linestyle=['-', '--', '-.']) * cycler('color', [ - '#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', - '#e377c2', '#7f7f7f', '#bcbd22', '#17becf' - ])) - - # Different size plots depending on number of variables - plt.figure(figsize=(15, 6)) - if len(variables) == 2: - gs = gridspec.GridSpec(2, 2, height_ratios=[7, 1]) - elif len(variables) == 3: - gs = gridspec.GridSpec(2, 3, height_ratios=[7, 1]) - - # Plot MHT for all models including CERES-EBAF (black line) - for i, x in enumerate(variables): - ax = plt.subplot(gs[:1, i:i + 1]) - ax.set_prop_cycle(cc) - for y in mht: - cube = mht[y].extract_cube(x + '_mht') - if y == 'CERES-EBAF': - ax.plot(cube.coord('latitude').points, - cube.data / 1e15, - 'k', - ls='-', - lw=2, - label=y) - else: - ax.plot(cube.coord('latitude').points, - cube.data / 1e15, - label=y) - - ax.set_ylim(-vlim, vlim) - ax.set_xlim(-90, 90) - ax.set_xticks(np.arange(-90, 120, 30)) - ax.axhline(0, -90, 90, color='k', ls=':') - ax.axvline(0, -vlim, vlim, color='k', ls=':') - ax.set_xlabel('Latitude') - ax.set_ylabel('MHT (PW)') - ax.set_title(var_dict[x]) - - handles, labels = ax.get_legend_handles_labels() - del cube - - # Legend spans the width of the full plot - plt.subplot(gs[1:, :]) - plt.axis('off') - plt.legend(handles, labels, ncol=3, loc='upper center') - - plt.tight_layout() - - # Save plot - provenance_record = get_provenance_record(plot_type='zonal', - ancestor_files=cfg) - logger.info('{0}'.format(provenance_record)) - save_figure(pltname + '_comp', provenance_record, cfg) - - -def quiver_plot(variables, cubelist, ancestor_files, cfg, pltname): - """Maps of scalar p-fields or input flux fields Produces a single plot with - multiple subplots comparing the CERES-EBAF field to the different model - fields. - - The CERES-EBAF field is shown is full, with all variables sharing - the same colorbar. The difference between each model and CERES-EBAF - are shown as separate subplots for each variables. All of the - difference subplots share the same colorbar. For the scalar p-field - maps the direction of the implied heat transport is shown by white - arrows. The arrows are normalised across the different plots and - variables (separate for the difference plots and CERES-EBAF), so the - lengths can be directly compared for the magnitude of the heat - transport. - """ - - # Variables - var_dict = { - 'rtnt': 'Net TOA', - 'rsnt': 'Net SW', - 'rlut': 'Net LW', - 'rlutcs': '-1 x OLR (clear)', - 'rsut': '-1 x OSR (all)', - 'rsutcs': '-1 x OSR (clear)', - 'rsdt': 'ISR', - 'netcre': 'NET CRE', - 'swcre': 'SW CRE', - 'lwcre': 'LW CRE' - } - - # Data type - dtype = pltname.split('_')[-1] - if dtype == 'flux': - cbar_label = 'Flux (W/m2)' - div = 1 - elif dtype == 'poisson': - cbar_label = 'Scalar p-field (PW)' - div = 1e15 - - # Size of plot parameters - # Change these if plots are not displaying properly - if len(cubelist) == 2: - ncols = 2 - nrows = 1 - xlen = 8 - elif len(cubelist) <= 5: - ncols = 2 - nrows = int(np.ceil((len(cubelist) - 1) / 2)) - xlen = 10 - elif len(cubelist) <= 7: - ncols = 3 - nrows = 2 - xlen = 15 - else: - ncols = 4 - nrows = int(np.ceil((len(cubelist) - 1) / 4)) - xlen = 20 - - # Create figure axes - height_ratio = np.ones((nrows * len(variables)) + 1) - height_ratio[:(nrows * len(variables))] *= 7 - - plt.figure(figsize=(xlen, 5 * nrows)) - gs = gridspec.GridSpec((nrows * len(variables)) + 1, - ncols + 1, - height_ratios=height_ratio) - gs.update(hspace=0.5) - - vmin = 0 - vmax = 0 - wmin = 0 - wmax = 0 - - # Calculate the plot limits - # - Same colorbar for CERES plots - # - Same colorbar for difference plots - for i, p in enumerate(variables): - for j, q in enumerate(cubelist): - if q == 'CERES-EBAF': - cube = cubelist[q].extract_cube(p + '_' + dtype) - tmp = np.average(cube.data) - - plt.figure() - plt.axes(projection=ccrs.PlateCarree()) - plt.contourf(cube.coord('longitude').points, - cube.coord('latitude').points, - tmp - cube.data, - levels=10, - transform=ccrs.PlateCarree(central_longitude=0)) - cbar = plt.colorbar() - cmin, cmax = cbar.mappable.get_clim() - vmin = np.min([vmin, cmin]) - vmax = np.max([vmax, cmax]) - del tmp, cube - plt.close() - - else: - cube = cubelist[q].extract_cube(p + '_' + dtype) - tmp_cube = cube.data - np.average(cube.data) - ceres = cubelist['CERES-EBAF'].extract_cube(p + '_' + dtype) - tmp_ceres = ceres.data - np.average(ceres.data) - - plt.figure() - plt.axes(projection=ccrs.PlateCarree()) - plt.contourf(cube.coord('longitude').points, - cube.coord('latitude').points, - tmp_cube - tmp_ceres, - levels=10, - transform=ccrs.PlateCarree(central_longitude=0)) - cbar = plt.colorbar() - cmin, cmax = cbar.mappable.get_clim() - wmin = np.min([wmin, cmin]) - wmax = np.max([wmax, cmax]) - del cube, ceres, tmp_cube, tmp_ceres - plt.close() - - wlim = np.max([np.abs(wmin), np.abs(wmax)]) - levels1 = np.linspace(vmin / div, vmax / div, 11) # CERES - levels2 = np.linspace(-wlim / div, wlim / div, 11) # difference - - # Plot the maps - for m, p in enumerate(variables): - j = 0 - for i, q in enumerate(cubelist): - # CERES-EBAF data - if q == 'CERES-EBAF': - cube = cubelist[q].extract_cube(p + '_' + dtype) - tmp = np.average(cube.data) - ax1 = plt.subplot(gs[(m * nrows):(m * nrows) + 1, 0], - projection=ccrs.PlateCarree()) - cb1 = ax1.contourf( - cube.coord('longitude').points, - cube.coord('latitude').points, (tmp - cube.data) / div, - levels=levels1, - transform=ccrs.PlateCarree(central_longitude=0)) - plt.gca().coastlines() - - if dtype == 'poisson': - # Plot heat transport arrows on p-field - x, y = np.meshgrid( - cube.coord('longitude').points, - cube.coord('latitude').points) - v, u = np.gradient(cube.data, 1e14, 1e14) - if m == 0: - Q = ax1.quiver(x[15::25, 15::32], - y[15::25, 15::32], - u[15::25, 15::32], - v[15::25, 15::32], - pivot='mid', - color='w') - Q._init() - else: - ax1.quiver(x[15::25, 15::32], - y[15::25, 15::32], - u[15::25, 15::32], - v[15::25, 15::32], - scale=Q.scale, - pivot='mid', - color='w') - del x, y, u, v - - ax1.set_xticks(np.arange(-180, 190, 60)) - ax1.set_xticklabels( - ['180', '120W', '60W', '0', '60E', '120E', '180']) - ax1.set_yticks(np.arange(-90, 100, 30)) - ax1.set_yticklabels( - ['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) - ax1.set_title('{0}: CERES-EBAF'.format(var_dict[p])) - del tmp - - # Difference between models and CERES-EBAF - else: - # Subplot details - if (i + 1) >= ncols: - if i % ncols == 0: - j += 1 - k = (i + 1) - (j * ncols) - else: - k = i + 1 - - cube = cubelist[q].extract_cube(p + '_' + dtype) - tmp_cube = cube.data - np.average(cube.data) - ceres = cubelist['CERES-EBAF'].extract_cube(p + '_' + dtype) - tmp_ceres = ceres.data - np.average(ceres.data) - - ax2 = plt.subplot(gs[(m * nrows) + j:(m * nrows) + j + 1, - k:k + 1], - projection=ccrs.PlateCarree()) - cb2 = ax2.contourf( - cube.coord('longitude').points, - cube.coord('latitude').points, - (tmp_cube - tmp_ceres) / div, - levels=levels2, - transform=ccrs.PlateCarree(central_longitude=0), - cmap='coolwarm') - plt.gca().coastlines(color='k') - - if dtype == 'poisson': - # Heat transport arrows - x, y = np.meshgrid( - cube.coord('longitude').points, - cube.coord('latitude').points) - v, u = np.gradient(tmp_cube - tmp_ceres, 1e14, 1e14) - if m == 0: - R = ax2.quiver(x[15::25, 15::32], - y[15::25, 15::32], - u[15::25, 15::32], - v[15::25, 15::32], - pivot='mid', - color='w') - R._init() - else: - ax2.quiver(x[15::25, 15::32], - y[15::25, 15::32], - u[15::25, 15::32], - v[15::25, 15::32], - scale=R.scale, - pivot='mid', - color='w') - del x, y, u, v - - ax2.set_xticks(np.arange(-180, 190, 60)) - ax2.set_xticklabels( - ['180', '120W', '60W', '0', '60E', '120E', '180']) - ax2.set_yticks(np.arange(-90, 100, 30)) - ax2.set_yticklabels( - ['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) - if len(cubelist) > 3: - ax2.set_title('{0}'.format(q)) - else: - ax2.set_title('{0} - CERES-EBAF'.format(q)) - del cube, tmp_cube, ceres, tmp_ceres - - # Plot colorbars - ax1 = plt.subplot(gs[-1, 0]) - plt.colorbar(cb1, cax=ax1, orientation='horizontal', label=cbar_label) - - ax2 = plt.subplot(gs[-1, 1:]) - plt.colorbar(cb2, - cax=ax2, - orientation='horizontal', - label='Anomaly ' + cbar_label.split(' ')[-1]) - - # Plot adjustments - if len(variables) == 2: - plt.subplots_adjust(left=0.1, right=0.9, top=0.97, bottom=0.1) - elif len(variables) < 5: - plt.subplots_adjust(left=0.1, right=0.9, top=0.97, bottom=0.07) - elif len(variables) == 5: - plt.subplots_adjust(left=0.06, right=0.94, top=0.97, bottom=0.07) - - # Save plot - provenance_record = get_provenance_record(plot_type='map', - ancestor_files=cfg) - save_figure(pltname, provenance_record, cfg) - - -def plot_multi_model_diagnostics(poisson, mht, flux, ancestor_files, cfg): - basename = 'multi_model_implied' - - # TOA: net, sw, lw - variables = ['rtnt', 'rsnt', 'rlut'] - mht_plot(variables, - mht, - ancestor_files, - cfg, - pltname=basename + '_toa_mht') - quiver_plot(variables, - poisson, - ancestor_files, - cfg, - pltname=basename + '_toa_poisson') - quiver_plot(variables, - flux, - ancestor_files, - cfg, - pltname=basename + '_toa_flux') - - # OSR: clear vs. all sky - variables = ['rsut', 'rsutcs'] - mht_plot(variables, - mht, - ancestor_files, - cfg, - pltname=basename + '_osr_mht') - quiver_plot(variables, - poisson, - ancestor_files, - cfg, - pltname=basename + '_osr_poisson') - quiver_plot(variables, - flux, - ancestor_files, - cfg, - pltname=basename + '_osr_flux') - - # CRE: net, sw, lw - variables = ['netcre', 'swcre', 'lwcre'] - mht_plot(variables, - mht, - ancestor_files, - cfg, - pltname=basename + '_cre_mht') - quiver_plot(variables, - poisson, - ancestor_files, - cfg, - pltname=basename + '_cre_poisson') - quiver_plot(variables, - flux, - ancestor_files, - cfg, - pltname=basename + '_cre_flux') - - -def main(cfg): - """Solve the Poisson equation and estimate the meridional heat - transport.""" - input_data = cfg['input_data'].values() - - # Dictionaries for data cubes - model_p = {} - model_mht = {} - model_flux = {} - ceres = False - - # Group data by dataset - logger.info("Group input data by model, sort by experiment") - model_dataset = group_metadata(input_data, 'dataset', sort='exp') - - for model_name in model_dataset: - # Treat CERES-EBAF data separately - if model_name == 'CERES-EBAF': - ceres = True - continue - - logger.info("Processing model data: %s", model_name) - p, mht, flux = compute_p_field_diagnostic(model_dataset[model_name], - cfg) - model_p.update(p) - model_mht.update(mht) - model_flux.update(flux) - del p, mht, flux - - if ceres is True: - model_name = 'CERES-EBAF' - logger.info("Processing observational data: CERES-EBAF") - # Need to calculate some fluxes for CERES-EBAF - p, mht, flux = ceres_p_field_diagnostic(model_dataset[model_name], cfg) - model_p.update(p) - model_mht.update(mht) - model_flux.update(flux) - del p, mht, flux - - # Plotting multi-model diagnostics - plot_multi_model_diagnostics(model_p, model_mht, model_flux, input_data, - cfg) - - -if __name__ == '__main__': - - with run_diagnostic() as config: - main(config) diff --git a/esmvaltool/diag_scripts/iht_toa/multi_model_oht_diag.py b/esmvaltool/diag_scripts/iht_toa/multi_model_oht_diag.py deleted file mode 100644 index b4dc5bc291..0000000000 --- a/esmvaltool/diag_scripts/iht_toa/multi_model_oht_diag.py +++ /dev/null @@ -1,649 +0,0 @@ -""" Multi model diagnostics -1. Solve the Poisson equation for each dataset -2. Calculate/process observational dataset -3. Compare simulations to observational data -4. Produce comparison plots -""" - -import logging -from pathlib import Path - -import cartopy.crs as ccrs -import iris -import matplotlib.pyplot as plt -import numpy as np -from cycler import cycler -from matplotlib import gridspec -from poisson_solver_oht import spherical_ocean_poisson -from scipy.ndimage import binary_fill_holes - -from esmvaltool.diag_scripts.shared import ( - group_metadata, - run_diagnostic, - save_data, - save_figure, -) - -# Initialise logger -logger = logging.getLogger(Path(__file__).stem) - - -def get_provenance_record(plot_type, ancestor_files): - # Create a provenance record describing the diagnostic data and plot - - record = { - 'statistics': ['mean'], - 'domains': ['global'], - 'plot_types': [plot_type], - 'authors': [ - 'andela_bouwe', - 'righi_mattia', - ], - 'references': [ - 'acknow_project', - ], - 'ancestors': ancestor_files, - } - return record - - -def call_poisson(cube, mask): - # Remove average of flux field to account for storage term - data = cube.data.copy() - grid = iris.analysis.cartography.area_weights(cube, normalize=True) - data_mean = np.average(data, weights=np.ma.array(grid, mask=mask)) - data -= data_mean - data *= (1 - mask) - - logger.info("Calling spherical_poisson") - poisson, mht, dx, dy = spherical_ocean_poisson(logger, - forcing=data * - (6371e3**2.0), - mask=(1 - mask)) - logger.info("Ending spherical_poisson") - - # Poisson data cube - p_cube = cube.copy() - p_cube.rename('poisson') - p_cube.units = 'W' - p_cube.data = poisson[1:-1, 1:-1] - - # MHT data cube list - mht_list = iris.cube.CubeList([]) - for x in mht: - basin = cube.copy() - basin = basin.collapsed('longitude', iris.analysis.MEAN) - basin.rename(x) - basin.units = 'W' - basin.data = mht[x] - mht_list.append(basin) - del basin - - # Gradient cube list - dx_cube = cube.copy() - dx_cube.rename('dx gradient') - dx_cube.units = 'W' - dx_cube.data = dx - - dy_cube = cube.copy() - dy_cube.rename('dy gradient') - dy_cube.units = 'W' - dy_cube.data = dy - - grad_list = iris.cube.CubeList([dx_cube, dy_cube]) - del dx_cube, dy_cube - - # Flux data cube - cube.rename('flux') - cube.units = 'W.m-2' - cube.data = data - - return p_cube, mht_list, cube, grad_list - - -def masks(cfg): - mask = iris.load_cube(cfg['mask']) - - # Close any seas not connected to the oceans - # e.g. Mediterranean Sea at some resolutions - (y, x) = np.shape(mask) - wrap_mask = np.zeros([y, x + 2]) - wrap_mask[:, 1:-1] = mask.data - wrap_mask[:, 0] = mask.data[:, -1] - wrap_mask[:, -1] = mask.data[:, 0] - - wrap_mask = binary_fill_holes(wrap_mask) - mask.data = wrap_mask[:, 1:-1] - - # Return wrapped mask - return mask - - -def calc_nsf(dataset, mask, cfg): - # Calculate NSF from the input fluxes - # NSF = (rlds - rlus) + (rsds - rsus) - (hfls + hfss) - - nsf_dict = {} - for attributes in dataset: - input_file = attributes['filename'] - variable_name = attributes['short_name'] - logger.info("Loading %s", input_file) - cube = iris.load_cube(input_file) - nsf_dict[variable_name] = cube.data - - nsf = cube.copy() - nsf.rename('Net Surface Flux') - nsf.data = (nsf_dict['rlds'] - nsf_dict['rlus']) + \ - (nsf_dict['rsds'] - nsf_dict['rsus']) - \ - (nsf_dict['hfss'] + nsf_dict['hfls']) - - # Regrid NSF to the same grid as mask - nsf = nsf.regrid(mask, iris.analysis.AreaWeighted()) - if 'variable_id' in nsf.attributes: - del nsf.attributes['variable_id'] - - return nsf - - -def compute_p_field_diagnostic(model_name, model_dict, cfg): - # Define mask - mask = masks(cfg) - - # Define data dicts - p_dict = {} - mht_dict = {} - flux_dict = {} - grad_dict = {} - files_dict = {} - - # Determine number of experiments - exp_dataset = group_metadata(model_dict, 'exp', sort='variable_group') - - for exp_nme in exp_dataset: - logger.info("Experiment: %s", exp_nme) - key = model_name + '_' + exp_nme - - # Calculate NSF/solve Poisson equation - nsf = calc_nsf(exp_dataset[exp_nme], mask, cfg) - p, mht, flux, gradient = call_poisson(nsf, mask.data) - - # Save data to dict - p_dict[key] = p - mht_dict[key] = mht - flux_dict[key] = flux - grad_dict[key] = gradient - - files_dict = {} - for attributes in exp_dataset[exp_nme]: - variable_name = attributes['short_name'] - input_file = attributes['filename'] - files_dict[variable_name] = input_file - filename = attributes['dataset'] + '_' + \ - attributes['mip'] + '_' + attributes['exp'] + '_' + \ - attributes['ensemble'] + '_nsf_' + \ - str(attributes['start_year']) + '-' + \ - str(attributes['end_year']) - - # Save data cubes - provenance_record = get_provenance_record(plot_type='map', - ancestor_files=exp_dataset) - save_data(filename + '_poisson', provenance_record, cfg, p) - save_data(filename + '_mht', provenance_record, cfg, mht) - - return p_dict, mht_dict, flux_dict, grad_dict, files_dict, mask - - -def plot_multi_model_diagnostics(poisson, mht, flux, gradient, mask, files, - cfg): - # Plot comparison of models to observational dataset - mht_plot(mht, files, cfg) - quiver_plot(poisson, gradient, mask.data, files, cfg) - quiver_plot(flux, gradient, mask.data, files, cfg) - return - - -def mht_plot(mht, ancestor_files, cfg): - """MHT plot Produces two plots comparing the estimated MHT of the different - models to the observational dataset provided. - - 1. '_obs_ocean_mht.png' - Gives the MHT for the given obs dataset, then shows the difference - between the model and obs for each basin in separate subplots. All the - difference subplots are presented with the same y-limits to allow for - easy comparison. - 2. '_ocean_mht.png' - Four subplots showing the MHT for each model in each basin. The - observational results are presented as a thick black solid line. Allows - for easy comparison between the shapes of the MHT curves, but doesn't - give the same detail as the difference plots. - For both plots each model is presented in a different colour/linestyle - configuration. - """ - - # MHT plot: direct comparison to observations - # Color/linestyle cycler to ensure no models are the same - cc = (cycler(linestyle=['-', '--', '-.']) * cycler('color', [ - '#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '#9467bd', '#8c564b', - '#e377c2', '#7f7f7f', '#bcbd22', '#17becf' - ])) - - fig, axs = plt.subplots(2, 2, figsize=(10, 8)) - for i, x in enumerate(['global', 'atlantic', 'pacific', 'indian']): - ax = plt.subplot(2, 2, i + 1) - - for y in mht: - cube = mht[y].extract_cube(x) - if y == cfg['obs_name']: - # Plot observational data separately (black line) - ax.plot(cube.coord('latitude').points, - cube.data / 1e15, - label=y, - color='k', - lw=2, - zorder=100) - ax.set_prop_cycle(cc) - else: - ax.plot(cube.coord('latitude').points, - cube.data / 1e15, - label=y) - plt.xlim(-90, 90) - plt.xticks(np.arange(-90, 120, 30)) - plt.hlines(0, -90, 90, color='k', linestyles=':') - if i == 0: - ymin, ymax = plt.ylim() - ylim = np.max([np.abs(ymin), np.abs(ymax)]) - plt.ylim(-ylim, ylim) - plt.vlines(0, -ylim, ylim, color='k', linestyles=':') - plt.title(x) - plt.xlabel('Latitude') - plt.ylabel('MHT (PW)') - - # Plot legend to right of figure outside subplots - plt.legend(bbox_to_anchor=(1.04, 0.5), loc="center left") - plt.tight_layout() - - # Save figure - provenance_record = get_provenance_record(plot_type='zonal', - ancestor_files=ancestor_files) - save_figure('multi_model_ocean_mht', provenance_record, cfg) - - # MHT plot: difference compared to observations - # Color/linestyle cycler to ensure no models are the same - cc = (cycler(linestyle=['-', '--', '-.']) * cycler( - 'color', - ['#9467bd', '#8c564b', '#e377c2', '#7f7f7f', '#bcbd22', '#17becf'])) - - if cfg['obs_name'] in mht: - obs_name = cfg['obs_name'] - vlim = 0 - - fig, axs = plt.subplots(2, 2, figsize=(10, 8)) - ax1 = plt.subplot(2, 3, 1) # Obs - # Subplot for each basin - for i, x in enumerate(['global', 'atlantic', 'pacific', 'indian']): - if i > 1: - ax = plt.subplot(2, 3, i + 3) - else: - ax = plt.subplot(2, 3, i + 2) - ax.set_prop_cycle(cc) - obs = mht[obs_name].extract_cube(x) - for y in mht: - if y == obs_name: - # Obs plotted in separate subplot - ax1.plot(cube.coord('latitude').points, - obs.data / 1e15, - label=x) - ax1.set_xlim(-90, 90) - ax1.set_xticks(np.arange(-90, 120, 30)) - ax1.axhline(0, -90, 90, color='k', linestyle=':') - - if i == 3: - dmin, dmax = ax1.get_ylim() - dlim = np.max([np.abs(dmin), np.abs(dmax)]) - ax1.set_ylim(-dlim, dlim) - ax1.axvline(0, -dlim, dlim, color='k', linestyle=':') - del dmin, dmax, dlim - - ax1.set_xlabel('Latitude') - ax1.set_ylabel('MHT (PW)') - ax1.set_title(y) - ax1.legend() - continue - - cube = mht[y].extract_cube(x) - ax.plot(cube.coord('latitude').points, - (cube.data - obs.data) / 1e15, - label=y) - plt.xlim(-90, 90) - plt.xticks(np.arange(-90, 120, 30)) - plt.hlines(0, -90, 90, color='k', linestyles=':') - if i == 0: - ymin, ymax = plt.ylim() - ylim = np.max([np.abs(ymin), np.abs(ymax)]) - vlim = np.max([vlim, ylim]) - # Get model names for legend - handles, labels = ax.get_legend_handles_labels() - - # Keep y-limits the same across all difference plots - plt.ylim(-vlim, vlim) - plt.vlines(0, -vlim, vlim, color='k', linestyles=':') - plt.title(x) - plt.xlabel('Latitude') - plt.ylabel('MHT (PW)') - - # Plot legend of models under the observational plot - ax2 = plt.subplot(2, 3, 4) - plt.axis('off') - ax2.legend(handles, labels, loc='center left') - plt.tight_layout() - - # Save plot - provenance_record = get_provenance_record( - plot_type='zonal', ancestor_files=ancestor_files) - save_figure('multi_model_' + obs_name + '_ocean_mht', - provenance_record, cfg) - - -def quiver_plot(data, gradient, mask, ancestor_files, cfg): - """Maps of scalar p-fields/input flux fields Produces four plots of maps - comparing the observational data to models. - - Creates the - same two plots for both the NSF maps and the scalar p-field. - 1. 'multi_model_ocean_flux/poisson.png' - Plots the full maps for the observational data followed by all of the - models. All of the subplots share the same colorbar allowing for direct - comparison of the maps. - 2. 'multi_model_obs_ocean_flux.png' - Shwows the full map for the observational data with its own colorbar, - followed by all of the difference between the model maps and the - observational map. The model difference subplots all share the same - colorbar allowing for better comparison of the difference between - models. - """ - - # Plot 1. - # Determine colorbar levels - vmin, vmax = 0, 0 - for x in data: - # Different factor depending on p-field or NSF - cube = data[x] - if cube.name() == 'poisson': - div = 1e15 - else: - div = 1 - - plt.figure() - plt.contourf(cube.data, levels=10) - cbar = plt.colorbar() - cmin, cmax = cbar.mappable.get_clim() - vmin = np.min([vmin, cmin]) - vmax = np.max([vmax, cmax]) - plt.close() - - del cube - - levels1 = np.linspace(vmin / div, vmax / div, 21) - del vmin, vmax - - # Size of plot parameters - # Change these if plots are not displaying properly - if len(data) <= 4: - ncols = 2 - nrows = int(np.ceil(len(data) / 2)) - elif len(data) <= 6: - ncols = 3 - nrows = 2 - else: - ncols = 4 - nrows = int(np.ceil(len(data) / 4)) - - # Create figure axes - height_ratio = np.ones(nrows + 1) - height_ratio[:nrows] *= 7 - - plt.figure(figsize=(15, 4 * nrows)) - gs = gridspec.GridSpec(nrows + 1, ncols, height_ratios=height_ratio) - - j = 0 - cube = 0 - # Plot each model individually - for i, model in enumerate(data): - # Iterate over subplots - if i >= ncols: - if i % ncols == 0: - j += 1 - k = i - (j * ncols) - else: - k = i - - del cube - cube = data[model] - - ax = plt.subplot(gs[j:j + 1, k:k + 1], projection=ccrs.PlateCarree()) - cb = ax.contourf( - cube.coord('longitude').points, - cube.coord('latitude').points, - np.ma.array(cube.data / div, mask=mask), - levels=levels1, - transform=ccrs.PlateCarree(central_longitude=0), - cmap='viridis' if cube.name() == 'poisson' else 'plasma') - plt.gca().coastlines() - - ax.set_xticks(np.arange(-180, 190, 60)) - ax.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) - ax.set_yticks(np.arange(-90, 100, 30)) - ax.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) - ax.set_title(model) - - # Plot colorbar at bottom spanning length of plot - ax = plt.subplot(gs[-1, :]) - plt.colorbar(cb, - cax=ax, - orientation='horizontal', - label='Scalar p-field (PW)' - if cube.name() == 'poisson' else 'Flux (w/m2)') - - # Adjust and save plot - plt.subplots_adjust(left=0.1, right=0.9, top=0.95, bottom=0.1) - provenance_record = get_provenance_record(plot_type='map', - ancestor_files=ancestor_files) - save_figure('mulit_model_ocean_' + cube.name(), provenance_record, cfg) - - # Plot 2. - # Difference between models and obs - if cfg['obs_name'] in data: - obs_name = cfg['obs_name'] - - # Determine colorbar levels - vmin, vmax = 0, 0 - for x in data: - cube = data[x] - obs = data[obs_name].data - np.average(data[obs_name].data) - # Define different factors for p-field/NSF maps - if cube.name() == 'poisson': - div = 1e15 - else: - div = 1 - cube = cube.data - np.average(cube.data) - - plt.figure() - plt.contourf(cube - obs, levels=10) - cbar = plt.colorbar() - cmin, cmax = cbar.mappable.get_clim() - vmin = np.min([vmin, cmin]) - vmax = np.max([vmax, cmax]) - plt.close() - - del cube - - vlim = np.max([np.abs(vmin), np.abs(vmax)]) - levels1 = np.linspace(-vlim / div, vlim / div, 21) - del vmin, vmax - - # Size of plot parameters - # Change these if plots are not displaying properly - if len(data) <= 5: - ncols = 2 - nrows = int(np.ceil((len(data) - 1) / 2)) - xlen = 15 - elif len(data) <= 7: - ncols = 3 - nrows = 2 - xlen = 15 - else: - ncols = 4 - nrows = int(np.ceil((len(data) - 1) / 4)) - xlen = 20 - - # Create figure axes - height_ratio = np.ones(nrows + 1) - height_ratio[:nrows] *= 7 - - plt.figure(figsize=(xlen, 4 * nrows)) - gs = gridspec.GridSpec(nrows + 1, - ncols + 1, - height_ratios=height_ratio) - - j = 0 - for i, model in enumerate(data): - if model == obs_name: - # Plot observational map separately - cube = data[model] - ax = plt.subplot(gs[nrows - 1:nrows, 0], - projection=ccrs.PlateCarree()) - cb = ax.contourf( - cube.coord('longitude').points, - cube.coord('latitude').points, - np.ma.array(cube.data / div, mask=mask), - levels=21, - transform=ccrs.PlateCarree(central_longitude=0), - cmap='viridis' if cube.name() == 'poisson' else 'plasma') - plt.gca().coastlines() - - ax.set_xticks(np.arange(-180, 190, 60)) - ax.set_xticklabels( - ['180', '120W', '60W', '0', '60E', '120E', '180']) - ax.set_yticks(np.arange(-90, 100, 30)) - ax.set_yticklabels( - ['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) - ax.set_title(model) - - ax = plt.subplot(gs[-1, :1]) - plt.colorbar(cb, - cax=ax, - orientation='horizontal', - label='Scalar p-field (PW)' - if cube.name() == 'poisson' else 'Flux (w/m2)') - continue - - if (i - 1) >= ncols: - if (i - 1) % ncols == 0: - j += 1 - k = i - (j * ncols) - else: - k = i - - del cube - # Plot difference between model and obs - cube = data[model] - tmp_cube = cube.data - np.average(cube.data) - - ax = plt.subplot(gs[j:j + 1, k:k + 1], - projection=ccrs.PlateCarree()) - cb = ax.contourf(cube.coord('longitude').points, - cube.coord('latitude').points, - np.ma.array((tmp_cube - obs) / div, mask=mask), - levels=levels1, - transform=ccrs.PlateCarree(central_longitude=0), - cmap='coolwarm') - plt.gca().coastlines() - - ax.set_xticks(np.arange(-180, 190, 60)) - ax.set_xticklabels( - ['180', '120W', '60W', '0', '60E', '120E', '180']) - ax.set_yticks(np.arange(-90, 100, 30)) - ax.set_yticklabels( - ['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) - ax.set_title(model + ' - ' + obs_name) - - # Add subplot for colorbar shared between difference plots - ax = plt.subplot(gs[-1, 1:]) - plt.colorbar(cb, - cax=ax, - orientation='horizontal', - label='Scalar p-field (PW)' - if cube.name() == 'poisson' else 'Flux (w/m2)') - - # Save plot - plt.subplots_adjust(left=0.1, right=0.9, top=0.95, bottom=0.1) - provenance_record = get_provenance_record( - plot_type='map', ancestor_files=ancestor_files) - save_figure('mulit_model_' + obs_name + '_ocean_' + cube.name(), - provenance_record, cfg) - - -def main(cfg): - """Solve the Poisson equation and estimate the meridional heat - transport.""" - # Get a description of the preprocessed data that we will use as input. - input_data = cfg['input_data'].values() - - # Dictionaries for data cubes - model_p = {} - model_mht = {} - model_flux = {} - model_grad = {} - model_files = {} - - # Observational comparison data - if cfg['obs_data'] is not False: - mask = masks(cfg) - - # Regrid to mask shape - obs_cube = iris.load_cube(cfg['obs_data']) - obs_cube = obs_cube.regrid(mask, iris.analysis.AreaWeighted()) - obs_name = cfg['obs_name'] - - # Solve Poisson equation - model_p[obs_name], model_mht[obs_name], \ - model_flux[obs_name], model_grad[obs_name] = \ - call_poisson(obs_cube, mask.data) - - # Save data cubes - provenance_record = get_provenance_record( - plot_type='map', ancestor_files=cfg['obs_data']) - save_data(obs_name + '_poisson', provenance_record, cfg, - model_p[obs_name]) - save_data(obs_name + '_mht', provenance_record, cfg, - model_mht[obs_name]) - save_data(obs_name + '_flux', provenance_record, cfg, - model_flux[obs_name]) - del provenance_record - - model_files[obs_name] = cfg['obs_name'] - - # Group data by dataset - logger.info("Group input data by model, sort by experiment") - model_dataset = group_metadata(input_data, 'dataset', sort='exp') - - for model_name in model_dataset: - logger.info("Processing model data: %s", model_name) - # Solve Poisson equation - p, mht, flux, grad, files, mask = compute_p_field_diagnostic( - model_name, model_dataset[model_name], cfg) - model_p.update(p) - model_mht.update(mht) - model_flux.update(flux) - model_grad.update(grad) - model_files.update(files) - - # Multi-model plots - plot_multi_model_diagnostics(model_p, model_mht, model_flux, model_grad, - mask, model_files, cfg) - - -if __name__ == '__main__': - - with run_diagnostic() as config: - main(config) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver_oht.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver_oht.py deleted file mode 100644 index 6890ba2be0..0000000000 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver_oht.py +++ /dev/null @@ -1,411 +0,0 @@ -"""Poisson solver for over the ocean only. The Poisson equation is solved -numerically using the biconjugate gradient stabilized (BiCGSTAB) method. To -ensure a solution over the ocean only, Neumann boundary conditions are -implemented such that the normal derivative at the boundary is zero. The -simplest method of applying this boundary condition is to zero the land flux. - -The solution is achieved when the difference between the net surface flux and -the Laplacian of the output field is less than the stated tolerance. If the -solver fails to converge, the tolerance can be increased. - -Convergence is achieved faster by using a preconditioner on the output field. - -The meridional heat transport is estimated as the gradient of the scalar -p-field output of the Poisson solver. This is done using a central difference -method with exceptions at the land-sea boundaries. -""" - -import numpy as np -from scipy.ndimage import binary_fill_holes - - -def set_metrics(): - # Defines variables used in the solver - hp = np.zeros(M) - hv = np.zeros(M + 1) - - y = -0.5 * np.pi + 0.5 * dy - hv[0] = 0.0 - for j in range(0, M): - hp[j] = np.cos(y) - hv[j + 1] = np.cos(y + 0.5 * dy) - y += dy - hv[-1] = 0.0 - - return hp, hv - - -def set_matrix(hp, hv, mask): - # Storing the full matrix - A_p = np.zeros([M, N]) - A_e = np.zeros([M, N]) - A_w = np.zeros([M, N]) - A_s = np.zeros([M, N]) - A_n = np.zeros([M, N]) - - # ILU factors - M_p = np.zeros([M + 1, N + 1]) - M_e = np.zeros([M + 1, N + 1]) - M_w = np.zeros([M + 1, N + 1]) - M_s = np.zeros([M + 1, N + 1]) - M_n = np.zeros([M + 1, N + 1]) - - # Spherical Laplacian variables - A = 1.0 / (dx**2.) - B = 1.0 / (dy**2.) - - # First calculate the Poisson equations 5-point stencil - # A_w is the contribution from i-1, A_e is from i+1, - # A_s is j-1, A_n is j+1, and A_p is the diagonal - for j in range(0, M): - tx = A / hp[j]**2.0 - ty = B / hp[j] - - for i in range(0, N): - A_w[j, i] = tx - A_e[j, i] = tx - A_s[j, i] = ty * hv[j] - A_n[j, i] = ty * hv[j + 1] - A_p[j, i] = -(A_w[j, i] + A_e[j, i] + A_s[j, i] + A_n[j, i]) - - if mask[j + 1, i + 1] == 0: - A_w[j, i] = 0.0 - A_e[j, i] = 0.0 - A_s[j, i] = 0.0 - A_n[j, i] = 0.0 - A_p[j, i] = 1.0 - - # ILU/SIP preconditioner factors: alf = 0.0 is ILU - alf = 0.9 - M_p += 1.0 - - # Preconditioner only needs to act at sea points - for j in range(1, M + 1): - for i in range(1, N + 1): - if (mask[j, i] == 1): - M_s[j, i] = A_s[j - 1, i - 1] / (1.0 + alf * M_e[j - 1, i]) - M_w[j, i] = A_w[j - 1, i - 1] / (1.0 + alf * M_n[j, i - 1]) - - M_p[j, i] = A_p[j-1, i-1] - \ - M_s[j, i]*(M_n[j-1, i] - alf*M_e[j-1, i]) -\ - M_w[j, i]*(M_e[j, i-1] - alf*M_n[j, i-1]) - M_p[j, i] = 1.0 / M_p[j, i] - - M_e[j, i] = (A_e[j - 1, i - 1] - - alf * M_s[j, i] * M_e[j - 1, i]) * M_p[j, i] - M_n[j, i] = (A_n[j - 1, i - 1] - - alf * M_w[j, i] * M_n[j, i - 1]) * M_p[j, i] - - return A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p - - -def swap_bounds(fld): - # Extends the array by one in all directions - # As the array is periodic is allows for easier comparison at boundaries - wrap_pnt = int(N / 2 + 1) - for i in range(1, N + 1): - fld[0, i] = fld[1, wrap_pnt] - fld[M + 1, i] = fld[M, wrap_pnt] - wrap_pnt += 1 - if wrap_pnt > N: - wrap_pnt = 1 - - fld[:, 0] = fld[:, N] - fld[:, N + 1] = fld[:, 1] - - return fld - - -def calc_Ax(x, A_e, A_w, A_s, A_n, mask): - # Laplcian equation - # Only solved at ocean points (mask = 1) - # Uses mask to remove contribution of land points at boundary - Ax = np.zeros([M + 2, N + 2]) - - x = swap_bounds(x) - for j in range(1, M + 1): - for i in range(1, N + 1): - if mask[j, i] == 1: - Ax[j, i] = mask[j-1, i]*A_s[j-1, i-1]*(x[j-1, i]-x[j, i]) + \ - mask[j, i-1]*A_w[j-1, i-1]*(x[j, i-1]-x[j, i]) + \ - mask[j, i+1]*A_e[j-1, i-1]*(x[j, i+1]-x[j, i]) + \ - mask[j+1, i]*A_n[j-1, i-1]*(x[j+1, i]-x[j, i]) - - Ax = swap_bounds(Ax) - return Ax - - -def dot_prod(x, y): - # Calculate dot product of two matrices - dot_prod = 0 - - for j in range(1, M + 1): - for i in range(1, N + 1): - dot_prod += x[j, i] * y[j, i] - - return dot_prod - - -def precon(x, M_e, M_w, M_s, M_n, M_p): - # Preconditioner - Cx = np.zeros([M + 2, N + 2]) - for j in range(1, M + 1): - for i in range(1, N + 1): - Cx[j, i] = M_p[j, i] * (x[j, i] - M_s[j, i] * Cx[j - 1, i] - - M_w[j, i] * Cx[j, i - 1]) - - Cx = swap_bounds(Cx) - - for j in range(M, 0, -1): - for i in range(N, 0, -1): - Cx[j, - i] = Cx[j, - i] - M_e[j, i] * Cx[j, i + 1] - M_n[j, i] * Cx[j + 1, i] - - Cx = swap_bounds(Cx) - return Cx - - -def bicgstab(logger, x, b, A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p, - mask): - # Bi-conjugate gradient stabilized numerical solver - sc_err = dot_prod(b, b) - - Ax = calc_Ax(x, A_e, A_w, A_s, A_n, mask) - - r = b - Ax - cr = r - - alf = 1.0 - omg = 1.0 - nrm = 1.0 - imx = 1000 - - p = np.zeros([M + 2, N + 2]) - v = np.zeros([M + 2, N + 2]) - - it = 0 - while it < imx: - rho = dot_prod(r, cr) - - bet = (rho / nrm) * (alf / omg) - - t = r - bet * omg * v - - s = precon(t, M_e, M_w, M_s, M_n, M_p) - p = s + bet * p - - v = calc_Ax(p, A_e, A_w, A_s, A_n, mask) - nrm = dot_prod(cr, v) - - alf = rho / nrm - s = r - alf * v - - cs = precon(s, M_e, M_w, M_s, M_n, M_p) - t = calc_Ax(cs, A_e, A_w, A_s, A_n, mask) - - tt = dot_prod(t, t) - ts = dot_prod(t, s) - omg = ts / tt - - x = x + alf * p + omg * cs - r = s - omg * t - - nrm = rho - - if abs(omg) < 1.0e-16: - logger.info('Terminating Poisson solver.') - quit() - - err = np.sqrt(dot_prod(r, r) / sc_err) - if err < tol: - break - - it += 1 - - return x - - -def calc_mht(sol, mask, wrap_mask): - # MHT = Grad(P) - grad_phi = np.zeros([M, N]) - wrap_mask = wrap_mask[:, 1:-1] - sol = sol[:, 1:-1] - - y = np.arange(-0.5 * np.pi + 0.5 * dy, 0.5 * np.pi, dy) - - for i in range(1, M + 1): - for j in range(0, N): - # Ocean points only - if wrap_mask[i, j] == 1: - if (wrap_mask[i + 1, j] == 0) and (wrap_mask[i - 1, j] == 0): - # If land N+S, gradient = 0 - grad_phi[i - 1, j] = 0 - elif wrap_mask[i + 1, j] == 0: - # If land N, assume N = current ocean - grad_phi[i - 1, j] = (sol[i, j] - sol[i - 1, j]) / (2 * dy) - elif wrap_mask[i - 1, j] == 0: - # If land S, assume S = current ocean - grad_phi[i - 1, j] = (sol[i + 1, j] - sol[i, j]) / (2 * dy) - else: - # Surrounded by ocean - grad_phi[i - 1, - j] = (sol[i + 1, j] - sol[i - 1, j]) / (2 * dy) - - # Multiply by mask to get individual basin MHT - grad_phi *= mask - mht = np.sum((grad_phi.T * np.cos(y) * dx).T, axis=1) - - return mht - - -def calc_gradient(sol, wrap_mask): - # MHT = Grad(P) - # Used to calculate gradient in both x and y directions - # Needed for quiver plot arrows showing transport direction/magnitude - - # Northwards transport - grad_y = np.zeros([M, N]) - wrap_y = wrap_mask[:, 1:-1] - sol_y = sol[:, 1:-1] - - for i in range(1, M + 1): - for j in range(0, N): - # Ocean points only - if wrap_y[i, j] == 1: - if (wrap_y[i + 1, j] == 0) and (wrap_y[i - 1, j] == 0): - grad_y[i - 1, j] = 0 - elif wrap_y[i + 1, j] == 0: - grad_y[i - 1, - j] = (sol_y[i, j] - sol_y[i - 1, j]) / (2 * dy) - elif wrap_y[i - 1, j] == 0: - grad_y[i - 1, - j] = (sol_y[i + 1, j] - sol_y[i, j]) / (2 * dy) - else: - grad_y[i - 1, - j] = (sol_y[i + 1, j] - sol_y[i - 1, j]) / (2 * dy) - - del wrap_y, sol_y - - # Eastwards transport - grad_x = np.zeros([M, N]) - wrap_x = wrap_mask[1:-1, :] - sol_x = sol[1:-1, :] - - for i in range(0, M): - for j in range(1, N + 1): - # Ocean points only - if wrap_x[i, j] == 1: - if (wrap_x[i, j + 1] == 0) and (wrap_x[i, j - 1] == 0): - grad_x[i, j - 1] = 0 - elif wrap_x[i, j + 1] == 0: - grad_x[i, - j - 1] = (sol_x[i, j] - sol_x[i, j - 1]) / (2 * dx) - elif wrap_x[i, j - 1] == 0: - grad_x[i, - j - 1] = (sol_x[i, j + 1] - sol_x[i, j]) / (2 * dx) - else: - grad_x[i, j - - 1] = (sol_x[i, j + 1] - sol_x[i, j - 1]) / (2 * dx) - - del wrap_x, sol_x - - return grad_x, grad_y - - -def define_masks(mask): - # BASINS - # Drake Passage: 71 W = 360-71 = 289 E - # Southern Ocean: 147 E - # Southern Ocean: 20 E - # Arctic: 80 W = 360-80 = 280 E - # Artic: 100 E = 100 - - xd = 360 / N - yd = 180 / M - - # Pacific - pacific = mask.copy() - pacific = 1 - pacific - pacific[:, int(np.ceil(289 / xd)):] = 1 # Drake Passage - pacific[:int(np.ceil(81 / yd)), :int(np.floor(147 / - xd))] = 1 # Southern Ocean - pacific[int(np.floor(97 / yd)):, int(np.floor(280 / xd)):] = 1 # Arctic - pacific[int(np.floor(138 / yd)):, :int(np.floor(54 / xd))] = 1 # Arctic - pacific[int(np.floor(75 / yd)):int(np.ceil(100 / - yd)), :int(np.ceil(38 / - xd))] = 1 - pacific = binary_fill_holes(pacific) - # Binary fill holes used to remove inland seas - # Also removes e.g. Med if the resolution is too low so the sea is cut off - # from the ocean - - # Indian - indian = mask.copy() - indian = 1 - indian + 1 - pacific - indian[:, :int(np.floor(20 / xd))] = 1 - indian[:, int(np.ceil(200 / xd)):] = 1 - indian[int(np.floor(150 / yd)):, :] = 1 - - # Atlantic - atlantic = mask.copy() - atlantic = 1 - atlantic + 1 - pacific + 1 - indian - - masks = { - 'global': mask, - 'atlantic': 1 - atlantic, - 'pacific': 1 - pacific, - 'indian': 1 - indian - } - - return masks - - -def spherical_ocean_poisson(logger, forcing, mask, tolerance=None): - # Define global variables - logger.info("spherical_ocean_poisson: Setting global variables") - - global N, M, dx, dy, tol - (M, N) = (np.shape(mask)) - N = int(N) - M = int(M) - dx = 2.0 * np.pi / N - dy = np.pi / M - if tolerance is None: - tol = 3.0e-2 - else: - tol = tolerance - - logger.info("spherical_ocean_poisson: Calling set_metrics") - hp, hv = set_metrics() - - # Defining masks - wrap_mask = np.zeros([M + 2, N + 2]) - wrap_mask[1:-1, 1:-1] = mask - wrap_mask = swap_bounds(wrap_mask) - - basins = define_masks(mask) - - # Solving the Poisson equation - logger.info("spherical_ocean_poisson: Calling set_matrix") - A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p = set_matrix( - hp, hv, wrap_mask) - - rhs = np.zeros([M + 2, N + 2]) - rhs[1:-1, 1:-1] = forcing - rhs = swap_bounds(rhs) - - logger.info("spherical_ocean_poisson: Solving poisson equation") - sol = np.zeros([M + 2, N + 2]) - sol = bicgstab(logger, sol, rhs, A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, - M_n, M_p, wrap_mask) - - # Calculating meridional heat transport - logger.info("spherical_ocean_poisson: Calculating MHT") # - mht = {} - for x in basins: - mht[x] = calc_mht(sol, basins[x], wrap_mask) - - x, y = calc_gradient(sol, wrap_mask) - - return sol, mht, x, y diff --git a/esmvaltool/diag_scripts/iht_toa/recipe_ocean_transport.yml b/esmvaltool/diag_scripts/iht_toa/recipe_ocean_transport.yml deleted file mode 100644 index f9d891da1e..0000000000 --- a/esmvaltool/diag_scripts/iht_toa/recipe_ocean_transport.yml +++ /dev/null @@ -1,120 +0,0 @@ -# ESMValTool -# recipe_ocean_transport.yml ---- -documentation: - title: Recipe to estimate implied ocean heat transport. - - description: | - This recipe solves the spherical Poisson equation for the net surface flux (NSF) - over the ocean to produce an estimate of the implied heat transport within the - ocean. - - Requires a 'mask' (iris compatible) data cube which identifies the position of the - land-sea boundaries. - - Ocean = 0 - - Land = 1 - - A caveat of this recipe is that the pattern of ocean heat content (OHC) is not - considered. Instead the OHC term is assumed to have no spatial variability and the - storage term is taken to be the global-mean of the NSF. - - The 'single_model' script focuses on a single simulation and produces three plots. - 1. A comparison of the merdional heat transport (MHT) in the global ocean, and the - pacific, indian and atlantic ocean basins. - 2. The scalar p-field output from the Poisson solver which is used to the estimate - the heat transport, with arrows overlaid showing the direction of transport. - 3. A plot showing the scalar p-field compared to the input NSF field. - If multiple datasets are chosen, the plots will be produced for each dataset. - - The 'multi_model' script compares the chosen models to the observational data - for the same time period. 6 plots are produced in total regardless of the number - of datasets chosen. Requires an input of the observational data for the chosen time - period in an iris compatible format, and the name of the dataset. - - authors: - - andela_bouwe - - righi_mattia - - maintainer: - - schlund_manuel - - references: - - acknow_project - - projects: - - esmval - - c3s-magic - -datasets: - - {dataset: BCC-ESM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - - {dataset: FGOALS-g3, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - - {dataset: IITM-ESM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - - {dataset: ACCESS-ESM1-5, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - - {dataset: ACCESS-CM2, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - - {dataset: MIROC6, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - - {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon} - - {dataset: CESM2-FV2, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - - {dataset: NorCPM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - - {dataset: NorESM2-LM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - - {dataset: NESM3, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - -preprocessors: - - climate_mean_global: - climate_statistics: - operator: mean - -diagnostics: - - ocean_heat_transport: - description: Global map of divergent energy and the corresponding meridional heat transport. - themes: - - phys - realms: - - atmos - variables: - rlds: - short_name: rlds - mip: Amon - preprocessor: climate_mean_global - start_year: 2001 - end_year: 2014 - rlus: - short_name: rlus - mip: Amon - preprocessor: climate_mean_global - start_year: 2001 - end_year: 2014 - rsds: - short_name: rsds - mip: Amon - preprocessor: climate_mean_global - start_year: 2001 - end_year: 2014 - rsus: - short_name: rsus - mip: Amon - preprocessor: climate_mean_global - start_year: 2001 - end_year: 2014 - hfls: - short_name: hfls - mip: Amon - preprocessor: climate_mean_global - start_year: 2001 - end_year: 2014 - hfss: - short_name: hfss - mip: Amon - preprocessor: climate_mean_global - start_year: 2001 - end_year: 2014 - scripts: - #single_model: - # script: /data/users/fpearce/git_work/ESMValTool/esmvaltool/implied_heat_transport/single_model_oht_diag.py - # mask: '/net/data/users/fpearce/ocean_poisson/landmask.nc' - multi_model: - script: /data/users/fpearce/git_work/ESMValTool/esmvaltool/implied_heat_transport/multi_model_oht_diag.py - mask: '/net/data/users/fpearce/ocean_poisson/landmask.nc' - obs_data: '/net/data/users/fpearce/ocean_poisson/deepc_2001_2014.nc' - obs_name: 'DEEP-C' diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_oht_diag.py b/esmvaltool/diag_scripts/iht_toa/single_model_oht_diag.py deleted file mode 100644 index 8d2d5f16ad..0000000000 --- a/esmvaltool/diag_scripts/iht_toa/single_model_oht_diag.py +++ /dev/null @@ -1,297 +0,0 @@ -""" Single model diagnostics -1. Solve the Poisson solver over the ocean -2. Produce and save plots -""" - -import logging -from pathlib import Path - -import cartopy.crs as ccrs -import iris -import matplotlib.pyplot as plt -import numpy as np -from matplotlib import gridspec -from poisson_solver_oht import spherical_ocean_poisson -from scipy.ndimage import binary_fill_holes - -from esmvaltool.diag_scripts.shared import ( - group_metadata, - run_diagnostic, - save_figure, -) - -# Initialise logger -logger = logging.getLogger(Path(__file__).stem) - - -def get_provenance_record(plot_type, ancestor_files): - # Create a provenance record describing the diagnostic data and plot. - - record = { - 'statistics': ['mean'], - 'domains': ['global'], - 'plot_types': [plot_type], - 'authors': [ - 'andela_bouwe', - 'righi_mattia', - ], - 'references': [ - 'acknow_project', - ], - 'ancestors': ancestor_files, - } - return record - - -def call_poisson(cube, mask): - # Remove average of flux field to account for storage term - data = cube.data.copy() - grid = iris.analysis.cartography.area_weights(cube, normalize=True) - data_mean = np.average(data, weights=np.ma.array(grid, mask=mask)) - data -= data_mean - data *= (1 - mask) - - logger.info("Calling spherical_poisson") - poisson, mht, dx, dy = spherical_ocean_poisson(logger, - forcing=data * - (6371e3**2.0), - mask=(1 - mask)) - logger.info("Ending spherical_poisson") - - # Poisson data cube - p_cube = cube.copy() - p_cube.rename('poisson') - p_cube.units = 'W' - p_cube.data = poisson[1:-1, 1:-1] - - # Flux data cube - cube.rename('flux') - cube.units = 'W.m-2' - cube.data = data - - return p_cube, mht, cube, dx, dy - - -def masks(cfg): - mask = iris.load_cube(cfg['mask']) - - plt.figure() - plt.contourf(mask.data) - plt.colorbar() - plt.savefig('tst.png') - - # Close any seas not connected to the oceans - # e.g. Mediterranean Sea at some resolutions - (y, x) = np.shape(mask) - wrap_mask = np.zeros([y, x + 2]) - wrap_mask[:, 1:-1] = mask.data - wrap_mask[:, 0] = mask.data[:, -1] - wrap_mask[:, -1] = mask.data[:, 0] - - wrap_mask = binary_fill_holes(wrap_mask) - mask.data = wrap_mask[:, 1:-1] - - # Return wrapped mask - return mask - - -def calc_nsf(dataset, mask): - # Calculate NSF from the input fluxes - # NSF = (rlds - rlus) + (rsds - rsus) - (hfls + hfss) - - nsf_dict = {} - for attributes in dataset: - input_file = attributes['filename'] - variable_name = attributes['short_name'] - logger.info("Loading %s", input_file) - cube = iris.load_cube(input_file) - nsf_dict[variable_name] = cube.data - - nsf = cube.copy() - nsf.rename('Net Surface Flux') - nsf.data = (nsf_dict['rlds'] - nsf_dict['rlus']) + \ - (nsf_dict['rsds'] - nsf_dict['rsus']) - \ - (nsf_dict['hfss'] + nsf_dict['hfls']) - - # Regrid NSF to the same grid as mask - nsf = nsf.regrid(mask, iris.analysis.AreaWeighted()) - if 'variable_id' in nsf.attributes: - del nsf.attributes['variable_id'] - - return nsf - - -def compute_p_field_diagnostic(model_name, model_dict, cfg): - # Define mask - mask = masks(cfg) - - # Determine number of experiments - exp_dataset = group_metadata(model_dict, 'exp', sort='variable_group') - - for exp_nme in exp_dataset: - # Calculate MHT/solve Poisson equation - logger.info("Experiment: %s", exp_nme) - nsf = calc_nsf(exp_dataset[exp_nme], mask) - p, mht, flux, dx, dy = call_poisson(nsf, mask.data) - - files_dict = {} - for attributes in exp_dataset[exp_nme]: - variable_name = attributes['short_name'] - input_file = attributes['filename'] - files_dict[variable_name] = input_file - - ancestor_files = files_dict - basename = model_name + '_' + exp_nme - - # Plotting - mht_plot(mht, flux, ancestor_files, cfg, pltname=basename) - quiver_plot(p, - flux, - mask.data, - dx, - dy, - ancestor_files, - cfg, - pltname=basename) - - -def mht_plot(mht, cube, ancestor_files, cfg, pltname): - """MHT plot Produces a single plot which compares the total ocean MHT to - the Atlantic, Indian and Pacific ocean contributions.""" - - plt.figure() - for x in mht: - plt.plot(cube.coord('latitude').points, mht[x] / 1e15, label=x) - plt.xlim(-90, 90) - ymin, ymax = plt.ylim() - ylim = np.max([np.abs(ymin), np.abs(ymax)]) - plt.ylim(-ylim, ylim) - plt.xticks(np.arange(-90, 120, 30)) - plt.hlines(0, -90, 90, color='k', linestyles=':') - plt.vlines(0, -10, 10, color='k', linestyles=':') - plt.xlabel('Latitude') - plt.ylabel('MHT (PW)') - plt.legend() - plt.title(pltname) - plt.tight_layout() - - # Save plot - provenance_record = get_provenance_record(plot_type='zonal', - ancestor_files=ancestor_files) - save_figure(pltname + '_mht', provenance_record, cfg) - - -def quiver_plot(poisson, flux, mask, dx, dy, ancestor_files, cfg, pltname): - """Scalar p-field/NSF maps Produces two plots per dataset. - - 1. The scalar p-field and the input flux field as subplots. - 2. Scalar p-field plotted individually with arrows showing - the direction/magnitude of the heat transport. - In all maps the land points are masked out and the land - boundaries are plotted. - """ - - # Determine levels - plt.figure() - plt.contourf( - poisson.coord('longitude').points, - poisson.coord('latitude').points, - np.ma.array(poisson.data / 1e15, mask=mask)) - cbar = plt.colorbar() - cmin, cmax = cbar.mappable.get_clim() - plt.close() - - levels1 = np.linspace(cmin, cmax, 21) - - # Poisson p-field + flux field - plt.figure(figsize=(12, 5)) - gs = gridspec.GridSpec(1, 2) - - ax1 = plt.subplot(gs[0, 0], projection=ccrs.PlateCarree()) - cb1 = ax1.contourf(poisson.coord('longitude').points, - poisson.coord('latitude').points, - np.ma.array(poisson.data / 1e15, mask=mask), - levels=11, - transform=ccrs.PlateCarree(central_longitude=0)) - plt.gca().coastlines() - ax1.set_xticks(np.arange(-180, 190, 60)) - ax1.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) - ax1.set_yticks(np.arange(-90, 100, 30)) - ax1.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) - plt.colorbar(cb1, orientation='horizontal', label='Scalar p-field (PW)') - - ax2 = plt.subplot(gs[0, 1], projection=ccrs.PlateCarree()) - cb2 = ax2.contourf(flux.coord('longitude').points, - flux.coord('latitude').points, - np.ma.array(flux.data, mask=mask), - levels=10, - transform=ccrs.PlateCarree(central_longitude=0), - cmap='plasma') - plt.gca().coastlines() - ax2.set_xticks(np.arange(-180, 190, 60)) - ax2.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) - ax2.set_yticks(np.arange(-90, 100, 30)) - ax2.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) - plt.colorbar(cb2, orientation='horizontal', label='Flux (W/m2)') - - plt.suptitle(pltname, y=0.9) - plt.tight_layout() - - provenance_record = get_provenance_record(plot_type='map', - ancestor_files=ancestor_files) - save_figure(pltname + '_poisson_flux', provenance_record, cfg) - - # Poisson p-field + quiver - plt.figure(figsize=(10, 6)) - ax1 = plt.subplot(1, 1, 1, projection=ccrs.PlateCarree()) - - x, y = np.meshgrid( - poisson.coord('longitude').points, - poisson.coord('latitude').points) - v, u = dy / 1e15, dx / 1e15 - - cb1 = ax1.contourf(poisson.coord('longitude').points, - poisson.coord('latitude').points, - np.ma.array(poisson.data / 1e15, mask=mask), - levels=levels1, - transform=ccrs.PlateCarree(central_longitude=0)) - plt.gca().coastlines() - ax1.quiver(np.ma.array(x, mask=mask)[9::18, 6::12], - np.ma.array(y, mask=mask)[9::18, 6::12], - np.ma.array(u, mask=mask)[9::18, 6::12], - np.ma.array(v, mask=mask)[9::18, 6::12], - pivot='mid', - color='k') - - ax1.set_xticks(np.arange(-180, 190, 60)) - ax1.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) - ax1.set_yticks(np.arange(-90, 100, 30)) - ax1.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) - - plt.colorbar(cb1, orientation='horizontal', label='Scalar p-field (PW)') - plt.title(pltname) - - save_figure(pltname + '_poisson', provenance_record, cfg) - - -def main(cfg): - """Solve the Poisson equation and estimate the meridional heat - transport.""" - - # Get a description of the preprocessed data that we will use as input. - input_data = cfg['input_data'].values() - - # Group data by dataset - logger.info("Group input data by model, sort by experiment") - model_dataset = group_metadata(input_data, 'dataset', sort='exp') - - # Solve Poisson equation and produce plots - for model_name in model_dataset: - logger.info("Processing model data: %s", model_name) - compute_p_field_diagnostic(model_name, model_dataset[model_name], cfg) - - -if __name__ == '__main__': - - with run_diagnostic() as config: - main(config) From 5f424657d6b2f60d566f350379c9bc53b829aef5 Mon Sep 17 00:00:00 2001 From: mo-abodas Date: Tue, 16 May 2023 15:25:24 +0100 Subject: [PATCH 17/59] #2472: add missing docstrings. --- .../diag_scripts/iht_toa/poisson_solver.py | 54 ++++++++++++++----- .../iht_toa/single_model_diagnostics.py | 39 +++++++++++--- esmvaltool/recipes/recipe_iht_toa.yml | 2 +- 3 files changed, 74 insertions(+), 21 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index 3f2c310094..cf8c336244 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -1,6 +1,6 @@ -"""Poisson solver for the full ocean-atmosphere column. The Poisson equation is -solved by numerically using the biconjugate gradient stabilized (BiCGSTAB) -method. +"""(C) Crown Copyright 2023, the Met Office. Poisson solver for the full ocean- +atmosphere column. The Poisson equation is solved by numerically using the +biconjugate gradient stabilized (BiCGSTAB) method. The solution is achieved when the difference between the input field (radiative flux) and the Laplacian of the output field is less than the stated tolerance. @@ -8,8 +8,8 @@ Convergence is achieved faster by using a preconditioner on the output field. -The heat transport is calculated as the gradient of the scalar -p-field output of the Poisson solver. +The heat transport is calculated as the gradient of the energy flux potential, +the output of the Poisson solver. """ import numpy as np @@ -18,7 +18,7 @@ def set_metrics(): - # Define variables used in the solver + """Define variables used in the solver.""" hp = np.zeros(M) hv = np.zeros(M + 1) @@ -34,6 +34,12 @@ def set_metrics(): def set_matrix(hp, hv): + """Calculate the A-matrix (Eq. + + 8) that defines the five-point stencil. The A_[s,n,w,s] are the + values are the contributions from each of the four neighbouring + cells, while A_p is the contribution from the given cell. + """ # Storing the full matrix A_p = np.zeros([M, N]) A_e = np.zeros([M, N]) @@ -89,8 +95,11 @@ def set_matrix(hp, hv): def swap_bounds(fld): - # Extends the array by one in all directions - # As the array is periodic it allows for easier computations at boundaries + """Extends the array by one in all directions. + + As the array is periodic it allows for easier computations at + boundaries. + """ wrap_pnt = int(N / 2 + 1) for i in range(1, N + 1): fld[0, i] = fld[1, wrap_pnt] @@ -106,6 +115,10 @@ def swap_bounds(fld): def calc_Ax(x, A_e, A_w, A_s, A_n, A_p): + """Matrix calculation of the Laplacian equation, LHS of Eq. + + (9) in Pearce and Bodas-Salcedo (2023). + """ # Laplacian equation Ax = np.zeros([M + 2, N + 2]) @@ -121,12 +134,15 @@ def calc_Ax(x, A_e, A_w, A_s, A_n, A_p): def dot_prod(x, y): - # Calculate dot product of two matrices + """Calculate dot product of two matrices.""" return (x[1:M + 1, 1:N + 1] * y[1:M + 1, 1:N + 1]).sum() def precon(x, M_e, M_w, M_s, M_n, M_p): - # Preconditioner + """Preconditioner. + + This is a wrapper to two steps that are optimised using jit. + """ Cx = np.zeros([M + 2, N + 2]) precon_a(x, M_w, M_s, M_p, Cx) Cx = swap_bounds(Cx) @@ -137,6 +153,7 @@ def precon(x, M_e, M_w, M_s, M_n, M_p): # @jit def precon_a(x, M_w, M_s, M_p, Cx): + """First step of preconditioner.""" for j in range(1, M + 1): for i in range(1, N + 1): Cx[j, i] = M_p[j, i] * (x[j, i] - M_s[j, i] * Cx[j - 1, i] - @@ -145,6 +162,7 @@ def precon_a(x, M_w, M_s, M_p, Cx): # @jit def precon_b(M_e, M_n, Cx): + """Second step of preconditioner.""" for j in range(M, 0, -1): for i in range(N, 0, -1): Cx[j, @@ -153,7 +171,13 @@ def precon_b(M_e, M_n, Cx): def bicgstab(logger, x, b, A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p): - # Bi-conjugate gradient stabilized numerical solver + """Bi-conjugate gradient stabilized numerical solver. + + van der Vorst, H. A., 1992: Bi-cgstab: A fast and smoothly + converging variant of bi-cg for the solution of nonsymmetric linear + systems. SIAM Journal on Scientific and Statistical Computing, + https://doi.org/10.1137/0913035. + """ sc_err = dot_prod(b, b) Ax = calc_Ax(x, A_e, A_w, A_s, A_n, A_p) @@ -212,7 +236,11 @@ def bicgstab(logger, x, b, A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p): def calc_mht(sol): - # MHT = Grad(P) + """Calculation of the meridional heat transport using the gradient of the + energy flux potential. + + Equation (11) in Pearce and Bodas-Salcedo (2023) + """ y = np.arange(-0.5 * np.pi + 0.5 * dy, 0.5 * np.pi, dy) grad_phi = np.gradient(sol, dy, axis=0) @@ -223,6 +251,8 @@ def calc_mht(sol): def spherical_poisson(logger, forcing, tolerance=None): + """Wrapper function that solves the Poisson equation for a given source + term (forcing).""" # Define global variables logger.info("spherical_poisson: Setting global variables") diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index e75efd8e02..c93a8c07df 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -28,7 +28,6 @@ rcParams.update({ 'font.size': 14, - 'text.latex.preamble': [r"\usepackage{amsmath}"], 'xtick.major.pad': 10, 'ytick.major.pad': 10, 'xtick.major.size': 10, @@ -42,7 +41,7 @@ def get_provenance_record(plot_type, ancestor_files): - # Create a provenance record describing the diagnostic data and plot. + """Create a provenance record describing the diagnostic data and plot.""" record = { 'statistics': ['mean'], @@ -88,10 +87,12 @@ def area_average(cube, latitude='latitude', longitude='longitude', mdtol=1): def var_name_constraint(var_name): + """Shortcut to create constraint for variable name.""" return iris.Constraint(cube_func=lambda c: c.var_name == var_name) def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): + """Top-level function that calls the Poisson solver for source cube.""" if flux_cube.coord(latitude).bounds is None: flux_cube.coord(latitude).guess_bounds() @@ -138,7 +139,6 @@ def symmetry_metric(data, grid): :param data: zonal mean of the input variable :param grid: grid weights - :return: """ # S = 0 is perfectly symmetrical. # As coded, the calculation of the symmetry metrics needs the number of @@ -202,6 +202,8 @@ def __init__(self, flx_files): return def compute_efp_and_mht(self): + """Calculation of Energy Flux Potential and Meridional heat transport + for all the data fields.""" # Loop over climatologies for flx in self.flx_clim: efp, mht = call_poisson(flx) @@ -217,6 +219,11 @@ def compute_efp_and_mht(self): self.mht_rolling_mean.append(mht_series.merge_cube()) def derived_fluxes(self): + """Calculation of the derived fluxes: + + rtntcs_clim: climatology of clear-sky net TOA + rtntcs_rolling_mean: 12-month rolling mean of rtntcs + """ # Net LW (change sign to the upwelling flux) for cube in self.flx_clim: if cube.var_name == "rlut": @@ -250,6 +257,7 @@ def derived_fluxes(self): self.flx_rolling_mean.append(rtntcs_rolling_mean) def print(self): + """Print variable names of all cubes in the IHT object.""" logger.info("=== implied_heat_transport object ===") print(self.mht_clim) for x in self.mht_clim: @@ -274,6 +282,8 @@ def print(self): print(self.flx_files) def mht_symmetry_metrics(self): + """Calculate the symmetry metrics for all time series of 12-month + rolling means of MHT.""" # As coded, the calculation of the symmetry metrics needs the number of # latitude points to be multiple of 6, i.e. it needs 30 deg bands. if (self.grid.shape[0] % 6) != 0: @@ -349,6 +359,7 @@ def cre_mht_plot(self, var_names_r, legend_r, ylim=(-1.5, 1.5)): + """Plots of CRE MHTs (Figure 3).""" plt.figure(figsize=(11, 5)) ax1 = plt.subplot(121) for i in range(len(var_names_l)): @@ -389,7 +400,8 @@ def cre_mht_plot(self, plt.tight_layout() return - def quiver_steps(self, n, step): + def quiver_start(self, n, step): + """Calculate start point for quiver plot.""" n2 = (n - 2) // step start = (n - 2 - n2 * step) // 2 return start @@ -408,7 +420,12 @@ def quiver_subplot(self, title=[['', ''], ['', ''], ['', '']], change_sign=[[False, False], [False, False], [False, False]]): + """Plot figures with energy flux potential and gradient in the left + hand columns and the corresponding source term in the right-hand + column. + Figures 2, 4, and 5. + """ x, y = np.meshgrid(self.lon, self.lat) levels1 = np.linspace(vmin, vmax, nlevs) levels2 = np.linspace(wmin, wmax, nwlevs) @@ -418,8 +435,8 @@ def quiver_subplot(self, nlat = len(self.lat) stepx = nlon // 20 stepy = nlat // 10 - startx = self.quiver_steps(nlon, stepx) - starty = self.quiver_steps(nlat, stepy) + startx = self.quiver_start(nlon, stepx) + starty = self.quiver_start(nlat, stepy) if nrows == 3: plt.figure(figsize=(10, 10)) @@ -525,6 +542,8 @@ def quiver_subplot(self, return def plot_symmetry_time_series(self): + """Plot the all-sky and clear-sky time series of the symmetry metrics + (Figure 6)""" var_list = [["s_hem_rtnt_mht", "s_hem_rtntcs_mht"], ["s_tro_rtnt_mht", "s_tro_rtntcs_mht"], ["s_ext_rtnt_mht", "s_ext_rtntcs_mht"]] @@ -565,6 +584,7 @@ def plot_symmetry_time_series(self): def efp_maps(iht, model, experiment, cfg): + """Wrapper function that produces Figures 2, 4, and 5.""" # Figure 2 iht.quiver_subplot( [['rtnt_efp', 'rtnt'], ['rsnt_efp', 'rsnt'], ['rlnt_efp', 'rlnt']], @@ -580,7 +600,7 @@ def efp_maps(iht, model, experiment, cfg): ['$P_{TOA}^{LW}$', r'$\Delta F_{TOA}^{LW}$']]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) - figname = "figure3_{}_{}".format(model, experiment) + figname = "figure2_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) # Figure 4 iht.quiver_subplot( @@ -620,6 +640,7 @@ def efp_maps(iht, model, experiment, cfg): def mht_plots(iht, model, experiment, cfg): + """Wrapper function that produces Figures 1 and 3.""" # Figure 1 iht.mht_plot(["rtnt_mht", "rsnt_mht", "rlnt_mht"], ['Net', 'SW', 'LW']) provenance_record = get_provenance_record(plot_type='zonal', @@ -631,12 +652,13 @@ def mht_plots(iht, model, experiment, cfg): ['Net CRE', 'SW CRE', 'LW CRE'], ['rsut_mht', 'rsutcs_mht'], ['-1 x OSR (all-sky)', '-1 x OSR (clear-sky)']) - figname = "figure2_{}_{}".format(model, experiment) + figname = "figure3_{}_{}".format(model, experiment) save_figure(figname, provenance_record, cfg) return def symmetry_plots(iht, model, experiment, cfg): + """Wrapper function that produces Figure 6.""" # Figure 6 iht.plot_symmetry_time_series() provenance_record = get_provenance_record(plot_type='times', @@ -647,6 +669,7 @@ def symmetry_plots(iht, model, experiment, cfg): def plot_single_model_diagnostics(iht_dict, cfg): + """Wrapper function that produces all plots.""" # iht_dict is a two-level dictionary: iht_dict[model][experiment] for model, iht_model in iht_dict.items(): logger.info("Plotting model: %s", model) diff --git a/esmvaltool/recipes/recipe_iht_toa.yml b/esmvaltool/recipes/recipe_iht_toa.yml index 2752b73404..0be79a2b2b 100644 --- a/esmvaltool/recipes/recipe_iht_toa.yml +++ b/esmvaltool/recipes/recipe_iht_toa.yml @@ -20,8 +20,8 @@ documentation: authors: - - bodas-salcedo_alejandro - pearce_francesca + - bodas-salcedo_alejandro maintainer: - bodas-salcedo_alejandro From 1ab7bcf833ab00cd8ea859ef77ae99d6df64309a Mon Sep 17 00:00:00 2001 From: mo-abodas Date: Tue, 16 May 2023 15:53:30 +0100 Subject: [PATCH 18/59] #2472: Fix flake errors. --- .../diag_scripts/iht_toa/poisson_solver.py | 128 +++++++++--------- .../iht_toa/single_model_diagnostics.py | 40 +++--- 2 files changed, 84 insertions(+), 84 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index cf8c336244..21c787a495 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -41,57 +41,57 @@ def set_matrix(hp, hv): cells, while A_p is the contribution from the given cell. """ # Storing the full matrix - A_p = np.zeros([M, N]) - A_e = np.zeros([M, N]) - A_w = np.zeros([M, N]) - A_s = np.zeros([M, N]) - A_n = np.zeros([M, N]) + a_p = np.zeros([M, N]) + a_e = np.zeros([M, N]) + a_w = np.zeros([M, N]) + a_s = np.zeros([M, N]) + a_n = np.zeros([M, N]) # ILU factors - M_p = np.zeros([M + 1, N + 1]) - M_e = np.zeros([M + 1, N + 1]) - M_w = np.zeros([M + 1, N + 1]) - M_s = np.zeros([M + 1, N + 1]) - M_n = np.zeros([M + 1, N + 1]) + m_p = np.zeros([M + 1, N + 1]) + m_e = np.zeros([M + 1, N + 1]) + m_w = np.zeros([M + 1, N + 1]) + m_s = np.zeros([M + 1, N + 1]) + m_n = np.zeros([M + 1, N + 1]) # Spherical Laplacian variables - A = 1.0 / (dx**2.) - B = 1.0 / (dy**2.) + a = 1.0 / (dx**2.) + b = 1.0 / (dy**2.) # First calculate the Poisson equations 5-point stencil # A_w is the contribution from i-1, A_e is from i+1, # A_s is j-1, A_n is j+1, and A_p is the diagonal for j in range(0, M): - tx = A / hp[j]**2.0 - ty = B / hp[j] + tx = a / hp[j]**2.0 + ty = b / hp[j] for i in range(0, N): - A_w[j, i] = tx - A_e[j, i] = tx - A_s[j, i] = ty * hv[j] - A_n[j, i] = ty * hv[j + 1] - A_p[j, i] = -(A_w[j, i] + A_e[j, i] + A_s[j, i] + A_n[j, i]) + a_w[j, i] = tx + a_e[j, i] = tx + a_s[j, i] = ty * hv[j] + a_n[j, i] = ty * hv[j + 1] + a_p[j, i] = -(a_w[j, i] + a_e[j, i] + a_s[j, i] + a_n[j, i]) # ILU/SIP preconditioner factors: alf = 0.0 is ILU alf = 0.9 - M_p += 1.0 + m_p += 1.0 for j in range(1, M + 1): for i in range(1, N + 1): - M_s[j, i] = A_s[j - 1, i - 1] / (1.0 + alf * M_e[j - 1, i]) - M_w[j, i] = A_w[j - 1, i - 1] / (1.0 + alf * M_n[j, i - 1]) + m_s[j, i] = a_s[j - 1, i - 1] / (1.0 + alf * m_e[j - 1, i]) + m_w[j, i] = a_w[j - 1, i - 1] / (1.0 + alf * m_n[j, i - 1]) - M_p[j, i] = A_p[j-1, i-1] - \ - M_s[j, i]*(M_n[j-1, i] - alf*M_e[j-1, i]) -\ - M_w[j, i]*(M_e[j, i-1] - alf*M_n[j, i-1]) - M_p[j, i] = 1.0 / M_p[j, i] + m_p[j, i] = a_p[j-1, i-1] - \ + m_s[j, i]*(m_n[j-1, i] - alf*m_e[j-1, i]) -\ + m_w[j, i]*(m_e[j, i-1] - alf*m_n[j, i-1]) + m_p[j, i] = 1.0 / m_p[j, i] - M_e[j, i] = (A_e[j - 1, i - 1] - - alf * M_s[j, i] * M_e[j - 1, i]) * M_p[j, i] - M_n[j, i] = (A_n[j - 1, i - 1] - - alf * M_w[j, i] * M_n[j, i - 1]) * M_p[j, i] + m_e[j, i] = (a_e[j - 1, i - 1] - + alf * m_s[j, i] * m_e[j - 1, i]) * m_p[j, i] + m_n[j, i] = (a_n[j - 1, i - 1] - + alf * m_w[j, i] * m_n[j, i - 1]) * m_p[j, i] - return A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p + return a_e, a_w, a_s, a_n, a_p, m_e, m_w, m_s, m_n, m_p def swap_bounds(fld): @@ -114,23 +114,23 @@ def swap_bounds(fld): return fld -def calc_Ax(x, A_e, A_w, A_s, A_n, A_p): +def calc_ax(x, a_e, a_w, a_s, a_n, a_p): """Matrix calculation of the Laplacian equation, LHS of Eq. (9) in Pearce and Bodas-Salcedo (2023). """ # Laplacian equation - Ax = np.zeros([M + 2, N + 2]) + ax = np.zeros([M + 2, N + 2]) x = swap_bounds(x) # Ax[j, i] = A_s[j-1, i-1]*x[j-1, i] + A_w[j-1, i-1]*x[j, i-1] + \ # A_e[j-1, i-1]*x[j, i+1] + A_n[j-1, i-1]*x[j+1, i] + \ # A_p[j-1, i-1]*x[j, i] - Ax[1:M+1, 1:N+1] = A_s[0:M, 0:N] * x[0:M, 1:N+1] + A_w[0:M, 0:N] * \ - x[1:M+1, 0:N] + A_e[0:M, 0:N] * x[1:M+1, 2:N+2] + A_n[0:M, 0:N] * \ - x[2:M+2, 1:N+1] + A_p[0:M, 0:N] * x[1:M+1, 1:N+1] - Ax = swap_bounds(Ax) - return Ax + ax[1:M+1, 1:N+1] = a_s[0:M, 0:N] * x[0:M, 1:N+1] + a_w[0:M, 0:N] * \ + x[1:M+1, 0:N] + a_e[0:M, 0:N] * x[1:M+1, 2:N+2] + a_n[0:M, 0:N] * \ + x[2:M+2, 1:N+1] + a_p[0:M, 0:N] * x[1:M+1, 1:N+1] + ax = swap_bounds(ax) + return ax def dot_prod(x, y): @@ -138,39 +138,39 @@ def dot_prod(x, y): return (x[1:M + 1, 1:N + 1] * y[1:M + 1, 1:N + 1]).sum() -def precon(x, M_e, M_w, M_s, M_n, M_p): +def precon(x, m_e, m_w, m_s, m_n, m_p): """Preconditioner. This is a wrapper to two steps that are optimised using jit. """ - Cx = np.zeros([M + 2, N + 2]) - precon_a(x, M_w, M_s, M_p, Cx) - Cx = swap_bounds(Cx) - precon_b(M_e, M_n, Cx) - Cx = swap_bounds(Cx) - return Cx + cx = np.zeros([M + 2, N + 2]) + precon_a(x, m_w, m_s, m_p, cx) + cx = swap_bounds(cx) + precon_b(m_e, m_n, cx) + cx = swap_bounds(cx) + return cx # @jit -def precon_a(x, M_w, M_s, M_p, Cx): +def precon_a(x, m_w, m_s, m_p, cx): """First step of preconditioner.""" for j in range(1, M + 1): for i in range(1, N + 1): - Cx[j, i] = M_p[j, i] * (x[j, i] - M_s[j, i] * Cx[j - 1, i] - - M_w[j, i] * Cx[j, i - 1]) + cx[j, i] = m_p[j, i] * (x[j, i] - m_s[j, i] * cx[j - 1, i] - + m_w[j, i] * cx[j, i - 1]) # @jit -def precon_b(M_e, M_n, Cx): +def precon_b(m_e, m_n, cx): """Second step of preconditioner.""" for j in range(M, 0, -1): for i in range(N, 0, -1): - Cx[j, - i] = Cx[j, - i] - M_e[j, i] * Cx[j, i + 1] - M_n[j, i] * Cx[j + 1, i] + cx[j, + i] = cx[j, + i] - m_e[j, i] * cx[j, i + 1] - m_n[j, i] * cx[j + 1, i] -def bicgstab(logger, x, b, A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p): +def bicgstab(logger, x, b, a_e, a_w, a_s, a_n, a_p, m_e, m_w, m_s, m_n, m_p): """Bi-conjugate gradient stabilized numerical solver. van der Vorst, H. A., 1992: Bi-cgstab: A fast and smoothly @@ -180,9 +180,9 @@ def bicgstab(logger, x, b, A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p): """ sc_err = dot_prod(b, b) - Ax = calc_Ax(x, A_e, A_w, A_s, A_n, A_p) + ax = calc_ax(x, a_e, a_w, a_s, a_n, a_p) - r = b - Ax + r = b - ax cr = r alf = 1.0 @@ -201,17 +201,17 @@ def bicgstab(logger, x, b, A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p): t = r - bet * omg * v - s = precon(t, M_e, M_w, M_s, M_n, M_p) + s = precon(t, m_e, m_w, m_s, m_n, m_p) p = s + bet * p - v = calc_Ax(p, A_e, A_w, A_s, A_n, A_p) + v = calc_ax(p, a_e, a_w, a_s, a_n, a_p) nrm = dot_prod(cr, v) alf = rho / nrm s = r - alf * v - cs = precon(s, M_e, M_w, M_s, M_n, M_p) - t = calc_Ax(cs, A_e, A_w, A_s, A_n, A_p) + cs = precon(s, m_e, m_w, m_s, m_n, m_p) + t = calc_ax(cs, a_e, a_w, a_s, a_n, a_p) tt = dot_prod(t, t) ts = dot_prod(t, s) @@ -245,9 +245,9 @@ def calc_mht(sol): grad_phi = np.gradient(sol, dy, axis=0) grad_phi = grad_phi[1:-1, 1:-1] - MHT = np.sum((grad_phi.T * np.cos(y) * dx).T, axis=1) + mht = np.sum((grad_phi.T * np.cos(y) * dx).T, axis=1) - return MHT + return mht def spherical_poisson(logger, forcing, tolerance=None): @@ -271,7 +271,7 @@ def spherical_poisson(logger, forcing, tolerance=None): hp, hv = set_metrics() logger.info("spherical_poisson: Calling set_matrix") - A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, M_n, M_p = set_matrix(hp, hv) + a_e, a_w, a_s, a_n, a_p, m_e, m_w, m_s, m_n, m_p = set_matrix(hp, hv) # Solving the Poisson equation rhs = np.zeros([M + 2, N + 2]) @@ -279,8 +279,8 @@ def spherical_poisson(logger, forcing, tolerance=None): logger.info("spherical_poisson: Solving poisson equation") rhs[1:-1, 1:-1] = forcing rhs = swap_bounds(rhs) - sol = bicgstab(logger, sol, rhs, A_e, A_w, A_s, A_n, A_p, M_e, M_w, M_s, - M_n, M_p) + sol = bicgstab(logger, sol, rhs, a_e, a_w, a_s, a_n, a_p, m_e, m_w, m_s, + m_n, m_p) # Calculating meridional heat transport logger.info("spherical_poisson: Calculating MHT") diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index c93a8c07df..d4f7dc56af 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -143,25 +143,25 @@ def symmetry_metric(data, grid): # S = 0 is perfectly symmetrical. # As coded, the calculation of the symmetry metrics needs the number of # latitude points to be multiple of 6, i.e. it needs 30 deg bands. - Nlat = data.shape[0] - if (Nlat % 6) != 0: + nlat = data.shape[0] + if (nlat % 6) != 0: logger.error("Grid not compatible with symmetry metric calculation.") sys.exit(1) - Nlat_hem = Nlat // 2 - Nlat_trop = Nlat_hem // 3 - nh = data[Nlat_hem:] - sh = data[:Nlat_hem] + nlat_hem = nlat // 2 + nlat_trop = nlat_hem // 3 + nh = data[nlat_hem:] + sh = data[:nlat_hem] sh = sh[::-1] diff = np.abs((nh + sh) * grid) hem = np.sum(diff) - trop = np.sum(diff[:Nlat_trop]) - extratrop = np.sum(diff[Nlat_trop:Nlat_hem]) + trop = np.sum(diff[:nlat_trop]) + extratrop = np.sum(diff[nlat_trop:nlat_hem]) return hem, trop, extratrop -class implied_heat_transport: +class ImpliedHeatTransport: def __init__(self, flx_files): self.flx_files = flx_files @@ -290,16 +290,16 @@ def mht_symmetry_metrics(self): logger.error( "Grid not compatible with symmetry metric calculation.") sys.exit(1) - Nlat_2 = self.grid.shape[0] // 2 - grid = np.sum(self.grid, axis=1)[Nlat_2:] + nlat_2 = self.grid.shape[0] // 2 + grid = np.sum(self.grid, axis=1)[nlat_2:] for mht_series in self.mht_rolling_mean: time_coord = mht_series.coord('time') - Ntime = time_coord.shape[0] - hem = np.zeros(Ntime) - trop = np.zeros(Ntime) - extratrop = np.zeros(Ntime) - for i in np.arange(Ntime): + ntime = time_coord.shape[0] + hem = np.zeros(ntime) + trop = np.zeros(ntime) + extratrop = np.zeros(ntime) + for i in np.arange(ntime): hem[i], trop[i], extratrop[i] = symmetry_metric( mht_series.data[i], grid) # Create the cubes for each metric @@ -475,21 +475,21 @@ def quiver_subplot(self, uq = u[starty::stepy, startx::stepx] vq = v[starty::stepy, startx::stepx] if i == 0: - Q = ax1.quiver(xq, + q = ax1.quiver(xq, yq, uq, vq, pivot='mid', color='w', width=0.005) - Q._init() + q._init() else: ax1.quiver(xq, yq, uq, vq, pivot='mid', - scale=Q.scale, + scale=q.scale, color='w') ax1.set_xticks(np.arange(-180, 190, 60)) ax1.set_xticklabels( @@ -708,7 +708,7 @@ def main(cfg): iht[model_name] = {} for dataset_name, files in datasets.items(): logger.info("Dataset %s", dataset_name) - iht[model_name][dataset_name] = implied_heat_transport(files) + iht[model_name][dataset_name] = ImpliedHeatTransport(files) print(iht) # Produce plots From f3d6e7566ccb837423b76f1184826c3706b122bb Mon Sep 17 00:00:00 2001 From: mo-abodas Date: Thu, 18 May 2023 17:55:34 +0100 Subject: [PATCH 19/59] #2472: code style fixes. --- .../diag_scripts/iht_toa/poisson_solver.py | 322 +++++++++--------- .../iht_toa/single_model_diagnostics.py | 13 +- 2 files changed, 179 insertions(+), 156 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index 21c787a495..774a73a178 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -1,6 +1,8 @@ -"""(C) Crown Copyright 2023, the Met Office. Poisson solver for the full ocean- -atmosphere column. The Poisson equation is solved by numerically using the -biconjugate gradient stabilized (BiCGSTAB) method. +"""(C) Crown Copyright 2023, the Met Office. + +Poisson solver for the full ocean-atmosphere column. The Poisson equation +is solved by numerically using the biconjugate gradient stabilized (BiCGSTAB) +method. The solution is achieved when the difference between the input field (radiative flux) and the Laplacian of the output field is less than the stated tolerance. @@ -12,165 +14,178 @@ the output of the Poisson solver. """ +import sys + import numpy as np # from numba import jit -def set_metrics(): +def set_metrics(src_shape): """Define variables used in the solver.""" - hp = np.zeros(M) - hv = np.zeros(M + 1) + deltay = np.pi / src_shape[0] + hpi = np.zeros(src_shape[0]) + hvj = np.zeros(src_shape[0] + 1) - y = -0.5 * np.pi + 0.5 * dy - hv[0] = 0.0 - for j in range(0, M): - hp[j] = np.cos(y) - hv[j + 1] = np.cos(y + 0.5 * dy) - y += dy - hv[-1] = 0.0 + yyy = -0.5 * np.pi + 0.5 * deltay + hvj[0] = 0.0 + for j in range(0, src_shape[0]): + hpi[j] = np.cos(yyy) + hvj[j + 1] = np.cos(yyy + 0.5 * deltay) + yyy += deltay + hvj[-1] = 0.0 - return hp, hv + return hpi, hvj -def set_matrix(hp, hv): - """Calculate the A-matrix (Eq. +def set_matrix(hpi, hvj, src_shape): + """Calculate the A-matrix. - 8) that defines the five-point stencil. The A_[s,n,w,s] are the - values are the contributions from each of the four neighbouring - cells, while A_p is the contribution from the given cell. + A is the matrix that defines the five-point stencil (Eq. 8). The + A_matrix are the values are the contributions from each of the four + neighbouring cells: e,w,s,n,p. """ # Storing the full matrix - a_p = np.zeros([M, N]) - a_e = np.zeros([M, N]) - a_w = np.zeros([M, N]) - a_s = np.zeros([M, N]) - a_n = np.zeros([M, N]) + a_matrix = np.zeros((5, *src_shape)) # ILU factors - m_p = np.zeros([M + 1, N + 1]) - m_e = np.zeros([M + 1, N + 1]) - m_w = np.zeros([M + 1, N + 1]) - m_s = np.zeros([M + 1, N + 1]) - m_n = np.zeros([M + 1, N + 1]) + ilu_shape = np.array(src_shape) + 1 + m_matrix = np.zeros((5, *ilu_shape)) # Spherical Laplacian variables - a = 1.0 / (dx**2.) - b = 1.0 / (dy**2.) + shp0, shp1 = src_shape + aaa = 1.0 / ((2.0 * np.pi / shp1)**2.) + bbb = 1.0 / ((np.pi / shp0)**2.) # First calculate the Poisson equations 5-point stencil # A_w is the contribution from i-1, A_e is from i+1, # A_s is j-1, A_n is j+1, and A_p is the diagonal - for j in range(0, M): - tx = a / hp[j]**2.0 - ty = b / hp[j] + for j in range(0, shp0): + txa = aaa / hpi[j]**2.0 + tyb = bbb / hpi[j] - for i in range(0, N): - a_w[j, i] = tx - a_e[j, i] = tx - a_s[j, i] = ty * hv[j] - a_n[j, i] = ty * hv[j + 1] - a_p[j, i] = -(a_w[j, i] + a_e[j, i] + a_s[j, i] + a_n[j, i]) + for i in range(0, shp1): + a_matrix[0, j, i] = txa + a_matrix[1, j, i] = txa + a_matrix[2, j, i] = tyb * hvj[j] + a_matrix[3, j, i] = tyb * hvj[j + 1] + a_matrix[4, j, i] = -a_matrix[0:4, j, i].sum() # ILU/SIP preconditioner factors: alf = 0.0 is ILU alf = 0.9 - m_p += 1.0 + m_matrix[4] += 1.0 + + for j in range(1, shp0 + 1): + for i in range(1, shp1 + 1): + m_matrix[2, j, i] = a_matrix[2, j - 1, i - 1] / \ + (1.0 + alf * m_matrix[0, j - 1, i]) + + m_matrix[1, j, i] = a_matrix[1, j - 1, i - 1] / \ + (1.0 + alf * m_matrix[3, j, i - 1]) - for j in range(1, M + 1): - for i in range(1, N + 1): - m_s[j, i] = a_s[j - 1, i - 1] / (1.0 + alf * m_e[j - 1, i]) - m_w[j, i] = a_w[j - 1, i - 1] / (1.0 + alf * m_n[j, i - 1]) + m_matrix[4, j, i] = a_matrix[4, j - 1, i - 1] - \ + m_matrix[2, j, i] * (m_matrix[3, j - 1, i] - + alf * m_matrix[0, j - 1, i]) - \ + m_matrix[1, j, i] * (m_matrix[0, j, i - 1] - + alf * m_matrix[3, j, i - 1]) - m_p[j, i] = a_p[j-1, i-1] - \ - m_s[j, i]*(m_n[j-1, i] - alf*m_e[j-1, i]) -\ - m_w[j, i]*(m_e[j, i-1] - alf*m_n[j, i-1]) - m_p[j, i] = 1.0 / m_p[j, i] + m_matrix[4, j, i] = 1.0 / m_matrix[4, j, i] - m_e[j, i] = (a_e[j - 1, i - 1] - - alf * m_s[j, i] * m_e[j - 1, i]) * m_p[j, i] - m_n[j, i] = (a_n[j - 1, i - 1] - - alf * m_w[j, i] * m_n[j, i - 1]) * m_p[j, i] + m_matrix[0, j, i] = (a_matrix[0, j - 1, i - 1] - + alf * m_matrix[2, j, i] * + m_matrix[0, j - 1, i]) * \ + m_matrix[4, j, i] - return a_e, a_w, a_s, a_n, a_p, m_e, m_w, m_s, m_n, m_p + m_matrix[3, j, i] = (a_matrix[3, j - 1, i - 1] - + alf * m_matrix[1, j, i] * + m_matrix[3, j, i - 1]) * \ + m_matrix[4, j, i] + + return a_matrix, m_matrix def swap_bounds(fld): - """Extends the array by one in all directions. + """Extend the array by one in all directions. As the array is periodic it allows for easier computations at boundaries. """ - wrap_pnt = int(N / 2 + 1) - for i in range(1, N + 1): + shp0, shp1 = np.array(fld.shape) - 2 + wrap_pnt = int(shp1 / 2 + 1) + for i in range(1, shp1 + 1): fld[0, i] = fld[1, wrap_pnt] - fld[M + 1, i] = fld[M, wrap_pnt] + fld[shp0 + 1, i] = fld[shp0, wrap_pnt] wrap_pnt += 1 - if wrap_pnt > N: + if wrap_pnt > shp1: wrap_pnt = 1 - fld[:, 0] = fld[:, N] - fld[:, N + 1] = fld[:, 1] + fld[:, 0] = fld[:, shp1] + fld[:, shp1 + 1] = fld[:, 1] return fld -def calc_ax(x, a_e, a_w, a_s, a_n, a_p): +def calc_ax(xxx, a_matrix): """Matrix calculation of the Laplacian equation, LHS of Eq. (9) in Pearce and Bodas-Salcedo (2023). """ # Laplacian equation - ax = np.zeros([M + 2, N + 2]) - - x = swap_bounds(x) - # Ax[j, i] = A_s[j-1, i-1]*x[j-1, i] + A_w[j-1, i-1]*x[j, i-1] + \ - # A_e[j-1, i-1]*x[j, i+1] + A_n[j-1, i-1]*x[j+1, i] + \ - # A_p[j-1, i-1]*x[j, i] - ax[1:M+1, 1:N+1] = a_s[0:M, 0:N] * x[0:M, 1:N+1] + a_w[0:M, 0:N] * \ - x[1:M+1, 0:N] + a_e[0:M, 0:N] * x[1:M+1, 2:N+2] + a_n[0:M, 0:N] * \ - x[2:M+2, 1:N+1] + a_p[0:M, 0:N] * x[1:M+1, 1:N+1] - ax = swap_bounds(ax) - return ax - - -def dot_prod(x, y): - """Calculate dot product of two matrices.""" - return (x[1:M + 1, 1:N + 1] * y[1:M + 1, 1:N + 1]).sum() - - -def precon(x, m_e, m_w, m_s, m_n, m_p): + src_shape = np.array(xxx.shape) - 2 + axxx = np.zeros(src_shape + 2) + xxx = swap_bounds(xxx) + shp0, shp1 = src_shape + axxx[1:shp0 + 1, 1:shp1 + 1] = \ + a_matrix[2, 0:shp0, 0:shp1] * xxx[0:shp0, 1:shp1 + 1] + \ + a_matrix[1, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 0:shp1] + \ + a_matrix[0, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 2:shp1 + 2] + \ + a_matrix[3, 0:shp0, 0:shp1] * xxx[2:shp0 + 2, 1:shp1 + 1] + \ + a_matrix[4, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 1:shp1 + 1] + axxx = swap_bounds(axxx) + return axxx + + +def dot_prod(xxx, yyy): + """Calculate dot product of two matrices only over source term size.""" + shp0, shp1 = np.array(xxx.shape) - 2 + return (xxx[1:shp0 + 1, 1:shp1 + 1] * yyy[1:shp0 + 1, 1:shp1 + 1]).sum() + + +def precon(xxx, m_matrix): """Preconditioner. This is a wrapper to two steps that are optimised using jit. """ - cx = np.zeros([M + 2, N + 2]) - precon_a(x, m_w, m_s, m_p, cx) - cx = swap_bounds(cx) - precon_b(m_e, m_n, cx) - cx = swap_bounds(cx) - return cx + cxxx = np.zeros(np.array(xxx.shape)) + precon_a(xxx, m_matrix[1], m_matrix[2], m_matrix[4], cxxx) + cxxx = swap_bounds(cxxx) + precon_b(m_matrix[0], m_matrix[3], cxxx) + cxxx = swap_bounds(cxxx) + return cxxx # @jit -def precon_a(x, m_w, m_s, m_p, cx): +def precon_a(xxx, m_w, m_s, m_p, cxxx): """First step of preconditioner.""" - for j in range(1, M + 1): - for i in range(1, N + 1): - cx[j, i] = m_p[j, i] * (x[j, i] - m_s[j, i] * cx[j - 1, i] - - m_w[j, i] * cx[j, i - 1]) + shp0, shp1 = np.array(cxxx.shape) - 2 + for j in range(1, shp0 + 1): + for i in range(1, shp1 + 1): + cxxx[j, i] = m_p[j, i] * \ + (xxx[j, i] - m_s[j, i] * cxxx[j - 1, i] - + m_w[j, i] * cxxx[j, i - 1]) # @jit -def precon_b(m_e, m_n, cx): +def precon_b(m_e, m_n, cxxx): """Second step of preconditioner.""" - for j in range(M, 0, -1): - for i in range(N, 0, -1): - cx[j, - i] = cx[j, - i] - m_e[j, i] * cx[j, i + 1] - m_n[j, i] * cx[j + 1, i] + shp0, shp1 = np.array(cxxx.shape) - 2 + for j in range(shp0, 0, -1): + for i in range(shp1, 0, -1): + cxxx[j, i] = cxxx[j, i] - m_e[j, i] * cxxx[j, i + 1] - \ + m_n[j, i] * cxxx[j + 1, i] -def bicgstab(logger, x, b, a_e, a_w, a_s, a_n, a_p, m_e, m_w, m_s, m_n, m_p): +def bicgstab(logger, xxx, bbb, a_matrix, m_matrix, tolerance=2.0e-4): """Bi-conjugate gradient stabilized numerical solver. van der Vorst, H. A., 1992: Bi-cgstab: A fast and smoothly @@ -178,112 +193,113 @@ def bicgstab(logger, x, b, a_e, a_w, a_s, a_n, a_p, m_e, m_w, m_s, m_n, m_p): systems. SIAM Journal on Scientific and Statistical Computing, https://doi.org/10.1137/0913035. """ - sc_err = dot_prod(b, b) + # X has a halo + src_shape = np.array(xxx.shape) - 2 + sc_err = dot_prod(bbb, bbb) - ax = calc_ax(x, a_e, a_w, a_s, a_n, a_p) + axxx = calc_ax(xxx, a_matrix) - r = b - ax - cr = r + rrr = bbb - axxx + crrr = rrr alf = 1.0 omg = 1.0 nrm = 1.0 imx = 1000 - p = np.zeros([M + 2, N + 2]) - v = np.zeros([M + 2, N + 2]) + ppp = np.zeros(src_shape + 2) + vvv = np.zeros(src_shape + 2) - it = 0 - while it < imx: - rho = dot_prod(r, cr) + iteration = 0 + while iteration < imx: + rho = dot_prod(rrr, crrr) bet = (rho / nrm) * (alf / omg) - t = r - bet * omg * v + ttt = rrr - bet * omg * vvv - s = precon(t, m_e, m_w, m_s, m_n, m_p) - p = s + bet * p + sss = precon(ttt, m_matrix) + ppp = sss + bet * ppp - v = calc_ax(p, a_e, a_w, a_s, a_n, a_p) - nrm = dot_prod(cr, v) + vvv = calc_ax(ppp, a_matrix) + nrm = dot_prod(crrr, vvv) alf = rho / nrm - s = r - alf * v + sss = rrr - alf * vvv - cs = precon(s, m_e, m_w, m_s, m_n, m_p) - t = calc_ax(cs, a_e, a_w, a_s, a_n, a_p) + csss = precon(sss, m_matrix) + ttt = calc_ax(csss, a_matrix) - tt = dot_prod(t, t) - ts = dot_prod(t, s) - omg = ts / tt + tdt = dot_prod(ttt, ttt) + tds = dot_prod(ttt, sss) + omg = tds / tdt - x = x + alf * p + omg * cs - r = s - omg * t + xxx = xxx + alf * ppp + omg * csss + rrr = sss - omg * ttt nrm = rho if abs(omg) < 1.0e-16: logger.info('Terminating Poisson solver.') - quit() + sys.exit(1) - err = np.sqrt(dot_prod(r, r) / sc_err) - if err < tol: + err = np.sqrt(dot_prod(rrr, rrr) / sc_err) + if err < tolerance: break - it += 1 + iteration += 1 - return x + return xxx -def calc_mht(sol): - """Calculation of the meridional heat transport using the gradient of the - energy flux potential. +def calc_mht(efp, src_shape): + """Meridional heat transport of energy flux potential. - Equation (11) in Pearce and Bodas-Salcedo (2023) + Calculate of the meridional heat transport using the gradient of the + energy flux potential. Equation (11) in Pearce and Bodas-Salcedo + (2023). """ - y = np.arange(-0.5 * np.pi + 0.5 * dy, 0.5 * np.pi, dy) + deltax = 2.0 * np.pi / src_shape[1] + deltay = np.pi / src_shape[0] + yyy = np.arange(-0.5 * np.pi + 0.5 * deltay, 0.5 * np.pi, deltay) - grad_phi = np.gradient(sol, dy, axis=0) + grad_phi = np.gradient(efp, deltay, axis=0) grad_phi = grad_phi[1:-1, 1:-1] - mht = np.sum((grad_phi.T * np.cos(y) * dx).T, axis=1) + mht = np.sum((grad_phi.T * np.cos(yyy) * deltax).T, axis=1) return mht -def spherical_poisson(logger, forcing, tolerance=None): - """Wrapper function that solves the Poisson equation for a given source - term (forcing).""" +def spherical_poisson(logger, forcing, tolerance=2.0e-4): + """Poisson solver over the sphere. + + Solve Poisson equation for a given source term (forcing) and + calculate MHT. + """ # Define global variables logger.info("spherical_poisson: Setting global variables") - global N, M, dx, dy, tol - (M, N) = (np.shape(forcing)) - N = int(N) - M = int(M) - dx = 2.0 * np.pi / N - dy = np.pi / M - if tolerance is None: - tol = 2.0e-4 - else: - tol = tolerance + src_shape = np.array(forcing.shape) logger.info("spherical_poisson: Calling set_metrics") - hp, hv = set_metrics() + hpi, hvj = set_metrics(src_shape) logger.info("spherical_poisson: Calling set_matrix") - a_e, a_w, a_s, a_n, a_p, m_e, m_w, m_s, m_n, m_p = set_matrix(hp, hv) + # a_e, a_w, a_s, a_n, a_p, m_e, m_w, m_s, m_n, m_p = \ + # set_matrix(hpi, hvj, src_shape) + a_matrix, m_matrix = set_matrix(hpi, hvj, src_shape) # Solving the Poisson equation - rhs = np.zeros([M + 2, N + 2]) - sol = np.zeros([M + 2, N + 2]) + + rhs = np.zeros(src_shape + 2) + sol = np.zeros(src_shape + 2) logger.info("spherical_poisson: Solving poisson equation") rhs[1:-1, 1:-1] = forcing rhs = swap_bounds(rhs) - sol = bicgstab(logger, sol, rhs, a_e, a_w, a_s, a_n, a_p, m_e, m_w, m_s, - m_n, m_p) + sol = bicgstab(logger, sol, rhs, a_matrix, m_matrix, tolerance=tolerance) # Calculating meridional heat transport logger.info("spherical_poisson: Calculating MHT") - mht = calc_mht(sol) + mht = calc_mht(sol, src_shape) return sol, mht diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index d4f7dc56af..c7b6021ea2 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -1,8 +1,11 @@ -""" Single model diagnostics +"""(C) Crown Copyright 2023, the Met Office. + +Single model diagnostics 1. Solve the Poisson solver 2. Produce and save plots """ +import datetime import logging import sys from copy import deepcopy @@ -562,8 +565,12 @@ def plot_symmetry_time_series(self): y1 = self.symmetry_metric.extract_cube( var_name_constraint(var_name[1])) ax = plt.subplot(3, 1, i + 1) - iplt.plot(y0, lw=4, linestyle='-', label=legend_label[0]) - iplt.plot(y1, lw=4, linestyle='-', label=legend_label[1]) + dtx = [ + datetime.datetime.strptime(str(cell[0]), '%Y-%m-%d %H:%M:%S') + for cell in y0.coord('time').cells() + ] + plt.plot(dtx, y0.data, lw=4, linestyle='-', label=legend_label[0]) + plt.plot(dtx, y1.data, lw=4, linestyle='-', label=legend_label[1]) ax.annotate(r'$\sigma$: {:5.3f}'.format(np.std(y0.data)), (0.05, 0.55), xycoords='axes fraction', From b7de5f72044dd3326166f8f10f123969081f6dd8 Mon Sep 17 00:00:00 2001 From: mo-abodas Date: Fri, 19 May 2023 15:59:52 +0100 Subject: [PATCH 20/59] #2472: create solver class to address style errors. --- .../diag_scripts/iht_toa/poisson_solver.py | 408 +++++++++--------- .../iht_toa/single_model_diagnostics.py | 14 +- 2 files changed, 200 insertions(+), 222 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index 774a73a178..f44f343dee 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -21,89 +21,6 @@ # from numba import jit -def set_metrics(src_shape): - """Define variables used in the solver.""" - deltay = np.pi / src_shape[0] - hpi = np.zeros(src_shape[0]) - hvj = np.zeros(src_shape[0] + 1) - - yyy = -0.5 * np.pi + 0.5 * deltay - hvj[0] = 0.0 - for j in range(0, src_shape[0]): - hpi[j] = np.cos(yyy) - hvj[j + 1] = np.cos(yyy + 0.5 * deltay) - yyy += deltay - hvj[-1] = 0.0 - - return hpi, hvj - - -def set_matrix(hpi, hvj, src_shape): - """Calculate the A-matrix. - - A is the matrix that defines the five-point stencil (Eq. 8). The - A_matrix are the values are the contributions from each of the four - neighbouring cells: e,w,s,n,p. - """ - # Storing the full matrix - a_matrix = np.zeros((5, *src_shape)) - - # ILU factors - ilu_shape = np.array(src_shape) + 1 - m_matrix = np.zeros((5, *ilu_shape)) - - # Spherical Laplacian variables - shp0, shp1 = src_shape - aaa = 1.0 / ((2.0 * np.pi / shp1)**2.) - bbb = 1.0 / ((np.pi / shp0)**2.) - - # First calculate the Poisson equations 5-point stencil - # A_w is the contribution from i-1, A_e is from i+1, - # A_s is j-1, A_n is j+1, and A_p is the diagonal - for j in range(0, shp0): - txa = aaa / hpi[j]**2.0 - tyb = bbb / hpi[j] - - for i in range(0, shp1): - a_matrix[0, j, i] = txa - a_matrix[1, j, i] = txa - a_matrix[2, j, i] = tyb * hvj[j] - a_matrix[3, j, i] = tyb * hvj[j + 1] - a_matrix[4, j, i] = -a_matrix[0:4, j, i].sum() - - # ILU/SIP preconditioner factors: alf = 0.0 is ILU - alf = 0.9 - m_matrix[4] += 1.0 - - for j in range(1, shp0 + 1): - for i in range(1, shp1 + 1): - m_matrix[2, j, i] = a_matrix[2, j - 1, i - 1] / \ - (1.0 + alf * m_matrix[0, j - 1, i]) - - m_matrix[1, j, i] = a_matrix[1, j - 1, i - 1] / \ - (1.0 + alf * m_matrix[3, j, i - 1]) - - m_matrix[4, j, i] = a_matrix[4, j - 1, i - 1] - \ - m_matrix[2, j, i] * (m_matrix[3, j - 1, i] - - alf * m_matrix[0, j - 1, i]) - \ - m_matrix[1, j, i] * (m_matrix[0, j, i - 1] - - alf * m_matrix[3, j, i - 1]) - - m_matrix[4, j, i] = 1.0 / m_matrix[4, j, i] - - m_matrix[0, j, i] = (a_matrix[0, j - 1, i - 1] - - alf * m_matrix[2, j, i] * - m_matrix[0, j - 1, i]) * \ - m_matrix[4, j, i] - - m_matrix[3, j, i] = (a_matrix[3, j - 1, i - 1] - - alf * m_matrix[1, j, i] * - m_matrix[3, j, i - 1]) * \ - m_matrix[4, j, i] - - return a_matrix, m_matrix - - def swap_bounds(fld): """Extend the array by one in all directions. @@ -125,26 +42,6 @@ def swap_bounds(fld): return fld -def calc_ax(xxx, a_matrix): - """Matrix calculation of the Laplacian equation, LHS of Eq. - - (9) in Pearce and Bodas-Salcedo (2023). - """ - # Laplacian equation - src_shape = np.array(xxx.shape) - 2 - axxx = np.zeros(src_shape + 2) - xxx = swap_bounds(xxx) - shp0, shp1 = src_shape - axxx[1:shp0 + 1, 1:shp1 + 1] = \ - a_matrix[2, 0:shp0, 0:shp1] * xxx[0:shp0, 1:shp1 + 1] + \ - a_matrix[1, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 0:shp1] + \ - a_matrix[0, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 2:shp1 + 2] + \ - a_matrix[3, 0:shp0, 0:shp1] * xxx[2:shp0 + 2, 1:shp1 + 1] + \ - a_matrix[4, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 1:shp1 + 1] - axxx = swap_bounds(axxx) - return axxx - - def dot_prod(xxx, yyy): """Calculate dot product of two matrices only over source term size.""" shp0, shp1 = np.array(xxx.shape) - 2 @@ -185,121 +82,200 @@ def precon_b(m_e, m_n, cxxx): m_n[j, i] * cxxx[j + 1, i] -def bicgstab(logger, xxx, bbb, a_matrix, m_matrix, tolerance=2.0e-4): - """Bi-conjugate gradient stabilized numerical solver. - - van der Vorst, H. A., 1992: Bi-cgstab: A fast and smoothly - converging variant of bi-cg for the solution of nonsymmetric linear - systems. SIAM Journal on Scientific and Statistical Computing, - https://doi.org/10.1137/0913035. - """ - # X has a halo - src_shape = np.array(xxx.shape) - 2 - sc_err = dot_prod(bbb, bbb) - - axxx = calc_ax(xxx, a_matrix) - - rrr = bbb - axxx - crrr = rrr - - alf = 1.0 - omg = 1.0 - nrm = 1.0 - imx = 1000 - - ppp = np.zeros(src_shape + 2) - vvv = np.zeros(src_shape + 2) - - iteration = 0 - while iteration < imx: - rho = dot_prod(rrr, crrr) - - bet = (rho / nrm) * (alf / omg) - - ttt = rrr - bet * omg * vvv - - sss = precon(ttt, m_matrix) - ppp = sss + bet * ppp - - vvv = calc_ax(ppp, a_matrix) - nrm = dot_prod(crrr, vvv) - - alf = rho / nrm - sss = rrr - alf * vvv - - csss = precon(sss, m_matrix) - ttt = calc_ax(csss, a_matrix) - - tdt = dot_prod(ttt, ttt) - tds = dot_prod(ttt, sss) - omg = tds / tdt - - xxx = xxx + alf * ppp + omg * csss - rrr = sss - omg * ttt - - nrm = rho - - if abs(omg) < 1.0e-16: - logger.info('Terminating Poisson solver.') - sys.exit(1) - - err = np.sqrt(dot_prod(rrr, rrr) / sc_err) - if err < tolerance: - break - - iteration += 1 - - return xxx - - -def calc_mht(efp, src_shape): - """Meridional heat transport of energy flux potential. - - Calculate of the meridional heat transport using the gradient of the - energy flux potential. Equation (11) in Pearce and Bodas-Salcedo - (2023). - """ - deltax = 2.0 * np.pi / src_shape[1] - deltay = np.pi / src_shape[0] - yyy = np.arange(-0.5 * np.pi + 0.5 * deltay, 0.5 * np.pi, deltay) - - grad_phi = np.gradient(efp, deltay, axis=0) - grad_phi = grad_phi[1:-1, 1:-1] - mht = np.sum((grad_phi.T * np.cos(yyy) * deltax).T, axis=1) - - return mht - - -def spherical_poisson(logger, forcing, tolerance=2.0e-4): +class SphericalPoisson: """Poisson solver over the sphere. Solve Poisson equation for a given source term (forcing) and calculate MHT. """ - # Define global variables - logger.info("spherical_poisson: Setting global variables") - - src_shape = np.array(forcing.shape) - - logger.info("spherical_poisson: Calling set_metrics") - hpi, hvj = set_metrics(src_shape) - - logger.info("spherical_poisson: Calling set_matrix") - # a_e, a_w, a_s, a_n, a_p, m_e, m_w, m_s, m_n, m_p = \ - # set_matrix(hpi, hvj, src_shape) - a_matrix, m_matrix = set_matrix(hpi, hvj, src_shape) - - # Solving the Poisson equation - - rhs = np.zeros(src_shape + 2) - sol = np.zeros(src_shape + 2) - logger.info("spherical_poisson: Solving poisson equation") - rhs[1:-1, 1:-1] = forcing - rhs = swap_bounds(rhs) - sol = bicgstab(logger, sol, rhs, a_matrix, m_matrix, tolerance=tolerance) - - # Calculating meridional heat transport - logger.info("spherical_poisson: Calculating MHT") - mht = calc_mht(sol, src_shape) - - return sol, mht + def __init__(self, logger, source, tolerance=2.0e-4): + """Initialise solver with source field, metrics and matrices.""" + self.logger = logger + self.source = source + self.tolerance = tolerance + self.efp = None + self.mht = None + logger.info("Initialising Poisson solver.") + self.set_matrices() + + def set_matrices(self): + """Calculate A and M matrices. + + A is the matrix that defines the five-point stencil (Eq. 8). The + A_matrix are the values are the contributions from each of the + four neighbouring cells: e,w,s,n,p. + """ + # Calculate metrics hpi and hvj + src_shape = np.array(self.source.shape) + hpi = np.zeros(src_shape[0]) + hvj = np.zeros(src_shape[0] + 1) + deltay = np.pi / src_shape[0] + yyy = -0.5 * np.pi + 0.5 * deltay + hvj[0] = 0.0 + for j in range(0, src_shape[0]): + hpi[j] = np.cos(yyy) + hvj[j + 1] = np.cos(yyy + 0.5 * deltay) + yyy += deltay + hvj[-1] = 0.0 + + # Storing the full matrix + a_matrix = np.zeros((5, *src_shape)) + + # ILU factors + m_matrix = np.zeros((5, *(src_shape + 1))) + + # Spherical Laplacian variables + aaa = 1.0 / ((2.0 * np.pi / src_shape[1])**2.) + bbb = 1.0 / ((np.pi / src_shape[0])**2.) + + # First calculate the Poisson equations 5-point stencil + # A_w is the contribution from i-1, A_e is from i+1, + # A_s is j-1, A_n is j+1, and A_p is the diagonal + for j in range(0, src_shape[0]): + txa = aaa / hpi[j]**2.0 + tyb = bbb / hpi[j] + + for i in range(0, src_shape[1]): + a_matrix[0, j, i] = txa + a_matrix[1, j, i] = txa + a_matrix[2, j, i] = tyb * hvj[j] + a_matrix[3, j, i] = tyb * hvj[j + 1] + a_matrix[4, j, i] = -a_matrix[0:4, j, i].sum() + + # ILU/SIP preconditioner factors: alf = 0.0 is ILU + alf = 0.9 + m_matrix[4] += 1.0 + + for j in range(1, src_shape[0] + 1): + for i in range(1, src_shape[1] + 1): + m_matrix[2, j, i] = a_matrix[2, j - 1, i - 1] / \ + (1.0 + alf * m_matrix[0, j - 1, i]) + + m_matrix[1, j, i] = a_matrix[1, j - 1, i - 1] / \ + (1.0 + alf * m_matrix[3, j, i - 1]) + + m_matrix[4, j, i] = a_matrix[4, j - 1, i - 1] - \ + m_matrix[2, j, i] * (m_matrix[3, j - 1, i] - + alf * m_matrix[0, j - 1, i]) - \ + m_matrix[1, j, i] * (m_matrix[0, j, i - 1] - + alf * m_matrix[3, j, i - 1]) + + m_matrix[4, j, i] = 1.0 / m_matrix[4, j, i] + + m_matrix[0, j, i] = (a_matrix[0, j - 1, i - 1] - + alf * m_matrix[2, j, i] * + m_matrix[0, j - 1, i]) * \ + m_matrix[4, j, i] + + m_matrix[3, j, i] = (a_matrix[3, j - 1, i - 1] - + alf * m_matrix[1, j, i] * + m_matrix[3, j, i - 1]) * \ + m_matrix[4, j, i] + + self.a_matrix = a_matrix + self.m_matrix = m_matrix + + def solve(self, max_iterations=1000): + """Solve equation for the source term. + + Bi-conjugate gradient stabilized numerical solver: van der + Vorst, H. A., 1992: Bi-cgstab: A fast and smoothly converging + variant of bi-cg for the solution of nonsymmetric linear + systems. SIAM Journal on Scientific and Statistical Computing, + https://doi.org/10.1137/0913035. + """ + bbb = np.zeros(np.array(self.source.shape) + 2) + xxx = np.zeros(np.array(self.source.shape) + 2) + bbb[1:-1, 1:-1] = self.source + bbb = swap_bounds(bbb) + + sc_err = dot_prod(bbb, bbb) + + # Group some temporal variables + stv = { + 'alf': 1.0, + 'omg': 1.0, + 'nrm': 1.0, + 'rrr': bbb - self.calc_ax(xxx) + } + stv['crrr'] = stv['rrr'].copy() + + ppp = np.zeros(np.array(self.source.shape) + 2) + vvv = np.zeros(np.array(self.source.shape) + 2) + + iteration = 0 + while iteration < max_iterations: + rho = dot_prod(stv['rrr'], stv['crrr']) + + bet = (rho / stv['nrm']) * (stv['alf'] / stv['omg']) + + ttt = stv['rrr'] - bet * stv['omg'] * vvv + + sss = precon(ttt, self.m_matrix) + ppp = sss + bet * ppp + + vvv = self.calc_ax(ppp) + stv['nrm'] = dot_prod(stv['crrr'], vvv) + + stv['alf'] = rho / stv['nrm'] + sss = stv['rrr'] - stv['alf'] * vvv + + csss = precon(sss, self.m_matrix) + ttt = self.calc_ax(csss) + + stv['omg'] = dot_prod(ttt, sss) / dot_prod(ttt, ttt) + + xxx = xxx + stv['alf'] * ppp + stv['omg'] * csss + stv['rrr'] = sss - stv['omg'] * ttt + + stv['nrm'] = rho + + if abs(stv['omg']) < 1.0e-16: + self.logger.info('Terminating Poisson solver.') + break + + err = np.sqrt(dot_prod(stv['rrr'], stv['rrr']) / sc_err) + if err < self.tolerance: + self.logger.info('Poisson solver has converged.') + break + + iteration += 1 + + if iteration == max_iterations: + self.logger.error('Poisson solver has not converged.') + sys.exit(1) + + self.efp = xxx + + def calc_mht(self): + """Meridional heat transport of energy flux potential. + + Calculate of the meridional heat transport using the gradient of + the energy flux potential. Equation (11) in Pearce and Bodas- + Salcedo (2023). + """ + deltax = 2.0 * np.pi / self.source.shape[1] + deltay = np.pi / self.source.shape[0] + yyy = np.arange(-0.5 * np.pi + 0.5 * deltay, 0.5 * np.pi, deltay) + grad_phi = np.gradient(self.efp, deltay, axis=0) + grad_phi = grad_phi[1:-1, 1:-1] + self.mht = np.sum((grad_phi.T * np.cos(yyy) * deltax).T, axis=1) + + def calc_ax(self, xxx): + """Matrix calculation of the Laplacian equation, LHS of Eq. + + (9) in Pearce and Bodas-Salcedo (2023). + """ + # Laplacian equation + src_shape = np.array(self.source.shape) + axxx = np.zeros(src_shape + 2) + xxx = swap_bounds(xxx) + shp0, shp1 = src_shape + axxx[1:shp0 + 1, 1:shp1 + 1] = \ + self.a_matrix[2, 0:shp0, 0:shp1] * xxx[0:shp0, 1:shp1 + 1] + \ + self.a_matrix[1, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 0:shp1] + \ + self.a_matrix[0, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 2:shp1 + 2] + \ + self.a_matrix[3, 0:shp0, 0:shp1] * xxx[2:shp0 + 2, 1:shp1 + 1] + \ + self.a_matrix[4, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 1:shp1 + 1] + axxx = swap_bounds(axxx) + return axxx diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index c7b6021ea2..6edff89801 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -18,7 +18,7 @@ import matplotlib.pyplot as plt import numpy as np from matplotlib import gridspec, rcParams -from poisson_solver import spherical_poisson +from poisson_solver import SphericalPoisson from esmvaltool.diag_scripts.shared import ( group_metadata, @@ -111,9 +111,11 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): data -= data_mean logger.info("Calling spherical_poisson") - poisson, mht = spherical_poisson(logger, - forcing=data * (6371e3**2.0), - tolerance=2.0e-4) + sphpo = SphericalPoisson(logger, + source=data * (6371e3**2.0), + tolerance=2.0e-4) + sphpo.solve() + sphpo.calc_mht() logger.info("Ending spherical_poisson") # Energy flux potential (P) @@ -122,7 +124,7 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): p_cube.long_name = "energy_flux_potential_of_{}".format(flux_cube.var_name) p_cube.standard_name = None p_cube.units = 'J s-1' - p_cube.data = poisson[1:-1, 1:-1] + p_cube.data = sphpo.efp[1:-1, 1:-1] # MHT data cube mht_cube = flux_cube.copy() @@ -132,7 +134,7 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): flux_cube.var_name) mht_cube.standard_name = None mht_cube.units = 'W' - mht_cube.data = mht + mht_cube.data = sphpo.mht return p_cube, mht_cube From caae067d4ff02eacd4d53faf2440224a7c82c9a0 Mon Sep 17 00:00:00 2001 From: mo-abodas Date: Fri, 19 May 2023 20:03:13 +0100 Subject: [PATCH 21/59] #2472: checkpoint of style changes. --- .../iht_toa/single_model_diagnostics.py | 434 +++++++++--------- 1 file changed, 212 insertions(+), 222 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 6edff89801..99e568aa19 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -120,8 +120,8 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): # Energy flux potential (P) p_cube = flux_cube.copy() - p_cube.var_name = "{}_efp".format(flux_cube.var_name) - p_cube.long_name = "energy_flux_potential_of_{}".format(flux_cube.var_name) + p_cube.var_name = f"{flux_cube.var_name}_efp" + p_cube.long_name = f"energy_flux_potential_of_{flux_cube.var_name}" p_cube.standard_name = None p_cube.units = 'J s-1' p_cube.data = sphpo.efp[1:-1, 1:-1] @@ -129,9 +129,8 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): # MHT data cube mht_cube = flux_cube.copy() mht_cube = mht_cube.collapsed('longitude', iris.analysis.MEAN) - mht_cube.var_name = "{}_mht".format(flux_cube.var_name) - mht_cube.long_name = "meridional_heat_transport_of_{}".format( - flux_cube.var_name) + mht_cube.var_name = f"{flux_cube.var_name}_mht" + mht_cube.long_name = f"meridional_heat_transport_of_{flux_cube.var_name}" mht_cube.standard_name = None mht_cube.units = 'W' mht_cube.data = sphpo.mht @@ -155,18 +154,29 @@ def symmetry_metric(data, grid): nlat_hem = nlat // 2 nlat_trop = nlat_hem // 3 - nh = data[nlat_hem:] - sh = data[:nlat_hem] - sh = sh[::-1] + nhm = data[nlat_hem:] + shm = data[:nlat_hem] + shm = shm[::-1] - diff = np.abs((nh + sh) * grid) + diff = np.abs((nhm + shm) * grid) hem = np.sum(diff) trop = np.sum(diff[:nlat_trop]) extratrop = np.sum(diff[nlat_trop:nlat_hem]) return hem, trop, extratrop +def format_plot(axx, label, title): + """Format plots in quiver panel.""" + axx.set_xticks(np.arange(-180, 190, 60)) + axx.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) + axx.set_yticks(np.arange(-90, 100, 30)) + axx.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + axx.annotate(label, xy=(0, 1.05), xycoords='axes fraction', color='k') + axx.set_title(title) + + class ImpliedHeatTransport: + """Class that solves IHT for a dataset.""" def __init__(self, flx_files): self.flx_files = flx_files @@ -187,13 +197,6 @@ def __init__(self, flx_files): else: self.flx_clim.append(flx) - # Save grid information - vname_constraint = var_name_constraint("rtnt") - flx = self.flx_clim.extract_cube(vname_constraint) - self.grid = iris.analysis.cartography.area_weights(flx, normalize=True) - self.lat = flx.coord('latitude').points - self.lon = flx.coord('longitude').points - # Compute derived fluxes self.derived_fluxes() @@ -204,7 +207,6 @@ def __init__(self, flx_files): self.mht_symmetry_metrics() self.print() - return def compute_efp_and_mht(self): """Calculation of Energy Flux Potential and Meridional heat transport @@ -265,38 +267,40 @@ def print(self): """Print variable names of all cubes in the IHT object.""" logger.info("=== implied_heat_transport object ===") print(self.mht_clim) - for x in self.mht_clim: - print(x.long_name, x.var_name) + for zzz in self.mht_clim: + print(zzz.long_name, zzz.var_name) print(self.efp_clim) - for x in self.efp_clim: - print(x.long_name, x.var_name) + for zzz in self.efp_clim: + print(zzz.long_name, zzz.var_name) print(self.flx_clim) - for x in self.flx_clim: - print(x.long_name, x.var_name) + for zzz in self.flx_clim: + print(zzz.long_name, zzz.var_name) print(self.mht_rolling_mean) - for x in self.mht_rolling_mean: - print(x.long_name, x.var_name) + for zzz in self.mht_rolling_mean: + print(zzz.long_name, zzz.var_name) print(self.symmetry_metric) - for x in self.symmetry_metric: - print(x.long_name, x.var_name) + for zzz in self.symmetry_metric: + print(zzz.long_name, zzz.var_name) print(self.flx_files) def mht_symmetry_metrics(self): """Calculate the symmetry metrics for all time series of 12-month rolling means of MHT.""" + grid = iris.analysis.cartography.area_weights(self.flx_clim[0], + normalize=True) # As coded, the calculation of the symmetry metrics needs the number of # latitude points to be multiple of 6, i.e. it needs 30 deg bands. - if (self.grid.shape[0] % 6) != 0: + if (grid.shape[0] % 6) != 0: logger.error( "Grid not compatible with symmetry metric calculation.") sys.exit(1) - nlat_2 = self.grid.shape[0] // 2 - grid = np.sum(self.grid, axis=1)[nlat_2:] + nlat_2 = grid.shape[0] // 2 + grid = np.sum(grid, axis=1)[nlat_2:] for mht_series in self.mht_rolling_mean: time_coord = mht_series.coord('time') @@ -308,24 +312,22 @@ def mht_symmetry_metrics(self): hem[i], trop[i], extratrop[i] = symmetry_metric( mht_series.data[i], grid) # Create the cubes for each metric - long_name = "symmetry_hemisphere_of_{}".format( - mht_series.long_name) - var_name = "s_hem_{}".format(mht_series.var_name) + long_name = f"symmetry_hemisphere_of_{mht_series.long_name}" + var_name = f"s_hem_{mht_series.var_name}" cube_h = iris.cube.Cube(hem / 1.0e15, long_name=long_name, var_name=var_name, units="PW", dim_coords_and_dims=[(time_coord, 0)]) - long_name = "symmetry_tropics_of_{}".format(mht_series.long_name) - var_name = "s_tro_{}".format(mht_series.var_name) + long_name = f"symmetry_tropics_of_{mht_series.long_name}" + var_name = f"s_tro_{mht_series.var_name}" cube_t = iris.cube.Cube(trop / 1.0e15, long_name=long_name, var_name=var_name, units="PW", dim_coords_and_dims=[(time_coord, 0)]) - long_name = "symmetry_extratropics_of_{}".format( - mht_series.long_name) - var_name = "s_ext_{}".format(mht_series.var_name) + long_name = f"symmetry_extratropics_of_{mht_series.long_name}" + var_name = f"s_ext_{mht_series.var_name}" cube_e = iris.cube.Cube(extratrop / 1.0e15, long_name=long_name, var_name=var_name, @@ -343,10 +345,11 @@ def mht_plot(self, var_names, legend_label, ylim=(-10, 10)): variables are on each plot. """ plt.figure() - for i in range(len(var_names)): - mht = self.mht_clim.extract_cube(var_name_constraint( - var_names[i])).data / 1e15 - plt.plot(self.lat, mht, label=legend_label[i]) + for i, vname in enumerate(var_names): + mht = self.mht_clim.extract_cube(var_name_constraint(vname)) + plt.plot(mht.coord('latitude').points, + mht.data / 1e15, + label=legend_label[i]) plt.hlines(0, -90, 90, color='k', linestyles=':') plt.vlines(0, -10, 10, color='k', linestyles=':') plt.xlim(-90, 90) @@ -356,21 +359,16 @@ def mht_plot(self, var_names, legend_label, ylim=(-10, 10)): plt.ylabel('MHT (PW)') plt.legend() plt.tight_layout() - return - - def cre_mht_plot(self, - var_names_l, - legend_l, - var_names_r, - legend_r, - ylim=(-1.5, 1.5)): + + def cre_mht_plot(self, left, right, ylim=(-1.5, 1.5)): """Plots of CRE MHTs (Figure 3).""" plt.figure(figsize=(11, 5)) ax1 = plt.subplot(121) - for i in range(len(var_names_l)): - mht = self.mht_clim.extract_cube( - var_name_constraint(var_names_l[i])).data / 1e15 - ax1.plot(self.lat, mht, label=legend_l[i]) + for i, vname in enumerate(left['vname']): + mht = self.mht_clim.extract_cube(var_name_constraint(vname)) + ax1.plot(mht.coord('latitude').points, + mht.data / 1e15, + label=left['legend'][i]) ax1.axhline(0, color='k', ls=':') ax1.axvline(0, color='k', ls=':') ax1.set_xlim(-90, 90) @@ -386,10 +384,12 @@ def cre_mht_plot(self, ax2 = plt.subplot(122) col = ['C3', 'C7'] - for i in range(len(var_names_r)): - mht = self.mht_clim.extract_cube( - var_name_constraint(var_names_r[i])).data / 1e15 - ax2.plot(self.lat, -mht, label=legend_r[i], color=col[i]) + for i, vname in enumerate(right['vname']): + mht = self.mht_clim.extract_cube(var_name_constraint(vname)) + ax2.plot(mht.coord('latitude').points, + -mht.data / 1e15, + label=right['legend'][i], + color=col[i]) ax2.axhline(0, color='k', ls=':') ax2.axvline(0, color='k', ls=':') ax2.set_xlim(-90, 90) @@ -403,139 +403,107 @@ def cre_mht_plot(self, color='k') plt.legend(loc='lower right') plt.tight_layout() - return - def quiver_start(self, n, step): + def quiver_start(self, ntot, step): """Calculate start point for quiver plot.""" - n2 = (n - 2) // step - start = (n - 2 - n2 * step) // 2 + nnn = (ntot - 2) // step + start = (ntot - 2 - nnn * step) // 2 return start - def quiver_subplot(self, - var_name, - wmin, - wmax, - nwlevs, - wlevstep, - vmin, - vmax, - nlevs, - label=[['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], - xy_label=(0, 1.05), - title=[['', ''], ['', ''], ['', '']], - change_sign=[[False, False], [False, False], - [False, False]]): + def quiver_maps_data(self, vnames, change_sign): + """Obtain data for one row of plots.""" + efp = self.efp_clim.extract_cube(var_name_constraint(vnames[0])) + flx = self.flx_clim.extract_cube(var_name_constraint(vnames[1])) + efp.data -= np.average(efp.data) # Arbitrary choice of origin + flx.data -= area_average(flx).data + if change_sign[0]: + efp.data = -efp.data + if change_sign[1]: + flx.data = -flx.data + vvv, uuu = np.gradient(efp.data, 1e14, 1e14) + uuu = uuu[1:-1, 1:-1] + vvv = vvv[1:-1, 1:-1] + efp.convert_units("PW") + return {'efp': efp, 'flx': flx, 'uuu': uuu, 'vvv': vvv} + + def quiver_subplot(self, dargs, title, label, change_sign): """Plot figures with energy flux potential and gradient in the left hand columns and the corresponding source term in the right-hand column. Figures 2, 4, and 5. """ - x, y = np.meshgrid(self.lon, self.lat) - levels1 = np.linspace(vmin, vmax, nlevs) - levels2 = np.linspace(wmin, wmax, nwlevs) - nrows = len(var_name) + mshgrd = np.meshgrid(self.flx_clim[0].coord('longitude').points, + self.flx_clim[0].coord('latitude').points) + nrows = len(dargs['var_name']) # Calculate sampling for vector plot - nlon = len(self.lon) - nlat = len(self.lat) - stepx = nlon // 20 - stepy = nlat // 10 - startx = self.quiver_start(nlon, stepx) - starty = self.quiver_start(nlat, stepy) + dxy = [mshgrd[0].shape[1] // 20, mshgrd[0].shape[0] // 10] + startx = self.quiver_start(mshgrd[0].shape[1], dxy[0]) + starty = self.quiver_start(mshgrd[0].shape[0], dxy[1]) if nrows == 3: plt.figure(figsize=(10, 10)) - gs = gridspec.GridSpec(22, 2) - gs.update(wspace=0.25, hspace=1.5) + grds = gridspec.GridSpec(22, 2) + grds.update(wspace=0.25, hspace=1.5) elif nrows == 2: plt.figure(figsize=(10, 6.5)) - gs = gridspec.GridSpec(15, 2) - gs.update(wspace=0.25, hspace=1.5) + grds = gridspec.GridSpec(15, 2) + grds.update(wspace=0.25, hspace=1.5) elif nrows == 1: plt.figure(figsize=(12, 4)) - gs = gridspec.GridSpec(8, 2) - gs.update(wspace=0.25, hspace=1.5) + grds = gridspec.GridSpec(8, 2) + grds.update(wspace=0.25, hspace=1.5) + cbs = [] for i in range(nrows): - efp = self.efp_clim.extract_cube( - var_name_constraint(var_name[i][0])) - flx = self.flx_clim.extract_cube( - var_name_constraint(var_name[i][1])) - efp.data -= np.average(efp.data) # Arbitrary choice of origin - flx.data -= area_average(flx).data - if change_sign[i][0]: - efp.data = -efp.data - if change_sign[i][1]: - flx.data = -flx.data - v, u = np.gradient(efp.data, 1e14, 1e14) - u = u[1:-1, 1:-1] - v = v[1:-1, 1:-1] - efp.convert_units("PW") - ax1 = plt.subplot(gs[i * 7:(i * 7) + 7, 0], - projection=ccrs.PlateCarree(central_longitude=0)) - cb1 = iplt.contourf(efp, levels=levels1) + data = self.quiver_maps_data(dargs['var_name'][i], change_sign[i]) + plt.subplot(grds[i * 7:(i * 7) + 7, 0], + projection=ccrs.PlateCarree(central_longitude=0)) + cbs.append( + iplt.contourf(data['efp'], + levels=np.linspace(dargs['vmin'], dargs['vmax'], + dargs['nlevs']))) plt.gca().coastlines() - xq = x[starty::stepy, startx::stepx] - yq = y[starty::stepy, startx::stepx] - uq = u[starty::stepy, startx::stepx] - vq = v[starty::stepy, startx::stepx] if i == 0: - q = ax1.quiver(xq, - yq, - uq, - vq, - pivot='mid', - color='w', - width=0.005) - q._init() + qqq = plt.quiver(mshgrd[0][starty::dxy[1], startx::dxy[0]], + mshgrd[1][starty::dxy[1], startx::dxy[0]], + data['uuu'][starty::dxy[1], startx::dxy[0]], + data['vvv'][starty::dxy[1], startx::dxy[0]], + pivot='mid', + color='w', + width=0.005) else: - ax1.quiver(xq, - yq, - uq, - vq, + plt.quiver(mshgrd[0][starty::dxy[1], startx::dxy[0]], + mshgrd[1][starty::dxy[1], startx::dxy[0]], + data['uuu'][starty::dxy[1], startx::dxy[0]], + data['vvv'][starty::dxy[1], startx::dxy[0]], pivot='mid', - scale=q.scale, + scale=qqq.scale, color='w') - ax1.set_xticks(np.arange(-180, 190, 60)) - ax1.set_xticklabels( - ['180', '120W', '60W', '0', '60E', '120E', '180']) - ax1.set_yticks(np.arange(-90, 100, 30)) - ax1.set_yticklabels( - ['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) - ax1.annotate(label[i][0], - xy=xy_label, - xycoords='axes fraction', - color='k') - ax1.set_title(title[i][0]) - del u, v, uq, vq - - ax2 = plt.subplot(gs[i * 7:(i * 7) + 7, 1], - projection=ccrs.PlateCarree(central_longitude=0)) - cb2 = iplt.contourf(flx, levels=levels2, cmap='RdBu_r') + format_plot(plt.gca(), label[i][0], title[i][0]) + + plt.subplot(grds[i * 7:(i * 7) + 7, 1], + projection=ccrs.PlateCarree(central_longitude=0)) + cbs.append( + iplt.contourf(data['flx'], + levels=np.linspace(dargs['wmin'], dargs['wmax'], + dargs['nwlevs']), + cmap='RdBu_r')) plt.gca().coastlines() - ax2.set_xticks(np.arange(-180, 190, 60)) - ax2.set_xticklabels( - ['180', '120W', '60W', '0', '60E', '120E', '180']) - ax2.set_yticks(np.arange(-90, 100, 30)) - ax2.set_yticklabels( - ['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) - ax2.annotate(label[i][1], - xy=xy_label, - xycoords='axes fraction', - color='k') - ax2.set_title(title[i][1]) + format_plot(plt.gca(), label[i][1], title[i][1]) - ax1 = plt.subplot(gs[-1, 0]) - plt.colorbar(cb1, - cax=ax1, + plt.subplot(grds[-1, 0]) + plt.colorbar(cbs[0], + cax=plt.gca(), orientation='horizontal', label='Energy flux potential (PW)') - ax2 = plt.subplot(gs[-1, 1]) - plt.colorbar(cb2, - cax=ax2, + plt.subplot(grds[-1, 1]) + plt.colorbar(cbs[1], + cax=plt.gca(), orientation='horizontal', label=r'Flux (Wm$^{-2}$)', - ticks=levels2[1::wlevstep]) + ticks=np.linspace(dargs['wmin'], dargs['wmax'], + dargs['nwlevs'])[1::dargs['wlevstep']]) if nrows == 3: plt.subplots_adjust(left=0.1, right=0.94, top=1.0, bottom=0.11) @@ -544,8 +512,6 @@ def quiver_subplot(self, elif nrows == 1: plt.subplots_adjust(left=0.11, right=0.9, top=1.0, bottom=0.20) - return - def plot_symmetry_time_series(self): """Plot the all-sky and clear-sky time series of the symmetry metrics (Figure 6)""" @@ -562,89 +528,112 @@ def plot_symmetry_time_series(self): plt.figure(figsize=(6, 12)) for i, var_name in enumerate(var_list): - y0 = self.symmetry_metric.extract_cube( + yy0 = self.symmetry_metric.extract_cube( var_name_constraint(var_name[0])) - y1 = self.symmetry_metric.extract_cube( + yy1 = self.symmetry_metric.extract_cube( var_name_constraint(var_name[1])) - ax = plt.subplot(3, 1, i + 1) + axx = plt.subplot(3, 1, i + 1) dtx = [ datetime.datetime.strptime(str(cell[0]), '%Y-%m-%d %H:%M:%S') - for cell in y0.coord('time').cells() + for cell in yy0.coord('time').cells() ] - plt.plot(dtx, y0.data, lw=4, linestyle='-', label=legend_label[0]) - plt.plot(dtx, y1.data, lw=4, linestyle='-', label=legend_label[1]) - ax.annotate(r'$\sigma$: {:5.3f}'.format(np.std(y0.data)), - (0.05, 0.55), - xycoords='axes fraction', - color=col[0]) - ax.annotate(r'$\sigma$: {:5.3f}'.format(np.std(y1.data)), - (0.05, 0.45), - xycoords='axes fraction', - color=col[1]) - ax.set_ylim(0, 0.8) - ax.set_ylabel(r'$S$ (PW)') - ax.xaxis.set_major_locator(mdates.MonthLocator(bymonth=1)) - ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y')) - ax.set_title(label[i]) + plt.plot(dtx, yy0.data, lw=4, linestyle='-', label=legend_label[0]) + plt.plot(dtx, yy1.data, lw=4, linestyle='-', label=legend_label[1]) + axx.annotate(rf'$\sigma$: {np.std(yy0.data):5.3f}', (0.05, 0.55), + xycoords='axes fraction', + color=col[0]) + axx.annotate(rf'$\sigma$: {np.std(yy1.data):5.3f}', (0.05, 0.45), + xycoords='axes fraction', + color=col[1]) + axx.set_ylim(0, 0.8) + axx.set_ylabel(r'$S$ (PW)') + axx.xaxis.set_major_locator(mdates.MonthLocator(bymonth=1)) + axx.xaxis.set_major_formatter(mdates.DateFormatter('%Y')) + axx.set_title(label[i]) if i == 0: plt.legend(loc=5) plt.tight_layout() - return def efp_maps(iht, model, experiment, cfg): """Wrapper function that produces Figures 2, 4, and 5.""" # Figure 2 iht.quiver_subplot( - [['rtnt_efp', 'rtnt'], ['rsnt_efp', 'rsnt'], ['rlnt_efp', 'rlnt']], - wmin=-180, - wmax=180, - nwlevs=19, - wlevstep=4, - vmin=-1.2, - vmax=1.2, - nlevs=11, + { + 'var_name': [['rtnt_efp', 'rtnt'], ['rsnt_efp', 'rsnt'], + ['rlnt_efp', 'rlnt']], + 'wmin': + -180, + 'wmax': + 180, + 'nwlevs': + 19, + 'wlevstep': + 4, + 'vmin': + -1.2, + 'vmax': + 1.2, + 'nlevs': + 11 + }, title=[['$P_{TOA}^{TOT}$', r'$\Delta F_{TOA}^{TOT}$'], ['$P_{TOA}^{SW}$', r'$\Delta F_{TOA}^{SW}$'], - ['$P_{TOA}^{LW}$', r'$\Delta F_{TOA}^{LW}$']]) + ['$P_{TOA}^{LW}$', r'$\Delta F_{TOA}^{LW}$']], + label=[['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], + change_sign=[[False, False], [False, False], [False, False]]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) - figname = "figure2_{}_{}".format(model, experiment) + figname = f"figure2_{model}_{experiment}" save_figure(figname, provenance_record, cfg) # Figure 4 iht.quiver_subplot( - [['netcre_efp', 'netcre'], ['swcre_efp', 'swcre'], - ['lwcre_efp', 'lwcre']], - wmin=-60, - wmax=60, - nwlevs=13, - wlevstep=2, - vmin=-0.3, - vmax=0.3, - nlevs=11, + { + 'var_name': [['netcre_efp', 'netcre'], ['swcre_efp', 'swcre'], + ['lwcre_efp', 'lwcre']], + 'wmin': + -60, + 'wmax': + 60, + 'nwlevs': + 13, + 'wlevstep': + 2, + 'vmin': + -0.3, + 'vmax': + 0.3, + 'nlevs': + 11 + }, title=[['$P_{TOA}^{TOTCRE}$', r'$\Delta CRE_{TOA}^{TOT}$'], ['$P_{TOA}^{SWCRE}$', r'$\Delta CRE_{TOA}^{SW}$'], - ['$P_{TOA}^{LWCRE}$', r'$\Delta CRE_{TOA}^{LW}$']]) + ['$P_{TOA}^{LWCRE}$', r'$\Delta CRE_{TOA}^{LW}$']], + label=[['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], + change_sign=[[False, False], [False, False], [False, False]]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) - figname = "figure4_{}_{}".format(model, experiment) + figname = f"figure4_{model}_{experiment}" save_figure(figname, provenance_record, cfg) # Figure 5 iht.quiver_subplot( - [['rsutcs_efp', 'rsutcs'], ['rsut_efp', 'rsut']], - wmin=-100, - wmax=100, - nwlevs=21, - wlevstep=3, - vmin=-0.35, - vmax=0.35, - nlevs=11, + { + 'var_name': [['rsutcs_efp', 'rsutcs'], ['rsut_efp', 'rsut']], + 'wmin': -100, + 'wmax': 100, + 'nwlevs': 21, + 'wlevstep': 3, + 'vmin': -0.35, + 'vmax': 0.35, + 'nlevs': 11 + }, title=[['$P_{TOA}^{SWup, clr}$', r'$\Delta F_{TOA}^{SWup, clr}$'], ['$P_{TOA}^{SWup, all}$', r'$\Delta F_{TOA}^{SWup, all}$']], + label=[['(a)', '(b)'], ['(c)', '(d)']], change_sign=[[True, True], [True, True]]) provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) - figname = "figure5_{}_{}".format(model, experiment) + figname = f"figure5_{model}_{experiment}" save_figure(figname, provenance_record, cfg) @@ -654,16 +643,19 @@ def mht_plots(iht, model, experiment, cfg): iht.mht_plot(["rtnt_mht", "rsnt_mht", "rlnt_mht"], ['Net', 'SW', 'LW']) provenance_record = get_provenance_record(plot_type='zonal', ancestor_files=iht.flx_files) - figname = "figure1_{}_{}".format(model, experiment) + figname = f"figure1_{model}_{experiment}" save_figure(figname, provenance_record, cfg) # Figure 3 - iht.cre_mht_plot(['netcre_mht', 'swcre_mht', 'lwcre_mht'], - ['Net CRE', 'SW CRE', 'LW CRE'], - ['rsut_mht', 'rsutcs_mht'], - ['-1 x OSR (all-sky)', '-1 x OSR (clear-sky)']) - figname = "figure3_{}_{}".format(model, experiment) + iht.cre_mht_plot( + { + 'vname': ['netcre_mht', 'swcre_mht', 'lwcre_mht'], + 'legend': ['Net CRE', 'SW CRE', 'LW CRE'] + }, { + 'vname': ['rsut_mht', 'rsutcs_mht'], + 'legend': ['-1 x OSR (all-sky)', '-1 x OSR (clear-sky)'] + }) + figname = f"figure3_{model}_{experiment}" save_figure(figname, provenance_record, cfg) - return def symmetry_plots(iht, model, experiment, cfg): @@ -672,9 +664,8 @@ def symmetry_plots(iht, model, experiment, cfg): iht.plot_symmetry_time_series() provenance_record = get_provenance_record(plot_type='times', ancestor_files=iht.flx_files) - figname = "figure6_{}_{}".format(model, experiment) + figname = f"figure6_{model}_{experiment}" save_figure(figname, provenance_record, cfg) - return def plot_single_model_diagnostics(iht_dict, cfg): @@ -687,7 +678,6 @@ def plot_single_model_diagnostics(iht_dict, cfg): mht_plots(iht_experiment, model, experiment, cfg) efp_maps(iht_experiment, model, experiment, cfg) symmetry_plots(iht_experiment, model, experiment, cfg) - return def main(cfg): From 0c830f1dd941503aa418e496712ec2de8fd18103 Mon Sep 17 00:00:00 2001 From: mo-abodas Date: Mon, 22 May 2023 10:27:00 +0100 Subject: [PATCH 22/59] #2472: fix prospector style errors. --- .../iht_toa/single_model_diagnostics.py | 85 +++++++++---------- 1 file changed, 40 insertions(+), 45 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 99e568aa19..ede2344b1f 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -45,7 +45,6 @@ def get_provenance_record(plot_type, ancestor_files): """Create a provenance record describing the diagnostic data and plot.""" - record = { 'statistics': ['mean'], 'domains': ['global'], @@ -63,20 +62,7 @@ def get_provenance_record(plot_type, ancestor_files): def area_average(cube, latitude='latitude', longitude='longitude', mdtol=1): - """Returns the gridbox weighted area average of a cube (and optionally a - sub-region). - - Compulsory arguments: - cube Cube to be area averaged. - Optional arguments: - latitude, longitude Names of coordinates to be used for latitude - and longitude - mdtol Tolerance for missing data. - Returns: - cube_avg cube which has had area averaging applied across - latitude and longitude coordinates - """ - + """Return area-weighted average of a cube.""" if cube.coord(latitude).bounds is None: cube.coord(latitude).guess_bounds() if cube.coord(longitude).bounds is None: @@ -96,7 +82,6 @@ def var_name_constraint(var_name): def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): """Top-level function that calls the Poisson solver for source cube.""" - if flux_cube.coord(latitude).bounds is None: flux_cube.coord(latitude).guess_bounds() if flux_cube.coord(longitude).bounds is None: @@ -139,14 +124,13 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): def symmetry_metric(data, grid): - """Calculates hemispheric symmetry value. + """Calculate symmetry metrics. - :param data: zonal mean of the input variable - :param grid: grid weights + A perfectly symmetrical latitude band gives S=0. As coded, the + calculation of the symmetry metrics needs the number of latitude + points to be multiple of 6, i.e. it needs 30 deg bands. It returns + the metric for 3 regions: globe, tropics and extratropics. """ - # S = 0 is perfectly symmetrical. - # As coded, the calculation of the symmetry metrics needs the number of - # latitude points to be multiple of 6, i.e. it needs 30 deg bands. nlat = data.shape[0] if (nlat % 6) != 0: logger.error("Grid not compatible with symmetry metric calculation.") @@ -209,8 +193,11 @@ def __init__(self, flx_files): self.print() def compute_efp_and_mht(self): - """Calculation of Energy Flux Potential and Meridional heat transport - for all the data fields.""" + """Calculate Energy Flux Potential and meridional heat transport. + + Calculate EFP and MHT for the climatologies of radiative fluxes + and the 12-month rolling means of radiative fluxes. + """ # Loop over climatologies for flx in self.flx_clim: efp, mht = call_poisson(flx) @@ -226,7 +213,7 @@ def compute_efp_and_mht(self): self.mht_rolling_mean.append(mht_series.merge_cube()) def derived_fluxes(self): - """Calculation of the derived fluxes: + """Calculate derived radiative fluxes. rtntcs_clim: climatology of clear-sky net TOA rtntcs_rolling_mean: 12-month rolling mean of rtntcs @@ -289,8 +276,11 @@ def print(self): print(self.flx_files) def mht_symmetry_metrics(self): - """Calculate the symmetry metrics for all time series of 12-month - rolling means of MHT.""" + """Calculate symmetry metrics. + + Produce 12-month rolling means for all monthly time time series + of MHT. + """ grid = iris.analysis.cartography.area_weights(self.flx_clim[0], normalize=True) # As coded, the calculation of the symmetry metrics needs the number of @@ -338,11 +328,9 @@ def mht_symmetry_metrics(self): self.symmetry_metric.append(cube_e) def mht_plot(self, var_names, legend_label, ylim=(-10, 10)): - """MHT plot Produces a single plot comparing the estimated MHT due to - the input variables. + """Produce a single multi-line plot with MHT. - MHT is presented in PW, plotted against latitude. Up to three - variables are on each plot. + MHT is presented in PW. Up to three variables are on each plot. """ plt.figure() for i, vname in enumerate(var_names): @@ -361,7 +349,7 @@ def mht_plot(self, var_names, legend_label, ylim=(-10, 10)): plt.tight_layout() def cre_mht_plot(self, left, right, ylim=(-1.5, 1.5)): - """Plots of CRE MHTs (Figure 3).""" + """Produce two multiline plots of MHT.""" plt.figure(figsize=(11, 5)) ax1 = plt.subplot(121) for i, vname in enumerate(left['vname']): @@ -427,11 +415,11 @@ def quiver_maps_data(self, vnames, change_sign): return {'efp': efp, 'flx': flx, 'uuu': uuu, 'vvv': vvv} def quiver_subplot(self, dargs, title, label, change_sign): - """Plot figures with energy flux potential and gradient in the left + """Produce panel with EFPs (left column) and fluxes (right column). + + Plot figures with energy flux potential and gradient in the left hand columns and the corresponding source term in the right-hand column. - - Figures 2, 4, and 5. """ mshgrd = np.meshgrid(self.flx_clim[0].coord('longitude').points, self.flx_clim[0].coord('latitude').points) @@ -513,8 +501,11 @@ def quiver_subplot(self, dargs, title, label, change_sign): plt.subplots_adjust(left=0.11, right=0.9, top=1.0, bottom=0.20) def plot_symmetry_time_series(self): - """Plot the all-sky and clear-sky time series of the symmetry metrics - (Figure 6)""" + """Produce Figure 6. + + All-sky and clear-sky time series of the symmetry metrics for + three regions: globe, tropics and extratropics. + """ var_list = [["s_hem_rtnt_mht", "s_hem_rtntcs_mht"], ["s_tro_rtnt_mht", "s_tro_rtntcs_mht"], ["s_ext_rtnt_mht", "s_ext_rtntcs_mht"]] @@ -556,7 +547,7 @@ def plot_symmetry_time_series(self): def efp_maps(iht, model, experiment, cfg): - """Wrapper function that produces Figures 2, 4, and 5.""" + """Produce Figures 2, 4, and 5.""" # Figure 2 iht.quiver_subplot( { @@ -638,7 +629,7 @@ def efp_maps(iht, model, experiment, cfg): def mht_plots(iht, model, experiment, cfg): - """Wrapper function that produces Figures 1 and 3.""" + """Produce Figures 1 and 3.""" # Figure 1 iht.mht_plot(["rtnt_mht", "rsnt_mht", "rlnt_mht"], ['Net', 'SW', 'LW']) provenance_record = get_provenance_record(plot_type='zonal', @@ -659,8 +650,7 @@ def mht_plots(iht, model, experiment, cfg): def symmetry_plots(iht, model, experiment, cfg): - """Wrapper function that produces Figure 6.""" - # Figure 6 + """Produce Figure 6.""" iht.plot_symmetry_time_series() provenance_record = get_provenance_record(plot_type='times', ancestor_files=iht.flx_files) @@ -669,8 +659,10 @@ def symmetry_plots(iht, model, experiment, cfg): def plot_single_model_diagnostics(iht_dict, cfg): - """Wrapper function that produces all plots.""" - # iht_dict is a two-level dictionary: iht_dict[model][experiment] + """Produce plots for a single model and experiment. + + iht_dict is a two-level dictionary: iht_dict[model][experiment] + """ for model, iht_model in iht_dict.items(): logger.info("Plotting model: %s", model) for experiment, iht_experiment in iht_model.items(): @@ -681,8 +673,11 @@ def plot_single_model_diagnostics(iht_dict, cfg): def main(cfg): - """Solve the Poisson equation and estimate the meridional heat - transport.""" + """Produce implied heat transport plots. + + Produce Figures 1 to 6 of Pearce and Bodas-Salcedo (2023) for each + model and dataset combination. + """ input_data = deepcopy(list(cfg['input_data'].values())) input_data = group_metadata(input_data, 'dataset', sort='variable_group') From 95054c568cb928e360ead8442886b29620c442c7 Mon Sep 17 00:00:00 2001 From: Alejandro Bodas <97702998+mo-abodas@users.noreply.github.com> Date: Mon, 22 May 2023 14:58:07 +0100 Subject: [PATCH 23/59] Fix codacy error. --- esmvaltool/diag_scripts/iht_toa/poisson_solver.py | 1 + 1 file changed, 1 insertion(+) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index f44f343dee..4639c6b1fd 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -64,6 +64,7 @@ def precon(xxx, m_matrix): # @jit def precon_a(xxx, m_w, m_s, m_p, cxxx): """First step of preconditioner.""" + shp0, shp1 = np.array(cxxx.shape) - 2 for j in range(1, shp0 + 1): for i in range(1, shp1 + 1): From 849195f1a26e1134128b626fa11913b543cc8a95 Mon Sep 17 00:00:00 2001 From: Alejandro Bodas <97702998+mo-abodas@users.noreply.github.com> Date: Mon, 22 May 2023 17:27:25 +0100 Subject: [PATCH 24/59] Update poisson_solver.py --- esmvaltool/diag_scripts/iht_toa/poisson_solver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index 4639c6b1fd..0fe964bad1 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -64,7 +64,6 @@ def precon(xxx, m_matrix): # @jit def precon_a(xxx, m_w, m_s, m_p, cxxx): """First step of preconditioner.""" - shp0, shp1 = np.array(cxxx.shape) - 2 for j in range(1, shp0 + 1): for i in range(1, shp1 + 1): @@ -89,6 +88,7 @@ class SphericalPoisson: Solve Poisson equation for a given source term (forcing) and calculate MHT. """ + def __init__(self, logger, source, tolerance=2.0e-4): """Initialise solver with source field, metrics and matrices.""" self.logger = logger From 074c232e26f3124af5d557d5cb6d404daba7e0b7 Mon Sep 17 00:00:00 2001 From: Alejandro Bodas <97702998+mo-abodas@users.noreply.github.com> Date: Mon, 22 May 2023 17:42:29 +0100 Subject: [PATCH 25/59] Update single_model_diagnostics.py --- esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index ede2344b1f..836e60a56e 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -160,7 +160,8 @@ def format_plot(axx, label, title): class ImpliedHeatTransport: - """Class that solves IHT for a dataset.""" + """Class that solves IHT for a given dataset.""" + def __init__(self, flx_files): self.flx_files = flx_files From 60086d54a8a6a726a72963e50a91562d1104317f Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Tue, 23 May 2023 11:41:39 +0100 Subject: [PATCH 26/59] #2472: tidy up, documentation and figures. --- .../iht_toa/figure1_CERES-EBAF_CERES-EBAF.png | Bin 0 -> 49134 bytes .../iht_toa/figure2_CERES-EBAF_CERES-EBAF.png | Bin 0 -> 463548 bytes .../iht_toa/figure3_CERES-EBAF_CERES-EBAF.png | Bin 0 -> 83470 bytes .../iht_toa/figure4_CERES-EBAF_CERES-EBAF.png | Bin 0 -> 513405 bytes .../iht_toa/figure5_CERES-EBAF_CERES-EBAF.png | Bin 0 -> 324689 bytes .../iht_toa/figure6_CERES-EBAF_CERES-EBAF.png | Bin 0 -> 87707 bytes doc/sphinx/source/recipes/index.rst | 1 + doc/sphinx/source/recipes/recipe_iht_toa.rst | 123 ++++++++++++++++++ .../iht_toa/single_model_diagnostics.py | 3 +- esmvaltool/recipes/recipe_iht_toa.yml | 68 +--------- 10 files changed, 133 insertions(+), 62 deletions(-) create mode 100644 doc/sphinx/source/recipes/figures/iht_toa/figure1_CERES-EBAF_CERES-EBAF.png create mode 100644 doc/sphinx/source/recipes/figures/iht_toa/figure2_CERES-EBAF_CERES-EBAF.png create mode 100644 doc/sphinx/source/recipes/figures/iht_toa/figure3_CERES-EBAF_CERES-EBAF.png create mode 100644 doc/sphinx/source/recipes/figures/iht_toa/figure4_CERES-EBAF_CERES-EBAF.png create mode 100644 doc/sphinx/source/recipes/figures/iht_toa/figure5_CERES-EBAF_CERES-EBAF.png create mode 100644 doc/sphinx/source/recipes/figures/iht_toa/figure6_CERES-EBAF_CERES-EBAF.png create mode 100644 doc/sphinx/source/recipes/recipe_iht_toa.rst diff --git a/doc/sphinx/source/recipes/figures/iht_toa/figure1_CERES-EBAF_CERES-EBAF.png b/doc/sphinx/source/recipes/figures/iht_toa/figure1_CERES-EBAF_CERES-EBAF.png new file mode 100644 index 0000000000000000000000000000000000000000..18aa689123aa1f68b73e73705121b4f07943c562 GIT binary patch literal 49134 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 literal 0 HcmV?d00001 diff --git a/doc/sphinx/source/recipes/figures/iht_toa/figure2_CERES-EBAF_CERES-EBAF.png b/doc/sphinx/source/recipes/figures/iht_toa/figure2_CERES-EBAF_CERES-EBAF.png new file mode 100644 index 0000000000000000000000000000000000000000..ae8afa7d25547222b2c7137286afbe7c8ea5fbfb GIT binary patch literal 463548 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 r_Y&6na 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

q28cK<`_ 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%0ATX>ENqe;{XLj-)0>T^PEXuB6m$qi%C#0V} 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

um8#lHw(bCsW)QQ|R zPHV6NK0I)bASN-JUvzw;q@gxw(E2%-hgZ>(sXewJK*#2nwbr6^>~y`qYt9>&E_r}* zMnCj4j5Z1X(usvZ@8Ziw#pfBIcjON?__3Puhn{#Fu)2C;2GCQCB2bI;d)ui;5ueWl zWsQB&xY|W#T=n_=q8K0Qc2SJ^&h4{BHd?={tFBr_)VY(0J?0K? zJ%O>qD0PApXgW8TO4SR;1e!3uVcAs_1d?e(cvA3%`3zUVPQ9{4);^?r^~U1lv6Q73 zsL3)#t>F1?GfYp;G%HiR^jqJLJVq`~QsNuM_@0UHSZ&bnB6KC3mfPde%$Uw^Vsci< z4$NU_mfW-drnCF;g1$!Q&`?nUo`zaR$J0eNvwtbw6fpulU{Kj3AZS^_Z)DKJq7V+n zl8L4WdUBPiRphBx=@sua?fsX?{0nRTClbOc^S|q(Fk;UP*hp;sgjHp16B~2gb3X~& z4Q5)DI#u2jmXYP*-t>;%G7f=~L+G#@V}7Wd5`=7GjbYodu|x9jR|mUfIKL>VKW;9< zeD?LAbl8EzMd-z%HY=63pOuB*rGv){dByqKAKbwMz!dj?5J3(X|(w`P3?T`juonK+uI4^Kt$Zm z;tz3L`9yK~V!HpP)QHd_VoSwd@+qORHRWO5H)d}%>FZJ8T)fkX&Dvef? z)>ECBi z^Qq81qM+8AhAr3IN$F_W=VeY9Nz|VYg$SFG4XV$Aoaou!jcM69*7=^rlpZb$x!Nyc z<=7Ns#=WUtXYl8*b}kiS`pO`)s-^CX27bKN8oUMMBZ&x}D3gt^EvTc7Bn5q-OaodB zx6!6-Tx>rwdRTpFHXMbgaJ%%x_2JJM>G4BE-k$Lwou2RjNmiO-BZW$&feK!S(?925 z49>^fon%9ekJF;sYOJtqI!PcQy>kOuG%9C~O9)Z2lga9euE&2PKAH@|qTp~d!9OT& zpK55qn4+@Fi?^LhRy;L^hUfhHuA2u|Ew8fYfqwN5)VYHz)gxe+#;nE{BV1q3K7nB- z$r|7SFF=N=9RFUaVP4 zvfTzvXuKYZwG?pZB^d3UQMd>-Y*Zwb+2X&45Tbq6@K^fx8CjaKRXEkhMp^Z*qZ>N{a zA5)`&lOtI)o-#f@-t90qB$hG^j@a#YjPQHPe~C+CFDK#0I5?ICm6he+c&Qb${`tco zx?Og|Y1SC^|7?E`A@ND^JZ~rFnOrW~!(jtq$4+AS*(=TUkh?WP z_YO-Rns%MnNZ!It_k6>vPn+3B<4w%ju6!yaSY`->V|=!T)xRfV|7TmHIg3<;yk&vc zL>$f-l2Lc%i@=sqtSS4sH_AngTx7*GZC0Zy#bM4}5ge_Xm@wa9spk~*#`wZR4QUs|~{joFC-_54l(?-s zM&3m`Cp}q5h#b@0&rA}eKw`-C3ETK=rZLh8wVRsBV7NB^_ye${^_ zvv!MbnW;{5XJYoevE_RcY>+@I;9W;Z>hqq{^pAMW#z*z#Mr(PO@y~y)Ho9NMW!X|A zSABMz#U#a{SUn2%5pGtt3w7+4Kmtw=XKgQ6#d1%t4CkFU^RO2W8wfQS1+rYPdH47W zX>2SZ6TNMk8<*$xsf=2UK^>XPms5Rl@WnZL@8*;Ae_iC$gY6bB_1f5Mu^N5&;C|n} zZd0S*ZV{#5OlM%N3N#UD$C%uVOfX1?AsLz!W8>ZdLIQ0el^Y7D+%!mJHnf?kY1yIJ zVu0n>0%$vKm_IB9r^U-8sfq47qd>0;OgKchr_qswdHsS#Dcx1ob$@GQ6yRMTzD#@l zNO%3ns|w*qO_YoM$t+VWY$2xivloPRD9LY~%FI~go(3FWs7?SibxuSq%T{lHV*ZPO1-A`=kT;*>{y*M|1uG7GHvDvI>}&PUjBYxxNYv`R1WCDcyM#H~DH4;ytBrvV z4_p5W(Y{^JVwT*T3QDa@>VL7{h?2TL{?6rzc>QQ&EB~Vy zO#hTU*0;zWHEGErQfql!96#o7QitX>3=eGJ=wU%aI`N6MV)^Pp0*~*Z4+rdXK{z|> zwI~ZNbk=&3TKN!q@L@Pr;MZ>>5?p>-P(AuOTXeKJwCt^FzTpchG8$HrM%qXvO21en zy@C6J#zD5;PsXpEKjvmpcZR^5h+zKI{GxJaH?u@ipcv&}dP6`-tc%H>x{nR}&0h?n z<&La&dNO$OVdaC`n<2v6_|(~ycfx-<3KHkkT79VfzYr+C+A`>MChT8{R^tW`2w8km zg3LazwsLxk5p(o;0O_U(AU=RV_6;2eQQL}@lJ8jhLV#lr37hFdp zs)FqT7of$}14K4zZpindVTnFoB3iarQNRQhpLKw@O&s)4bV~!lD$4(meI-6Bc3(|i zeFcw7w)p`3*TOgFA(`Rm86XzK~-xKQvmeQ2FYA_7)mTEO=gg zNWlNrb=g!MlcL47q}YcTH~L$tHjy-(RmI@)j>uI?}vxBu%7Y=X+J!TrD*Wiag3 z?4rnFfv|pB#h;|jQGsAGuG0BCFlmkiXIbv-xnz0u?9DS)E#X`ME!>Ula47|vFHd89 z21B^a{S!s@d0cJs&zH9Xo7EXJg9v56r z`~Jgm`eY8~J2_hDA~nQHu(|g6L4Z*r+^YL)`^i-m5d~3Is*!N1Y}uLSz;LGHU(tYY z{P=Nzijur$&6*Jt6T|Pn|4wOX^~smp?PmG%<;29qkd{_c9s6WF`|PtA3P zSX6w$GU{K=iW>tFe5b+dxgp4^k8R7|rL;Jk);+H!rQ_%t`Pg6j1UGvRvlA)$2~q79Ak^CT*-&ua z?UO6Wc{!Y3nWK45)*i?s-%*_q_!X@V&*_tS;L#_TaM{>u>)Xah^6qbId2sstx=&iQ zw^nDMuu%JMj~zX#f}A%NZCkhEf)PV`?AaIT(y={jH~hi4Yi{J#w?E*jn{Ov0v+g#i ze>2K0*lNw11C->kcF`{kzWxDPCdRSoy=S=XUq;RWBvE9>9hU;|>CG2o&`I3&`7ce< zg81sTv2;m};l__=6Bc0Q%Uds@)a~Vhm#1<4M?W%W<8I#hZ4I9<-^7XHra2wdddOQs#_lFP%z8deAS>6iL&W2R4Erv4z`dIY(Za3mO3%aN#RSL>tcnY>;>M(U(W`!>v*f(VIAaL<=FOXHEwjtd&*y*t z`yT+qhim0hf*^4H_1EKYIC%Q$r>kxM!V51@P*A}2*I(bLjC68xGB@9RGdp(dVEXjN zXYT$@P*nk0{%gJ(tpa0sV#^PFb7XCk_bu_enUk@(&h??gyU_ZJJFxfFl$hoGLM+|d zqm($v`{WyqG?(GzVW3C+7#iY(4ND8~1*} z+Fesvv-2aCZ+)Gmn_uQc;hs9r<+JGUpT_JtfWH>c^FM=ffjOm$zLaD44vN;TBB)nC zvcLbD;y>1%)^q+D2ngs4B!qvjE>#Vj9ZUaN7?k?kSd6vwe(J^g>#wrv@kLiuI8jG= zyjKQ`)yjMCyv63F^GJ=020%1fXq_0tlqDPa`uCawoiB& zJ%!WdX7U^F5FZ!I2XDMYpI$xa+@U>D5vNvK{jWx07Gi!nFMl?ZxX3W(zx@Qt(S0cY zGICyyVI7*$JuQyse_X~>mkeV5)_r`rVsoSSw;ByRP}X-od&4fa9LZw+bGPu>q%qaD zyXVVaNW1GbTHpI7qhI}stKXZ+h?l1^_=V5u{p1uu%+5_ zS|>uZT~BO)0mEsiI6zeqRT-V)!=QLD%Ps=^#RU0_u*pu0s;|1H!dd)joG~TtpMCZj zQ>IK|z<>cHCMIIFS~+s$2y^Go#o=%;X3Q9_xZ;Y6?H_pH0e<@FCtiB#B{pr^M3*jI z*s^5{^XAQ?W5

@W2C&KKEmfJ;tY>e#(IZjTc7yw?XzvNYd$_g>EZMNB#?YLv%JX z9Y^$F#qv!6IM;6_VALRr=Pp5UdkCF44$)k_1S!~PX7yz^Gw0xLZvXHt04!bGHTm4F zLn7FjpF`Nqm}W_ttyVaW~e&{&89ev1x$16D+*8}X6nkeR=Y9fy7-KKvXGW-jAs&N|}5yETfK z2!cpbRBsMv{f^sP$mabsD0S!I^E(N&#!>7%PEurVET#~=zET|S6S%!a=yhg{`Tzt$ z#GtoQT$;(21K-iT)%Dmd)pZsWoq#u_rf>b9feOf{X4%^yWW6?_DBiG!6Z2+cY0-+} zEgSLY=Yb#)(D|Id=ESD}K^4#!=y>>kTYlwT2eW(rDAFWsP$+1_^Po{QT`So_+asuDj|A=KZ#a6|2^8+l|*% zvts-I03kmEp(K~tOIP#rigi46)kWCz(oy~Y-bkS!2)usP2zovK5zBTRt|04e;vyQ| zk3OhvDki-Sx6jWjKd)qOW-iNi9-?`4C`C>W7NedU26iRbYG!{{9(yu#De^;nVge?E z0h7@{RA>+%&-#@cKcB~p=k6!SARw1IP@E1_zZXMX3X-Mq)s%v&AmkoF^^~Fp$5dn# zEQ$+N5b%md1VO-Vl&~8m9A2#_-3!D8nu)L(NiT9$D|-*I88{~;l--%d*o-<7!>sl8 zg}WRj%z5WoHvBq^fmhzb?6XB_5=-Z_OK_`{92b&~9EKM(G7gZUZDp!=Fi&g(_ z(vi;Mbl{93=$Bk_2}MOktXZ>$<;$1jbUFzM3E|vx&*iGCuHv%GE~_?pSglr;E?vq~ zPd&xVnKN0sbSY6$QQUp^-8}Kc6IiW{uk#HH3*-L#@8|KyAO9v8ddy(vQ|3#50Z4n z0J0f$jh7y1G}4#OL{a>-?ltkWAKP#H`w6-zNTkIM;E#P@Vbt4*3GKk{qrae+OpWeG zZyt9Z7Go&;G8Q5$UQ7l%EfaP&S^)^OOSzcj=yPj5hS%?8^^Ol%z4HT- zqs}EYb^xLvp$gy*H~nd0I8{|CEjo@U>aYYvqUib4$E*#0cPS1>CV5Ne<2rnRfG*uJ zM91LVquH?8TDCsz=lrt}WR0ZzLKFTPlUz>JvLBzILj~S`@fqU6f|&g2cdXgEn=3~QBqAh;`#zt8-)!U7 z0i97wHN6EvSE*Qy&cLzs3|cjB)?}?5S(f=_!6JTNvyP18nWQEs;q`dA?Z)f)^s5PlT}p0^qV zM<z;<**uTy(+6YUErJASS?2tG{_ICqPnVbgCb{>PM&g&t|~SFbL|I zXc+qc6mfBJWMpI@1qTrO@*}6^n67QR5%hYj?cxXs{qqXaerqjg{`vyN`y z;n^Rt_l}RT_w7vZRhQz~f0&$CKgKqoC&A-JR_r%p_+|8rN#No+(^&l3R}{}(O#Hjg zH2S-AwKM?zXo^>8WbczJJOgMdiuL^55$Y9Pry@GMxk^**p z{w&d5hLVyv=(HTOSyDLr4xgy_-<0J-szd4cuY%9-V%3g!0qE3hJp0lY;q#Z$qxDU- zZZ8ORThP^p*d!~NB}@2q{x5WCeifksDYb5=D1HuPF5^(<3Yx_ZCM}^aj$i|d>C`h! zvh1TMXCK*z*O8yO1ArFiT#3C^M|}2EW234fBYQpQOxmPNk^K}O+Cln~?~pxOudF^a zobXW>V@+#8$&M{#ef>EADGxu5WNo@0#NPqMpft*Ut+B|s|2gD>Vq#-sNl#BdJqJCD z22nni#zseRaO?Wha?ID?`;g1WTts9 zmVEf;E3|KO<^}Ek3JAGJ5lS_y#y7tDk^5ht!iMK2(JVUb&mY`i0&o457JmokZra26 zcfMs{n^fMuW+a^+dWVNc_v7vnz5n#F6-8xxdNw0o{2a5%#Nl7RKwpPlWM*zY?Z-}{ zu%wiIKYc<{6O%NxA-|}EX-og$(O2Ha<#H1q7Rsg-iwFw~#V_dahz7iZp(4xf_A6vN ze0Zy#E^gX+bgc>h&|Jf(d%GBUINUyY?_Oa}cd{u;P< zAHca`8wEBKg4a#txZVWyYl~?3Yu@_i_9*t1WdCWaI01oYJB*=qU@YtN4)Xl=pE0LI z()OGC5G_W$ZWltcL~H|k;#j(dfZ_d->^34SHo8a0lkOK->XtsOu<(_;@Z3u%Q+pf z_Uu%nmnkN~#uw*}W!C1Me7t%?qwhP=WTeQg3CdWF1{|Ko2UW~^9WI~0;yA@_51v3U z7M{LR_pG(QB1jU!?Yg6sg4lq2Ux3X-v7_NhgD46WitjD^rm}C@0q`}Bq>r7@i|?ne zMmbp;xgG?CSSc=Y5)&6fZcZ_{phv5lShr^?`!g03V2R>*-ey!)spe~L4>WV*T|+P! zbiDce&y2XJ3p1y!s^?4^5)$JuITHa$OpL=(hn==4>WB&L$f3*?9LrtDV;{g;M+(yRoAMiN}k&I?^7CSyiA&Sq7 zAWDRH9)RhbP8g%2Dzb34R_(B)Hpi5he8!SKA(LxgY7$a@g>o(`PfsRiHPeFYc4Hl3wA4-p#@NM^yQ3%OQ>C^dJvaX8PK12#{(SLwVfO8txVztnIuB%D`{6%jEV=N z;zdW}Etk*YpT${%{vSusB_jyDa0vNRzQVP2569m88Q0+)qQ>__vQ##pb_!0!;disI zB)guYHH;gY^+PY}h_{6Bz#rdmz>#xG$GNq|AO=Ub;fN!bdpFL&U#5&JS+zQSquGza z=pe5k7uD;7veLkj$t@5Cfu9fVMg`2B+8_l7Qapb-VJQhUh;-i6Z}8{jW9ixs*VbM5 zPvkK?BA)+cXEAQ>*Bq-N_~XsUqWG63IM;3lz`bKH?j3t6nEoSSw@hGYtM>f1e;3UY z5}A3~l|))?v`>seSlu{F@`>F$Q{Zy5;=o~Ex?mWRC~)ocS(>ML1F#wlygGU~H-9^u z-pL6}zF-(r*KB0!+Ku?Fpg#rCQ=?v@Z<`bbb!^7t)8^y#%ZNHXs_e(_F2!rNV=Aou z+ENn27<+zahV*I0{m;+hkL}0mJkPn^(l8qJ>^+#xEm!s9k`bNx@QY>4e193Dzy5o- z*-cz|LqAemL~-Q63BLZcaURU0FYQiZN;tjxw`A4Q-4x`P^1*ArVlzijRGL9@R38py ztz_qsIkZYRAF-@l)$Q`qsarDPk%5GU+0p5x1_`>VD!li}lbk5r!%Hu{#AV~I<<4uS zQ0njy9UDw$Ms>DsHHFf#{k81eGlPpS(keqzQk&6n*l0HIY<%RnwCFemSvxVBgGlW( z21`H`lHNpa`W6ms`kun0+X+Z++oY1!?DY%CT04(`q}EuXlPKD^8QJ3^s>g5wlG|bq z)kLT~fgo2IT?A1i_S%~peV%_3QmKeyQc?B)p6tR|{I$^ObZq&3F^7*HyI2uXY5ti)3IG!#*V&#SKfY)r7M5u z>!}~mt9v)1BEm5mjZAsxb-Z3L%YI+Y9S=Oh!NW&zyFGmJ#aDdt#aCP~Vkr0DehUVJ zff9#HgCc`^6W6I(U zbZ-{Vm~+}RuxI_)pOweJXQ!eH0-rs7Pn}~|`DgvUtH+RET*6ZyepRuqV~bQCnmDe} z=aglc8S|HM_;@zAUUxMYT`-bXEt(Txw=sJBHGDYr3oaTtf`mAY^cz(#qO4S8(*;2w z(4@m|l*n=TDDf(|T~407ek}WTZe#pScQEb!H^@DHjL4Wc9(ewB&K*3Qz~GQtuP3Ql z3#Knziy&xv7U5QXoh9v(;>VaHtk z`_27`79+W{*OBr5ua(;%5N@(Ft@lk_n%MnMU5j03qJLydQtc7E(&aL)Os=~Oye^y{ z+kxxT`cdq2ar=g8H7wXFu3LnF4w{0va&SAM6%T| z_V;C-z?Ysyz_5Pwy!{3Qy`F?-X^c2;2s1MdR3qmAhS(^=Znzv{v+BZVs>jQT*FRy} zjdzms(g&=(?O{5krg6>V|6|g!AMx25j#zeyi{ZY3eHh)Y6?1Nwz_}@jgjg(uSn3uV zs)`p!4WVCZ5|0k)&!<<6A;M-QE=aTM@Yz7FLto5n&~w*?eJcJJ1%YnO<9YIm^H})Y zO}u>FNQQN3!MSa;dyYBx0stK8`|z6uS~QPh^w194zM??yuBp87#8|#~{TfCMZjWD9 zh>ob+el0aIj0t19)319oKALVnB^V8GCJTzbv9 zgoHLOJG*c9aeDRF#EyFPZ;2#{cs+hB#t=k7B*+$DW}mi|9fxNF5E&iFxT|`TovA5g zx9glpaF`d`kX~)s1?+{x@zQgOhAzt(`~YIYWu=HHzZHyDHY}EcOa= z4j}yvZKVQQVCqy59~8*Vz0bj3i@&yjfUZ!gH>%byEQ<4!Tb$Cl&*I++olZwuN-|ql zEoJe~vnVbp;mR9tW$teaYu#S2YNe#LK@bEYt@;{POoAW~A7~~m#9HfwI?!SuG0aMI zkeN`M5t~VmK_^xal?bbW*nmp08A}yQMzt!L5hc{%>RH6Dt(%dPU&!V?2Wwuh*F}%k zDU7*bB)8r7KeBTwTapw-;m5i20QmOvj~PGiVgPQxNmKt%jE}44V{b4RIB!5dHm_V% z<21$X_7?7Z=>skwGn$v5dx}22dJq;Gg27ucfR?Vknji;MSGvKkEhe;yb*+igkaH&1eqivZF&*{ z4Wxz`NeeO3EYw6=sEO1N6Y+t@8suD1RgAKm0ADeIatX$>uXg3LAbp~wlEl~VE&g;~i zXC@3~`j6`wdwypw8PS>8s2~8+GYgpc%OCu*WCu=H?UPiC*}${+U4TKa;Yjvsj%2SQF|rqeAhP@DJW^u@kevx;i;=b+E5AD?lb+awP>vn0X+5N> zD!D~_*|h&_Kp-))C$Bs;oA{(Kx}V#e*6rf4*o=fn25=&~7}+4=2{l&uoa+r1ioLLF z$3~84W|5wm$KZ2Y(W^@;Uwpp?olfG;i36GRzv-OF*Cu(2>}T(WuPHgPn@>LZgb5QS zpx5guak$yBH|LB zy^<5?pO!*OXb88?{E52UbWVm|6dBY!l}kIdqjyRokIr2{iKq5+i?V>^5UZ8C$JqiH zo!Xj<(%KMawlMsM&l-K*XYt=c$F^+<3<$tzG?0>5x0kX>_TUw3w@Q#iff&1Y3>ObNm(DFyE6BfCl+CNpJx-@SD@g6woo<~vqSx!#x??8=g++|J=mHYs<7nPl z3(AigRz3K5GS+R}M08{X0RaKrdi}My+-@FxqEaj7oUWZ&yle$~_U)%*?}7B`)q@qQ z*6_c3@8pSx?rYR*a>l?@iXc}$s8m%YE!aYb#3=GhoWukNAbWfi9XehkFepe8dW#XA z)r8(+LTAx_3#Y?6>n}vVR>@3XwS_U=+c4vfOBwmnm%KLjcSdw<(O^*fWVpOOo}IOn zS?hMvDmk7J=XR@Drv`+BzLxKpD1ki`)gDSpXdHqgpP&F6nYsCmI_Lgl#~F6ZqgZWL zexE;wuAMv9*d{F{nI%8ZV!+6Yd2h<6JoD&7)z%AuLG@vfeJBW&N){{z1I0NRn9ODp zQ=9YoJC&LaLq=Xm+k^;=`npT^^YU`Je!_ShB_)g;eGzxwdq1dZSzoyiz3Mwl$p0fa zOVH0iL|CkRd;aABtj|hk;)3t%BEVL z0ZF*$LgFS3N3vBCX<1cp`MsERS~jYGWJ|v7dn=D@p2_;WLruDNyI#xq=6f7Gyy?3} zsk}#+0(iRpMLfN2Hm`NL0)wREnXR)~msc~Ae=-C~B=P=>`261Ixp~qgh7B7=Xj~NG z*9^ecr6ol!5uaN}=#5w4`eQpK3s#`I+?YGG#+a6fscj4Tw{Fjz7v2Woy6djv@zo3K ze7zNy8}GiupsF}mZPe`Byp=tJJ9q8`z?>M1x3~nkOhw*(;2<7%A(oQ}x+n;|HhKh+ z_R8f&E;l=~PvEab(f4HZNQ~#c0o7H(7w+B9n!_iRLW`9oT>via+ktyW_r;*sAu9^s zJai=hvZAnh*AeD!*u~;4`*C_|iro2~#iRurc=w8`s!Xg4H{$I0V5ARI=g%jDu z^_~~tM0PQS`K1JfSlPcPlRagGJv1PdxbUv*O<#c77(z^FM-FGL;*WjP=-%oEro6QP zonGRi%PK2P(pp5-An2v;JoaZSBD-KGdYy%yt#86?3?wo-h&3zrl9&>KJy83u3>)2< zPiFj%FF;>wIjlV-5x>vN#n(K~Z8whPvJ1L$^Ob#(Wd%tRdF}DB-1_L(WMv*@--a2K z7G=_<|3vnk2;tkGH_@g=G_6vj=+QZu9-XyH2t`p@KcEFYdi3CfwqaZ~xEn9cm`{39 zO~U%aBUfWK>XBuce*OCK@ZGmDfBt+5_ix2uv60xh4~Kmg_8qT$4FnZLU!@=V@PugI zTCKGoc(aZ(`|=CPl=M9C)BFbCtAyY{`lqGPKP{Pa65}vP5)O}tai4udzO!MQg2dn; z#&&GWm=0|SwQ2-r(cS}myLo%P`$?rDHoJl0Et+$2S{u4YRoW^}{Ox;=m!6)!%Cq?Q z!D_XzZ_{clW;1%dzRvA*XuiRIvG#2YI*}-wo=iv0=d9hRqjiKGk6$L&>E%SJ7q`Fm zF~OpjXclU#)`KdbmAIEft!3J-hQ`71JqW5oT6_#!zI~5J-~F7ozn;TOpUvd_KHYfc z)~jikmV_Yth*5G`_tiUmId>sn%~?RZmd&{R+VS)sIEY@|HPUqCm^SvbYtyRE*9Bnr zzWroo=a8A5!xJyO#0RgxTy6d0Wh<~+EQE)L(Xv?@3zjSc;K#Z1c>KY8o2(}PPeM4! zM_X|^2(cL1awLlar`FC;nw3{;)s8C5cuSmkOR6MH1c89WD6G+EZvXlN7xZDv(M&FW zZ8}?Dx}66v=*y^=zvO{$7xKzw=QZjWilVY+|1qxpU=~@0C0shBFCRUAN5y(ol)&By zfjxs6H6)hqJ$o{H&fEq!|7QL&ZlC-GNJbD0C@5hKnXseQQ&`Qe7$$2>9hZ0xJ;KxYxW`07j8>){T*ddt8ZWG-6C^GebpfMBj$-ZFwLJ3Zqbz>* zYjgn?Y@JgGJHIQIM zP7)!}g$5J*^8aw}Ie;!aj20c*G5^(%Fo+U9pN|he{E*A8xPqnmnLN2>5hV@>a$zx| z)r@4dq7*2I-pa`LZGC#sE4g|GCg15IHZXuNn}zI>x|_!%?KWP&XarJ~zIsJfNeT(3 zUs@7B@7PmqdsPpnSR*eCAHu*6l_EfrC~_z}pYMO)%C8&ul3QF)!@8#wZ($DOh7YW^ zcB zA9E;cCC%f`X0gxn-w4`v_w1}Zq`&hcQh$pIS(sB6kVSfAQBj$eh z9nXC@jRl8FC~#B~-z|rZ6Joc}JT{y!zx1|0H#fw#+6rI$x~l`%|>%zgW3#MgP!Ypbmh`c?JCHJtSH<$YcBh9 z>#wc}G#Pp6f?*73R$Vbauhhw-ztmoqTowIOlX>If^J|pRf4pryi;n&O_4z&v4S@jx z4Q~YKR2e^YlX#m^B1}=qb=E%48+8(~0cK(Y%#?WiIJ|yzqEPlDq7yX_^^<*+ZAP&g zVV7$WtV3r&4NroiEbutd=_Fpfb0Ux5bOo~(t>W?bzNGVIx6vXoj?0JlD0b0M~hj87;q06fI7&;2jgIxS_o8?R>82-iFS}F?H^% zsw$6vw}@|6ZzH?NfliY6@XBaw6g{P&H)9mN zbWDuoxydhc_ieWj7aPs{Q>NAsUeqZ*Y;tLJrF9h^eE5GD3N@Ot6Cdwi#+uy5O<;|pjxlBG)UlReGF^py zd!%t?@#Qc}+QUf@1bX!7!MypuGV-&>*s@?H1&g;*xO6+BQIArd4VFa0$DfC7U_WHP zM3lqFZ@>KpQ0*Zp1qBd%#f4Zpx2<+QDJTGIcTH{f+1^7i>9q5!l1RXy-dwb3Cg~0> ziz^xph>?{MUSF_`zCcrp?vs+pE$3>P*sS6b=I-3X&pY<8BdcLyJ-sCH_Lz|s8NrRm zjx%r9Ugq!KTPLaS92di@qlXh4SaV`&((72h{ZPH+JlJOD!gj&j{jp59Zr!S_YtbwU zRo}QtQ|o3?+;(+;K#P#?J($f;3%9a#_1+3%KCo8{&g;{PDKl1b;7BeA0=_^4KARpx zk(bWRV`mkkM2YB*l{cR~L4jyT6-y*k%$9`GJx7S=oOqI|4BXbv!SK4s<&awlC zd3EVZ9v@N}jM|iQoXH!OHR8(8;w&^YW&{s5>oDs@a!P%8>Ji4Y8+F)?4S#b2jS^wj z>f8CtywGbrrOkF!vmInVs;d~mRg75>x$^vhj2k|XpMT%TufK2Lg{j~1jVuJ&S3eujvrjP(ikJk)v z>ntV=b_)i(1-;#j&Q$yJ_Dn=})^pW}{#-UFylli%7(!DE!y@UJPbhp^DD&@SFB#kfIel`a;l1udrZ@Qh)6;w!HwfC zAUiXYmtTAykK4nO&%FSuiim8JWkp1BIg5Lvv zFM{8v1xHjBP%C|BD>zHlz(SR6PUbX%00`QHNsvHqMAaFzwgsILbcR|h3;#dhEI~g5 z;qZBRXl28tpH-o#Dnn;|%I<>Ndv7IO{TXl-6_@PAC3}HWko-pTE#H)Xgb(*FY4kqB zV%igIs4NAFHV5%$w=22-k8jxDNJaT_f?kfd_WVXpl#b{L{fWAwFU~y~lx#VKB{dpr z>v*!iS;>hn<|8;u=s4j5`gZQZ+i$;3K|ulAoJB0o%|I|3$p366x$k{R+}lqfnoTv% zJ1V6mePWX+^0@hY=O28w^AGae4NUw6jie{|?L0E1Ki_QH#?L!;v*Bn)lZ@&9H@GhV zFDzKbueGo3U_EPHc5^OVb^h9B;`=>;O zaNn?w^zPabgTa8`9?8s=TgfUY;dp*ASp_9z>D>5DpmRfFYzX(>IGCy5tg5Cw9$+)^ z^t~5w@aPE^tk}(>-**!fV6Nta4lw?rb7+wg$+tgmtbQSqfH%ZQx8ZHL_pWJd`~AQv zmv-&jd7LHlx8riwY+{ZIX-lEw7`u+nCAVlFiYim$I9jn@RpGT~exjf#mxW7bvSjlo zsH#k$HI8;EW3U)&S00uPBF7XDcTS$gMZ-FA%Y?p|jCw8_+ObZ84v^4#7&}&eNXGuP zy!WM^mFxG@sck&%TgLM9&p$J1(j?w_=N*==*~gQw|6FT(f!_$SS)fH+IA1N@M1jN2 zs5_qI_~C;DHtWEaIn(%R&H~ozt5-JYM3Lip#a#0I7wpf}veq%fuV>Hn$rK;lPH>AZ zwO(^oy#rhO&J?a%PR6lgm=cokWM&|xHm~8TP#gY8KhFEVujQ()o%nIvPQKc>rNMp5 zQR?;K_WMy(6;TlQcGET%?`ybqrW_fCC3s{%dQqap>*2N~KjBjvS50&lX8|;Na%s|u z#0O}WOu0@!4Ri?A3Q>Rvs~)?tmW-kxAS2anvn1)j7J_OE0aZm+6?CG+=;RKJzH%Zj zzF5S zyz@TpdgxK+e)m=F=PpN44q{=M9!5zXLP;K~qytM3sy!6+HOJvI9;F2cCynkO&isWL zD>w1zMg1$5>1}32gAP?zFa+8#1=%nL+mQ_a&g`fZ7=k`BmY2ql;IcQrX5cfQaL@S~ zVO_fO5H}63)Q|D`Wwxj1aQ|2HSbrb`gI>ptV}|qggOjwNO?`0WX`fv|s2&Y7n7~q9 zpf)}>hMO-N&ExNV!6k!x6B|*PJo$a|4ho7LES>Tay*sw9SS}W3p+LPP{pF`0r*E(B z$g;wi3(hArxfQ$i?5iZ`u3`j#S&$}kA8JH0I)j-f?z#!R?B<16Ug!DyZ^LG_)Oij7 zyF=fq0GKw1RwJyi1!$(?pWj7p z(LVA^jxc}1lNj^{+BYAHU7w1@RC~FiY!LAU>XFT5pCuJ$&D+HK&4+p9_ThAGpGbUk zFvl`$H%JePNFzA1CAsOFiAwIy+RcYqyZJBx26G_mwq`Kxhjnyp6VDyj4&aSX7FXL} z1w4V;L}$akbT;fOe@_A+p(A-7Fh(She_$>?MxN z5``mUf1LzfsPf1O>eZLRRm-*4@aSQVfBq5XlxD>gA7t%E z4NpWg2QX&jFrInwW!9|Uz~KIU>%Uh)VA6Hh@ZOY90eI!@_ju*)_jv22=eX(GtLoji z27Dd_N1jH?y)J~tJQw}}2&w|51<(Xe@L$1Mg8u&kDx&n)N1sal9!mX^v#AnCZ|=jnK>JkV zX9)y?UXiNxq&Eg0zuY8pUKeCDcvUbq;!wwOH6k0{sXtk3=b@@)gic(_VMQAmIs@kYtsQU%HZ=n~w7SE5FvcUsc2< zgc2DOM0RFjoh9-SK`rUj>h^KBhbED+Zz+oGN0hWjx2mcjNTeUn z;iKs*0WcZ$=yW3fDuPlzn}FJYWnEBOM~?sg6UUZ(OUV(<4#$;yoXBoNFxYEW1Q>(D z@i_|XJYLljcR^P(3*BjUobNS1~tW3Mb(+2A&{;aFi2URmZ~Zaz+5O);*9 zaH61;$5$=j_spXWZ+sSK7E~GW_-<6A1=Sh?)*wyY`ENzjYkYK~K$P7;xT50nDL8!! zr9K7!NojRS(6%+}MM5pQYCY$*!6)c3QnPgSRAIN-nDfn-EM2*ZbsPR*#;hNiRVKo< zdi_Rzoc-Wn=m_b3Me{wyw>bv?zRI2CdXh7 z4?3;q1kgvvBj~kxnJy$8i=&tqE+2wUC-L^Lt66s-omTh0NoHXQVRj2WnkDeuO_woZ z$Uw|SBVK>gpVPHLEXqdpd$kgHL7Qg<1q9GKHGx%Ic2*T59E0qTo~VpUk2R6u$XrB?q`V)=dPP>CGnZdX*1(Kf(Nw+;P`uU zFk4+HCvs>R7fb8V2s%ep@0ZGRJMk(qs$a&neGer|R&)H}$rR3*L&m+&l5zLbl&;yN z5vaOQR_-nv|G9^xYynT8=D*z-Sfdg_QOH<26UAS9)xcGQx}eiZe7$rt#rT_)K}t&s zr+dd_GO`L;wzl!!w=G-7(7bsxaV?|p1RL<1CDaCtIvK%m*!VtHU@D#cN+^=zsurHFOXfjAD>-^E5d{;#*8=ESSL9zhpebf z`(YhF{JOc`?LuSQA^W`?-@m+KnX4oRwurHZMhlK( z+UstMZ$a^)9UT1WL)4SXx)s@vr#KJER5!6M|4gZ>isyJbVZ$!~K+qd7H`6@m9XqyC zw61Yp?0*K?B@Q-a)NLhK9|T1>OV0nT5G9nbMAX12Fqq*l%o3@9jEGmz;}(sSie^eA z8(!hmN|aSqtL|1WbAnlU@^w^T}%c;|<^w^%Us>D3Po)oyeUp;mU=|6wMYmePcsbJuRsoxTP-W4Q`xCZYj1XF8+P+9=) zDx_Nw74>G4MBD*J=(Rb`&f>AgyM!Zf?Bm`4#48&T2OgtuP!|N z_NP2IWk%((&@%t~c4^|ap|$kbpNztyBATZr)3s9v0_=8Dk`igvqB$;?n|mL5f*rdW z;WMwQ2(IFP4LMgu3Dsb(2(bKr!r2V^{{t9|XI^PYj5&xfqm9c}yw3qg!wvLca#0D{FMWVNyLRRByeTs%nzImNvt$fOaUjdM_Z-Ca$94pZ89}cj`tds< z$PUFIx&E04kZcCG9*l(`mVH#(CPs1dh#oxu?P88siSpZG(+Ka_pWLl0D9t)dv$1y} zR>_Wr*ezVtvmK>wFJJ$@8Bd6a&!?gE|F z0sMA7etVg4pie>a$cP>V(Wf9NDuS$PdL?DY7aHNo8Wqxp?1CKxT4RY$H1W+(lUcWQ zJ&GbDNk$B1WtW}+5pQtqS&-!TP+Fx$^UIRj?Y(mH>emsl*dvHZ?ai^>3yDhUiB50E zRib@&jF#F5cfS$b!D6HPV09)79(O4LNo`0Tc^%H|BkcR`O^(d}l87#Yutdb+$T&d8 z@>zHaa)|0atj=SVTdbAt+D_*5PYJ)^609xTQo4IPu6>mg3CE5tg!CWWsO$SDpcwxD z^}hXQAc$Jl{4_y9Ko%rqL=-_p5hN5uWI@zy%uXQ^uBa+LS^M$IDqdMB`>obXmOZkH zN3NMsH|s?#dJ(f;thL--5hN5rqR!E=jIfEQ2&#gJQtfX^mC>nnv=r&|B&Ic|B;x?q z=w!xSb0crQ_aOjgv$^8@#X387*`bxYiy}X5I>04Y-w1&9B)yltM>FU){tiYD=t*#Z zolA%G<@?`1XW!8bmabeyT1pb#I(Oo;_us1L)%u5^GoS`XLvS>z&!hF%x=O(9;F(*l zV%NcAOnB)N9=diMPh2q^e?cya%c=GLHWhNschneQ#TZZ-M3uchd=3|?qF@RMY}DA- z7zic{#-!$mhB^d8MG+|=7;``{V+Qr+`$fMK8X3Vi%m3h+FMne9;dBH+AUZ6V!ZMLt z-DwJ1sDcPp1IdEO9hYCo=W`bF*t?%I^OZ*d_^t{Bprho5?$*QWh|D2m*1)uq^@6L{;ZSv>#hTO=hW(6d|D2964YF1Up4J9m?J zXg8tBEh#RkK4;jlX$x&y)g52}KoC&F5>WLDHQV&OuP_SYj`nXuE=XRxd-ctOz1%%yt z6^7(^ihlf!(v|BmcW6cU?blHF{XCqTcAy+PPQl8ua_usec-86BGA^Y~q(D3VKp9n1 z(K-H^hmfiRcPQvf!0Zuu;)?TV786Fdv^ZwxRktsTIrjnrQ`@os`?onV|4WjFU0q>E zH@<%-Oa>jFE!;q{Q)_on^a7p`0k2QR;84-IYA5QE;QqW4gw1cYRHENSrUxW!~@ky37<=Nk|KWwpGX%V95;MO16xcLwI_34Qv zv=s&3Ff8^6P8{3B-u2V51V-0-eR`e5JI`E(#bjX3ri0`cHa-Jnx0x6@s2yL=UQbN3 zejMMwlDv%VgvE7W?}o1d$j{n^^`vwA%mSXErjZ6up;l%ZkfezKia~Y09#_aFq3~OM)goXVQz9bs|Qc&|n#S`SU_S070x>Qm#yGT2f^sRY5>OR8<7D<>)0Q zzw#;%-ghr|-f|NFk3RGOsV!O&9~aBlUw+Q^ty{Qt;#G8M)0}%Ad5RugI`QJI<7t}` zPgws;0a*Oei*#&}!i9G~&7Q;QxV>IJo&8(2OWA+$Fr}rg8khK2Ler!c5NdUouLF9c zmQlBdfvOS~QOeSppL74ylbQV4ccjKgbIk>sKe*!cpt@Zs?ot$w8$py1^m+uHq3pLF z5Kzliv{eOFQIU)Dk@It@s}4dk=#fHBv*?^oUn@CR1yQS7@sw73ji$fwAU8exHs8!& zMyHmk^y}K5CvU!zeqGxU78J-O_dUzetP>53!!;HrTlMU#C}B1knKW)B54`>f`9&pc z+I@gU>oyY_XlK*z19WPcTI-=SvVZbqq9$_l@+J*?9E!8#tVk&$AzY&38-J z)3aL_zL@bHH(Y%sPddfssggCRTwF9nRT67snTBlThV?Cs#0@ZRYmucA&45mF8fhMNoy0(88oH#23iLG zzvAqx@*jsN$w<00F9VeAK7C?KM@lO**fyP!6k9my&V2H{O;@8A1c8M6FXHISKU6H6 ze*a4dItkTZIaMiLy9v+ULl~PUW9g)oKZ`a^fm0u=_0R?b88|&(E|af7IAV z)eCrn1-y0@y+cLs)FwB%1=@9vJHInJN#y%^oA7!YpFs!GR9{yl5Na zN1ww5=XKz-?;2m${mi|i=-NIJN2!}R3%3yvnnc#2HDn!Jg;JI^Il5yWCQC5k@tXag z*CyZ%XxaqF@2d3b%~(E*pyr*B3??Ev^~V$(!J(h0kiGsl0@FH@c;5JmpiFI01#lPT zaOBMw0SFyB5=&|`RKK6x-+o3eECQ#3MOo)P!R3SNKx+3>##vI?bT{p;n>i6DsrIzjVNmqY=n?3P7A z(0&7Anb*3u?xfd45KyQ;6MyN1Yxv`jO?)$b8UT*cQu?3M36t53+ocie8DCAKYv;}! zP0!%&TW_Z4kddgF`w0sQAh)m>yVZi-YGLt5+H=I`_p@sAP9mbCY2I@X?|w9uk3Rd7 zJ^K$Z>!-O~G-||Y5A^ww@QQ|tfQ=#uD3nztsVWk3MW8~fF7Q|PuC5J&pbG^l**0n3GV?#8uYcL`O1U2bebpb&r;nDcA(vgeu8{Xm1LJ(?@a}~fEto3T^ z^dS3COA8T73lY3dL{a49$M59h$M39hIET~4;`Lj&Z^D?OhNS-)iPx!n8e z$2|J(=X^X%)2+!XDq-M_53&1)k7~7b!(?yNvtjFw%6Zd$k37joZ@r2&xh-E$`;sfJ zo5c4&{mg+whne#BYm6V)@V!3x#526{-bVoJ-tap{qmf7MySoNKA2jL`+&M>^{v8lR z?ZH6ff;VSJ#J>ms|BCwmpFwXr^UB-nLy+D=&#*K?jSWXBYeUfarg&&N|U7uLINP+A89liN|aZxf2_=h8kMu$hg_UbCZKKXp|n z;0+RSMv8cC0xqu)yVc03!R>K-d=2(upN#VC`Kpt$=M6zF%i>B+jMVQrs42#_NYSFt z9%mtW8QX|V>{j1y{P62$WLaVK&<^Mt5fCWH`_q==mlbZmW&qI2@p z6Ep?&fY4-)?3jn5$an&pPR;?mRRrHuMW*OrWhuTbzBvI&ZHVc80f|E=)Jx6*WCOU4 zYQ3is7mg*QkLD%rD=a`R)&vKAC$h1mX_juD;~7o9-oFE?sGbdD|BIml9zl;&G~tk} z6zS~b>w+lM2T`K4Q>wG#mdtoX1G1>oGGvXI+{$I*ZAETBCrW)}6ni;T;9-Bhha-hv zGE02qI{g%TWITU@oGYqYmTgz?`W4)M8Mj}?D{EPJ!Rc zPfn?yEQgQG5+4~QK8_Vt-qWE1H%E&+WR`fzE%j04_T%))_4d7sIs*^9_!e{j*bhKS zp(dhPPR;==Rx9@45N3S&8Mj=24H&Hm5lJkW@)GmkdzOwZQmP$OuhY@5YkOM8Mj!yU z-EBunL7O*L3hqtZ~r5;SrSAn73>95uQb zN=!?Xz$jFyb|U!soQ0ISJX|?);OV=_lT`oJvhhATEQC9+xR8%${Yr3vjs9KR(IzDU zoh0(|=QC?PR1LCU2jr3HpB=I{lexolqA#hbHlU_p7-swSK#ay3j62 zE4kg;KzVz8I6t-ntpa1X_swTXe&SNXFX~aTF5!WT(1qC02N+4XsUM=gaxy2Hj99v~ zMKl=+GMe~m_&8dJMzHkQL2h33V>QKhfQUPx-Wmk`&6cF~dC(6cK70ta%N7C{$)XGffeL8s%*Wve-$7U8wmFCZ7zp%0#d9QJ?v z8nG1OmlZx+w4qVwQzZe99WwO=oZCAV0WHg1RMNC^#h#tZ2>ONtP1>)#$6ah<=9Ht@e&hY=K! zO1ply(xUr>ii~+cSTY`GAr6ZhpRM|1JMc-l_6+DcMrp*WP_xvwQOw)ow5MPeb_!1su=f z&qEbNN_DnM5-#XYIXey-VJ`N_WS9ELDfN+4>Zi~xUWR`fya=6KMc*u5m$SQGjyjWYGQS2hy;i1^$$FKY~pVx9y@9-)VxMgxm{bUsT zI9#X^_=EXwjud)GFY=OE;w9VR<4B>0QlEl7Fo=1Z5AneBuM-`g2!K5>hzFi}k>)L0 zGWPN-=r?i<{_^$#OCZg=_hUfMdU|s8hO#nTXxS`{y&G5Y&8Hvn(=YS6X#BM(f8urU z3lfF8K%A0A`@A$2f`BaQa7kv0bpaKGy-*iGfi94IT@VHOU<&lXTChkLfX5Qbq?>Q% z`B&d$+{By7b}6XQ%~7J7p;`h_Z6PSZF({F#C~<92vy)I0C`Z4S_EpQ>rGM7xaj_o^l0nnvm2Nul!j_zGMH|khhx9`MkGBM@t*GNrH zs#yN`b1zl=ElCpl4rmFAbcZZR@Oo2vY$0o>Ee5;Q$s zbk3TFLAIC_(#GD2Z}V?lI_4rSzu`7Agjj@n6gL&wPw~O+6zti6BYi)L-^-()!8=bz z(fs_I@f)p3p2nFI8T1le+b2@$^ssez)3UIqO3=MNnM23&XqFs-o?@~NttO%MP;~l+ zCqFZP*+jn{&AH_K&Ma8j2*uShd_Hpxy}P8)sck%C&+o#wKWoc<9tWaiAbrnbO;J72 zQe)q126ts>=N2@N4d;fpW|CW6ip^xe;r61cD$cCKAP5)&LP;5QBY8X5lD_yGe5FMk zTl6)q+zevQy^zF+V2g!0u!s^C{l7~PNmfCYYwthx_!aUM9nt5G;+cV?Dcrx6 z)@|Eiwb}V~&JTP#WeOKvGL90-Mxeh~D-So>P@|he?okAH^>Iu!m{B8AYKTUS9yy#F zubsfhpG~7vpTX$$IwVn|caL)zef}`|^y<;5;G(E1r*-0_3R)XQt*Fu}@X*uGlhU#c z&pr7VeTHAil($}`Z||O{;YoEKJ2NYrufChb%pd2ldE54iYKEbM2Jr0%Z(x?42%?0( zijAcz%P6i=6t`3R?Q)`eT(w%U)d^8T9~oDDnb!qA4>TqSAZVWAs@I9&)GDgpoc<#j zC-V5;b(b~%IvP3+Dx5g11rEyI1EEUmqaX-eJxZJJ_3hlYLf@cWv!se`RH*FNuIF=6 z;&8BT<0c}*!$?X<;Kae5j2w3*3zshE(2=9`8Ga$(e)civ4d~bC>pz;F!R6Q8%>ILi zSh;2$`GtjCJN_~P>~`LH<#~KQKR^94pC9MWtJtS~n^yH4@htvL_)ie@!-o%(oSa|<|n_9N^CefwPtxa3jZQjJrZ@xhv9YNGp6EWHAjwnak zZDf}?xT9}R(!xVow*L^{Z)uvyTBO~|0|U>+uP8h+cR}^ucTww2_ggd(xs%CrKvV*= zmM!I-S10rGE3Xic*oufQgK_6)Qm|(u?z}8i*^e^XT96 z9L5jq!Yy~)#fG_`ku>}oTm{GQWgaI!xgTOZ>Ybh1#A7z;S+Z(RHEXfPpghZRDq=Ky z4rY@S7tG!b-(j=_5tG)ZQTuJ$ag6;(PSB=#46U0*v2$PJqTRBr@a)_3_~hjY+%&!q zYd0O@a7I3Ah@FI?SK`jkBDi_y3V-yfcz5n95+i~c*ddLNZXd%9Z_VVoA?NVJ>g{ab zxr_bZzg@9ySckqubUhFFhL~QXKoB^-ayFKzL?#Zok(9^~o|?X(&P<)Rw2*_pPQ{ab zoX9bkf9V2_9eJIO&%Q=Ucm$yXhoUM9vfD-B>JV~ad$9nJIW;Bo%7Ru&R zv`V|VS2t#C+D4(PcE9`DpqNxt9lX_lByVk6#s0ser}H1ie{C!k0Hf*ywX##XHYN6o z{_`f1cR>&^NCE~4>dG6+ie{Ilk$1{U)3pGQs-pd^swilGE2_3$so3t!fXgT2^vUQ& z0lg%mmjrZmJUdlYrO4wa+u@T zjW3d3BjQEbP?W6&%8XXjh~zpIo!@@xd4>-j#I$c_lAD)DVtgDw{qigCems?HuDFzU zUU>n%zWzR25fxFDPgxM~R3QigmyW-Zp1sfI&RcF`*qF%EGN3QB=gw#DZwokl z^cXg)l~&E05g!}N_j7(mRaHg~J&zl%xsvF}NKWMDGU=WNdGD)l8Gha%)@|59fW^qg z{m#++uK~#xfK;XYT~!o~u$L4e7Z;$o>esK)M?{wi)m6EEfZ`mjyuFc7L*l^WWY@j} zJU3+qw~QM}tK_Ct4K@V9>w>&=?YdMIJhcn7UNO8s>DjqNh6Zu@u>RWh=?vO_^;HFw z;r%I}@z`^d0Wh0QeE;QCMvolM!lldk`Ma;U=i$e>@`hX4xo!oaAq`uq{WNbr*WY#z zL4g6RS@;VBFBroEk3G$?^bB5k_DRNFbRhr(`u4_bHnCvIGQRtKN`+g(S^WF)pCIVv zNKH-U$}6v|bzM|c)ZctHr;b2_i71PWEN9~~paxOGBm4P&!;pq#>#BEwlgo1n^w?CV`GXKuz;7GyP^XeL_2 z2sBvuBmXddwdtk(AqFegruM-r`+0NsZ*^{0?kDQaEI=P*MbfF*L!1bXV5SWjN87MS zR%RULh6O+1X@p(MZ5?{@ThKmw3?9kdoqKbnxPZ}frV(}E5GUUHjPy5NBksZbF&RQ@ z>>Fma@b;LIJilNW*Y)T^vD?j~ztrD5UK^emHVB*1$VaQzvn#vy>IGE?-e3^?pf3f< zr47pGcWXsLWGKVN-^k3J`5asF9s9q33j_gsLJO@dS`=~TW#P&>h9xSIq!HI*4vRq) z1fGB3Dv}~YNd0LQM?Zdnou58gaZZQhIB7k`V{i)ywS264o?`zwXcK49vQ|yS-hGw1%nL$?fN%<#_a-1keP_d9efkB`6pom;Q!$0K)*;ObXr z;1gAXg4&{{w5@YLzpU`Ur*nCE;`t0{pT@^`Tta}wM0|K4w;jvI7!-l0Fo(dDcI0kZ zjvxqFV^b+Qyo1!yw~)VcEip;~SM=*dc%YR4i-`w5{TYw1`gctBx;Zp&Dt<>1@i*Rq zF*cs#pKHQ4mS!!vp=Ve8io&}q)*y=_A$&PfqQ&h*hCw&t*DzH!@FD7@cx#yHCk2vi}7-{$bp>~!iZEE^@1}~#Nuq#+M&eHeYB^z7Rpc__F00z}%db|FeyuP4)Xq^G z6ji0z?WfS~qrm0EBiB5*0O+dtvzNb|s!ENLf3IIbF9`^OKu)Qb6Qy39UO#)bZy~+N zOJa}_L>*4mf>kLaQG$RP6r~ZQ(gKapH4so8F=P-UhEzURR8?i_j9J`r$6XxH%4W_t zUp9E}I@OQ&ZzkyFNJvWJyPxLr!qZRk!mDrc^oy?$7!bgP7hb^lD<_bbm(Q+UyZB@K zPHwyPR&KrJW`Y9)5mXgb5Ks_UzkN3kKlvOFKlxn6alifiV=f#q4AtvGaO6QrzLsI8 z%m&S3L$cV=N5-Q1e8?q*$R&lSii}YHnHMx=e_dD|+Bl_!P%aMF7)Uzub%Bh%|9O&P zB6;SPtNz@JR|kaB0#u^~Og4l%p5LM<^3cR_75}TY5Y*t9M%#N08$6K5o|}x-Vxev8 zmW;jXdOmpLB?LiW@v;@X{LJHYJa-VAwr*o^|9Vy$cO zIGtMS-}tfB`_^NkqRvcsm^D z^^2Z7(PI$fnzsX>b3_d94;syp;sT~@-@q?9>yT?VN~wTel!!6~@I?F30BkEb#g5%jzaEu_6k@xzJrCo3otBxPxx&^avH-eno z^ajQ?Z^xj7RFVRMDe}0P_}lm7yImM!qlmcsIx-)7m7+~+kb8N%8|OI5@w^Tb|VQc)C@HGdpx(mg}f68ENO(7*k9Dr=W~&E5Au$+`m#N7t)j!HQi> zn$VYly;|_@7fW$Cz36o!rOx`l=ZXklEZIoUUa53Wi{si6=P>j4ZCud3HJ>f4zwh5K zE8IVIF0WiSlK$;93zgRSPZTc85Hi_h#*Ob zvX}5c?LPapOX2-n$8hI|vng?T@Rb&my3i`zONhJa4vY~|I1lW@xqlB~!!KaS zW#hTI_c?$@nD6;B4_yENv@JL1k6f8=WY8SJ;(E?p3!zG!y=&I{U&n@Knr=MiU?me_=*`nTk^ok#E zBU{V<3g~n?9((#(Zo2h$_V3$Er!HOV&5WL$6MpRZm+9VT0E!B&+qUJN+ivEXNq4e$ z%X-3t0<=JfJsb)%D@x3(LeT5cg@mIE32)MM3#d?XLL;_~fWuMBr8nQriNa!5PJJ1x z`SkV3*SNO)<6x`IT&t2^Yo#z+wSa;sflzJ*CN|l3yM5c%%>UsV#$9~_1%*ZQ>fVj3 zZ@z=}ZCdl#vy&?VLq$b(I~Xlpwwx(bK4$*Pb#&|4p6@>Y7`{|67r`*|TTUty?$DW;2nIk=$^@4HOglS6g(p{rQ+9wN*oL|co9wG|R? zFQ8YXRtBEw*+sm)fLL20(bi(Z%_Z3MZbYH(34Mw!oQo5>Qs{LuW&g4|w>$dkY>L799d?6}qyTN;_-NZY4i^_z ztk*|{V>zcIj-{*dy7Tb`%cxaS$%C3}WXooRKY?$BYX5Yqd zS-a$G9(?d29=QK*0D=M5EF-z_1IpRT`>K8bO-Gc>IT$IfjOu3Lq_v?ghfwA(1CQkp)YTPLPo zelfw8hF^1&PKUQj=Fei#^Y)mL+}*!dof-!!DzZ)c9&E_29_(ut9LD#f#`A2i^RVj; z4W9r11J3lZ^mL<~#OqWUgX+hqdNC;;EQ%Y8;=-!9u*yzsvJ<;pid}XPAeRv6FCoZZ zOt8O*5PzZe<0~N8S3r=jfFNHXfxaRF{KeS)CD{B9EdEkVvKvY9H>yWi5(Uh9kwBA< zNSmJIU?VYhJvKw*r+O}*%+Vs(pY~@ja`{-bFPH5Z#pF4(;G@$kvpchd)qAsGr^teTh^xbgFZP@H~o|ybPet-SrvrhFPokA7f z=|)6kB)!h<)8w*cr!3IA&rn*PI}{}-mN65q!|8OAubL>9Y$%|4vWF+3M5dnJHVRis zqc+>NV;6l#T*$`FTlwybPiWSv;c@KGK?T{55*m*Z+X^+VwN}1v57m_3jaIFHzMQO| z0{WlZi(h7b#r}hbP*s(&qeroA=PpW1OBsE|)d0Nw)_XOa52k%HlZT#smdhsI%$iL* zn0Vn3X1;ho`m(vnu)zaxyFIMiP}9B^H0Aaq$F#BPj>` z7W{aic2DZ(*Da-QY!ZoO6GopRbELSC{e^iP^=5L!nM;V#R%cfGkNm^zC`_kKP#m(V zu%+NA%d_{gB4-Z=9661??mzO6FlPDN7)2fSMhIq|j0|T1ah4DOKHk5y+B!*)2{3pF zFu1W9Jm|#A2i&<~z1dp0jn)C0&{U>pHzB5)O5myrZdr%ZXQ0$)pxA3fR<#H5-K~Zq z2_hfvTSAGyW}m96s^tH+nWB}N5@*!-eq5S(4pHVnru3MIS!ZBF-XZST_$7i>g~Emh zR8bJPrge2C&-=Uf#cnY2;`(J3gQk5@FPv*PQL=ay!IzA{7ve`>sKX-a>6KL3?`6>G zXcivIJB`SK_ex6Of9LgM!?6s)ZC1Y9yp6R-nqGNub8jts{=u5{c)~#NfzGA<)K-#S z6&+Jz=#U)4-i#Bh+I6JHdR<`#sv={FtkTma2>7f5K8wmZy|v)P?;D$@-d>KTmbe$^ z9cJ&kuaNyNns>dF8*jOnsPF*Bp5K{{t>bv)<)0dLoV3Jn)^9n&l^1pA>M=c#B#{+s zt7mi-9r(-wezSn8tA2f@ZZC7z?POe^4)koLedd!QgE^dCw-UP7FZ1@Cl{h_KF7MkB zgI;^|cSw$5K>JjdY&}5As2e%_%cm3_*h=#7Ybn^bnZkXWDu}@~55K?#mt93lR0zqD zA>1?RdNOzKM%3vEKmQ_vy7#VjPRU|L7Z`+d&rY^3_?6VRU!yoPgQ(Or>;VC+n=>1L z#Je6QbNZ(MIJR#gZsMeB$0>1pxO3KA!fjR}%6`IaR&G7FJ8v#qO^L@-=Y1P=5>wY~ zWX|^875j(Vth9@c;_m*vd3*V4d?#h%{ed#74uXs(I)=xvI`b%gML|{+{HlUqQ3y7g zxxHgA-rl^b!3wAUGS2j|^xpu1a!rpik+qYbn`Qqi2>1j&K2eWP(4#go`))NzSPc?> zMN^n4bfd&F`pySD`NGRI zOHF3^ydPzqCpK;qt*l?ap61OpyQAlxdyc__2a}nZNn+xkR}}VmJb3DvIM#;p zs9KK8!O$N*ZS;O!B4e4cXDbJa^4VXQ$C2W~GGR59ph!o9RdfOZha9;~JG7crC-za~ zYnsi~$?zzCJg3mdp5fF8#*(aE?5ilPSBbKe5MinNKB7%gT-;_f!G<6leg~}rwDPsp zd26d}CkSBH`7!JKgqoeCT2m?Z0%|aQB3f{?G>`9&tgrPPzPu9B-=2#hI+(NRw=M_&mm+zNWNMRQvE${ z>|XN)_K*a|On8>JpS!-ogZR#g1Nmji_FDI=4Q*P)aQ{u`0U$|QW-B5r09gmJNh9To zzV;8h*`ViVn!oyX7c$dU*ZE70g(+nOn~9#rfS@A&LUGjqJ_x z?FTW~gNg2WJ_mpL5Cnn5A>#>d-ibp$Pr(=zPElYIGnQ`#Kv87&?A}e{m@7!@Kaiuf zlD5AxR;w-J$20$)#p!oe15L7LL-V_wO zJ#0AE_;PgFBBPkK_qEXDX5xbHPwBk>cKlby(*F`fRE(+@qwGZm{DKZ|8DVb>fz*it zA!Z%HCQ0)^FSCcM^<08LsKr32#emBvlkM(5gJyDg>tEUziI2n4?PoTdT0XTN_C;*F=t{^fZg1DGE zda0=t7&Q2O_yoNsEO?S8!I^54W73J(3?dG%_Wm9{u%Fg#+f}T0i$+X}yK-FCoBlLG zR|P>+oUbQ2qpB*m-18t)r+v+Rx8K6!58i{(Xhb-1xS}8al+G>bG?n(U9(fQzr$@Dg zfXV*1zfVI44dC)iF6N7`zh&K$`8;&b9b7-@cBXwloAKku5FHs=vF(oCdjQDVvz3tI zBh{S-L~VZe(=YQY7LB=bV&(cZ>ni@d>DsIC`YID27W@}nI-aiIK zuKZDzir3-)8~#&wec-?Wo_gx3TG!oq=ba22HjE#C{IOzUQ9hvn(ChU)_uO;z>C-qh z=7#XX3oq1pEvFkRG7hsM<8Y1Tl1^#VbLoVqgh#jh^Api>f?i%?E})PQP)Lxm{>iz+ z?;zBuW!`N%8#kt0&*R%0e(hTXG^clHPvo*l{q!Rfx7YvD1>b`O4^gzT$(;&fdbjiCA!g^#wao6xh@8nEAO+enwP{Y+^*18RG79kY{3U#|XmMUxj^)46QAVB5C*hQ zB{RR6`5X7tICk5_C=M)~Puq6w$tbO!NeK_M^2uFev6+k%mbx$m8EMx$i4EJ2a_xYw zm=KvYZ!;y1+CMk@4(IUt<72T|HG+QQ6@A#W<5->K+)7C z@@U(lvd=EBpz)duvwzz{Qd}rw&#$bW2#ycH718h{+vW9f|J0wken@w29oeg5`M?eh z6ZCRq7L@SVwE29wWFvQsI+t_XBs21y*34eB16y1(Z1F8PJnu7_jlGM2q}CV$!|)WI zKyTIBR%8Qs?GlpBPQlSbwUToH*WrVpD8x*h#PO-`*H|CayFa0Wh9Za}hOltlM@uor z##6d)Hz$7n0e?{es^5=3EP|Nv*J22dtmQ1H4~kyFZ$ImM4*#LCRQ4le?bE72R8^bo zm6P}K$-E$HJ*Prh->IZS6(wy_DCx?U=_~&}10bLgPrd2~#f2XUuc*f>8X6?)f*@cs zNZ1S#UcW-2N2bIh*ICkT)=MM>TSy2rQ{?gE_RF|@GH$YihPj5DF+reYcP3E!ZCeyZcOGXVF z!WHAj)Y;oBpk?B#Isw#%`d$UK%2kx>52%7r<{nT^{I%bI#s;t|LM=KRUM~f?IqcrC zje8z^xbk`g5wD=v91cJu)vmgGqZ@)M>QF;swQPJ9C(i zs@D4R#v5+{uw}~@fLbRHJ$v>1?a@; zq_AksUJwOzHWQ&n8&@V*lB0Z2DKGB$nTwXa#nwVCJ17WX4Rj&YQRm$%B%Gcx3GB?v z;liK3Wb%gPbt=A_nx_!^$|Ho`G#&tR*Y?{$gHISMn_yM8)GYbY(cU4ba-Xx}=n8aW5ZD`>c4 zBsA2@E~tqzVmR!x~R~`PcT#!KAyjpJ3pL_!=+7R+a^X48Dwi<&+6El zk;`o#{K)lheMg@*$r$w#f+&)F{zUY)ATn2JX6rHMYIZIMfB6Kb-HRs#R6PXs>PzwZ z)f8{4DNyHkl#un!7Z~FbP+YZFuhaJAvx=V@gQI zmzzWJ=8gDE9h{i^1Bc&yk@QbLz_DX1Y6HEb)nB)|r_idX;tP^%FZK9;i2u%5sv>xt z2woS0&yC>sBFH}N$M4mad7TJu2ZE~@p|k*@_yl5M7Gi!n;)%nE*#{7h??ybf9pT7U zg!CNc;48)?yAc~vB5u%$ zL|C<6^(dPjtG@0jp(qLjoApH7O{9caX&qswb4(B&q5>N9ZP!a8ZQ=qcP2WdRZZ=WL z)kWIMGwAyAOuEvDY_6h!BM;mT?e9k5u?OxU@9=KMjvhr+LiH2Va}Pk(L%jlK@b#>j`WfQ(tEb=&dmGAq>@dt0j?L7^ZA5?-6_w` z?#}a^UpYsK>VT5a2_>ZmYFbaQMm5>aD;lZNIS2~cec+9EKj87_UgXy6uW2CX0G>*O zc3yK;(xb$tqjtzXBFQ;G*Unjd_U@akS-+8YKlli%q;SnS)7ZFq3opDjtA0KjF?28k z`u66mORuJ=tWldK25fTJ}58rr=>6cwh zT1qnCe7lgca_yLLF)@5O?^`zgv6Yp-ujRzEE}+kdaa?`VZEW1UCE}{1L#j?vWT+`c zDAEAK~i4L(L=p zl1|0q^x+QEkA7aaemwpAQeIvETf{!^mVv!UoB0@mC^9G^g?_t>x%Z|SuzEG3)q*)I z3sGlAXLk@iax9W1d^yvYtOlRsobpPp{P;`ul(*c!+!&d$(cE#|n0gZapXDo2foO}F z)F>z0i%anYTaI+zIdKec{PsIj2X&{~=i}qG8&O4Qtlu}JOB%zvrgOt>cX83#rz6Mx zNaCR5>YqPwf_Q)N8aD1NWK6G2V(b=v+OUf<*$2+r#ipVn1waa@2r>w=%97PPnJ~J0 z{V@(C>;Uen0@g43H)eZ0-G-iDZ>3gRrhVQjsyswHwJM6n8FW?9ddL->(C}Li$sKK6 zd-fPsZqH@j=Iz|^);!*xaW+{=v2=)PeUYKpNt`;o7m3k!Uif+$082LQ=E7$`;`u91 zB0V9RaeX@1m!P)?t9R^U^^ScQYZuv~PEXQ^spNb+oAPa|arPQS2k9INzy1*K%a4P;Gv`7dVTb;#%xFJ{F{NYLREO$5a@yuSqjyHUb! z)Oyux{BpfuTU#*eC3+>=*-`4I!qDIpelRc=+k(dHCt)>5`Gk z&>@2nL>;4s59R!`PXE&~jtwpX0g$yIg^Y+-G7%6A?Jm`Jnk2eqXK~&|7xUz!4>4-Y zSbFv813*aB5t1cz$gP&8*FhB}ElX~RYI7WZL629`=EfSy#%s?!#sd#O%DHEp%D-;A zsp)HuKvb^&yQDLqnw{W?t1V?ea-af!(MU+pA*c#g#mmq^132@Plep*MCz$x|bNu_3 z%h_F2!EOKd0BhE7VD_soAc`WdKKmp?#~;rX5B{5Tjz5NIyN#aRyOENrm8W-1OXd2j zE~j(9}LL^!&3K(6>+6duS*WBD?=E z@(YXjW#Kmr>fbN2i=!wAl?C7`Yj-f_pNxMTL3cW}5|ZNL=Hh3vEK^oiMoLP`pFOO@ z4pEXZTK-xkAzP~Q5riOJq9P~f(3GHmTlgIn!OAxGi8I6!Wr(W(f1$64C$>ICc|aqo zlBkkotHEjXv8OT$b5;jj>-Lb=GnyHgo{kDvRlh453yMMD|)RnjYp0}TC zKKYsouMd+>$1$BdvAM9Ayvmlxl^Gj@P88{q5C_2IZrP+qN3pp;(+t>H(6TLGwAsX^ z!v-?EQyK=Hj<=h6DeuRl=}8(UvvAaU?S3V)rCs5cPbSMv^48r|UY zN-BAI?s5Q59HJ5KZ&n^4rYH)v<@OB|&QJNd1Vb`8ij89bTd(5Xy9;}-eh8w7W6)44S1hG;{#W(K5hMw;n}eb z_qNRxe)Kki!GJZp8?ob$$B@vp99|!*spOacxB%CdO?13w1^}v{YR(9Tql0X4|AdAUp;Nj~oVpRX0 zq$eft^P0`9-?1A-Re9&5Pk8zDxA^F-|B#t+=z0omK|vrSNXUW?S&#?`(n0mQ%Zf^+ zFGPh`#-bN_;L#`8ux=e^PMgZ7U(csUuU>#wW?$Mb=tBA{a|ZXrLBepO4pO zy~(h_19{`6=bG7?s!<)l=hBWZh+43~VA6tFIwR-}AQ|d2%10^$K(7P|NP5IZ-|=T2 zd4Q14o_2e92(}wjJUBw6{6AwQA3~#;v5oWUqZ>?s_f*%%f>Pb_YjPsK( zzu}nCBbhhnJ#;!9PdxB1eq6GQ?|)jtmviSc>+SbQPfg*>Q%>fdTW`YB$Sp+>1O^T0 z$Jg_}W8}mWnKOGPCr>%P?TaIdn)RN=skJkBst^u?DB<57|2Tr)x38w$xpe7L&N$^?&Dk^Lc#h z(^LhU6H|*mh-KS)TQe6|`c;U3E ze7|ic*M9maPjVY%C~jao_alsQP^X2BxL(*wl&K_wA1a z%rdeWj?2uXcSaJMbBp+K{Z0~xOhO3-$zS>v#;AB49lJMKzdi8b_xOS#92O&Edu3AP z_OWzx+n(rdUx2Oqis_w^L_tLjs?_w$;wjlj`L}KY# z-pbS=-6{5ZnyIZH2vyax)f4(>)2CAst9R^UUuhM$%=(7cu00KtUWYGCIe*>0OE&K2 zw2{3T-Ln((S8uIwqRwrr$&%_?$VdybR~uf&|8RmjLbA3~#Y z>p=cKym@;OtrmprXw?6{u@g$9?OzWBNztr|5Qv&jIcth z4!)2=nK$zH&KH!~TH=bxZ~ePBp2HR$$K_AHfyJ%`cx*=PyIEV^-ry163RI(|#jOMY zS2?&VQJslRv#m8{2<7{mmC^R?l1bk#+Wq3JbIt*Wc8^>6`&ur!=0?UGe=-l=eFwdJ zc4P2>=0Wd+MV;7RojSjKh-&eQs#4{XDffozH3i&3g&4DmkG}YdGf$ez#pj;IcT1KM z9UXJPNZN)_mWP_uRr_p5h?kywhN8kk7JTwvGja}q-h|pATN{C{{Z#@-5+oGtvJ0ir zr!yfwj&J6?$B5&mFzn3BdHscF5Cnm&P8s!WKzhBN@4omLB^Y4-$M2Aul*s(GyLjrw zR{(hM?%Q$L?M%PyVqTj0Mw4@%bLrK5`N3>%yYX5a4m$(;^~Gc~AnA0x@y-W~8$FVt zg9dQNy${vzvvb#Oo_}Q~mtJrVG11W+KjB!8pKvTsKKOqu`DF#)e7lgBXT8Y}i+|?( zujZh4#-UR~Y~8wr;X?-1i`Jca@s%w6at?$0_iIAr!$J@=-+7Y_qLWcWL9OpR;6n&_ zwSM%F|7eE25&m%m{p6ER#^G@A=9_PF-F4U1i`xW)LH_lxfBla~cX(iS_|fVATK(q$ z(MAsrL;J;HTp=xs{n@@R@JA>vQ&--e=h?@TTc4pi)UrrPmLr*^fF&cI?+PLpVylB7 zfHlfXb(xjku}N$xD~`CVy}dX#Et3+jhYeSrgFZQdss&4^T)G%bw{E1Ie-St$~UCyJFDm z`104y1S9lv-;`5G?~Ek&l{OESl&Evj^pogBy8KdxrdfG(6)MJ5ur zYDX>;`e!pZJFR}~zwg}7BOm`rVzix{;+9(te%i2;(?<5@nBG}U2s&sBvzO*BM{H$r z6O?5xn>d8BYB#ShT-iX%jf7302$Dp~g_l$M{d`L2e~Gb{px10zixLQ6PS2>{wvN05 zSiARbQXZ!?vLO?6y86CxB@jR|n~9rzVw3aQy7jF8JL~@*rDEAn)NELbrAv2e)~=%Z z_uoi7^=upihSYCoNJu0mA(5!zqsg23BKhymB5K5FDt}$ptOwpcU@*mBe@dVrpQJ}` zN1t$bO0oZG_)E;Ck{%_!PlFn8V`bnv;W*Srf7e2&|EJ*rq0!%>*igEDgb2sA1d-a; z8UgW9RFy(kWR-WSs#5F@kXPkx)wZoMf_@*09HK*3!+qRl(5{~@Lc2=rD2VET;P0eJm|XSnd3Gb0~s7$^vM zBy+7@UgVkKkfP!bDfmKaeI=P%`;Q8Ef^rjkwK|k}L!?B<@aFp;F>b^V-gxa*ZoTWC zhCoGxq)3oMP?o3phqv~*ul=lfyz|@mY22rBl_!GJ7mK&SQrA|ll zO1qjGZT*|oDT5~;ytm17QzuQR|9kqS7jXb;L6yG3>F1HuArX_&zynV_!_zOm!s;d8 z*Si_$bUMb59nJW$qq*puGZ}W=2~3=J7DGoL!)q_U*yPxHosQREe3psRwC{qaaBurs zL3DcU$LwfwwbXhsPo-8{Le;KnxN4ZcIsR4zy)|nXfcx*iAE(pF3opFD#TQ@9;K74A z`|PuEI-Sg&I~TLrOj1(Iwi|y1=uJUPf3ebb0G%k4Y&*EDvODA<*OSN6(qAIpr?V}K z9Ct2HZhNLliTr`+V#{Xopb5<8P4+$W1)X2I8p+nS$N7OU8zgQTIf_fVjNrL7%Xnd3 z+qPyYHV6A%k*k{uz=OjlkYaN%;^Ws4PCO3BZ@1hEWGYd?K;Ooq!VX5i@oIRjZbxi;mGU=50U_MamY= z10d~+>xdganZi%rr|gFX*!vG|)+Z+#j3k|P0sG!~h4P=ihXWQ2iD#ULZBTzo7SAJ4 zkWazCp29j}ATj4nLujFY{hx@x)m$nF?aKK5-Jpq-DJT($ER=de1S3d=mwN-`R(kP; zV}pPv5W=XFkPaZ-(TT};sw??<&Krz9>v9A^z;4jqn|gvS2z5*HmLX|X3PJ?R&O#`F zP@2=~HmWG0#&rxUI2IQh!xcgqFUv@FM`}VOXCzlaJ26Mq# zr!#CwOtbmzlJn1@w5*(Ag9mc#m{C0c>P#-Z;M|DLziQ1omi_u0iShB|{;`IK{&gpV z$4%njug>JDhwf{(egD3_`C!(ooO}6n)^2E;m>NCy7#@A}Q3iEM=i=!%0MK{jvD|Xq zbS^pn5WUw00R#z<{_(mnf2&!mHES54e!+3kMHk_8I(hivhk5($w{be1oOIGjJo)64 z^zVQ8%9s9Zh?0!ead3XY|7)b$s?doCH~Atc9lcoFjQsCC2s)AmJrGHPVK3{+@H;2OBW=H_hFCcnF zM8AN55K#u*qSuq;uoIAFuKVm8HWzBWr-^nO@ir?P3yKKJEoZMgHX`W%H~$Bg?QU2! z=|zzn$7ss<&;Ha9Xi@dxj|KCfei+v-qIAPj6!jb){`f~+J}onw9v?;D%w%$kE7-WV zaNj1HI# zI(&f!Vjq%Quc`=yWPbT$FBAHAVMv!WmNim=ZwabElT7*AqC$G4Cekl8iSM@VhLYg`L{6obYJbZC$r^8vwKx}Ei#He)gw@p!zv z`o?TP6W8>3eaw32eJ(ibbcPQd%z0;=ipgYRUw#28Nga6M$wvrCZcLJMZ8`wZ+|$4-&U_-?8xDyr>B#f zo68sTzr*cv5gijl|AB)L1c545Vbw2-IsT+m*|BRkSKoXaSKoXaoifr{_0xCQZS8ZG zIf|zETM+b&jEr_m|4*AXjcL=S{dWd*h!7A+w?~m%QyK9-l3vCZ<>l0l1DU&j9YLl2 z3hp8T%KyOPAjagzY4nj|PGP@y|3Mui))32$+1D|@U;!Jdv}j*}FFaW@h(?~>{%^c; zc>5=SWK$BicD)(1WahJdUr^q+iorJx<(CJSk}zQd;($JFj!7qoT;6#smvtVCUX=Ky zcn9~d|B{{iWm}Ku$f@b@w4g==yJ*Zx_f(5I$lG~^(eahh4?D=nzXU_qQdhPZX zF8i&sYGXCUg!kSqsV!+wh_c}iw(q;PdPg3|59&t$%oJ8^Z9TJdAb#4giwXU^a7^#4 z774l{)sk`}C6g->T?8E<_Si|h@_%=;e&GUM|NKi_UN3>-LKL45 zf4){3;LF*KFK0L9KP@C`_-HCuXjKlz)O7s&8a^}TPMwLLGL5qD=i}a{y>Dq(--IbO zz1ewfJv4oT^9S|ijk(|At3A%X|Ga>?Qx*v)oq=c1PD;N16n$Jg^5*rZp%BL8RH|41 zO2>gi$QXMJTgrUTIEFxaxKa_iX2zmmXo@sAB=`Uh59X#F({vvR5=?QQDaM+91>s!(fT{ zSowuTq@^C5@S%dxCOLNpWC~ru7Cq_f5C|y*6s^-)5VRRvRn@Rn3w7{@6ckluz@WjT zq^9xxf^WHSN^J|*A+%`-s)8B{(0HQJD?tLH0YMN*OYcaO<0w(9gD8ru{AmFT7cJ(? zc?;OEX)~&-vS$58WLai!jyAu&`|+o|`|+nd_{1~B$HlU7^A-TQW_M=Wj-B<#d+oU= zF>|`_QaaGW8I+q>O@U2o^xg75e`U-N^`JfSnY zzTL^b_m9bJMB_t^!0EO-$;TO{L$5L1 z$4xpN*NoDly3a3exlKX#xI^~ClX(d_xU40=L4y~jZ-RX=`EH->acYd1k(x_J*FSz&DNEFPKjBem;b6nz6J zZ%y=UU2X8AUrKVz8?}NmosmZ$eH3Zbu_W4Ue70r-J2!41P*Q~A_Ytb8!M$S(#>8Y? z+ZqBUjmbHHXf%@h($n?-7bFRN6Vaju#9A$Miizf)3CECET+A1frh=j(noN}aFrS=% zKVH9W`n9(pdpzX6@C2wTYAD2pm!Bo=e?N}QT(rnx)<<~aoMZXnlXn<+$6ZLGfG?!t4#-#y54)sxy@$`f`i8SlJLRBG;}cD-l5^x6z+0FP=$6+{LN z8pu;mJWfGjQGKuVQNYAwk744m$JGD7q_m6`t5%b@FCU-Z&+lv3v;4P}Tz27kJp9yi z_1iTj=K!6Z$Ji~)e zJOjY-6UOu92eWzWy^py1=Gz!DbQmjt`<33EJ2C5>_n30hGz3+_5voB#`@YADiD;R&`=`3HVtzF;y_){)A_pHNu?fxk^O3;r$*bPQb%kIgG>z22ftua~xL^~B8 z?tdDwMvW|F+dJ@M!5{4+%O|JyXHrrxF3B3rg}=l=LZ)MFr zrNco$rK6*QGt;Iqxx*xMqKHMi*D0KgzkfyWhO)fF323gwOx+GAn90Lwuk%H zf5ColL!YzWAY-=s@z!Vre^5dS?ofaNcMb1OI)fCOgE`wb^4O{+ZI9PzqSEhUT2>E? zl8z6zuE$?nx~+ynl+OGR-YrlJ@X#1}(Dy(laI1o0YflY>@&h``ZRXg$k7~G}(rPMWEKdX1{V_4U8x@UJ_ZBd~n@)n`aP)$tI440>K)u?lmiEXlrz9Oq*M^Z;mVsb_o=Iz3e#{CNMfBgPySoL>bM0`z-oV{Jo$cMAYvb2|+hUK+pp%^rZvrtMHQG zFyV|#Wbg^6v-FdteiUPKTCJdy=TRy3=)ume6!S-GH36AowNzC_5Cps-1#c)o zog7}O!$hi6)B6a>Dn=cQ9&-%Kmo3BR^IZp5@9LZ{?fXdEh9TBR(#cla8Mh_PI;WI2oJb<;uGs;j2Z<0Ql{_=ka)bjJx7a z0Pef$Jf@#9h1e(ulr{~B`-4FY(H&5ulj=X`y?S(~SC8)X+njUyG`|1oXZ9Bq@W5SK zJHjRBpG{eLIrlvDSp9aFUwA&>eL07*BZr3#kcpzmh@pe)3Ho)n-NoeNjwLZ6KFrof z(Hf3yW5ItY1VArJT-|4AD_f~p99}FAKQap6?%z=Vj9!$uzwb1p2-QJ#g2)xw$IvgP zBMBx4FAcc>yDoB354+C92cxFb(H6(^gU@3?Ok{qc$+jxuO(qgeiReU)EDehtN-syx zHuh|aulIjLKxvrVf=Uo~D6*(HK&G`505+YC+q=#n!IZ$SWhS~JC3FBG zv>6RtIbtv&Md5{?TNlo=_v(jacTl}{HHZ*&zzL&!05G>5;&64SC+J}^=m1G0rlJIV zxC@(Sxr=HEdSa9vrJa7B`%0_GFR!M1S^_pxWSI*Uko6F-!S}m%0dUN~&d6rkeHUM! zUw~1ktJfWf1QlK%d&?`C+&vori$Rae@5kGUIG$uSqmPOvrtd&*e*Y6b{`?E>x%E~i zb<3v5`InJ+>N%ubd{tO-?k_52=Y6-a(`UJa|h3zass;AV3W>f z$GvR}u8nK)>}*iBH>GtX{kmH@_WGNda^d+n91cc}8U?`Ry#|FHuQ975X)_-q`dlr* z;9C4E9UW0D%G0iQjLCv12%O!u?e>lXtT9%h&n%iM!~V-H8F+JM-+VSMtMakMgf8&e6#E0eI$} z&#()X<2!b?Yecz=8pRw;)T~{QCZ!Ppu6>kYxwnt`Mmhl zqf8nV4pmd+)+su!qcyjsyZhR;^ukm@dda3r7k10oc2DFMIdy{a+6Q zfHS-Frh}z@gmU7VSoSey8C~OB>K+n;y;-F3cPm(Rs#q=!sEmxH)&WC-U^b zv(ZK9$r*356OgsBm?Z-*4!(dsQLSeOodz#)W)FRwy+|=P?diHG<9zf&Ue)=u2gW+?7mKe7KG_h+h_epdFuo{ z96H*gh%%blTvnuwS@Re{HE0Arm4MI#W-uo}Qbm>CBe*Ngvrw_sWecXJEc5hP^1=nURI9c`kZ>Ws|K$6{# zZ$KAjJbXV@RaNy~-2)O*=pP?mVO$VJ>|=(K_WI+*Tyh58V-mQqd((UCnc02NwZj_e zpNb=CF8wDX67_b7EQ2lz0w!JSpM8HAcL`NdsVw!NC@P+S%-%9L(H&A4e)4&IJ^NKk ziyNx_$~>WZBBu%>H9A`pU+IRy9KOC*p@lMcRaJT5=@;0!dk^o;di9`6v|G!b`$G!* zYXV{Ctx8{zO+__$52#2ecLn%uR~gH;m$GV41sn3J*j`w}-ck?S3v2joS2-(oma?^= zn&N67ilUNJsS)2mtq^I>9<9o;iNKiDzA|@J)Svp#n9MjY@qKReC2iIy)|%4Uf)>N3zuZSn=qrxOG-Mk`=FH!6%vV zOC|!M5uaqDO7Emvvf&r>heyRJ6htV?L&)ETaDWhER%#Nbjvt96NmxuKu0Q)E#tv#8 zG*(rWdtZ5%J70JUfPF=!OrCxhnZqYC>6Eh=F<}ZyqxtfO#SLP_v)})y$+7zP?ah@J zU%=NNy~D;8i|Lrw^17uCI-QO!tCry_&TV4%b`+80=qlp~hEdWr%cAQHAsn$DbcTj6 z*6iKOn6&6=p4dE(Tz7-d=hfNc$gsw>d7f2eyLoQwcg)?ljxxVSJch<)abKU4BO0eu zZ(&Z(N|qIGr#k4xsx$KPkPGSV2;b*w(FI7eR|2rS>{ssI_oB)qK3-Xy3@QVa5$`u5b{Gk!1n%s18=1CFY^mPLOFLdgR$DG5OX!nG|KkU+ z@ab>qruXyekPEr1*NNyvk(ajpz(vbnXOF9OyE4!M>NgB%`u=)?K~Ct@wN*ds#)vjr z>a&Sy_9$MTa4IEv`zU(+RSc;~IF3K2#eJ{tGlc8<4x>kG0wG0VXJr{3?NJe(w+?;c zwf^(KZl`6pfO2m#op0sObFzmj^IPdNTe^;y3$`!*0F*YlMP-O** z&x^H3Zvuq{^Z;DRGZaTI?xBF&&jk{t)I8C&j*R8%#rz*$v=m#T6v#rw7Fc}}T^{0c9} zU3e{`PR9!m{i}Z4kfP#mWc8*95^}g?fzgT@fggHAP{PjvFaGBZo__A%+;ZpLbnkU= zl`{%ri`nyl9R7L%RCt471NFN~TzJBiy4#Em*T@%CD5&(Yd4DzDpiHGttJYIh*s*;Z zcilRJbI&-n!JAxFA>?m%%vNEKjo7}hLt+AoqBP6e)?xFOt=#?KBX~SsZu`HM-6IY+ zWF$gj`zr^+AtdT?>ugl&qNtIq_(UV2gQQqOMLvS7yxkfLyZ05cH(wL$ef-TiJoe_t zoIIo#PnKM3?y#>V z!nN#CG{;ebegvZ2=V5c1_9Z)~YaimxRuEJy4j=XyFQU}^rtJ>-`Ec*AoV@toT)*mF zel6LFQPOjNpJ}u;?Uo1J%-_GBf35$F<9>LOvzETXzqc-=gW1VtS!3E9@7jtSX6{_f zb*tWG?83)5WyuRX{l~XVNb1?FRNkx$(#ctd)W}jzMP+T}Iv(EgI1m5v7{6DnWpdIa zl1!2N=(<8K78HI5KxKse=aL}R2Lg&~CUB%>#mP_Hop>Le_9&IdbpEw{QOdmEBtHHqAo7Pa^ zYn|Nsa`xcgmrLTQ=b*D`UbUz6(JBMJXe5xL>LB0*ZzA}jwG6bun^5e%!8Q z(Z_em;;IpY>7Cr6&GWhg0dguTnO1w<%(dC;NC`T?+pE@6;?jtDq#5)&1QmtXep$(h zufNNN{6fy?(}VqQ&t&(*_mKDMbL780ll||!4nWd57ZEdV0;c3t%JfE-R%_=<88n17 zo&XgdFHfE{8Aq)TvUAWd0P{}c`zfo^vKi-g?c1)`eiTRXzd|GeaiIB-J56n8rK3zO&nYcUTVA*J zJ@tD-6y{c;$O_vEYbf&T=sk8a%f6qFzma1}WuS_OE~TWlAd)t3 z;SUTN(4U)cy&b*Uw&!{{=#X3N?Y0{wEc)>8Pny$&K1^9dR=l-c=NAQ`-eX=T3e0|e zCecw*y!z}D4dlsHhS1JdE!7zLI7~(@80&I3pEFcdNrlddOR}^tyB=ZSqYin6CFloDrR%iI>2}H$-1E}g-23Xg z^vg)%wM(XQ^@Jfr2iy$FPDfX(sQ&(=w<89;2%buW>Jns66XmPE+L9O9QB%ap2b90Jwg0y20^ZuSlq-IHix2kx+M?}NOZ)F}mGITRHN3Fxdul=r zi+`gOB-2^es^9qz*G^v8@e=oLdVox8M#Sd@SWvJKSI8A{iF;l4ybd~1$9d^z)79QG zNww;%+?ahm6UR?v$dDmiKmB@ce(pBTUHS^!s@q3WFKrb3DEGU$_2>DV`px@nDr?=Y ztTCb+We{Fo|100;?nJ1)0gJZQvkQgphRm=*l2BBYxBplZ@wuT<2ECmGJ=tpK{OUX={JJ0GC^kuwS~`yd*?Ppvl&aR7+HeN%E(UX6xFy`u~#FzMxBJYmUJV4V$?Fw zzIgD)X_@JO4U$rvNM;FRt&00;qk7XNC9YYLL#?$c40)So(Cr41-s*lHy7wMNj~-3G zspkXW+OMgrs(>PDJ>wyx79s)I@3oE;g)fuBFdlxyz%R5ifUZ-|9AQQ5evluc!MEcUZ$z=w&>KjYb|&81AdERP8&g_S9gDg$_F!rT56u68QU9LFU2_*QqO;~vFGvzm zBed^R!3S>=G&au$RrtN!v}7I^efJ4P9v2t)7#Q)G{ki$fx$6Padvs+}X%S;mJCSN@ z-tTu5M{%S1Rw~ zd+qnUach`C3A8*WogOtV?a<4LrSL%qy-r73auP;@hol&9P+BIx@z(IyTqlZjjBY-M z$JmTSSt8H+ih@vYy`~dk$xn+oe&TVOI2?egAXK%ly-fwphdx5cwZgR}rAyL?dpUjVhfZBBHLg@Ocb}(#k5P zT(4D_oj7(VS52G9le0eo;Id-|VlmboOC_*x4|A8U#9}fw`>vV{2Fj{xICIQE2K4F4 zx{aH-@s4{U9!I2j`h{0G{LCa(4U_uq5vwb%0ejHgNKmyPkf5m>uNrp%pU zj%IRlZ)8>Blbn^jyzNKIYC@=(2xq_65@Jl6I_vWM9G>}I^PE=YTK_RcZ8Zefn4p73 z@O^S*k?WqZ32Z4Zp;v4o)d4?ys@fN6y{Z35jFOI5*8f6?>^*eSBuXd#ZmkjP})&qsuKmGOcE8omRr1Zl8DV9;R;h`9WE*6bvIu_$RUON zoGOyiofMhknf}5@eD>rWTsiGHPCoAvZomBwGSajbIYV0n%IpAp9MrVz0MaH}$e;&n zGr1P|(8S9OY7jr+g?9~-NVHi;xwrY;8)q?4;`USJYx-PPf{itMD}~n89id>~n_n#8sz+V|VAXTC z(Iv);8VYgAfKHTDyBV0-RNqPQxOn;c^SR=gw-|Q8O(VhhApgrp<@+dc$GLq~mz?joHk&`(7p=x3taeRaND!_dcSqxb3#lzZ;Hb z(2r2)3?ZCxZoIl`p53yb-Q>J6{4MlX{aG+dA+n-M(MyN7lqej2C|blG_ue+QYn(k_ zTJj5bY`BMc1>d$v&H>I&KZBmm23rcnq;Sd8mvZIo>D1JevGcaK*?r%K$ey-)xh}~X z&E~58oV)Bb9^X8Vnvf5JIfO07iy%an4-f?br_n^AyN2t2`lh~LEx5l3U59uCUF#EQ zK_h~m@2cj*ZR;aCFTlM+$MeLf$yoIUHkB5VW{;vvbnAKtNme_OAdu;d;q>fYl>0o) zI?(4`)Ov@5v7uV4Hw~fcDhx4kI87!VKH)enAEsqL=l!vb6sMNSoX|B3lU_$|8)9>7 z^74tdTId)PRsYzEoLm$mgmfWF*DPk|e;%cD`S-+(pNy_cDuF1d@#Rysc{QfAj;vq5 zp7-8;2ZO;tidmaX<4-ybRif4SNFzH4>0I-t*W8dp?6XuYj3-jj?vMq z-Iw3=vbAFozN4g!eU)03N##MP<^~mo=a(#}Buu$tTabM|a$kH3wRYj_9Ma%1ud_Qa zXJn#tL^az_vRFwz?^4pH-;Cn-k@w286n^qPRlhC6oRNiOwV_HXx&avo20hjDe`<9c z?qGmt*DQ;OoC8R98&PMU2!OAmil=^G%4a)UUc9(}T}#n3GeQ3E-}8>5WvB>*A{0CQ zyFzK_GB1)WdP`;Q;WFrT#H#SNjOT-k3a~5+G4NyUk!G>kF2Ot41WSS2MDS`HdnW<0$P_n z-|5=L1DhXa)}A-p>{}ldH+_dgi-p+XsUw1zzzIQUc?wUx= znqBO?bvD8BmOZ&mqMp^|d$@S{EVflQtrE~1WbCnSL|xlABd5WHtSVfy=qt*68d*{m z1>dG^7*gBrNiOlak!#DFUs$)I-akDOl>0oK*`+rCLpr4K)9IHJY-9h)8C|%c-w0+5 z7=8%#Q`pEwMoO

Y} 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

^ZM6*S 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ⅅ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 z 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 literal 0 HcmV?d00001 diff --git a/doc/sphinx/source/recipes/index.rst b/doc/sphinx/source/recipes/index.rst index a579032c46..477c44c658 100644 --- a/doc/sphinx/source/recipes/index.rst +++ b/doc/sphinx/source/recipes/index.rst @@ -30,6 +30,7 @@ Atmosphere recipe_gier20bg recipe_heatwaves_coldwaves recipe_hyint + recipe_iht_toa recipe_impact recipe_modes_of_variability recipe_mpqb_xch4 diff --git a/doc/sphinx/source/recipes/recipe_iht_toa.rst b/doc/sphinx/source/recipes/recipe_iht_toa.rst new file mode 100644 index 0000000000..3f2e5be8ad --- /dev/null +++ b/doc/sphinx/source/recipes/recipe_iht_toa.rst @@ -0,0 +1,123 @@ +.. _recipes_iht_toa: + +Implied heat transport from Top of Atmosphere fluxes +==================================================== + +Overview +-------- + +This recipe calculates the implied horizontal heat transport (IHT) due to the +spatial anomalies of radiative fluxes at the top of the atmosphere (TOA). +The regional patterns of implied heat transport for different components of +the TOA fluxes are calculated by solving the Poisson equation with the flux +components as source terms. +It reproduces the plots in `Pearce and Bodas-Salcedo (2023)`_ when the input +data is CERES EBAF. + + +Available recipes and diagnostics +--------------------------------- + +Recipes are stored in esmvaltool/recipes/ + + * recipe_iht_toa.yml calculates the IHT maps for the following radiative fluxes: + + * Total net, SW net, LW net (Figure 2). + * Total CRE, SW CRE, LW CRE (Figure 4). + * All-sky and clear-sky reflected SW (Figure 5). + * The meridional heat transports (MHT) of the fluxes above (Figures 1 and 3). + +Diagnostics are stored in esmvaltool/diag_scripts/iht_toa/ + + * single_model_diagnostics.py: driver script that produces the plots. + * poisson_solver.py: solver that calculates the IHTs. + +.. _`Pearce and Bodas-Salcedo (2023)`: https://doi.org/10.1175/JCLI-D-22-0149.1 + +User settings in recipe +----------------------- + + +Variables +--------- + +* rlut (atmos, monthly, longitude latitude time) +* rlutcs (atmos, monthly, longitude latitude time) +* rsutcs (atmos, monthly, longitude latitude time) +* rsut (atmos, monthly, longitude latitude time) +* rsdt (atmos, monthly, longitude latitude time) + +Observations and reformat scripts +--------------------------------- + +* CERES-EBAF + +References +---------- + +* Pearce, F. A., and A. Bodas-Salcedo, 2023: Implied Heat Transport from CERES + Data: Direct Radiative Effect of Clouds on Regional Patterns and Hemispheric + Symmetry. J. Climate, 36, 4019–4030, doi: 10.1175/JCLI-D-22-0149.1. + +Example plots +------------- + +.. _fig_iht_toa_1: +.. figure:: /recipes/figures/iht_toa/figure1_CERES-EBAF_CERES-EBAF.png + :align: center + + The implied heat transport due to the total net flux (blue), split into + the contributions from the SW (orange) and LW (green). + +.. _fig_iht_toa_2: +.. figure:: /recipes/figures/iht_toa/figure2_CERES-EBAF_CERES-EBAF.png + :align: center + + The energy flux potentials for (a) TOT, (c) SW, and (e) LW fluxes, + alongside maps of the spatial anomalies of the fluxes [(b),(d),(f) + flux minus global average flux, respectively]. + The implied heat transport is calculated as the gradient of the energy + flux potential, shown by the white vector arrows for a subset of points + to give the overall transport pattern. + Heat is directed from the blue minima of the potential field to + yellow maxima, with the magnitude implied by the density of contours. + All maps of the same type share the same color bar at the bottom + of the column. + +.. _fig_iht_toa_3: +.. figure:: /recipes/figures/iht_toa/figure3_CERES-EBAF_CERES-EBAF.png + :align: center + + Direct radiative effects of clouds on the meridional heat transport. + (a) Contributions from TOT CRE (blue), SW CRE (orange), and LW CRE (green) + fluxes. (b) Contributions from all-sky and clear-sky OSR. + In (b), both curves have been multiplied by −1 such that positive heat + transport is northward. + +.. _fig_iht_toa_4: +.. figure:: /recipes/figures/iht_toa/figure4_CERES-EBAF_CERES-EBAF.png + :align: center + + As in Figure 2, but for the implied heat transport associated with + (a),(b) TOT CRE, (c),(d) SW CRE, and (e),(f) LW CRE fluxes. + +.. _fig_iht_toa_5: +.. figure:: /recipes/figures/iht_toa/figure5_CERES-EBAF_CERES-EBAF.png + :align: center + + As in Figure 2, but for (a), (b) clear-sky and (c), (d) all-sky reflected + SW flux. + +.. _fig_iht_toa_6: +.. figure:: /recipes/figures/iht_toa/figure6_CERES-EBAF_CERES-EBAF.png + :align: center + + A measure of the symmetry between heat transport in the Northern and + Southern Hemispheres, calculated for the 12-month running mean of TOT MHT + in the regions: (a) the full hemisphere, (b) from the equator to 30°, and + (c) 30° to 90°. + Symmetry values obtained when including (blue) and excluding (orange) + the effect of clouds. The climatological symmetry values for the two cases + are shown as the black lines in each subplot, dashed and dotted, + respectively. + The standard deviations of the time series are shown in each plot. diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 836e60a56e..9c1bde6058 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -539,8 +539,9 @@ def plot_symmetry_time_series(self): color=col[1]) axx.set_ylim(0, 0.8) axx.set_ylabel(r'$S$ (PW)') - axx.xaxis.set_major_locator(mdates.MonthLocator(bymonth=1)) + axx.xaxis.set_major_locator(mdates.YearLocator(3, month=1, day=1)) axx.xaxis.set_major_formatter(mdates.DateFormatter('%Y')) + axx.xaxis.set_minor_locator(mdates.YearLocator()) axx.set_title(label[i]) if i == 0: plt.legend(loc=5) diff --git a/esmvaltool/recipes/recipe_iht_toa.yml b/esmvaltool/recipes/recipe_iht_toa.yml index 0be79a2b2b..bb5f0ca652 100644 --- a/esmvaltool/recipes/recipe_iht_toa.yml +++ b/esmvaltool/recipes/recipe_iht_toa.yml @@ -8,16 +8,8 @@ documentation: Horizontal impied heat transport of the entire column derived from TOA radiative fluxes. -# The 'single_model' script focuses on a single simulation and produces a number -# of plots comparing the results of the Poisson solver output of different radiative -# fluxes. If multiple datasets are chosen, the plots will be produced for each -# dataset. - -# The 'multi-model' script directly compares the chosen models to the -# CERES-EBAF results for the same time period. Only one set of plots are produced -# regardless of the number of datasets. Requires the 'additional_datasets' field -# to be included and filled in with the CERES-EBAF details from obs4MIPS. - +# The 'single_model' script produces Figures 1 to 6 in Pearce and +# Bodas-Salcedo (2023) for each of the darasets chosen. authors: - pearce_francesca @@ -30,9 +22,9 @@ documentation: - pearce23jclim datasets: - # The CERES-EBAF observations reproduce the results of Pearce and Bodas-Salcedo (2023), - # but it can be applied to model data. - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2004} + # The CERES-EBAF observations reproduce the results of Pearce and + # Bodas-Salcedo (2023), but it can be applied to model data. + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2010} # - {dataset: BCC-ESM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} # - {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon} # - {dataset: UKESM1-0-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f4, grid: gn, mip: Amon} @@ -41,7 +33,8 @@ datasets: # - {dataset: MIROC6, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} preprocessors: - + # It is recommended to use a low resolution grid as the + # calculations are computationally expensive common_grid: regrid: target_grid: 5.0x5.0 @@ -49,28 +42,11 @@ preprocessors: climate_mean_global: regrid: - # Use the lowest resolution grid of your chosen data for the target 1.875x1.25 target_grid: 5.0x5.0 scheme: area_weighted climate_statistics: operator: mean - annual_filter: - regrid: - # It is recommended to use a low resolution grid, otherwise the process is - # very expensive computationally - target_grid: 5.0x5.0 - scheme: area_weighted - timeseries_filter: - window: 365 - span: 1850 - filter_type: lowpass # low-pass filter - filter_stats: mean -# rolling_window_statistics: -# coordinate: time -# operator: mean -# window_length: 12 - diagnostics: implied_heat_transport: @@ -86,93 +62,63 @@ diagnostics: short_name: rtnt mip: Amon preprocessor: climate_mean_global - start_year: 2001 - end_year: 2005 rtnt_monthly: derive: true short_name: rtnt mip: Amon preprocessor: common_grid - start_year: 2001 - end_year: 2005 rsnt: derive: true short_name: rsnt mip: Amon preprocessor: climate_mean_global - start_year: 2001 - end_year: 2005 rlut: short_name: rlut mip: Amon preprocessor: climate_mean_global - start_year: 2001 - end_year: 2005 rlutcs: short_name: rlutcs mip: Amon preprocessor: climate_mean_global - start_year: 2001 - end_year: 2005 rlutcs_monthly: short_name: rlutcs mip: Amon preprocessor: common_grid - start_year: 2001 - end_year: 2005 rsutcs: short_name: rsutcs mip: Amon preprocessor: climate_mean_global - start_year: 2001 - end_year: 2005 rsutcs_monthly: short_name: rsutcs mip: Amon preprocessor: common_grid - start_year: 2001 - end_year: 2005 rsut: short_name: rsut mip: Amon preprocessor: climate_mean_global - start_year: 2001 - end_year: 2005 rsdt: short_name: rsdt mip: Amon preprocessor: climate_mean_global - start_year: 2001 - end_year: 2005 rsdt_monthly: short_name: rsdt mip: Amon preprocessor: common_grid - start_year: 2001 - end_year: 2005 netcre: derive: true short_name: netcre mip: Amon preprocessor: climate_mean_global - start_year: 2001 - end_year: 2005 swcre: derive: true short_name: swcre mip: Amon preprocessor: climate_mean_global - start_year: 2001 - end_year: 2005 lwcre: derive: true short_name: lwcre mip: Amon preprocessor: climate_mean_global - start_year: 2001 - end_year: 2005 scripts: single_model: script: iht_toa/single_model_diagnostics.py -# multi_model: -# script: iht_toa/multi_model_diagnostics.py From f049b2a64266528267ed4f019ac4f1d774b18c67 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Tue, 23 May 2023 14:51:00 +0100 Subject: [PATCH 27/59] #2472: import jit. --- esmvaltool/diag_scripts/iht_toa/poisson_solver.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index 0fe964bad1..3e8ae011ac 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -15,10 +15,8 @@ """ import sys - import numpy as np - -# from numba import jit +from numba import jit def swap_bounds(fld): From cdb269e2ce1e3ba796940c9906521133d1e5d974 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Tue, 23 May 2023 15:08:32 +0100 Subject: [PATCH 28/59] #2472: add @jit decorator. --- esmvaltool/diag_scripts/iht_toa/poisson_solver.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index 3e8ae011ac..287711774a 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -46,6 +46,7 @@ def dot_prod(xxx, yyy): return (xxx[1:shp0 + 1, 1:shp1 + 1] * yyy[1:shp0 + 1, 1:shp1 + 1]).sum() +@jit def precon(xxx, m_matrix): """Preconditioner. @@ -59,7 +60,7 @@ def precon(xxx, m_matrix): return cxxx -# @jit +@jit def precon_a(xxx, m_w, m_s, m_p, cxxx): """First step of preconditioner.""" shp0, shp1 = np.array(cxxx.shape) - 2 @@ -70,7 +71,7 @@ def precon_a(xxx, m_w, m_s, m_p, cxxx): m_w[j, i] * cxxx[j, i - 1]) -# @jit +@jit def precon_b(m_e, m_n, cxxx): """Second step of preconditioner.""" shp0, shp1 = np.array(cxxx.shape) - 2 From 454dbb38a80bb29a89013120f79782fcc859437b Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Tue, 6 Jun 2023 13:58:03 +0100 Subject: [PATCH 29/59] Leave only one model dataset as example. --- esmvaltool/recipes/recipe_iht_toa.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/esmvaltool/recipes/recipe_iht_toa.yml b/esmvaltool/recipes/recipe_iht_toa.yml index bb5f0ca652..1f989a316a 100644 --- a/esmvaltool/recipes/recipe_iht_toa.yml +++ b/esmvaltool/recipes/recipe_iht_toa.yml @@ -25,12 +25,7 @@ datasets: # The CERES-EBAF observations reproduce the results of Pearce and # Bodas-Salcedo (2023), but it can be applied to model data. - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2010} - # - {dataset: BCC-ESM1, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - # - {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon} - # - {dataset: UKESM1-0-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f4, grid: gn, mip: Amon} - # - {dataset: MPI-ESM-1-2-HAM, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - # - {dataset: IPSL-CM6A-LR, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} - # - {dataset: MIROC6, project: CMIP6, exp: amip, ensemble: r1i1p1f1, grid: gn, mip: Amon} + # - {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon, start_year: 1990, end_year: 2005} preprocessors: # It is recommended to use a low resolution grid as the From dca370b8d0c772ee738f6cf134e063137da6f9c4 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Tue, 6 Jun 2023 14:50:14 +0100 Subject: [PATCH 30/59] Expand comments on preconditioning. --- esmvaltool/diag_scripts/iht_toa/poisson_solver.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index 287711774a..9bcad453ee 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -51,6 +51,8 @@ def precon(xxx, m_matrix): """Preconditioner. This is a wrapper to two steps that are optimised using jit. + It implements the preconditioning step of van der Vorst, H. A., 1992. + https://doi.org/10.1137/0913035. """ cxxx = np.zeros(np.array(xxx.shape)) precon_a(xxx, m_matrix[1], m_matrix[2], m_matrix[4], cxxx) @@ -183,6 +185,8 @@ def solve(self, max_iterations=1000): variant of bi-cg for the solution of nonsymmetric linear systems. SIAM Journal on Scientific and Statistical Computing, https://doi.org/10.1137/0913035. + This solver implements the preconditioned Bi-CGSTAB algorithm, + described in page 638 of that paper. """ bbb = np.zeros(np.array(self.source.shape) + 2) xxx = np.zeros(np.array(self.source.shape) + 2) From a53652adfe69d7cfa20ff79bb22fd2012e83c7da Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Tue, 6 Jun 2023 18:17:16 +0100 Subject: [PATCH 31/59] Remove implicit assumption of uniform grid for symmetry metric. --- .../iht_toa/single_model_diagnostics.py | 55 +++++++++---------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 9c1bde6058..ffb76fa1d9 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -75,6 +75,19 @@ def area_average(cube, latitude='latitude', longitude='longitude', mdtol=1): return cube_avg +def weight_zm(cube, latitude=None): + """Weight zonal-mean by normalised gridbox areas.""" + if cube.coord('latitude').bounds is None: + cube.coord('latitude').guess_bounds() + cube_areas = cube.copy() + cube_areas.data = iris.analysis.cartography.area_weights(cube, + normalize=True) + if latitude is not None: + cube = cube.intersection(latitude=latitude) + cube_areas = cube_areas.intersection(latitude=latitude) + return cube.data * cube_areas.data + + def var_name_constraint(var_name): """Shortcut to create constraint for variable name.""" return iris.Constraint(cube_func=lambda c: c.var_name == var_name) @@ -123,7 +136,7 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): return p_cube, mht_cube -def symmetry_metric(data, grid): +def symmetry_metric(cube): """Calculate symmetry metrics. A perfectly symmetrical latitude band gives S=0. As coded, the @@ -131,22 +144,16 @@ def symmetry_metric(data, grid): points to be multiple of 6, i.e. it needs 30 deg bands. It returns the metric for 3 regions: globe, tropics and extratropics. """ - nlat = data.shape[0] - if (nlat % 6) != 0: - logger.error("Grid not compatible with symmetry metric calculation.") - sys.exit(1) - - nlat_hem = nlat // 2 - nlat_trop = nlat_hem // 3 - nhm = data[nlat_hem:] - shm = data[:nlat_hem] - shm = shm[::-1] - - diff = np.abs((nhm + shm) * grid) - hem = np.sum(diff) - trop = np.sum(diff[:nlat_trop]) - extratrop = np.sum(diff[nlat_trop:nlat_hem]) - return hem, trop, extratrop + # Hemisphere + hem = np.abs(weight_zm(cube, latitude=(0, 90, False, False))[::-1] + + weight_zm(cube, latitude=(-90, 0, False, False))).sum() + # Tropics + tro = np.abs(weight_zm(cube, latitude=(0, 30, False, False))[::-1] + + weight_zm(cube, latitude=(-30, 0, False, False))).sum() + # Extra-tropics + etr = np.abs(weight_zm(cube, latitude=(30, 90, False, False))[::-1] + + weight_zm(cube, latitude=(-90, -30, False, False))).sum() + return hem, tro, etr def format_plot(axx, label, title): @@ -282,17 +289,6 @@ def mht_symmetry_metrics(self): Produce 12-month rolling means for all monthly time time series of MHT. """ - grid = iris.analysis.cartography.area_weights(self.flx_clim[0], - normalize=True) - # As coded, the calculation of the symmetry metrics needs the number of - # latitude points to be multiple of 6, i.e. it needs 30 deg bands. - if (grid.shape[0] % 6) != 0: - logger.error( - "Grid not compatible with symmetry metric calculation.") - sys.exit(1) - nlat_2 = grid.shape[0] // 2 - grid = np.sum(grid, axis=1)[nlat_2:] - for mht_series in self.mht_rolling_mean: time_coord = mht_series.coord('time') ntime = time_coord.shape[0] @@ -300,8 +296,7 @@ def mht_symmetry_metrics(self): trop = np.zeros(ntime) extratrop = np.zeros(ntime) for i in np.arange(ntime): - hem[i], trop[i], extratrop[i] = symmetry_metric( - mht_series.data[i], grid) + hem[i], trop[i], extratrop[i] = symmetry_metric(mht_series[i]) # Create the cubes for each metric long_name = f"symmetry_hemisphere_of_{mht_series.long_name}" var_name = f"s_hem_{mht_series.var_name}" From e1a3d9caf13e9384ffaf418cce0e36c75a45ec75 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Wed, 7 Jun 2023 15:26:42 +0100 Subject: [PATCH 32/59] #2472: style changes and dynamy references to figures in documentation. --- doc/sphinx/source/recipes/recipe_iht_toa.rst | 4 ++-- .../iht_toa/single_model_diagnostics.py | 17 +++++++++-------- esmvaltool/recipes/recipe_iht_toa.yml | 4 ++-- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/doc/sphinx/source/recipes/recipe_iht_toa.rst b/doc/sphinx/source/recipes/recipe_iht_toa.rst index 3f2e5be8ad..8ab6cbd761 100644 --- a/doc/sphinx/source/recipes/recipe_iht_toa.rst +++ b/doc/sphinx/source/recipes/recipe_iht_toa.rst @@ -98,14 +98,14 @@ Example plots .. figure:: /recipes/figures/iht_toa/figure4_CERES-EBAF_CERES-EBAF.png :align: center - As in Figure 2, but for the implied heat transport associated with + As in :numref:`fig_iht_toa_2`, but for the implied heat transport associated with (a),(b) TOT CRE, (c),(d) SW CRE, and (e),(f) LW CRE fluxes. .. _fig_iht_toa_5: .. figure:: /recipes/figures/iht_toa/figure5_CERES-EBAF_CERES-EBAF.png :align: center - As in Figure 2, but for (a), (b) clear-sky and (c), (d) all-sky reflected + As in :numref:`fig_iht_toa_2`, but for (a), (b) clear-sky and (c), (d) all-sky reflected SW flux. .. _fig_iht_toa_6: diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index ffb76fa1d9..6de9a28a51 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -7,7 +7,6 @@ import datetime import logging -import sys from copy import deepcopy from pathlib import Path @@ -145,14 +144,17 @@ def symmetry_metric(cube): the metric for 3 regions: globe, tropics and extratropics. """ # Hemisphere - hem = np.abs(weight_zm(cube, latitude=(0, 90, False, False))[::-1] + - weight_zm(cube, latitude=(-90, 0, False, False))).sum() + hem = np.abs( + weight_zm(cube, latitude=(0, 90, False, False))[::-1] + + weight_zm(cube, latitude=(-90, 0, False, False))).sum() # Tropics - tro = np.abs(weight_zm(cube, latitude=(0, 30, False, False))[::-1] + - weight_zm(cube, latitude=(-30, 0, False, False))).sum() + tro = np.abs( + weight_zm(cube, latitude=(0, 30, False, False))[::-1] + + weight_zm(cube, latitude=(-30, 0, False, False))).sum() # Extra-tropics - etr = np.abs(weight_zm(cube, latitude=(30, 90, False, False))[::-1] + - weight_zm(cube, latitude=(-90, -30, False, False))).sum() + etr = np.abs( + weight_zm(cube, latitude=(30, 90, False, False))[::-1] + + weight_zm(cube, latitude=(-90, -30, False, False))).sum() return hem, tro, etr @@ -168,7 +170,6 @@ def format_plot(axx, label, title): class ImpliedHeatTransport: """Class that solves IHT for a given dataset.""" - def __init__(self, flx_files): self.flx_files = flx_files diff --git a/esmvaltool/recipes/recipe_iht_toa.yml b/esmvaltool/recipes/recipe_iht_toa.yml index 1f989a316a..89439698db 100644 --- a/esmvaltool/recipes/recipe_iht_toa.yml +++ b/esmvaltool/recipes/recipe_iht_toa.yml @@ -5,11 +5,11 @@ documentation: title: Implied heat transport description: | - Horizontal impied heat transport of the entire column derived from + Horizontal implied heat transport of the entire column derived from TOA radiative fluxes. # The 'single_model' script produces Figures 1 to 6 in Pearce and -# Bodas-Salcedo (2023) for each of the darasets chosen. +# Bodas-Salcedo (2023) for each of the datasets chosen. authors: - pearce_francesca From 662244fbd2c788a4449fedcda5e005654ca955fe Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Wed, 7 Jun 2023 19:28:04 +0100 Subject: [PATCH 33/59] Fix style error. --- esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py | 1 + 1 file changed, 1 insertion(+) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 6de9a28a51..91d52e8943 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -170,6 +170,7 @@ def format_plot(axx, label, title): class ImpliedHeatTransport: """Class that solves IHT for a given dataset.""" + def __init__(self, flx_files): self.flx_files = flx_files From 449e2e9d7cc97ebdd5c9522d1e890fe438b82357 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Wed, 11 Oct 2023 11:32:59 +0100 Subject: [PATCH 34/59] #3177 review. Replace print statements by calls to logger. --- .../iht_toa/single_model_diagnostics.py | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 91d52e8943..ce2f9e3c98 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -263,27 +263,28 @@ def derived_fluxes(self): def print(self): """Print variable names of all cubes in the IHT object.""" logger.info("=== implied_heat_transport object ===") - print(self.mht_clim) + logger.info(self.mht_clim) + info_message = "Long name: %s; Variable: %s." for zzz in self.mht_clim: - print(zzz.long_name, zzz.var_name) + logger.info(info_message, zzz.long_name, zzz.var_name) - print(self.efp_clim) + logger.info(self.efp_clim) for zzz in self.efp_clim: - print(zzz.long_name, zzz.var_name) + logger.info(info_message, zzz.long_name, zzz.var_name) - print(self.flx_clim) + logger.info(self.flx_clim) for zzz in self.flx_clim: - print(zzz.long_name, zzz.var_name) + logger.info(info_message, zzz.long_name, zzz.var_name) - print(self.mht_rolling_mean) + logger.info(self.mht_rolling_mean) for zzz in self.mht_rolling_mean: - print(zzz.long_name, zzz.var_name) + logger.info(info_message, zzz.long_name, zzz.var_name) - print(self.symmetry_metric) + logger.info(self.symmetry_metric) for zzz in self.symmetry_metric: - print(zzz.long_name, zzz.var_name) + logger.info(info_message, zzz.long_name, zzz.var_name) - print(self.flx_files) + logger.info(self.flx_files) def mht_symmetry_metrics(self): """Calculate symmetry metrics. From 2f54ae3414db302910bfe195d4075d8f3526b9b4 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Wed, 11 Oct 2023 14:39:25 +0100 Subject: [PATCH 35/59] #3177 review. usReplace backlashes with implied line continuation inside parentheses. --- .../diag_scripts/iht_toa/poisson_solver.py | 46 +++++++++---------- .../iht_toa/single_model_diagnostics.py | 4 +- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index 9bcad453ee..e8a6433f1b 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -68,8 +68,8 @@ def precon_a(xxx, m_w, m_s, m_p, cxxx): shp0, shp1 = np.array(cxxx.shape) - 2 for j in range(1, shp0 + 1): for i in range(1, shp1 + 1): - cxxx[j, i] = m_p[j, i] * \ - (xxx[j, i] - m_s[j, i] * cxxx[j - 1, i] - + cxxx[j, i] = m_p[j, i] * (xxx[j, i] - + m_s[j, i] * cxxx[j - 1, i] - m_w[j, i] * cxxx[j, i - 1]) @@ -79,8 +79,8 @@ def precon_b(m_e, m_n, cxxx): shp0, shp1 = np.array(cxxx.shape) - 2 for j in range(shp0, 0, -1): for i in range(shp1, 0, -1): - cxxx[j, i] = cxxx[j, i] - m_e[j, i] * cxxx[j, i + 1] - \ - m_n[j, i] * cxxx[j + 1, i] + cxxx[j, i] = (cxxx[j, i] - m_e[j, i] * cxxx[j, i + 1] - + m_n[j, i] * cxxx[j + 1, i]) class SphericalPoisson: @@ -150,29 +150,29 @@ def set_matrices(self): for j in range(1, src_shape[0] + 1): for i in range(1, src_shape[1] + 1): - m_matrix[2, j, i] = a_matrix[2, j - 1, i - 1] / \ - (1.0 + alf * m_matrix[0, j - 1, i]) + m_matrix[2, j, i] = (a_matrix[2, j - 1, i - 1] / + (1.0 + alf * m_matrix[0, j - 1, i])) - m_matrix[1, j, i] = a_matrix[1, j - 1, i - 1] / \ - (1.0 + alf * m_matrix[3, j, i - 1]) + m_matrix[1, j, i] = (a_matrix[1, j - 1, i - 1] / + (1.0 + alf * m_matrix[3, j, i - 1])) - m_matrix[4, j, i] = a_matrix[4, j - 1, i - 1] - \ + m_matrix[4, j, i] = (a_matrix[4, j - 1, i - 1] - m_matrix[2, j, i] * (m_matrix[3, j - 1, i] - - alf * m_matrix[0, j - 1, i]) - \ + alf * m_matrix[0, j - 1, i]) - m_matrix[1, j, i] * (m_matrix[0, j, i - 1] - - alf * m_matrix[3, j, i - 1]) + alf * m_matrix[3, j, i - 1])) m_matrix[4, j, i] = 1.0 / m_matrix[4, j, i] - m_matrix[0, j, i] = (a_matrix[0, j - 1, i - 1] - + m_matrix[0, j, i] = ((a_matrix[0, j - 1, i - 1] - alf * m_matrix[2, j, i] * - m_matrix[0, j - 1, i]) * \ - m_matrix[4, j, i] + m_matrix[0, j - 1, i]) * + m_matrix[4, j, i]) - m_matrix[3, j, i] = (a_matrix[3, j - 1, i - 1] - + m_matrix[3, j, i] = ((a_matrix[3, j - 1, i - 1] - alf * m_matrix[1, j, i] * - m_matrix[3, j, i - 1]) * \ - m_matrix[4, j, i] + m_matrix[3, j, i - 1]) * + m_matrix[4, j, i]) self.a_matrix = a_matrix self.m_matrix = m_matrix @@ -275,11 +275,11 @@ def calc_ax(self, xxx): axxx = np.zeros(src_shape + 2) xxx = swap_bounds(xxx) shp0, shp1 = src_shape - axxx[1:shp0 + 1, 1:shp1 + 1] = \ - self.a_matrix[2, 0:shp0, 0:shp1] * xxx[0:shp0, 1:shp1 + 1] + \ - self.a_matrix[1, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 0:shp1] + \ - self.a_matrix[0, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 2:shp1 + 2] + \ - self.a_matrix[3, 0:shp0, 0:shp1] * xxx[2:shp0 + 2, 1:shp1 + 1] + \ - self.a_matrix[4, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 1:shp1 + 1] + axxx[1:shp0 + 1, 1:shp1 + 1] = ( + self.a_matrix[2, 0:shp0, 0:shp1] * xxx[0:shp0, 1:shp1 + 1] + + self.a_matrix[1, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 0:shp1] + + self.a_matrix[0, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 2:shp1 + 2] + + self.a_matrix[3, 0:shp0, 0:shp1] * xxx[2:shp0 + 2, 1:shp1 + 1] + + self.a_matrix[4, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 1:shp1 + 1]) axxx = swap_bounds(axxx) return axxx diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index ce2f9e3c98..2cb47ec7f2 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -254,8 +254,8 @@ def derived_fluxes(self): rsutcs_rolling_mean = cube.copy() if cube.var_name == "rlutcs": rlutcs_rolling_mean = cube.copy() - rtntcs_rolling_mean = rsdt_rolling_mean - rsutcs_rolling_mean - \ - rlutcs_rolling_mean + rtntcs_rolling_mean = (rsdt_rolling_mean - rsutcs_rolling_mean - + rlutcs_rolling_mean) rtntcs_rolling_mean.var_name = "rtntcs" rtntcs_rolling_mean.long_name = "radiative_flux_of_rtntcs" self.flx_rolling_mean.append(rtntcs_rolling_mean) From f4f8c5821f201241049508e130f5d358ea01e0ae Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Wed, 11 Oct 2023 16:52:47 +0100 Subject: [PATCH 36/59] #3177 review. Avoid touching cube data when possible. --- .../iht_toa/single_model_diagnostics.py | 46 ++++++++++--------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 2cb47ec7f2..7788263c94 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -115,24 +115,26 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): sphpo.calc_mht() logger.info("Ending spherical_poisson") - # Energy flux potential (P) - p_cube = flux_cube.copy() - p_cube.var_name = f"{flux_cube.var_name}_efp" - p_cube.long_name = f"energy_flux_potential_of_{flux_cube.var_name}" - p_cube.standard_name = None - p_cube.units = 'J s-1' - p_cube.data = sphpo.efp[1:-1, 1:-1] + # Energy flux potential + efp_cube = iris.cube.Cube(sphpo.efp[1:-1, 1:-1], + long_name=f"energy_flux_potential_of_{flux_cube.var_name}", + var_name=f"{flux_cube.var_name}_efp", units='J s-1', + dim_coords_and_dims=[(flux_cube.coords()[0], 0), + (flux_cube.coords()[1], 1)]) # MHT data cube - mht_cube = flux_cube.copy() - mht_cube = mht_cube.collapsed('longitude', iris.analysis.MEAN) - mht_cube.var_name = f"{flux_cube.var_name}_mht" - mht_cube.long_name = f"meridional_heat_transport_of_{flux_cube.var_name}" - mht_cube.standard_name = None - mht_cube.units = 'W' - mht_cube.data = sphpo.mht - - return p_cube, mht_cube + collapsed_longitude = iris.coords.AuxCoord(180.0, + bounds=(0.0, 360.0), + long_name='longitude', + standard_name='longitude', + units='degrees') + mht_cube = iris.cube.Cube(sphpo.mht, + long_name=f"meridional_heat_transport_of_{flux_cube.var_name}", + var_name=f"{flux_cube.var_name}_mht", units='W', + dim_coords_and_dims=[(flux_cube.coord('latitude'), 0)], + aux_coords_and_dims=[(flux_cube.coord('time'), None), + (collapsed_longitude, None)]) + return efp_cube, mht_cube def symmetry_metric(cube): @@ -232,7 +234,7 @@ def derived_fluxes(self): for cube in self.flx_clim: if cube.var_name == "rlut": dcube = cube.copy() - dcube.data = -dcube.data + dcube = -dcube dcube.var_name = "rlnt" dcube.long_name = "radiative_flux_of_rlnt" self.flx_clim.append(dcube) @@ -401,12 +403,14 @@ def quiver_maps_data(self, vnames, change_sign): """Obtain data for one row of plots.""" efp = self.efp_clim.extract_cube(var_name_constraint(vnames[0])) flx = self.flx_clim.extract_cube(var_name_constraint(vnames[1])) - efp.data -= np.average(efp.data) # Arbitrary choice of origin - flx.data -= area_average(flx).data + # The choice of origin for efp is arbitrary, + # we choose the unweighted mean. + efp = efp - efp.collapsed(efp.coords(), iris.analysis.MEAN) + flx = flx - area_average(flx) if change_sign[0]: - efp.data = -efp.data + efp = -efp if change_sign[1]: - flx.data = -flx.data + flx = -flx vvv, uuu = np.gradient(efp.data, 1e14, 1e14) uuu = uuu[1:-1, 1:-1] vvv = vvv[1:-1, 1:-1] From 40b6081da5dcb61fdd9d97618404a26fea5286fe Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Thu, 12 Oct 2023 20:30:24 +0100 Subject: [PATCH 37/59] #3177 review. Use of convert_units to avoid magic numbers --- .../diag_scripts/iht_toa/single_model_diagnostics.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 7788263c94..1234948c85 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -100,12 +100,11 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): flux_cube.coord(longitude).guess_bounds() # Remove average of flux field to account for storage term - data = flux_cube.data.copy() grid_areas = iris.analysis.cartography.area_weights(flux_cube) data_mean = flux_cube.collapsed(["longitude", "latitude"], iris.analysis.MEAN, weights=grid_areas).data - data -= data_mean + data = flux_cube.data - data_mean logger.info("Calling spherical_poisson") sphpo = SphericalPoisson(logger, @@ -336,8 +335,9 @@ def mht_plot(self, var_names, legend_label, ylim=(-10, 10)): plt.figure() for i, vname in enumerate(var_names): mht = self.mht_clim.extract_cube(var_name_constraint(vname)) + mht.convert_units('PW') plt.plot(mht.coord('latitude').points, - mht.data / 1e15, + mht.data, label=legend_label[i]) plt.hlines(0, -90, 90, color='k', linestyles=':') plt.vlines(0, -10, 10, color='k', linestyles=':') @@ -355,8 +355,9 @@ def cre_mht_plot(self, left, right, ylim=(-1.5, 1.5)): ax1 = plt.subplot(121) for i, vname in enumerate(left['vname']): mht = self.mht_clim.extract_cube(var_name_constraint(vname)) + mht.convert_units('PW') ax1.plot(mht.coord('latitude').points, - mht.data / 1e15, + mht.data, label=left['legend'][i]) ax1.axhline(0, color='k', ls=':') ax1.axvline(0, color='k', ls=':') @@ -375,8 +376,9 @@ def cre_mht_plot(self, left, right, ylim=(-1.5, 1.5)): col = ['C3', 'C7'] for i, vname in enumerate(right['vname']): mht = self.mht_clim.extract_cube(var_name_constraint(vname)) + mht.convert_units('PW') ax2.plot(mht.coord('latitude').points, - -mht.data / 1e15, + -mht.data, label=right['legend'][i], color=col[i]) ax2.axhline(0, color='k', ls=':') From 015eec3f08f21181fc8bec4f9d2739c6a5180b9a Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Thu, 12 Oct 2023 20:50:49 +0100 Subject: [PATCH 38/59] #3177 review. Avoid use of magic numbers. --- esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 1234948c85..e39c54962b 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -413,10 +413,10 @@ def quiver_maps_data(self, vnames, change_sign): efp = -efp if change_sign[1]: flx = -flx - vvv, uuu = np.gradient(efp.data, 1e14, 1e14) + efp.convert_units("PW") + vvv, uuu = np.gradient(efp.data) uuu = uuu[1:-1, 1:-1] vvv = vvv[1:-1, 1:-1] - efp.convert_units("PW") return {'efp': efp, 'flx': flx, 'uuu': uuu, 'vvv': vvv} def quiver_subplot(self, dargs, title, label, change_sign): From 000206c16e3a4efe1cbce571b6ce211c37781806 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 13 Oct 2023 09:00:42 +0100 Subject: [PATCH 39/59] #3177 review. Avoid more magic numbers. --- .../diag_scripts/iht_toa/single_model_diagnostics.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index e39c54962b..710391f207 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -94,6 +94,7 @@ def var_name_constraint(var_name): def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): """Top-level function that calls the Poisson solver for source cube.""" + earth_radius = 6371e3 # Earth's radius in m if flux_cube.coord(latitude).bounds is None: flux_cube.coord(latitude).guess_bounds() if flux_cube.coord(longitude).bounds is None: @@ -108,7 +109,7 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): logger.info("Calling spherical_poisson") sphpo = SphericalPoisson(logger, - source=data * (6371e3**2.0), + source=data * (earth_radius**2.0), tolerance=2.0e-4) sphpo.solve() sphpo.calc_mht() @@ -293,6 +294,7 @@ def mht_symmetry_metrics(self): Produce 12-month rolling means for all monthly time time series of MHT. """ + petaunit = 1.0e15 for mht_series in self.mht_rolling_mean: time_coord = mht_series.coord('time') ntime = time_coord.shape[0] @@ -304,21 +306,21 @@ def mht_symmetry_metrics(self): # Create the cubes for each metric long_name = f"symmetry_hemisphere_of_{mht_series.long_name}" var_name = f"s_hem_{mht_series.var_name}" - cube_h = iris.cube.Cube(hem / 1.0e15, + cube_h = iris.cube.Cube(hem / petaunit, long_name=long_name, var_name=var_name, units="PW", dim_coords_and_dims=[(time_coord, 0)]) long_name = f"symmetry_tropics_of_{mht_series.long_name}" var_name = f"s_tro_{mht_series.var_name}" - cube_t = iris.cube.Cube(trop / 1.0e15, + cube_t = iris.cube.Cube(trop / petaunit, long_name=long_name, var_name=var_name, units="PW", dim_coords_and_dims=[(time_coord, 0)]) long_name = f"symmetry_extratropics_of_{mht_series.long_name}" var_name = f"s_ext_{mht_series.var_name}" - cube_e = iris.cube.Cube(extratrop / 1.0e15, + cube_e = iris.cube.Cube(extratrop / petaunit, long_name=long_name, var_name=var_name, units="PW", From 9c64e8ed239d7fc98719a8739bc79ae29f321203 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 13 Oct 2023 10:58:09 +0100 Subject: [PATCH 40/59] #3177 review. Avoid .copy statements. --- .../iht_toa/single_model_diagnostics.py | 45 ++++++++----------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 710391f207..ce12e01bd4 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -16,6 +16,7 @@ import matplotlib.dates as mdates import matplotlib.pyplot as plt import numpy as np +from iris import NameConstraint from matplotlib import gridspec, rcParams from poisson_solver import SphericalPoisson @@ -78,9 +79,11 @@ def weight_zm(cube, latitude=None): """Weight zonal-mean by normalised gridbox areas.""" if cube.coord('latitude').bounds is None: cube.coord('latitude').guess_bounds() - cube_areas = cube.copy() - cube_areas.data = iris.analysis.cartography.area_weights(cube, - normalize=True) + areas_data = iris.analysis.cartography.area_weights(cube, normalize=True) + cube_areas = iris.cube.Cube(areas_data, + long_name="normalised_area", + var_name="area", units="1", + dim_coords_and_dims=[(cube.coords()[0], 0)]) if latitude is not None: cube = cube.intersection(latitude=latitude) cube_areas = cube_areas.intersection(latitude=latitude) @@ -227,37 +230,25 @@ def compute_efp_and_mht(self): def derived_fluxes(self): """Calculate derived radiative fluxes. + rlnt_clim: climatology net LW TOA rtntcs_clim: climatology of clear-sky net TOA rtntcs_rolling_mean: 12-month rolling mean of rtntcs """ - # Net LW (change sign to the upwelling flux) - for cube in self.flx_clim: - if cube.var_name == "rlut": - dcube = cube.copy() - dcube = -dcube - dcube.var_name = "rlnt" - dcube.long_name = "radiative_flux_of_rlnt" - self.flx_clim.append(dcube) - if cube.var_name == "rsdt": - rsdt_clim = cube.copy() - if cube.var_name == "rsutcs": - rsutcs_clim = cube.copy() - if cube.var_name == "rlutcs": - rlutcs_clim = cube.copy() - rtntcs_clim = rsdt_clim - rsutcs_clim - rlutcs_clim + # Derived TOA climatologies: rlnt_clim, rtntcs_clim + rlnt_clim = -self.flx_clim.extract_cube(NameConstraint(var_name="rlut")) + rlnt_clim.var_name = "rlnt" + rlnt_clim.long_name = "radiative_flux_of_rlnt" + self.flx_clim.append(rlnt_clim) + rtntcs_clim = (self.flx_clim.extract_cube(NameConstraint(var_name="rsdt")) - + self.flx_clim.extract_cube(NameConstraint(var_name="rsutcs")) - + self.flx_clim.extract_cube(NameConstraint(var_name="rlutcs"))) rtntcs_clim.var_name = "rtntcs" rtntcs_clim.long_name = "radiative_flux_of_rtntcs" self.flx_clim.append(rtntcs_clim) # Annual rolling means clear-sky net total TOA - for cube in self.flx_rolling_mean: - if cube.var_name == "rsdt": - rsdt_rolling_mean = cube.copy() - if cube.var_name == "rsutcs": - rsutcs_rolling_mean = cube.copy() - if cube.var_name == "rlutcs": - rlutcs_rolling_mean = cube.copy() - rtntcs_rolling_mean = (rsdt_rolling_mean - rsutcs_rolling_mean - - rlutcs_rolling_mean) + rtntcs_rolling_mean = (self.flx_rolling_mean.extract_cube(NameConstraint(var_name="rsdt")) - + self.flx_rolling_mean.extract_cube(NameConstraint(var_name="rsutcs")) - + self.flx_rolling_mean.extract_cube(NameConstraint(var_name="rlutcs"))) rtntcs_rolling_mean.var_name = "rtntcs" rtntcs_rolling_mean.long_name = "radiative_flux_of_rtntcs" self.flx_rolling_mean.append(rtntcs_rolling_mean) From c16c4b29a56b85730cee267629676e5494005e05 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 13 Oct 2023 11:07:35 +0100 Subject: [PATCH 41/59] #3177 review. Replace calls to var_name_constraint. --- .../iht_toa/single_model_diagnostics.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index ce12e01bd4..c2a266f106 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -90,11 +90,6 @@ def weight_zm(cube, latitude=None): return cube.data * cube_areas.data -def var_name_constraint(var_name): - """Shortcut to create constraint for variable name.""" - return iris.Constraint(cube_func=lambda c: c.var_name == var_name) - - def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): """Top-level function that calls the Poisson solver for source cube.""" earth_radius = 6371e3 # Earth's radius in m @@ -327,7 +322,7 @@ def mht_plot(self, var_names, legend_label, ylim=(-10, 10)): """ plt.figure() for i, vname in enumerate(var_names): - mht = self.mht_clim.extract_cube(var_name_constraint(vname)) + mht = self.mht_clim.extract_cube(NameConstraint(var_name=vname)) mht.convert_units('PW') plt.plot(mht.coord('latitude').points, mht.data, @@ -347,7 +342,7 @@ def cre_mht_plot(self, left, right, ylim=(-1.5, 1.5)): plt.figure(figsize=(11, 5)) ax1 = plt.subplot(121) for i, vname in enumerate(left['vname']): - mht = self.mht_clim.extract_cube(var_name_constraint(vname)) + mht = self.mht_clim.extract_cube(NameConstraint(var_name=vname)) mht.convert_units('PW') ax1.plot(mht.coord('latitude').points, mht.data, @@ -368,7 +363,7 @@ def cre_mht_plot(self, left, right, ylim=(-1.5, 1.5)): ax2 = plt.subplot(122) col = ['C3', 'C7'] for i, vname in enumerate(right['vname']): - mht = self.mht_clim.extract_cube(var_name_constraint(vname)) + mht = self.mht_clim.extract_cube(NameConstraint(var_name=vname)) mht.convert_units('PW') ax2.plot(mht.coord('latitude').points, -mht.data, @@ -396,8 +391,8 @@ def quiver_start(self, ntot, step): def quiver_maps_data(self, vnames, change_sign): """Obtain data for one row of plots.""" - efp = self.efp_clim.extract_cube(var_name_constraint(vnames[0])) - flx = self.flx_clim.extract_cube(var_name_constraint(vnames[1])) + efp = self.efp_clim.extract_cube(NameConstraint(var_name=vnames[0])) + flx = self.flx_clim.extract_cube(NameConstraint(var_name=vnames[1])) # The choice of origin for efp is arbitrary, # we choose the unweighted mean. efp = efp - efp.collapsed(efp.coords(), iris.analysis.MEAN) @@ -518,9 +513,9 @@ def plot_symmetry_time_series(self): plt.figure(figsize=(6, 12)) for i, var_name in enumerate(var_list): yy0 = self.symmetry_metric.extract_cube( - var_name_constraint(var_name[0])) + NameConstraint(var_name=var_name[0])) yy1 = self.symmetry_metric.extract_cube( - var_name_constraint(var_name[1])) + NameConstraint(var_name=var_name[1])) axx = plt.subplot(3, 1, i + 1) dtx = [ datetime.datetime.strptime(str(cell[0]), '%Y-%m-%d %H:%M:%S') From 278dad6736653ae724cbb00cf22b432fdc3941e3 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 13 Oct 2023 11:41:49 +0100 Subject: [PATCH 42/59] #3177 review. Fix some style errors. --- .../iht_toa/single_model_diagnostics.py | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index c2a266f106..bdacfc9e2c 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -127,7 +127,8 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): standard_name='longitude', units='degrees') mht_cube = iris.cube.Cube(sphpo.mht, - long_name=f"meridional_heat_transport_of_{flux_cube.var_name}", + long_name=f"meridional_heat_transport_of" + f"_{flux_cube.var_name}", var_name=f"{flux_cube.var_name}_mht", units='W', dim_coords_and_dims=[(flux_cube.coord('latitude'), 0)], aux_coords_and_dims=[(flux_cube.coord('time'), None), @@ -230,20 +231,27 @@ def derived_fluxes(self): rtntcs_rolling_mean: 12-month rolling mean of rtntcs """ # Derived TOA climatologies: rlnt_clim, rtntcs_clim - rlnt_clim = -self.flx_clim.extract_cube(NameConstraint(var_name="rlut")) + rlnt_clim = -self.flx_clim.extract_cube( + NameConstraint(var_name="rlut")) rlnt_clim.var_name = "rlnt" rlnt_clim.long_name = "radiative_flux_of_rlnt" self.flx_clim.append(rlnt_clim) - rtntcs_clim = (self.flx_clim.extract_cube(NameConstraint(var_name="rsdt")) - - self.flx_clim.extract_cube(NameConstraint(var_name="rsutcs")) - - self.flx_clim.extract_cube(NameConstraint(var_name="rlutcs"))) + rtntcs_clim = (self.flx_clim.extract_cube( + NameConstraint(var_name="rsdt")) - + self.flx_clim.extract_cube( + NameConstraint(var_name="rsutcs")) - + self.flx_clim.extract_cube( + NameConstraint(var_name="rlutcs"))) rtntcs_clim.var_name = "rtntcs" rtntcs_clim.long_name = "radiative_flux_of_rtntcs" self.flx_clim.append(rtntcs_clim) # Annual rolling means clear-sky net total TOA - rtntcs_rolling_mean = (self.flx_rolling_mean.extract_cube(NameConstraint(var_name="rsdt")) - - self.flx_rolling_mean.extract_cube(NameConstraint(var_name="rsutcs")) - - self.flx_rolling_mean.extract_cube(NameConstraint(var_name="rlutcs"))) + rtntcs_rolling_mean = (self.flx_rolling_mean.extract_cube( + NameConstraint(var_name="rsdt")) - + self.flx_rolling_mean.extract_cube( + NameConstraint(var_name="rsutcs")) - + self.flx_rolling_mean.extract_cube( + NameConstraint(var_name="rlutcs"))) rtntcs_rolling_mean.var_name = "rtntcs" rtntcs_rolling_mean.long_name = "radiative_flux_of_rtntcs" self.flx_rolling_mean.append(rtntcs_rolling_mean) From 3a56318cc17662cc27fcac669df06f67fdfce00d Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Wed, 18 Oct 2023 21:12:49 +0100 Subject: [PATCH 43/59] #3177 review. Meaningful variable names in solver file. --- .../diag_scripts/iht_toa/poisson_solver.py | 105 ++++++++++-------- 1 file changed, 56 insertions(+), 49 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index e8a6433f1b..f5167dd5a6 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -19,68 +19,70 @@ from numba import jit -def swap_bounds(fld): +def swap_bounds(array): """Extend the array by one in all directions. As the array is periodic it allows for easier computations at boundaries. """ - shp0, shp1 = np.array(fld.shape) - 2 - wrap_pnt = int(shp1 / 2 + 1) - for i in range(1, shp1 + 1): - fld[0, i] = fld[1, wrap_pnt] - fld[shp0 + 1, i] = fld[shp0, wrap_pnt] - wrap_pnt += 1 - if wrap_pnt > shp1: - wrap_pnt = 1 + shape0, shape1 = np.array(array.shape) - 2 + wrap_point = int(shape1 / 2 + 1) + for i in range(1, shape1 + 1): + array[0, i] = array[1, wrap_point] + array[shape0 + 1, i] = array[shape0, wrap_point] + wrap_point += 1 + if wrap_point > shape1: + wrap_point = 1 - fld[:, 0] = fld[:, shp1] - fld[:, shp1 + 1] = fld[:, 1] + array[:, 0] = array[:, shape1] + array[:, shape1 + 1] = array[:, 1] - return fld + return array -def dot_prod(xxx, yyy): +def dot_prod(a_matrix, b_matrix): """Calculate dot product of two matrices only over source term size.""" - shp0, shp1 = np.array(xxx.shape) - 2 - return (xxx[1:shp0 + 1, 1:shp1 + 1] * yyy[1:shp0 + 1, 1:shp1 + 1]).sum() + shape0, shape1 = np.array(a_matrix.shape) - 2 + return (a_matrix[1:shape0 + 1, 1:shape1 + 1] * + b_matrix[1:shape0 + 1, 1:shape1 + 1]).sum() @jit -def precon(xxx, m_matrix): +def precon(x_matrix, m_matrix): """Preconditioner. This is a wrapper to two steps that are optimised using jit. It implements the preconditioning step of van der Vorst, H. A., 1992. https://doi.org/10.1137/0913035. """ - cxxx = np.zeros(np.array(xxx.shape)) - precon_a(xxx, m_matrix[1], m_matrix[2], m_matrix[4], cxxx) - cxxx = swap_bounds(cxxx) - precon_b(m_matrix[0], m_matrix[3], cxxx) - cxxx = swap_bounds(cxxx) - return cxxx + cx_matrix = np.zeros(np.array(x_matrix.shape)) + precon_a(x_matrix, m_matrix[1], m_matrix[2], m_matrix[4], cx_matrix) + cx_matrix = swap_bounds(cx_matrix) + precon_b(m_matrix[0], m_matrix[3], cx_matrix) + cx_matrix = swap_bounds(cx_matrix) + return cx_matrix @jit -def precon_a(xxx, m_w, m_s, m_p, cxxx): +def precon_a(x_matrix, m_w, m_s, m_p, cx_matrix): """First step of preconditioner.""" - shp0, shp1 = np.array(cxxx.shape) - 2 - for j in range(1, shp0 + 1): - for i in range(1, shp1 + 1): - cxxx[j, i] = m_p[j, i] * (xxx[j, i] - - m_s[j, i] * cxxx[j - 1, i] - - m_w[j, i] * cxxx[j, i - 1]) + shape0, shape1 = np.array(cx_matrix.shape) - 2 + for j in range(1, shape0 + 1): + for i in range(1, shape1 + 1): + cx_matrix[j, i] = m_p[j, i] * (x_matrix[j, i] - + m_s[j, i] * cx_matrix[j - 1, i] - + m_w[j, i] * cx_matrix[j, i - 1]) @jit -def precon_b(m_e, m_n, cxxx): +def precon_b(m_e, m_n, cx_matrix): """Second step of preconditioner.""" - shp0, shp1 = np.array(cxxx.shape) - 2 - for j in range(shp0, 0, -1): - for i in range(shp1, 0, -1): - cxxx[j, i] = (cxxx[j, i] - m_e[j, i] * cxxx[j, i + 1] - - m_n[j, i] * cxxx[j + 1, i]) + shape0, shape1 = np.array(cx_matrix.shape) - 2 + for j in range(shape0, 0, -1): + for i in range(shape1, 0, -1): + cx_matrix[j, i] = (cx_matrix[j, i] - + m_e[j, i] * cx_matrix[j, i + 1] - + m_n[j, i] * cx_matrix[j + 1, i]) class SphericalPoisson: @@ -260,26 +262,31 @@ def calc_mht(self): """ deltax = 2.0 * np.pi / self.source.shape[1] deltay = np.pi / self.source.shape[0] - yyy = np.arange(-0.5 * np.pi + 0.5 * deltay, 0.5 * np.pi, deltay) + yvalues = np.arange(-0.5 * np.pi + 0.5 * deltay, 0.5 * np.pi, deltay) grad_phi = np.gradient(self.efp, deltay, axis=0) grad_phi = grad_phi[1:-1, 1:-1] - self.mht = np.sum((grad_phi.T * np.cos(yyy) * deltax).T, axis=1) + self.mht = np.sum((grad_phi.T * np.cos(yvalues) * deltax).T, axis=1) - def calc_ax(self, xxx): + def calc_ax(self, x_matrix): """Matrix calculation of the Laplacian equation, LHS of Eq. (9) in Pearce and Bodas-Salcedo (2023). """ # Laplacian equation src_shape = np.array(self.source.shape) - axxx = np.zeros(src_shape + 2) - xxx = swap_bounds(xxx) - shp0, shp1 = src_shape - axxx[1:shp0 + 1, 1:shp1 + 1] = ( - self.a_matrix[2, 0:shp0, 0:shp1] * xxx[0:shp0, 1:shp1 + 1] + - self.a_matrix[1, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 0:shp1] + - self.a_matrix[0, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 2:shp1 + 2] + - self.a_matrix[3, 0:shp0, 0:shp1] * xxx[2:shp0 + 2, 1:shp1 + 1] + - self.a_matrix[4, 0:shp0, 0:shp1] * xxx[1:shp0 + 1, 1:shp1 + 1]) - axxx = swap_bounds(axxx) - return axxx + ax_matrix = np.zeros(src_shape + 2) + x_matrix = swap_bounds(x_matrix) + shape0, shape1 = src_shape + ax_matrix[1:shape0 + 1, 1:shape1 + 1] = ( + self.a_matrix[2, 0:shape0, 0:shape1] * + x_matrix[0:shape0, 1:shape1 + 1] + + self.a_matrix[1, 0:shape0, 0:shape1] * + x_matrix[1:shape0 + 1, 0:shape1] + + self.a_matrix[0, 0:shape0, 0:shape1] * + x_matrix[1:shape0 + 1, 2:shape1 + 2] + + self.a_matrix[3, 0:shape0, 0:shape1] * + x_matrix[2:shape0 + 2, 1:shape1 + 1] + + self.a_matrix[4, 0:shape0, 0:shape1] * + x_matrix[1:shape0 + 1, 1:shape1 + 1]) + ax_matrix = swap_bounds(ax_matrix) + return ax_matrix From ee0a670aaa07836b226c9f2b1e51073f047712ef Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Thu, 19 Oct 2023 10:06:03 +0100 Subject: [PATCH 44/59] #3177 review. Meaningful variable names in diagnostics file. --- .../diag_scripts/iht_toa/poisson_solver.py | 16 ++-- .../iht_toa/single_model_diagnostics.py | 76 ++++++++++--------- 2 files changed, 49 insertions(+), 43 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index f5167dd5a6..ffa103f259 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -89,7 +89,7 @@ class SphericalPoisson: """Poisson solver over the sphere. Solve Poisson equation for a given source term (forcing) and - calculate MHT. + calculate meridional heat transport (MHT). """ def __init__(self, logger, source, tolerance=2.0e-4): @@ -97,8 +97,8 @@ def __init__(self, logger, source, tolerance=2.0e-4): self.logger = logger self.source = source self.tolerance = tolerance - self.efp = None - self.mht = None + self.energy_flux_potential = None + self.meridional_heat_transport = None logger.info("Initialising Poisson solver.") self.set_matrices() @@ -251,9 +251,9 @@ def solve(self, max_iterations=1000): self.logger.error('Poisson solver has not converged.') sys.exit(1) - self.efp = xxx + self.energy_flux_potential = xxx - def calc_mht(self): + def calc_meridional_heat_transport(self): """Meridional heat transport of energy flux potential. Calculate of the meridional heat transport using the gradient of @@ -263,9 +263,11 @@ def calc_mht(self): deltax = 2.0 * np.pi / self.source.shape[1] deltay = np.pi / self.source.shape[0] yvalues = np.arange(-0.5 * np.pi + 0.5 * deltay, 0.5 * np.pi, deltay) - grad_phi = np.gradient(self.efp, deltay, axis=0) + grad_phi = np.gradient(self.energy_flux_potential, deltay, axis=0) grad_phi = grad_phi[1:-1, 1:-1] - self.mht = np.sum((grad_phi.T * np.cos(yvalues) * deltax).T, axis=1) + self.meridional_heat_transport = np.sum((grad_phi.T * + np.cos(yvalues) * + deltax).T, axis=1) def calc_ax(self, x_matrix): """Matrix calculation of the Laplacian equation, LHS of Eq. diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index bdacfc9e2c..c5b2a2ac3c 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -110,11 +110,11 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): source=data * (earth_radius**2.0), tolerance=2.0e-4) sphpo.solve() - sphpo.calc_mht() + sphpo.calc_meridional_heat_transport() logger.info("Ending spherical_poisson") # Energy flux potential - efp_cube = iris.cube.Cube(sphpo.efp[1:-1, 1:-1], + efp_cube = iris.cube.Cube(sphpo.energy_flux_potential[1:-1, 1:-1], long_name=f"energy_flux_potential_of_{flux_cube.var_name}", var_name=f"{flux_cube.var_name}_efp", units='J s-1', dim_coords_and_dims=[(flux_cube.coords()[0], 0), @@ -126,7 +126,7 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): long_name='longitude', standard_name='longitude', units='degrees') - mht_cube = iris.cube.Cube(sphpo.mht, + mht_cube = iris.cube.Cube(sphpo.meridional_heat_transport, long_name=f"meridional_heat_transport_of" f"_{flux_cube.var_name}", var_name=f"{flux_cube.var_name}_mht", units='W', @@ -139,24 +139,19 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): def symmetry_metric(cube): """Calculate symmetry metrics. - A perfectly symmetrical latitude band gives S=0. As coded, the - calculation of the symmetry metrics needs the number of latitude - points to be multiple of 6, i.e. it needs 30 deg bands. It returns + A perfectly symmetrical latitude band gives S=0. It returns the metric for 3 regions: globe, tropics and extratropics. """ - # Hemisphere - hem = np.abs( + hemisphere = np.abs( weight_zm(cube, latitude=(0, 90, False, False))[::-1] + weight_zm(cube, latitude=(-90, 0, False, False))).sum() - # Tropics - tro = np.abs( + tropics = np.abs( weight_zm(cube, latitude=(0, 30, False, False))[::-1] + weight_zm(cube, latitude=(-30, 0, False, False))).sum() - # Extra-tropics - etr = np.abs( + extra_tropics = np.abs( weight_zm(cube, latitude=(30, 90, False, False))[::-1] + weight_zm(cube, latitude=(-90, -30, False, False))).sum() - return hem, tro, etr + return hemisphere, tropics, extra_tropics def format_plot(axx, label, title): @@ -170,7 +165,14 @@ def format_plot(axx, label, title): class ImpliedHeatTransport: - """Class that solves IHT for a given dataset.""" + """Class that solves IHT for a given dataset. + + These are the physical meanings of the main acronyms + used in the varaible names: + FLX: radiative flux + EFP: energy flux potential + MHT: meridional heat transport + """ def __init__(self, flx_files): self.flx_files = flx_files @@ -195,7 +197,8 @@ def __init__(self, flx_files): # Compute derived fluxes self.derived_fluxes() - # Calculate EFP and MHT for each flux + # Calculate Energy Flux Potential and Meridional Heat Transport + # for each flux component self.compute_efp_and_mht() # Times series of MHT symmetry metric @@ -292,29 +295,30 @@ def mht_symmetry_metrics(self): for mht_series in self.mht_rolling_mean: time_coord = mht_series.coord('time') ntime = time_coord.shape[0] - hem = np.zeros(ntime) - trop = np.zeros(ntime) - extratrop = np.zeros(ntime) + hemisphere = np.zeros(ntime) + tropics = np.zeros(ntime) + extra_tropics = np.zeros(ntime) for i in np.arange(ntime): - hem[i], trop[i], extratrop[i] = symmetry_metric(mht_series[i]) + hemisphere[i], tropics[i], extra_tropics[i] = ( + symmetry_metric(mht_series[i])) # Create the cubes for each metric long_name = f"symmetry_hemisphere_of_{mht_series.long_name}" var_name = f"s_hem_{mht_series.var_name}" - cube_h = iris.cube.Cube(hem / petaunit, + cube_h = iris.cube.Cube(hemisphere / petaunit, long_name=long_name, var_name=var_name, units="PW", dim_coords_and_dims=[(time_coord, 0)]) long_name = f"symmetry_tropics_of_{mht_series.long_name}" var_name = f"s_tro_{mht_series.var_name}" - cube_t = iris.cube.Cube(trop / petaunit, + cube_t = iris.cube.Cube(tropics / petaunit, long_name=long_name, var_name=var_name, units="PW", dim_coords_and_dims=[(time_coord, 0)]) long_name = f"symmetry_extratropics_of_{mht_series.long_name}" var_name = f"s_ext_{mht_series.var_name}" - cube_e = iris.cube.Cube(extratrop / petaunit, + cube_e = iris.cube.Cube(extra_tropics / petaunit, long_name=long_name, var_name=var_name, units="PW", @@ -393,8 +397,7 @@ def cre_mht_plot(self, left, right, ylim=(-1.5, 1.5)): def quiver_start(self, ntot, step): """Calculate start point for quiver plot.""" - nnn = (ntot - 2) // step - start = (ntot - 2 - nnn * step) // 2 + start = (ntot - 2 - ((ntot - 2) // step) * step) // 2 return start def quiver_maps_data(self, vnames, change_sign): @@ -410,10 +413,10 @@ def quiver_maps_data(self, vnames, change_sign): if change_sign[1]: flx = -flx efp.convert_units("PW") - vvv, uuu = np.gradient(efp.data) - uuu = uuu[1:-1, 1:-1] - vvv = vvv[1:-1, 1:-1] - return {'efp': efp, 'flx': flx, 'uuu': uuu, 'vvv': vvv} + v_component, u_component = np.gradient(efp.data) + u_component = u_component[1:-1, 1:-1] + v_component = v_component[1:-1, 1:-1] + return {'efp': efp, 'flx': flx, 'uuu': u_component, 'vvv': v_component} def quiver_subplot(self, dargs, title, label, change_sign): """Produce panel with EFPs (left column) and fluxes (right column). @@ -684,22 +687,23 @@ def main(cfg): input_data = group_metadata(input_data, 'dataset', sort='variable_group') # Arrange input flux files in a 2-level dictionary [model_name][dataset] - flx_files = {} + flux_files = {} for model_name, datasets in input_data.items(): - flx_files[model_name] = {} + flux_files[model_name] = {} for dataset in datasets: - if dataset['dataset'] in flx_files[model_name]: - flx_files[model_name][dataset['dataset']].append( + if dataset['dataset'] in flux_files[model_name]: + flux_files[model_name][dataset['dataset']].append( dataset['filename']) else: - flx_files[model_name][dataset['dataset']] = [ + flux_files[model_name][dataset['dataset']] = [ dataset['filename'] ] - # Create dictionary of iht objects. It's a 2-level dictionary - # like flx_files. This is where all the calculations are done. + # Create dictionary of implied_heat_transport objects. + # It's a 2-level dictionary like flux_files. + # This is where all the calculations are done. iht = {} - for model_name, datasets in flx_files.items(): + for model_name, datasets in flux_files.items(): logger.info("Model %s", model_name) iht[model_name] = {} for dataset_name, files in datasets.items(): From 6306ff2820e8d12e759d995f1ae93d7cd44d7241 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Thu, 19 Oct 2023 10:15:02 +0100 Subject: [PATCH 45/59] #3177 review. More meaningful variable names in diagnostics file. --- .../iht_toa/single_model_diagnostics.py | 30 ++++++++++++------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index c5b2a2ac3c..3dcd17ab35 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -264,24 +264,34 @@ def print(self): logger.info("=== implied_heat_transport object ===") logger.info(self.mht_clim) info_message = "Long name: %s; Variable: %s." - for zzz in self.mht_clim: - logger.info(info_message, zzz.long_name, zzz.var_name) + for climatology in self.mht_clim: + logger.info(info_message, + climatology.long_name, + climatology.var_name) logger.info(self.efp_clim) - for zzz in self.efp_clim: - logger.info(info_message, zzz.long_name, zzz.var_name) + for climatology in self.efp_clim: + logger.info(info_message, + climatology.long_name, + climatology.var_name) logger.info(self.flx_clim) - for zzz in self.flx_clim: - logger.info(info_message, zzz.long_name, zzz.var_name) + for climatology in self.flx_clim: + logger.info(info_message, + climatology.long_name, + climatology.var_name) logger.info(self.mht_rolling_mean) - for zzz in self.mht_rolling_mean: - logger.info(info_message, zzz.long_name, zzz.var_name) + for rolling_mean in self.mht_rolling_mean: + logger.info(info_message, + rolling_mean.long_name, + rolling_mean.var_name) logger.info(self.symmetry_metric) - for zzz in self.symmetry_metric: - logger.info(info_message, zzz.long_name, zzz.var_name) + for metric in self.symmetry_metric: + logger.info(info_message, + metric.long_name, + metric.var_name) logger.info(self.flx_files) From 4b44c60f778cbdadbe75f061d770f1dd4390b470 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Thu, 19 Oct 2023 15:29:41 +0100 Subject: [PATCH 46/59] #3177 review. Expand docstrings. --- .../iht_toa/single_model_diagnostics.py | 135 +++++++++++++++--- 1 file changed, 113 insertions(+), 22 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 3dcd17ab35..11dfe14bdf 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -62,7 +62,25 @@ def get_provenance_record(plot_type, ancestor_files): def area_average(cube, latitude='latitude', longitude='longitude', mdtol=1): - """Return area-weighted average of a cube.""" + """Return area-weighted average of a cube. + + Parameters + ---------- + cube : :class:`iris.cube.Cube` + Input cube. + latitude : string + Name of latitude coordinate in ``cube``. + longitude : string + Name of longitude coordinate in ``cube``. + mdtol : float + Tolerance to missing data, between 0 and 1. + + + Returns + ------- + :class:`iris.cube.Cube` + Collapsed cube with the weighted average. + """ if cube.coord(latitude).bounds is None: cube.coord(latitude).guess_bounds() if cube.coord(longitude).bounds is None: @@ -76,7 +94,23 @@ def area_average(cube, latitude='latitude', longitude='longitude', mdtol=1): def weight_zm(cube, latitude=None): - """Weight zonal-mean by normalised gridbox areas.""" + """Weight zonal-mean by normalised gridbox areas. + + Parameters + ---------- + cube : :class:`iris.cube.Cube` + Input cube. + latitude : tuple + Four-element tuple defining the latitude range. + The last two elements must be False, e.g. + latitude=(-90, 0, False, False). + + Returns + ------- + :class:`numpy.array` + Zonal-mean in the selected latitude range, weighted + by the normalised areas. + """ if cube.coord('latitude').bounds is None: cube.coord('latitude').guess_bounds() areas_data = iris.analysis.cartography.area_weights(cube, normalize=True) @@ -91,7 +125,27 @@ def weight_zm(cube, latitude=None): def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): - """Top-level function that calls the Poisson solver for source cube.""" + """Call the Poisson solver with the data in ``flux_cube`` as source term. + Return the energy flux potential and implied meridional heat transport + as cubes. + + Parameters + ---------- + flux_cube : :class:`iris.cube.Cube` + Input cube. + latitude : string + Name of latitude coordinate in ``cube``. + longitude : string + Name of longitude coordinate in ``cube``. + + Returns + ------- + efp_cube: :class:`iris.cube.Cube` + Energy flux potential cube. + mht_cube: :class:`iris.cube.Cube` + Implied meridional heat transport associated + with the source flux field. + """ earth_radius = 6371e3 # Earth's radius in m if flux_cube.coord(latitude).bounds is None: flux_cube.coord(latitude).guess_bounds() @@ -137,10 +191,27 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): def symmetry_metric(cube): - """Calculate symmetry metrics. - - A perfectly symmetrical latitude band gives S=0. It returns - the metric for 3 regions: globe, tropics and extratropics. + """Calculate symmetry metrics for a zonal-mean cube. + + It returns the symmetry metric S, as defined in Pearce and + Bodas-Salcedo, JClim, 2023, for 3 regions: entire hemisphere, + tropics (0 to 30 deg latitude) and extratropics + (30 to 90 degrees latitude). Perfectly symmetrical latitude + bands give S=0. + + Parameters + ---------- + cube : :class:`iris.cube.Cube` + Input cube. + + Returns + ------- + hemisphere: float + Metric for the whole hemisphere. + tropics: float + Metric for the tropics. + extra_tropics: float + Metric for the extra-tropics. """ hemisphere = np.abs( weight_zm(cube, latitude=(0, 90, False, False))[::-1] + @@ -154,27 +225,46 @@ def symmetry_metric(cube): return hemisphere, tropics, extra_tropics -def format_plot(axx, label, title): - """Format plots in quiver panel.""" - axx.set_xticks(np.arange(-180, 190, 60)) - axx.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) - axx.set_yticks(np.arange(-90, 100, 30)) - axx.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) - axx.annotate(label, xy=(0, 1.05), xycoords='axes fraction', color='k') - axx.set_title(title) +def format_plot(axes, label, title): + """Format plots in quiver panel. + + Parameters + ---------- + axes : :class:`matplotlib.axes.Axes` + Input axes. + label : string + Top-left plot label. + title : string + Plot title. + """ + axes.set_xticks(np.arange(-180, 190, 60)) + axes.set_xticklabels(['180', '120W', '60W', '0', '60E', '120E', '180']) + axes.set_yticks(np.arange(-90, 100, 30)) + axes.set_yticklabels(['90S', '60S', '30S', 'Eq', '30N', '60N', '90N']) + axes.annotate(label, xy=(0, 1.05), xycoords='axes fraction', color='k') + axes.set_title(title) class ImpliedHeatTransport: - """Class that solves IHT for a given dataset. + """Class that calculates the relevant implied heat + transport for an input dataset. These are the physical meanings of the main acronyms - used in the varaible names: + used in the variable names: FLX: radiative flux EFP: energy flux potential MHT: meridional heat transport """ def __init__(self, flx_files): + """Calculate all the diagnostics for all the fluxes + listed in ``flx_files``. + + Parameters + ---------- + flx_files : list + List of files with input data. + """ self.flx_files = flx_files # Create cube lists for the different datasets @@ -209,8 +299,9 @@ def __init__(self, flx_files): def compute_efp_and_mht(self): """Calculate Energy Flux Potential and meridional heat transport. - Calculate EFP and MHT for the climatologies of radiative fluxes - and the 12-month rolling means of radiative fluxes. + Loop over input data and calculate EFP and MHT of the + climatologies of radiative fluxes and the 12-month + rolling means of radiative fluxes. """ # Loop over climatologies for flx in self.flx_clim: @@ -229,7 +320,7 @@ def compute_efp_and_mht(self): def derived_fluxes(self): """Calculate derived radiative fluxes. - rlnt_clim: climatology net LW TOA + rlnt_clim: climatology of net LW TOA rtntcs_clim: climatology of clear-sky net TOA rtntcs_rolling_mean: 12-month rolling mean of rtntcs """ @@ -260,7 +351,7 @@ def derived_fluxes(self): self.flx_rolling_mean.append(rtntcs_rolling_mean) def print(self): - """Print variable names of all cubes in the IHT object.""" + """Print variable names of all cubes in an IHT object.""" logger.info("=== implied_heat_transport object ===") logger.info(self.mht_clim) info_message = "Long name: %s; Variable: %s." @@ -298,7 +389,7 @@ def print(self): def mht_symmetry_metrics(self): """Calculate symmetry metrics. - Produce 12-month rolling means for all monthly time time series + Produce 12-month rolling means for all monthly time series of MHT. """ petaunit = 1.0e15 From 417f0a445ce3b753b727e0b2598401652fac0ddf Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 20 Oct 2023 19:58:47 +0100 Subject: [PATCH 47/59] #3177 review. Expand docstrings. --- .../iht_toa/single_model_diagnostics.py | 163 ++++++++++++++---- 1 file changed, 131 insertions(+), 32 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 11dfe14bdf..23d10fc449 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -429,9 +429,18 @@ def mht_symmetry_metrics(self): self.symmetry_metric.append(cube_e) def mht_plot(self, var_names, legend_label, ylim=(-10, 10)): - """Produce a single multi-line plot with MHT. + """Produce a single multi-line plot of MHT components. MHT is presented in PW. Up to three variables are on each plot. + + Parameters + ---------- + var_names : list + Variable names to plot, e.g. ["rtnt_mht", "rsnt_mht"]. + legend_label : list + List of labels for each line. + ylim : tuple + y axis limits. """ plt.figure() for i, vname in enumerate(var_names): @@ -451,7 +460,20 @@ def mht_plot(self, var_names, legend_label, ylim=(-10, 10)): plt.tight_layout() def cre_mht_plot(self, left, right, ylim=(-1.5, 1.5)): - """Produce two multiline plots of MHT.""" + """Produce two multiline plots of MHT components. + + Parameters + ---------- + left : dictionary + Dictionary with variable names and labels for + the LHS plot, e.g. + {'vname': ['netcre_mht', 'swcre_mht', 'lwcre_mht'], + 'legend': ['Net CRE', 'SW CRE', 'LW CRE']} + right : dictionary + As ``left`` but for the RHS plot + ylim : tuple + y axis limits. + """ plt.figure(figsize=(11, 5)) ax1 = plt.subplot(121) for i, vname in enumerate(left['vname']): @@ -497,12 +519,30 @@ def cre_mht_plot(self, left, right, ylim=(-1.5, 1.5)): plt.tight_layout() def quiver_start(self, ntot, step): - """Calculate start point for quiver plot.""" + """Calculate start point for quiver plot. + + Parameters + ---------- + ntot : int + Total number of points of the full vector. + step : int + Sampling step. + """ start = (ntot - 2 - ((ntot - 2) // step) * step) // 2 return start def quiver_maps_data(self, vnames, change_sign): - """Obtain data for one row of plots.""" + """Obtain data for one row of plots. + + Parameters + ---------- + vnames : list + Two-element list with the names of the EFP and + flux variables. + change_sign : list + Two-element list of booleans to indicate if + the variable has to be plotted with the sign changed. + """ efp = self.efp_clim.extract_cube(NameConstraint(var_name=vnames[0])) flx = self.flx_clim.extract_cube(NameConstraint(var_name=vnames[1])) # The choice of origin for efp is arbitrary, @@ -520,11 +560,24 @@ def quiver_maps_data(self, vnames, change_sign): return {'efp': efp, 'flx': flx, 'uuu': u_component, 'vvv': v_component} def quiver_subplot(self, dargs, title, label, change_sign): - """Produce panel with EFPs (left column) and fluxes (right column). + """Produce panel with maps of EFPs and fluxes. + + Plot figures with energy flux potential and gradient in the left-hand + column and the corresponding source term in the right-hand column. - Plot figures with energy flux potential and gradient in the left - hand columns and the corresponding source term in the right-hand - column. + Parameters + ---------- + dargs : dictionary + Dictionary with variable names and plot configuration + data. + title : list + List of two-element lists with the names of the EFP and + flux variables. + label : list + List of two-element lists with the plot labels. + change_sign : list + List of two-element list of booleans to indicate if + the variable has to be plotted with the sign changed. """ mshgrd = np.meshgrid(self.flx_clim[0].coord('longitude').points, self.flx_clim[0].coord('latitude').points) @@ -609,7 +662,7 @@ def plot_symmetry_time_series(self): """Produce Figure 6. All-sky and clear-sky time series of the symmetry metrics for - three regions: globe, tropics and extratropics. + three regions: globe, tropics and extra-tropics. """ var_list = [["s_hem_rtnt_mht", "s_hem_rtntcs_mht"], ["s_tro_rtnt_mht", "s_tro_rtntcs_mht"], @@ -652,8 +705,20 @@ def plot_symmetry_time_series(self): plt.tight_layout() -def efp_maps(iht, model, experiment, cfg): - """Produce Figures 2, 4, and 5.""" +def efp_maps(iht, model, experiment, config): + """Produce Figures 2, 4, and 5. + + Parameters + ---------- + iht : :class: ImpliedHeatTransport + Object with the recipe datasets. + model : string + Model name. + experiment : string + Experiment name. + config : dict + The ESMValTool configuration. + """ # Figure 2 iht.quiver_subplot( { @@ -682,7 +747,7 @@ def efp_maps(iht, model, experiment, cfg): provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) figname = f"figure2_{model}_{experiment}" - save_figure(figname, provenance_record, cfg) + save_figure(figname, provenance_record, config) # Figure 4 iht.quiver_subplot( { @@ -711,7 +776,7 @@ def efp_maps(iht, model, experiment, cfg): provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) figname = f"figure4_{model}_{experiment}" - save_figure(figname, provenance_record, cfg) + save_figure(figname, provenance_record, config) # Figure 5 iht.quiver_subplot( { @@ -731,17 +796,29 @@ def efp_maps(iht, model, experiment, cfg): provenance_record = get_provenance_record(plot_type='map', ancestor_files=iht.flx_files) figname = f"figure5_{model}_{experiment}" - save_figure(figname, provenance_record, cfg) + save_figure(figname, provenance_record, config) + +def mht_plots(iht, model, experiment, config): + """Produce Figures 1 and 3. -def mht_plots(iht, model, experiment, cfg): - """Produce Figures 1 and 3.""" + Parameters + ---------- + iht : :class: ImpliedHeatTransport + Object with the recipe datasets. + model : string + Model name. + experiment : string + Experiment name. + config : dict + The ESMValTool configuration. + """ # Figure 1 iht.mht_plot(["rtnt_mht", "rsnt_mht", "rlnt_mht"], ['Net', 'SW', 'LW']) provenance_record = get_provenance_record(plot_type='zonal', ancestor_files=iht.flx_files) figname = f"figure1_{model}_{experiment}" - save_figure(figname, provenance_record, cfg) + save_figure(figname, provenance_record, config) # Figure 3 iht.cre_mht_plot( { @@ -752,39 +829,61 @@ def mht_plots(iht, model, experiment, cfg): 'legend': ['-1 x OSR (all-sky)', '-1 x OSR (clear-sky)'] }) figname = f"figure3_{model}_{experiment}" - save_figure(figname, provenance_record, cfg) + save_figure(figname, provenance_record, config) + +def symmetry_plots(iht, model, experiment, config): + """Produce Figure 6. -def symmetry_plots(iht, model, experiment, cfg): - """Produce Figure 6.""" + Parameters + ---------- + iht : :class: ImpliedHeatTransport + Object with the recipe datasets. + model : string + Model name. + experiment : string + Experiment name. + config : dict + The ESMValTool configuration. + """ iht.plot_symmetry_time_series() provenance_record = get_provenance_record(plot_type='times', ancestor_files=iht.flx_files) figname = f"figure6_{model}_{experiment}" - save_figure(figname, provenance_record, cfg) + save_figure(figname, provenance_record, config) -def plot_single_model_diagnostics(iht_dict, cfg): +def plot_single_model_diagnostics(iht_dict, config): """Produce plots for a single model and experiment. - iht_dict is a two-level dictionary: iht_dict[model][experiment] + Parameters + ---------- + iht_dict : dict + iht_dict is a two-level dictionary: iht_dict[model][experiment] + config : dict + The ESMValTool configuration. """ for model, iht_model in iht_dict.items(): logger.info("Plotting model: %s", model) for experiment, iht_experiment in iht_model.items(): logger.info("Plotting experiment: %s", experiment) - mht_plots(iht_experiment, model, experiment, cfg) - efp_maps(iht_experiment, model, experiment, cfg) - symmetry_plots(iht_experiment, model, experiment, cfg) + mht_plots(iht_experiment, model, experiment, config) + efp_maps(iht_experiment, model, experiment, config) + symmetry_plots(iht_experiment, model, experiment, config) -def main(cfg): - """Produce implied heat transport plots. +def main(config): + """Produce all the recipe's plots. Produce Figures 1 to 6 of Pearce and Bodas-Salcedo (2023) for each model and dataset combination. + + Parameters + ---------- + config : dict + The ESMValTool configuration. """ - input_data = deepcopy(list(cfg['input_data'].values())) + input_data = deepcopy(list(config['input_data'].values())) input_data = group_metadata(input_data, 'dataset', sort='variable_group') # Arrange input flux files in a 2-level dictionary [model_name][dataset] @@ -813,10 +912,10 @@ def main(cfg): print(iht) # Produce plots - plot_single_model_diagnostics(iht, cfg) + plot_single_model_diagnostics(iht, config) if __name__ == '__main__': - with run_diagnostic() as config: - main(config) + with run_diagnostic() as configuration: + main(configuration) From 46ccc1730f360c43b7047e08990cf8b9dfc30cab Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 20 Oct 2023 20:13:25 +0100 Subject: [PATCH 48/59] #3177 review. EBAF version and .rst fixes. --- doc/sphinx/source/recipes/recipe_iht_toa.rst | 16 ++++++++-------- esmvaltool/recipes/recipe_iht_toa.yml | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/doc/sphinx/source/recipes/recipe_iht_toa.rst b/doc/sphinx/source/recipes/recipe_iht_toa.rst index 8ab6cbd761..93ebe81c7f 100644 --- a/doc/sphinx/source/recipes/recipe_iht_toa.rst +++ b/doc/sphinx/source/recipes/recipe_iht_toa.rst @@ -20,23 +20,23 @@ Available recipes and diagnostics Recipes are stored in esmvaltool/recipes/ - * recipe_iht_toa.yml calculates the IHT maps for the following radiative fluxes: +* recipe_iht_toa.yml calculates the IHT maps for the following radiative fluxes: - * Total net, SW net, LW net (Figure 2). - * Total CRE, SW CRE, LW CRE (Figure 4). - * All-sky and clear-sky reflected SW (Figure 5). - * The meridional heat transports (MHT) of the fluxes above (Figures 1 and 3). + * Total net, SW net, LW net (Figure 2). + * Total CRE, SW CRE, LW CRE (Figure 4). + * All-sky and clear-sky reflected SW (Figure 5). + * The meridional heat transports (MHT) of the fluxes above (Figures 1 and 3). Diagnostics are stored in esmvaltool/diag_scripts/iht_toa/ - * single_model_diagnostics.py: driver script that produces the plots. - * poisson_solver.py: solver that calculates the IHTs. +* single_model_diagnostics.py: driver script that produces the plots. +* poisson_solver.py: solver that calculates the IHTs. .. _`Pearce and Bodas-Salcedo (2023)`: https://doi.org/10.1175/JCLI-D-22-0149.1 User settings in recipe ----------------------- - +There are no user settings in this recipe. Variables --------- diff --git a/esmvaltool/recipes/recipe_iht_toa.yml b/esmvaltool/recipes/recipe_iht_toa.yml index 89439698db..100bbcaa1a 100644 --- a/esmvaltool/recipes/recipe_iht_toa.yml +++ b/esmvaltool/recipes/recipe_iht_toa.yml @@ -24,7 +24,7 @@ documentation: datasets: # The CERES-EBAF observations reproduce the results of Pearce and # Bodas-Salcedo (2023), but it can be applied to model data. - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-7, tier: 1, start_year: 2001, end_year: 2010} + - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-8, tier: 1, start_year: 2001, end_year: 2010} # - {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon, start_year: 1990, end_year: 2005} preprocessors: From 855ce44284c7861e9a0ba36ce260b3e81b48e6cf Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Thu, 26 Oct 2023 10:22:33 +0100 Subject: [PATCH 49/59] #3177 review. Simplify provenance function. --- .../iht_toa/single_model_diagnostics.py | 42 +++++++++---------- 1 file changed, 19 insertions(+), 23 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 23d10fc449..bd2a401d68 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -43,20 +43,21 @@ }) -def get_provenance_record(plot_type, ancestor_files): - """Create a provenance record describing the diagnostic data and plot.""" +def get_provenance_record(filenames): + """Return a provenance record describing the plot. + + Parameters + ---------- + filenames : list of strings + The filenames containing the data used to create the plot. + + Returns + ------- + dictionary + The provenance record describing the plot. + """ record = { - 'statistics': ['mean'], - 'domains': ['global'], - 'plot_types': [plot_type], - 'authors': [ - 'andela_bouwe', - 'righi_mattia', - ], - 'references': [ - 'acknow_project', - ], - 'ancestors': ancestor_files, + 'ancestors': filenames, } return record @@ -744,8 +745,7 @@ def efp_maps(iht, model, experiment, config): ['$P_{TOA}^{LW}$', r'$\Delta F_{TOA}^{LW}$']], label=[['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], change_sign=[[False, False], [False, False], [False, False]]) - provenance_record = get_provenance_record(plot_type='map', - ancestor_files=iht.flx_files) + provenance_record = get_provenance_record(iht.flx_files) figname = f"figure2_{model}_{experiment}" save_figure(figname, provenance_record, config) # Figure 4 @@ -773,8 +773,7 @@ def efp_maps(iht, model, experiment, config): ['$P_{TOA}^{LWCRE}$', r'$\Delta CRE_{TOA}^{LW}$']], label=[['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], change_sign=[[False, False], [False, False], [False, False]]) - provenance_record = get_provenance_record(plot_type='map', - ancestor_files=iht.flx_files) + provenance_record = get_provenance_record(iht.flx_files) figname = f"figure4_{model}_{experiment}" save_figure(figname, provenance_record, config) # Figure 5 @@ -793,8 +792,7 @@ def efp_maps(iht, model, experiment, config): ['$P_{TOA}^{SWup, all}$', r'$\Delta F_{TOA}^{SWup, all}$']], label=[['(a)', '(b)'], ['(c)', '(d)']], change_sign=[[True, True], [True, True]]) - provenance_record = get_provenance_record(plot_type='map', - ancestor_files=iht.flx_files) + provenance_record = get_provenance_record(iht.flx_files) figname = f"figure5_{model}_{experiment}" save_figure(figname, provenance_record, config) @@ -815,8 +813,7 @@ def mht_plots(iht, model, experiment, config): """ # Figure 1 iht.mht_plot(["rtnt_mht", "rsnt_mht", "rlnt_mht"], ['Net', 'SW', 'LW']) - provenance_record = get_provenance_record(plot_type='zonal', - ancestor_files=iht.flx_files) + provenance_record = get_provenance_record(iht.flx_files) figname = f"figure1_{model}_{experiment}" save_figure(figname, provenance_record, config) # Figure 3 @@ -847,8 +844,7 @@ def symmetry_plots(iht, model, experiment, config): The ESMValTool configuration. """ iht.plot_symmetry_time_series() - provenance_record = get_provenance_record(plot_type='times', - ancestor_files=iht.flx_files) + provenance_record = get_provenance_record(iht.flx_files) figname = f"figure6_{model}_{experiment}" save_figure(figname, provenance_record, config) From 53e7b08a8fe8c9b22547c242a71e60420fd9eda8 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Thu, 26 Oct 2023 18:44:56 +0100 Subject: [PATCH 50/59] #3177 review. Copyright; magic number; error handling; logger path name; counter. --- .../diag_scripts/iht_toa/poisson_solver.py | 8 +++--- .../iht_toa/single_model_diagnostics.py | 25 +++++++++++-------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index ffa103f259..c5bc37f03f 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -1,5 +1,5 @@ -"""(C) Crown Copyright 2023, the Met Office. - +# (C) Crown Copyright 2023, the Met Office. +""" Poisson solver for the full ocean-atmosphere column. The Poisson equation is solved by numerically using the biconjugate gradient stabilized (BiCGSTAB) method. @@ -14,7 +14,6 @@ the output of the Poisson solver. """ -import sys import numpy as np from numba import jit @@ -248,8 +247,7 @@ def solve(self, max_iterations=1000): iteration += 1 if iteration == max_iterations: - self.logger.error('Poisson solver has not converged.') - sys.exit(1) + raise RuntimeError('Poisson solver has not converged.') self.energy_flux_potential = xxx diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index bd2a401d68..8bced3947b 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -1,6 +1,6 @@ -"""(C) Crown Copyright 2023, the Met Office. +# (C) Crown Copyright 2023, the Met Office. +"""Single model diagnostics -Single model diagnostics 1. Solve the Poisson solver 2. Produce and save plots """ @@ -27,7 +27,7 @@ ) # Initialise logger -logger = logging.getLogger(Path(__file__).stem) +logger = logging.getLogger(__name__) rcParams.update({ 'font.size': 14, @@ -588,6 +588,9 @@ def quiver_subplot(self, dargs, title, label, change_sign): startx = self.quiver_start(mshgrd[0].shape[1], dxy[0]) starty = self.quiver_start(mshgrd[0].shape[0], dxy[1]) + # Set grid layout depending on number of rows. + # Place figures every grid_step rows in the grid. + grid_step = 7 if nrows == 3: plt.figure(figsize=(10, 10)) grds = gridspec.GridSpec(22, 2) @@ -604,7 +607,7 @@ def quiver_subplot(self, dargs, title, label, change_sign): cbs = [] for i in range(nrows): data = self.quiver_maps_data(dargs['var_name'][i], change_sign[i]) - plt.subplot(grds[i * 7:(i * 7) + 7, 0], + plt.subplot(grds[i * grid_step:(i * grid_step) + grid_step, 0], projection=ccrs.PlateCarree(central_longitude=0)) cbs.append( iplt.contourf(data['efp'], @@ -629,7 +632,7 @@ def quiver_subplot(self, dargs, title, label, change_sign): color='w') format_plot(plt.gca(), label[i][0], title[i][0]) - plt.subplot(grds[i * 7:(i * 7) + 7, 1], + plt.subplot(grds[i * grid_step:(i * grid_step) + grid_step, 1], projection=ccrs.PlateCarree(central_longitude=0)) cbs.append( iplt.contourf(data['flx'], @@ -677,12 +680,12 @@ def plot_symmetry_time_series(self): legend_label = ["TOA net all-sky", "TOA net clear-sky"] plt.figure(figsize=(6, 12)) - for i, var_name in enumerate(var_list): + for count, (var_name_1, var_name_2) in enumerate(var_list): yy0 = self.symmetry_metric.extract_cube( - NameConstraint(var_name=var_name[0])) + NameConstraint(var_name=var_name_1)) yy1 = self.symmetry_metric.extract_cube( - NameConstraint(var_name=var_name[1])) - axx = plt.subplot(3, 1, i + 1) + NameConstraint(var_name=var_name_2)) + axx = plt.subplot(3, 1, count + 1) dtx = [ datetime.datetime.strptime(str(cell[0]), '%Y-%m-%d %H:%M:%S') for cell in yy0.coord('time').cells() @@ -700,8 +703,8 @@ def plot_symmetry_time_series(self): axx.xaxis.set_major_locator(mdates.YearLocator(3, month=1, day=1)) axx.xaxis.set_major_formatter(mdates.DateFormatter('%Y')) axx.xaxis.set_minor_locator(mdates.YearLocator()) - axx.set_title(label[i]) - if i == 0: + axx.set_title(label[count]) + if count == 0: plt.legend(loc=5) plt.tight_layout() From 4dab610313105775d52b85ce39b6e80c83a649df Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 27 Oct 2023 08:28:54 +0100 Subject: [PATCH 51/59] #3177 review. Fix of pylint errors. --- .../iht_toa/single_model_diagnostics.py | 56 +++++++++---------- 1 file changed, 25 insertions(+), 31 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 8bced3947b..718b433638 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -8,7 +8,6 @@ import datetime import logging from copy import deepcopy -from pathlib import Path import cartopy.crs as ccrs import iris @@ -326,7 +325,7 @@ def derived_fluxes(self): rtntcs_rolling_mean: 12-month rolling mean of rtntcs """ # Derived TOA climatologies: rlnt_clim, rtntcs_clim - rlnt_clim = -self.flx_clim.extract_cube( + rlnt_clim = -1.0 * self.flx_clim.extract_cube( NameConstraint(var_name="rlut")) rlnt_clim.var_name = "rlnt" rlnt_clim.long_name = "radiative_flux_of_rlnt" @@ -560,7 +559,7 @@ def quiver_maps_data(self, vnames, change_sign): v_component = v_component[1:-1, 1:-1] return {'efp': efp, 'flx': flx, 'uuu': u_component, 'vvv': v_component} - def quiver_subplot(self, dargs, title, label, change_sign): + def quiver_subplot(self, dargs): """Produce panel with maps of EFPs and fluxes. Plot figures with energy flux potential and gradient in the left-hand @@ -571,14 +570,6 @@ def quiver_subplot(self, dargs, title, label, change_sign): dargs : dictionary Dictionary with variable names and plot configuration data. - title : list - List of two-element lists with the names of the EFP and - flux variables. - label : list - List of two-element lists with the plot labels. - change_sign : list - List of two-element list of booleans to indicate if - the variable has to be plotted with the sign changed. """ mshgrd = np.meshgrid(self.flx_clim[0].coord('longitude').points, self.flx_clim[0].coord('latitude').points) @@ -606,7 +597,8 @@ def quiver_subplot(self, dargs, title, label, change_sign): cbs = [] for i in range(nrows): - data = self.quiver_maps_data(dargs['var_name'][i], change_sign[i]) + data = self.quiver_maps_data(dargs['var_name'][i], + dargs['change_sign'][i]) plt.subplot(grds[i * grid_step:(i * grid_step) + grid_step, 0], projection=ccrs.PlateCarree(central_longitude=0)) cbs.append( @@ -630,7 +622,7 @@ def quiver_subplot(self, dargs, title, label, change_sign): pivot='mid', scale=qqq.scale, color='w') - format_plot(plt.gca(), label[i][0], title[i][0]) + format_plot(plt.gca(), dargs['label'][i][0], dargs['title'][i][0]) plt.subplot(grds[i * grid_step:(i * grid_step) + grid_step, 1], projection=ccrs.PlateCarree(central_longitude=0)) @@ -640,7 +632,7 @@ def quiver_subplot(self, dargs, title, label, change_sign): dargs['nwlevs']), cmap='RdBu_r')) plt.gca().coastlines() - format_plot(plt.gca(), label[i][1], title[i][1]) + format_plot(plt.gca(), dargs['label'][i][1], dargs['title'][i][1]) plt.subplot(grds[-1, 0]) plt.colorbar(cbs[0], @@ -728,6 +720,11 @@ def efp_maps(iht, model, experiment, config): { 'var_name': [['rtnt_efp', 'rtnt'], ['rsnt_efp', 'rsnt'], ['rlnt_efp', 'rlnt']], + 'title' : [['$P_{TOA}^{TOT}$', r'$\Delta F_{TOA}^{TOT}$'], + ['$P_{TOA}^{SW}$', r'$\Delta F_{TOA}^{SW}$'], + ['$P_{TOA}^{LW}$', r'$\Delta F_{TOA}^{LW}$']], + 'label' : [['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], + 'change_sign' : [[False, False], [False, False], [False, False]], 'wmin': -180, 'wmax': @@ -742,12 +739,7 @@ def efp_maps(iht, model, experiment, config): 1.2, 'nlevs': 11 - }, - title=[['$P_{TOA}^{TOT}$', r'$\Delta F_{TOA}^{TOT}$'], - ['$P_{TOA}^{SW}$', r'$\Delta F_{TOA}^{SW}$'], - ['$P_{TOA}^{LW}$', r'$\Delta F_{TOA}^{LW}$']], - label=[['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], - change_sign=[[False, False], [False, False], [False, False]]) + }) provenance_record = get_provenance_record(iht.flx_files) figname = f"figure2_{model}_{experiment}" save_figure(figname, provenance_record, config) @@ -756,6 +748,11 @@ def efp_maps(iht, model, experiment, config): { 'var_name': [['netcre_efp', 'netcre'], ['swcre_efp', 'swcre'], ['lwcre_efp', 'lwcre']], + 'title' : [['$P_{TOA}^{TOTCRE}$', r'$\Delta CRE_{TOA}^{TOT}$'], + ['$P_{TOA}^{SWCRE}$', r'$\Delta CRE_{TOA}^{SW}$'], + ['$P_{TOA}^{LWCRE}$', r'$\Delta CRE_{TOA}^{LW}$']], + 'label' : [['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], + 'change_sign' : [[False, False], [False, False], [False, False]], 'wmin': -60, 'wmax': @@ -770,12 +767,7 @@ def efp_maps(iht, model, experiment, config): 0.3, 'nlevs': 11 - }, - title=[['$P_{TOA}^{TOTCRE}$', r'$\Delta CRE_{TOA}^{TOT}$'], - ['$P_{TOA}^{SWCRE}$', r'$\Delta CRE_{TOA}^{SW}$'], - ['$P_{TOA}^{LWCRE}$', r'$\Delta CRE_{TOA}^{LW}$']], - label=[['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], - change_sign=[[False, False], [False, False], [False, False]]) + }) provenance_record = get_provenance_record(iht.flx_files) figname = f"figure4_{model}_{experiment}" save_figure(figname, provenance_record, config) @@ -783,6 +775,12 @@ def efp_maps(iht, model, experiment, config): iht.quiver_subplot( { 'var_name': [['rsutcs_efp', 'rsutcs'], ['rsut_efp', 'rsut']], + 'title' : [['$P_{TOA}^{SWup, clr}$', + r'$\Delta F_{TOA}^{SWup, clr}$'], + ['$P_{TOA}^{SWup, all}$', + r'$\Delta F_{TOA}^{SWup, all}$']], + 'label' : [['(a)', '(b)'], ['(c)', '(d)']], + 'change_sign' : [[True, True], [True, True]], 'wmin': -100, 'wmax': 100, 'nwlevs': 21, @@ -790,11 +788,7 @@ def efp_maps(iht, model, experiment, config): 'vmin': -0.35, 'vmax': 0.35, 'nlevs': 11 - }, - title=[['$P_{TOA}^{SWup, clr}$', r'$\Delta F_{TOA}^{SWup, clr}$'], - ['$P_{TOA}^{SWup, all}$', r'$\Delta F_{TOA}^{SWup, all}$']], - label=[['(a)', '(b)'], ['(c)', '(d)']], - change_sign=[[True, True], [True, True]]) + }) provenance_record = get_provenance_record(iht.flx_files) figname = f"figure5_{model}_{experiment}" save_figure(figname, provenance_record, config) From f4803b5171e777b238ec03dfd0d60ecf6ad35ba0 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 27 Oct 2023 09:06:14 +0100 Subject: [PATCH 52/59] #3177 review. Fix of pycodestyle errors. --- .../diag_scripts/iht_toa/poisson_solver.py | 30 +++---- .../iht_toa/single_model_diagnostics.py | 80 ++++++++++--------- 2 files changed, 58 insertions(+), 52 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index c5bc37f03f..df924d231b 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -1,8 +1,8 @@ # (C) Crown Copyright 2023, the Met Office. -""" -Poisson solver for the full ocean-atmosphere column. The Poisson equation -is solved by numerically using the biconjugate gradient stabilized (BiCGSTAB) -method. +"""Poisson solver for the full ocean-atmosphere column. + +The Poisson equation is solved by numerically using the bi-conjugate +gradient stabilized (BiCGSTAB) method. The solution is achieved when the difference between the input field (radiative flux) and the Laplacian of the output field is less than the stated tolerance. @@ -69,8 +69,8 @@ def precon_a(x_matrix, m_w, m_s, m_p, cx_matrix): for j in range(1, shape0 + 1): for i in range(1, shape1 + 1): cx_matrix[j, i] = m_p[j, i] * (x_matrix[j, i] - - m_s[j, i] * cx_matrix[j - 1, i] - - m_w[j, i] * cx_matrix[j, i - 1]) + m_s[j, i] * cx_matrix[j - 1, i] - + m_w[j, i] * cx_matrix[j, i - 1]) @jit @@ -152,28 +152,30 @@ def set_matrices(self): for j in range(1, src_shape[0] + 1): for i in range(1, src_shape[1] + 1): m_matrix[2, j, i] = (a_matrix[2, j - 1, i - 1] / - (1.0 + alf * m_matrix[0, j - 1, i])) + (1.0 + alf * m_matrix[0, j - 1, i])) m_matrix[1, j, i] = (a_matrix[1, j - 1, i - 1] / - (1.0 + alf * m_matrix[3, j, i - 1])) + (1.0 + alf * m_matrix[3, j, i - 1])) m_matrix[4, j, i] = (a_matrix[4, j - 1, i - 1] - - m_matrix[2, j, i] * (m_matrix[3, j - 1, i] - - alf * m_matrix[0, j - 1, i]) - - m_matrix[1, j, i] * (m_matrix[0, j, i - 1] - - alf * m_matrix[3, j, i - 1])) + m_matrix[2, j, i] * + (m_matrix[3, j - 1, i] - + alf * m_matrix[0, j - 1, i]) - + m_matrix[1, j, i] * + (m_matrix[0, j, i - 1] - + alf * m_matrix[3, j, i - 1])) m_matrix[4, j, i] = 1.0 / m_matrix[4, j, i] m_matrix[0, j, i] = ((a_matrix[0, j - 1, i - 1] - alf * m_matrix[2, j, i] * m_matrix[0, j - 1, i]) * - m_matrix[4, j, i]) + m_matrix[4, j, i]) m_matrix[3, j, i] = ((a_matrix[3, j - 1, i - 1] - alf * m_matrix[1, j, i] * m_matrix[3, j, i - 1]) * - m_matrix[4, j, i]) + m_matrix[4, j, i]) self.a_matrix = a_matrix self.m_matrix = m_matrix diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 718b433638..21bb153ce4 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -1,7 +1,7 @@ # (C) Crown Copyright 2023, the Met Office. """Single model diagnostics -1. Solve the Poisson solver +1. Apply Poisson solver 2. Produce and save plots """ @@ -126,6 +126,7 @@ def weight_zm(cube, latitude=None): def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): """Call the Poisson solver with the data in ``flux_cube`` as source term. + Return the energy flux potential and implied meridional heat transport as cubes. @@ -146,7 +147,7 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): Implied meridional heat transport associated with the source flux field. """ - earth_radius = 6371e3 # Earth's radius in m + earth_radius = 6371e3 # Earth's radius in m if flux_cube.coord(latitude).bounds is None: flux_cube.coord(latitude).guess_bounds() if flux_cube.coord(longitude).bounds is None: @@ -169,10 +170,12 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): # Energy flux potential efp_cube = iris.cube.Cube(sphpo.energy_flux_potential[1:-1, 1:-1], - long_name=f"energy_flux_potential_of_{flux_cube.var_name}", - var_name=f"{flux_cube.var_name}_efp", units='J s-1', - dim_coords_and_dims=[(flux_cube.coords()[0], 0), - (flux_cube.coords()[1], 1)]) + long_name=f"energy_flux_potential" + f"_of_{flux_cube.var_name}", + var_name=f"{flux_cube.var_name}_efp", + units='J s-1', + dim_coords_and_dims=[(flux_cube.coords()[0], 0), + (flux_cube.coords()[1], 1)]) # MHT data cube collapsed_longitude = iris.coords.AuxCoord(180.0, @@ -180,13 +183,16 @@ def call_poisson(flux_cube, latitude='latitude', longitude='longitude'): long_name='longitude', standard_name='longitude', units='degrees') + dim_coords_and_dims = [(flux_cube.coord('latitude'), 0)] + aux_coords_and_dims = [(flux_cube.coord('time'), None), + (collapsed_longitude, None)] mht_cube = iris.cube.Cube(sphpo.meridional_heat_transport, - long_name=f"meridional_heat_transport_of" - f"_{flux_cube.var_name}", - var_name=f"{flux_cube.var_name}_mht", units='W', - dim_coords_and_dims=[(flux_cube.coord('latitude'), 0)], - aux_coords_and_dims=[(flux_cube.coord('time'), None), - (collapsed_longitude, None)]) + long_name=f"meridional_heat_transport_of" + f"_{flux_cube.var_name}", + var_name=f"{flux_cube.var_name}_mht", + units='W', + dim_coords_and_dims=dim_coords_and_dims, + aux_coords_and_dims=aux_coords_and_dims) return efp_cube, mht_cube @@ -246,8 +252,7 @@ def format_plot(axes, label, title): class ImpliedHeatTransport: - """Class that calculates the relevant implied heat - transport for an input dataset. + """Class that solves implied heat transport for an input dataset. These are the physical meanings of the main acronyms used in the variable names: @@ -257,8 +262,7 @@ class ImpliedHeatTransport: """ def __init__(self, flx_files): - """Calculate all the diagnostics for all the fluxes - listed in ``flx_files``. + """Calculate all the diagnostics for all fluxes in ``flx_files``. Parameters ---------- @@ -331,21 +335,21 @@ def derived_fluxes(self): rlnt_clim.long_name = "radiative_flux_of_rlnt" self.flx_clim.append(rlnt_clim) rtntcs_clim = (self.flx_clim.extract_cube( - NameConstraint(var_name="rsdt")) - + NameConstraint(var_name="rsdt")) - self.flx_clim.extract_cube( - NameConstraint(var_name="rsutcs")) - + NameConstraint(var_name="rsutcs")) - self.flx_clim.extract_cube( - NameConstraint(var_name="rlutcs"))) + NameConstraint(var_name="rlutcs"))) rtntcs_clim.var_name = "rtntcs" rtntcs_clim.long_name = "radiative_flux_of_rtntcs" self.flx_clim.append(rtntcs_clim) # Annual rolling means clear-sky net total TOA rtntcs_rolling_mean = (self.flx_rolling_mean.extract_cube( - NameConstraint(var_name="rsdt")) - + NameConstraint(var_name="rsdt")) - self.flx_rolling_mean.extract_cube( - NameConstraint(var_name="rsutcs")) - + NameConstraint(var_name="rsutcs")) - self.flx_rolling_mean.extract_cube( - NameConstraint(var_name="rlutcs"))) + NameConstraint(var_name="rlutcs"))) rtntcs_rolling_mean.var_name = "rtntcs" rtntcs_rolling_mean.long_name = "radiative_flux_of_rtntcs" self.flx_rolling_mean.append(rtntcs_rolling_mean) @@ -720,11 +724,11 @@ def efp_maps(iht, model, experiment, config): { 'var_name': [['rtnt_efp', 'rtnt'], ['rsnt_efp', 'rsnt'], ['rlnt_efp', 'rlnt']], - 'title' : [['$P_{TOA}^{TOT}$', r'$\Delta F_{TOA}^{TOT}$'], - ['$P_{TOA}^{SW}$', r'$\Delta F_{TOA}^{SW}$'], - ['$P_{TOA}^{LW}$', r'$\Delta F_{TOA}^{LW}$']], - 'label' : [['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], - 'change_sign' : [[False, False], [False, False], [False, False]], + 'title': [['$P_{TOA}^{TOT}$', r'$\Delta F_{TOA}^{TOT}$'], + ['$P_{TOA}^{SW}$', r'$\Delta F_{TOA}^{SW}$'], + ['$P_{TOA}^{LW}$', r'$\Delta F_{TOA}^{LW}$']], + 'label': [['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], + 'change_sign': [[False, False], [False, False], [False, False]], 'wmin': -180, 'wmax': @@ -748,11 +752,11 @@ def efp_maps(iht, model, experiment, config): { 'var_name': [['netcre_efp', 'netcre'], ['swcre_efp', 'swcre'], ['lwcre_efp', 'lwcre']], - 'title' : [['$P_{TOA}^{TOTCRE}$', r'$\Delta CRE_{TOA}^{TOT}$'], - ['$P_{TOA}^{SWCRE}$', r'$\Delta CRE_{TOA}^{SW}$'], - ['$P_{TOA}^{LWCRE}$', r'$\Delta CRE_{TOA}^{LW}$']], - 'label' : [['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], - 'change_sign' : [[False, False], [False, False], [False, False]], + 'title': [['$P_{TOA}^{TOTCRE}$', r'$\Delta CRE_{TOA}^{TOT}$'], + ['$P_{TOA}^{SWCRE}$', r'$\Delta CRE_{TOA}^{SW}$'], + ['$P_{TOA}^{LWCRE}$', r'$\Delta CRE_{TOA}^{LW}$']], + 'label': [['(a)', '(b)'], ['(c)', '(d)'], ['(e)', '(f)']], + 'change_sign': [[False, False], [False, False], [False, False]], 'wmin': -60, 'wmax': @@ -775,12 +779,12 @@ def efp_maps(iht, model, experiment, config): iht.quiver_subplot( { 'var_name': [['rsutcs_efp', 'rsutcs'], ['rsut_efp', 'rsut']], - 'title' : [['$P_{TOA}^{SWup, clr}$', - r'$\Delta F_{TOA}^{SWup, clr}$'], - ['$P_{TOA}^{SWup, all}$', - r'$\Delta F_{TOA}^{SWup, all}$']], - 'label' : [['(a)', '(b)'], ['(c)', '(d)']], - 'change_sign' : [[True, True], [True, True]], + 'title': [['$P_{TOA}^{SWup, clr}$', + r'$\Delta F_{TOA}^{SWup, clr}$'], + ['$P_{TOA}^{SWup, all}$', + r'$\Delta F_{TOA}^{SWup, all}$']], + 'label': [['(a)', '(b)'], ['(c)', '(d)']], + 'change_sign': [[True, True], [True, True]], 'wmin': -100, 'wmax': 100, 'nwlevs': 21, From de84d0481cd3efc4858ba7b0ff9d3c1aab27dd77 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 27 Oct 2023 09:35:14 +0100 Subject: [PATCH 53/59] #3177 review. Fix jit warnings. --- esmvaltool/diag_scripts/iht_toa/poisson_solver.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py index df924d231b..886d5fc616 100644 --- a/esmvaltool/diag_scripts/iht_toa/poisson_solver.py +++ b/esmvaltool/diag_scripts/iht_toa/poisson_solver.py @@ -46,7 +46,6 @@ def dot_prod(a_matrix, b_matrix): b_matrix[1:shape0 + 1, 1:shape1 + 1]).sum() -@jit def precon(x_matrix, m_matrix): """Preconditioner. @@ -62,7 +61,7 @@ def precon(x_matrix, m_matrix): return cx_matrix -@jit +@jit(nopython=True) def precon_a(x_matrix, m_w, m_s, m_p, cx_matrix): """First step of preconditioner.""" shape0, shape1 = np.array(cx_matrix.shape) - 2 @@ -73,7 +72,7 @@ def precon_a(x_matrix, m_w, m_s, m_p, cx_matrix): m_w[j, i] * cx_matrix[j, i - 1]) -@jit +@jit(nopython=True) def precon_b(m_e, m_n, cx_matrix): """Second step of preconditioner.""" shape0, shape1 = np.array(cx_matrix.shape) - 2 From b46c7924f08eb84d4397dee28bce147a5da6744e Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 27 Oct 2023 12:19:32 +0100 Subject: [PATCH 54/59] #3177 review. Fix provenance records and figure captions. --- .../iht_toa/single_model_diagnostics.py | 87 +++++++++++++++++-- 1 file changed, 80 insertions(+), 7 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 21bb153ce4..8ae08040f5 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -41,8 +41,41 @@ 'lines.linewidth': 2 }) - -def get_provenance_record(filenames): +# Figure captions +caption = { + 'F1': 'Figure 1. The implied heat transport due to TOA net flux (blue), ' + 'split into the contributions from SW (orange) and LW (green).', + 'F2': 'Figure 2. The TOA energy flux potentials for (a) TOT, (c) ' + 'SW, and (e) LW net fluxes, alongside maps of the spatial anomalies ' + 'of the input fluxes [(b),(d),(f)]. The implied heat transport is ' + 'the gradient of the energy flus potential, shown by the white ' + 'vector arrows (with the same magnitude scale across all subplots). ' + 'Heat is directed from the blue minima of the potential field to ' + 'yellow maxima, with the magnitude implied by the density of ' + 'contours. All maps of the same type share the same color bar at ' + 'the bottom of the column so that it is possible to directly ' + 'compare the results from different fluxes.', + 'F3': 'Figure 3. Direct radiative effects of clouds on the meridional ' + 'heat transport. (a) Contributions from TOT CRE (blue), SW CRE ' + '(orange), and LW CRE (green). (b) Contributions from all-sky and ' + 'clear-sky OSR. Both curves have been multiplied by -1 such that ' + 'positive heat transport is northward.', + 'F4': 'Figure 4. As in Figure 2, but for cloud radiative effects.', + 'F5': 'Figure 5. As in Figure 2, but for energy flux potentials and ' + 'spatial radiative anomalies associated with all-sky and clear-sky ' + 'outgoing shortwave radiation. ', + 'F6': 'Figure 6. A measure of the symmetry between heat transport in the ' + 'Northern and Southern Hemispheres, calculated for the 12-month ' + 'running mean of MHT in (a) the full hemisphere, (b) from the ' + 'equator to 30 deg latitude, and (c) between 30 and 90 deg ' + 'latitude. Symmetry values obtained when including (blue) and ' + 'excluding (orange) the effect of clouds are shown. The ' + 'climatological symmetry values for the two cases are shown as ' + 'black lines in each subplot. The standard deviations of the ' + 'time series are shown in each subplot.', +} + +def get_provenance_record(filenames, caption): """Return a provenance record describing the plot. Parameters @@ -57,10 +90,35 @@ def get_provenance_record(filenames): """ record = { 'ancestors': filenames, + 'caption': caption } return record +def matching_strings(list_of_strings, substrings): + """Return the subset of strings that of files . + + Parameters + ---------- + list_of_strings : list of strings + List of strings to be searched. + substrings : list of strings + The list of search strings. + + Returns + ------- + list + The elements in ``list_of_strings`` that contain + any of the substrings. + """ + matches = [] + for element in list_of_strings: + for var in substrings: + if var in element: + matches.append(element) + return matches + + def area_average(cube, latitude='latitude', longitude='longitude', mdtol=1): """Return area-weighted average of a cube. @@ -744,7 +802,10 @@ def efp_maps(iht, model, experiment, config): 'nlevs': 11 }) - provenance_record = get_provenance_record(iht.flx_files) + flx_files = matching_strings(iht.flx_files, ['rtnt/', + 'rsut/', + 'rlut/']) + provenance_record = get_provenance_record(flx_files, caption['F2']) figname = f"figure2_{model}_{experiment}" save_figure(figname, provenance_record, config) # Figure 4 @@ -772,7 +833,10 @@ def efp_maps(iht, model, experiment, config): 'nlevs': 11 }) - provenance_record = get_provenance_record(iht.flx_files) + flx_files = matching_strings(iht.flx_files, ['netcre/', + 'swcre/', + 'lwcre/']) + provenance_record = get_provenance_record(flx_files, caption['F4']) figname = f"figure4_{model}_{experiment}" save_figure(figname, provenance_record, config) # Figure 5 @@ -793,7 +857,8 @@ def efp_maps(iht, model, experiment, config): 'vmax': 0.35, 'nlevs': 11 }) - provenance_record = get_provenance_record(iht.flx_files) + flx_files = matching_strings(iht.flx_files, ['rsut/', 'rsutcs/']) + provenance_record = get_provenance_record(flx_files, caption['F5']) figname = f"figure5_{model}_{experiment}" save_figure(figname, provenance_record, config) @@ -814,7 +879,8 @@ def mht_plots(iht, model, experiment, config): """ # Figure 1 iht.mht_plot(["rtnt_mht", "rsnt_mht", "rlnt_mht"], ['Net', 'SW', 'LW']) - provenance_record = get_provenance_record(iht.flx_files) + flx_files = matching_strings(iht.flx_files, ['rtnt/', 'rsut/', 'rlut/']) + provenance_record = get_provenance_record(flx_files, caption['F1']) figname = f"figure1_{model}_{experiment}" save_figure(figname, provenance_record, config) # Figure 3 @@ -826,6 +892,9 @@ def mht_plots(iht, model, experiment, config): 'vname': ['rsut_mht', 'rsutcs_mht'], 'legend': ['-1 x OSR (all-sky)', '-1 x OSR (clear-sky)'] }) + flx_files = matching_strings(iht.flx_files, ['netcre/', 'swcre/', 'lwcre/', + 'rsut/', 'rsutcs/']) + provenance_record = get_provenance_record(flx_files, caption['F3']) figname = f"figure3_{model}_{experiment}" save_figure(figname, provenance_record, config) @@ -845,7 +914,11 @@ def symmetry_plots(iht, model, experiment, config): The ESMValTool configuration. """ iht.plot_symmetry_time_series() - provenance_record = get_provenance_record(iht.flx_files) + flx_files = matching_strings(iht.flx_files, ['rtnt_monthly', + 'rsutcs_monthly', + 'rlutcs_monthly', + 'rsdt_monthly']) + provenance_record = get_provenance_record(flx_files, caption['F6']) figname = f"figure6_{model}_{experiment}" save_figure(figname, provenance_record, config) From b44104f1658ef374b6b73df0c4f7cec3e2752af3 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 27 Oct 2023 13:10:38 +0100 Subject: [PATCH 55/59] #3177 review. Fix codacy errors. --- .../iht_toa/single_model_diagnostics.py | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 8ae08040f5..260da5cb02 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -1,8 +1,7 @@ # (C) Crown Copyright 2023, the Met Office. -"""Single model diagnostics +"""Single model diagnostics. -1. Apply Poisson solver -2. Produce and save plots +Apply Poisson solver to input fluxes and produce plots. """ import datetime @@ -75,13 +74,16 @@ 'time series are shown in each subplot.', } -def get_provenance_record(filenames, caption): + +def get_provenance_record(filenames, figure_caption): """Return a provenance record describing the plot. Parameters ---------- filenames : list of strings The filenames containing the data used to create the plot. + figure_caption : string + Detailed description of the figure. Returns ------- @@ -90,7 +92,7 @@ def get_provenance_record(filenames, caption): """ record = { 'ancestors': filenames, - 'caption': caption + 'caption': figure_caption } return record @@ -312,11 +314,11 @@ def format_plot(axes, label, title): class ImpliedHeatTransport: """Class that solves implied heat transport for an input dataset. - These are the physical meanings of the main acronyms - used in the variable names: - FLX: radiative flux - EFP: energy flux potential - MHT: meridional heat transport + These are the physical meanings of the main acronyms + used in the variable names: + FLX: radiative flux + EFP: energy flux potential + MHT: meridional heat transport """ def __init__(self, flx_files): From 94ecbe259032c0d02bbed719e9e79b86c9095f26 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Fri, 27 Oct 2023 15:44:50 +0100 Subject: [PATCH 56/59] #3177 review. Fix indentation and add author. --- .zenodo.json | 796 +++++++++---------- CITATION.cff | 4 + doc/sphinx/source/recipes/recipe_iht_toa.rst | 8 +- 3 files changed, 397 insertions(+), 411 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index 43d9d2638a..b19b301317 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -1,409 +1,391 @@ { - "creators": [ - { - "affiliation": "NLeSC, Netherlands", - "name": "Andela, Bouwe", - "orcid": "0000-0001-9005-8940" - }, - { - "affiliation": "DLR, Germany", - "name": "Broetz, Bjoern" - }, - { - "affiliation": "PML, UK", - "name": "de Mora, Lee", - "orcid": "0000-0002-5080-3149" - }, - { - "affiliation": "NLeSC, Netherlands", - "name": "Drost, Niels", - "orcid": "0000-0001-9795-7981" - }, - { - "affiliation": "DLR, Germany", - "name": "Eyring, Veronika", - "orcid": "0000-0002-6887-4885" - }, - { - "affiliation": "AWI, Germany", - "name": "Koldunov, Nikolay", - "orcid": "0000-0002-3365-8146" - }, - { - "affiliation": "DLR, Germany", - "name": "Lauer, Axel", - "orcid": "0000-0002-9270-1044" - }, - { - "affiliation": "LMU, Germany", - "name": "Mueller, Benjamin" - }, - { - "affiliation": "URead, UK", - "name": "Predoi, Valeriu", - "orcid": "0000-0002-9729-6578" - }, - { - "affiliation": "DLR, Germany", - "name": "Righi, Mattia", - "orcid": "0000-0003-3827-5950" - }, - { - "affiliation": "DLR, Germany", - "name": "Schlund, Manuel", - "orcid": "0000-0001-5251-0158" - }, - { - "affiliation": "BSC, Spain", - "name": "Vegas-Regidor, Javier", - "orcid": "0000-0003-0096-4291" - }, - { - "affiliation": "SMHI, Sweden", - "name": "Zimmermann, Klaus" - }, - { - "affiliation": "University of Bremen, Germany", - "name": "Adeniyi, Kemisola" - }, - { - "affiliation": "ISAC-CNR, Italy", - "name": "Arnone, Enrico", - "orcid": "0000-0001-6740-5051" - }, - { - "affiliation": "BSC, Spain", - "name": "Bellprat, Omar", - "orcid": "0000-0001-6434-1793" - }, - { - "affiliation": "SMHI, Sweden", - "name": "Berg, Peter", - "orcid": "0000-0002-1469-2568" - }, - { - "affiliation": "DLR, Germany", - "name": "Bock, Lisa", - "orcid": "0000-0001-7058-5938" - }, - { - "affiliation": "DLR, Germany", - "name": "Bonnet, Pauline", - "orcid": "0000-0003-3780-0784" - }, - { - "affiliation": "BSC, Spain", - "name": "Caron, Louis-Philippe", - "orcid": "0000-0001-5221-0147" - }, - { - "affiliation": "MPI for Biogeochemistry, Germany", - "name": "Carvalhais, Nuno" - }, - { - "affiliation": "ENEA, Italy", - "name": "Cionni, Irene", - "orcid": "0000-0002-0591-9193" - }, - { - "affiliation": "BSC, Spain", - "name": "Cortesi, Nicola", - "orcid": "0000-0002-1442-9225" - }, - { - "affiliation": "ISAC-CNR, Italy", - "name": "Corti, Susanna" - }, - { - "affiliation": "ETH Zurich, Switzerland", - "name": "Crezee, Bas", - "orcid": "0000-0002-1774-1126" - }, - { - "affiliation": "ETH Zurich, Switzerland", - "name": "Davin, Edouard Leopold", - "orcid": "0000-0003-3322-9330" - }, - { - "affiliation": "ISAC-CNR, Italy", - "name": "Davini, Paolo", - "orcid": "0000-0003-3389-7849" - }, - { - "affiliation": "NCAR, USA", - "name": "Deser, Clara" - }, - { - "affiliation": "NLeSC, Netherlands", - "name": "Diblen, Faruk" - }, - { - "affiliation": "UCLouvain, Belgium", - "name": "Docquier, David" - }, - { - "affiliation": "MetOffice, UK", - "name": "Dreyer, Laura" - }, - { - "affiliation": "DKRZ, Germany", - "name": "Ehbrecht, Carsten" - }, - { - "affiliation": "MetOffice, UK", - "name": "Earnshaw, Paul" - }, - { - "affiliation": "University of Bremen, Germany", - "name": "Gier, Bettina" - }, - { - "affiliation": "BSC, Spain", - "name": "Gonzalez-Reviriego, Nube", - "orcid": "0000-0002-5919-6701" - }, - { - "affiliation": "University of Arizona, USA", - "name": "Goodman, Paul" - }, - { - "affiliation": "HZG, Germany", - "name": "Hagemann, Stefan", - "orcid": "0000-0001-5444-2945" - }, - { - "affiliation": "ISAC-CNR, Italy", - "name": "von Hardenberg, Jost", - "orcid": "0000-0002-5312-8070" - }, - { - "affiliation": "DLR, Germany", - "name": "Hassler, Birgit", - "orcid": "0000-0003-2724-709X" - }, - { - "affiliation": "DLR, Germany", - "name": "Heuer, Helge", - "orcid": "0000-0003-2411-7150" - }, - { - "affiliation": "BSC, Spain", - "name": "Hunter, Alasdair", - "orcid": "0000-0001-8365-3709" - }, - { - "affiliation": "FUB, Germany", - "name": "Kadow, Christopher" - }, - { - "affiliation": "DKRZ, Germany", - "name": "Kindermann, Stephan", - "orcid": "0000-0001-9335-1093" - }, - { - "affiliation": "MPI for Biogeochemistry, Germany", - "name": "Koirala, Sujan" - }, - { - "affiliation": "DLR, Germany", - "name": "Kuehbacher, Birgit" - }, - { - "affiliation": "BSC, Spain", - "name": "Lledó, Llorenç" - }, - { - "affiliation": "ETH Zurich, Switzerland", - "name": "Lejeune, Quentin" - }, - { - "affiliation": "University of Hamburg, German", - "name": "Lembo, Valerio", - "orcid": "0000-0001-6085-5914" - }, - { - "affiliation": "MetOffice, UK", - "name": "Little, Bill" - }, - { - "affiliation": "BSC, Spain", - "name": "Loosveldt-Tomas, Saskia" - }, - { - "affiliation": "ETH Zurich, Switzerland", - "name": "Lorenz, Ruth", - "orcid": "0000-0002-3986-1268" - }, - { - "affiliation": "CMCC, Italy", - "name": "Lovato, Tomas", - "orcid": "0000-0002-5188-6767" - }, - { - "affiliation": "University of Hamburg, German", - "name": "Lucarini, Valerio" - }, - { - "affiliation": "UCLouvain, Belgium", - "name": "Massonnet, François" - }, - { - "affiliation": "NIBIO, Norway", - "name": "Mohr, Christian Wilhelm", - "orcid": "0000-0003-2656-1802" - }, - { - "affiliation": "BSC, Spain", - "name": "Moreno-Chamarro, Eduardo" - }, - { - "affiliation": "University of Arizona, USA", - "name": "Amarjiit, Pandde" - }, - { - "affiliation": "BSC, Spain", - "name": "Pérez-Zanón, Núria" - }, - { - "affiliation": "NCAR, USA", - "name": "Phillips, Adam", - "orcid": "0000-0003-4859-8585" - }, - { - "affiliation": "University of Arizona, USA", - "name": "Russell, Joellen" - }, - { - "affiliation": "CICERO, Norway", - "name": "Sandstad, Marit" - }, - { - "affiliation": "DLR, Germany", - "name": "Sarauer, Ellen" - }, - { - "affiliation": "MetOffice, UK", - "name": "Sellar, Alistair" - }, - { - "affiliation": "DLR, Germany", - "name": "Senftleben, Daniel" - }, - { - "affiliation": "ISMAR-CNR, Italy", - "name": "Serva, Federico", - "orcid": "0000-0002-7118-0817" - }, - { - "affiliation": "CICERO, Norway", - "name": "Sillmann, Jana" - }, - { - "affiliation": "MPI-M, Germany", - "name": "Stacke, Tobias", - "orcid": "0000-0003-4637-5337" - }, - { - "affiliation": "URead, UK", - "name": "Swaminathan, Ranjini", - "orcid": "0000-0001-5853-2673" - }, - { - "affiliation": "BSC, Spain", - "name": "Torralba, Verónica" - }, - { - "affiliation": "University of Bremen, Germany", - "name": "Weigel, Katja", - "orcid": "0000-0001-6133-7801" - }, - { - "affiliation": "University of Reading, UK", - "name": "Roberts, Charles", - "orcid": "0000-0002-1147-8961" - }, - { - "affiliation": "Netherlands eScience Center", - "name": "Kalverla, Peter", - "orcid": "0000-0002-5025-7862" - }, - { - "affiliation": "Netherlands eScience Center", - "name": "Alidoost, Sarah", - "orcid": "0000-0001-8407-6472" - }, - { - "affiliation": "Netherlands eScience Center", - "name": "Verhoeven, Stefan", - "orcid": "0000-0002-5821-2060" - }, - { - "affiliation": "Netherlands eScience Center", - "name": "Vreede, Barbara", - "orcid": "0000-0002-5023-4601" - }, - { - "affiliation": "Netherlands eScience Center", - "name": "Smeets, Stef", - "orcid": "0000-0002-5413-9038" - }, - { - "affiliation": "Netherlands eScience Center", - "name": "Soares Siqueira, Abel", - "orcid": "0000-0003-4451-281X" - }, - { - "affiliation": "DLR, Germany", - "name": "Kazeroni, Rémi", - "orcid": "0000-0001-7205-9528" - }, - { - "affiliation": "DLR, Germany", - "name": "Kraft, Jeremy" - }, - { - "affiliation": "University of Bremen, Germany", - "name": "Ruhe, Lukas", - "orcid": "0000-0001-6349-9118" - } - ], - "description": "ESMValTool: A community diagnostic and performance metrics tool for routine evaluation of Earth system models in CMIP.", - "license": { - "id": "Apache-2.0" - }, - "title": "ESMValTool", - "communities": [ - { - "identifier": "is-enes3" - }, - { - "identifier": "dlr_de" - }, - { - "identifier": "ecfunded" - }, - { - "identifier": "nlesc" - } - ], - "grants": [ - { - "id": "10.13039/501100000780::282672" - }, - { - "id": "10.13039/501100000780::641727" - }, - { - "id": "10.13039/501100000780::641816" - }, - { - "id": "10.13039/501100000780::727862" - }, - { - "id": "10.13039/501100000780::776613" - }, - { - "id": "10.13039/501100000780::824084" - } - ] + "creators": [ + { + "affiliation": "NLeSC, Netherlands", + "name": "Andela, Bouwe", + "orcid": "0000-0001-9005-8940" + }, + { + "affiliation": "MetOffice, UK", + "name": "Bodas-Salcedo, Alejandro" + }, + { + "affiliation": "DLR, Germany", + "name": "Broetz, Bjoern" + }, + { + "affiliation": "PML, UK", + "name": "de Mora, Lee", + "orcid": "0000-0002-5080-3149" + }, + { + "affiliation": "NLeSC, Netherlands", + "name": "Drost, Niels", + "orcid": "0000-0001-9795-7981" + }, + { + "affiliation": "DLR, Germany", + "name": "Eyring, Veronika", + "orcid": "0000-0002-6887-4885" + }, + { + "affiliation": "AWI, Germany", + "name": "Koldunov, Nikolay", + "orcid": "0000-0002-3365-8146" + }, + { + "affiliation": "DLR, Germany", + "name": "Lauer, Axel", + "orcid": "0000-0002-9270-1044" + }, + { + "affiliation": "LMU, Germany", + "name": "Mueller, Benjamin" + }, + { + "affiliation": "URead, UK", + "name": "Predoi, Valeriu", + "orcid": "0000-0002-9729-6578" + }, + { + "affiliation": "DLR, Germany", + "name": "Righi, Mattia", + "orcid": "0000-0003-3827-5950" + }, + { + "affiliation": "DLR, Germany", + "name": "Schlund, Manuel", + "orcid": "0000-0001-5251-0158" + }, + { + "affiliation": "BSC, Spain", + "name": "Vegas-Regidor, Javier", + "orcid": "0000-0003-0096-4291" + }, + { + "affiliation": "SMHI, Sweden", + "name": "Zimmermann, Klaus" + }, + { + "affiliation": "University of Bremen, Germany", + "name": "Adeniyi, Kemisola" + }, + { + "affiliation": "ISAC-CNR, Italy", + "name": "Arnone, Enrico", + "orcid": "0000-0001-6740-5051" + }, + { + "affiliation": "BSC, Spain", + "name": "Bellprat, Omar", + "orcid": "0000-0001-6434-1793" + }, + { + "affiliation": "SMHI, Sweden", + "name": "Berg, Peter", + "orcid": "0000-0002-1469-2568" + }, + { + "affiliation": "DLR, Germany", + "name": "Bock, Lisa", + "orcid": "0000-0001-7058-5938" + }, + { + "affiliation": "BSC, Spain", + "name": "Caron, Louis-Philippe", + "orcid": "0000-0001-5221-0147" + }, + { + "affiliation": "MPI for Biogeochemistry, Germany", + "name": "Carvalhais, Nuno" + }, + { + "affiliation": "ENEA, Italy", + "name": "Cionni, Irene", + "orcid": "0000-0002-0591-9193" + }, + { + "affiliation": "BSC, Spain", + "name": "Cortesi, Nicola", + "orcid": "0000-0002-1442-9225" + }, + { + "affiliation": "ISAC-CNR, Italy", + "name": "Corti, Susanna" + }, + { + "affiliation": "ETH Zurich, Switzerland", + "name": "Crezee, Bas", + "orcid": "0000-0002-1774-1126" + }, + { + "affiliation": "ETH Zurich, Switzerland", + "name": "Davin, Edouard Leopold", + "orcid": "0000-0003-3322-9330" + }, + { + "affiliation": "ISAC-CNR, Italy", + "name": "Davini, Paolo", + "orcid": "0000-0003-3389-7849" + }, + { + "affiliation": "NCAR, USA", + "name": "Deser, Clara" + }, + { + "affiliation": "NLeSC, Netherlands", + "name": "Diblen, Faruk" + }, + { + "affiliation": "UCLouvain, Belgium", + "name": "Docquier, David" + }, + { + "affiliation": "MetOffice, UK", + "name": "Dreyer, Laura" + }, + { + "affiliation": "DKRZ, Germany", + "name": "Ehbrecht, Carsten" + }, + { + "affiliation": "MetOffice, UK", + "name": "Earnshaw, Paul" + }, + { + "affiliation": "University of Bremen, Germany", + "name": "Gier, Bettina" + }, + { + "affiliation": "BSC, Spain", + "name": "Gonzalez-Reviriego, Nube", + "orcid": "0000-0002-5919-6701" + }, + { + "affiliation": "University of Arizona, USA", + "name": "Goodman, Paul" + }, + { + "affiliation": "HZG, Germany", + "name": "Hagemann, Stefan", + "orcid": "0000-0001-5444-2945" + }, + { + "affiliation": "ISAC-CNR, Italy", + "name": "von Hardenberg, Jost", + "orcid": "0000-0002-5312-8070" + }, + { + "affiliation": "DLR, Germany", + "name": "Hassler, Birgit", + "orcid": "0000-0003-2724-709X" + }, + { + "affiliation": "DLR, Germany", + "name": "Heuer, Helge", + "orcid": "0000-0003-2411-7150" + }, + { + "affiliation": "BSC, Spain", + "name": "Hunter, Alasdair", + "orcid": "0000-0001-8365-3709" + }, + { + "affiliation": "FUB, Germany", + "name": "Kadow, Christopher" + }, + { + "affiliation": "DKRZ, Germany", + "name": "Kindermann, Stephan", + "orcid": "0000-0001-9335-1093" + }, + { + "affiliation": "MPI for Biogeochemistry, Germany", + "name": "Koirala, Sujan" + }, + { + "affiliation": "DLR, Germany", + "name": "Kuehbacher, Birgit" + }, + { + "affiliation": "BSC, Spain", + "name": "Lledó, Llorenç" + }, + { + "affiliation": "ETH Zurich, Switzerland", + "name": "Lejeune, Quentin" + }, + { + "affiliation": "University of Hamburg, German", + "name": "Lembo, Valerio", + "orcid": "0000-0001-6085-5914" + }, + { + "affiliation": "MetOffice, UK", + "name": "Little, Bill" + }, + { + "affiliation": "BSC, Spain", + "name": "Loosveldt-Tomas, Saskia" + }, + { + "affiliation": "ETH Zurich, Switzerland", + "name": "Lorenz, Ruth", + "orcid": "0000-0002-3986-1268" + }, + { + "affiliation": "CMCC, Italy", + "name": "Lovato, Tomas", + "orcid": "0000-0002-5188-6767" + }, + { + "affiliation": "University of Hamburg, German", + "name": "Lucarini, Valerio" + }, + { + "affiliation": "UCLouvain, Belgium", + "name": "Massonnet, François" + }, + { + "affiliation": "NIBIO, Norway", + "name": "Mohr, Christian Wilhelm", + "orcid": "0000-0003-2656-1802" + }, + { + "affiliation": "University of Arizona, USA", + "name": "Amarjiit, Pandde" + }, + { + "affiliation": "BSC, Spain", + "name": "Pérez-Zanón, Núria" + }, + { + "affiliation": "NCAR, USA", + "name": "Phillips, Adam", + "orcid": "0000-0003-4859-8585" + }, + { + "affiliation": "University of Arizona, USA", + "name": "Russell, Joellen" + }, + { + "affiliation": "CICERO, Norway", + "name": "Sandstad, Marit" + }, + { + "affiliation": "MetOffice, UK", + "name": "Sellar, Alistair" + }, + { + "affiliation": "DLR, Germany", + "name": "Senftleben, Daniel" + }, + { + "affiliation": "ISMAR-CNR, Italy", + "name": "Serva, Federico", + "orcid": "0000-0002-7118-0817" + }, + { + "affiliation": "CICERO, Norway", + "name": "Sillmann, Jana" + }, + { + "affiliation": "MPI-M, Germany", + "name": "Stacke, Tobias", + "orcid": "0000-0003-4637-5337" + }, + { + "affiliation": "URead, UK", + "name": "Swaminathan, Ranjini", + "orcid": "0000-0001-5853-2673" + }, + { + "affiliation": "BSC, Spain", + "name": "Torralba, Verónica" + }, + { + "affiliation": "University of Bremen, Germany", + "name": "Weigel, Katja", + "orcid": "0000-0001-6133-7801" + }, + { + "affiliation": "DLR, Germany", + "name": "Sarauer, Ellen" + }, + { + "affiliation": "University of Reading, UK", + "name": "Roberts, Charles", + "orcid": "0000-0002-1147-8961" + }, + { + "affiliation": "Netherlands eScience Center", + "name": "Kalverla, Peter", + "orcid": "0000-0002-5025-7862" + }, + { + "affiliation": "Netherlands eScience Center", + "name": "Alidoost, Sarah", + "orcid": "0000-0001-8407-6472" + }, + { + "affiliation": "Netherlands eScience Center", + "name": "Verhoeven, Stefan", + "orcid": "0000-0002-5821-2060" + }, + { + "affiliation": "Netherlands eScience Center", + "name": "Vreede, Barbara", + "orcid": "0000-0002-5023-4601" + }, + { + "affiliation": "Netherlands eScience Center", + "name": "Smeets, Stef", + "orcid": "0000-0002-5413-9038" + }, + { + "affiliation": "Netherlands eScience Center", + "name": "Soares Siqueira, Abel", + "orcid": "0000-0003-4451-281X" + }, + { + "affiliation": "DLR, Germany", + "name": "Kazeroni, Rémi", + "orcid": "0000-0001-7205-9528" + }, + { + "affiliation": "NASA, USA", + "name": "Potter, Jerry" + }, + { + "affiliation": "DLR, Germany", + "name": "Winterstein, Franziska", + "orcid": "0000-0002-2406-4936" + }, + { + "affiliation": "ACCESS-NRI, Australia", + "name": "Beucher, Romain", + "orcid": "0000-0003-3891-5444" + }, + { + "affiliation": "DLR, Germany", + "name": "Kraft, Jeremy" + }, + { + "affiliation": "University of Bremen, Germany", + "name": "Ruhe, Lukas", + "orcid": "0000-0001-6349-9118" + }, + { + "affiliation": "DLR, Germany", + "name": "Bonnet, Pauline", + "orcid": "0000-0003-3780-0784" + } + ], + "description": "ESMValTool: A community diagnostic and performance metrics tool for routine evaluation of Earth system models in CMIP.", + "license": { + "id": "Apache-2.0" + }, + "publication_date": "2023-07-06", + "title": "ESMValTool", + "version": "v2.9.0" } diff --git a/CITATION.cff b/CITATION.cff index b6f6d45f77..7ec65a6968 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -8,6 +8,10 @@ authors: family-names: Andela given-names: Bouwe orcid: "https://orcid.org/0000-0001-9005-8940" + - + affiliation: "MetOffice, UK" + family-names: Bodas-Salcedo + given-names: Alejandro - affiliation: "DLR, Germany" family-names: Broetz diff --git a/doc/sphinx/source/recipes/recipe_iht_toa.rst b/doc/sphinx/source/recipes/recipe_iht_toa.rst index 93ebe81c7f..0cac470eff 100644 --- a/doc/sphinx/source/recipes/recipe_iht_toa.rst +++ b/doc/sphinx/source/recipes/recipe_iht_toa.rst @@ -22,10 +22,10 @@ Recipes are stored in esmvaltool/recipes/ * recipe_iht_toa.yml calculates the IHT maps for the following radiative fluxes: - * Total net, SW net, LW net (Figure 2). - * Total CRE, SW CRE, LW CRE (Figure 4). - * All-sky and clear-sky reflected SW (Figure 5). - * The meridional heat transports (MHT) of the fluxes above (Figures 1 and 3). + * Total net, SW net, LW net (Figure 2). + * Total CRE, SW CRE, LW CRE (Figure 4). + * All-sky and clear-sky reflected SW (Figure 5). + * The meridional heat transports (MHT) of the fluxes above (Figures 1 and 3). Diagnostics are stored in esmvaltool/diag_scripts/iht_toa/ From aec22df9f6b0ef9aaa2d5e23c0d90cafd19ba69e Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Tue, 31 Oct 2023 11:26:55 +0000 Subject: [PATCH 57/59] #3177 review. Delete EBAF level and version; add paper reference. --- esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py | 3 ++- esmvaltool/recipes/recipe_iht_toa.yml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 260da5cb02..71433269b6 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -92,7 +92,8 @@ def get_provenance_record(filenames, figure_caption): """ record = { 'ancestors': filenames, - 'caption': figure_caption + 'caption': figure_caption, + 'references': ['pearce23jclim'] } return record diff --git a/esmvaltool/recipes/recipe_iht_toa.yml b/esmvaltool/recipes/recipe_iht_toa.yml index 100bbcaa1a..19e05f5ac2 100644 --- a/esmvaltool/recipes/recipe_iht_toa.yml +++ b/esmvaltool/recipes/recipe_iht_toa.yml @@ -24,7 +24,7 @@ documentation: datasets: # The CERES-EBAF observations reproduce the results of Pearce and # Bodas-Salcedo (2023), but it can be applied to model data. - - {dataset: CERES-EBAF, project: obs4MIPs, level: L3B, version: Ed2-8, tier: 1, start_year: 2001, end_year: 2010} + - {dataset: CERES-EBAF, project: obs4MIPs, tier: 1, start_year: 2001, end_year: 2010} # - {dataset: HadGEM3-GC31-LL, project: CMIP6, exp: amip, ensemble: r1i1p1f3, grid: gn, mip: Amon, start_year: 1990, end_year: 2005} preprocessors: From fb540903c655c9c788d9d70765d92d14be21dc01 Mon Sep 17 00:00:00 2001 From: Alejandro Bodas <97702998+mo-abodas@users.noreply.github.com> Date: Wed, 1 Nov 2023 13:26:30 +0000 Subject: [PATCH 58/59] Update doc/sphinx/source/recipes/recipe_iht_toa.rst Co-authored-by: Emma Hogan --- doc/sphinx/source/recipes/recipe_iht_toa.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/sphinx/source/recipes/recipe_iht_toa.rst b/doc/sphinx/source/recipes/recipe_iht_toa.rst index 0cac470eff..87e182ef6a 100644 --- a/doc/sphinx/source/recipes/recipe_iht_toa.rst +++ b/doc/sphinx/source/recipes/recipe_iht_toa.rst @@ -22,10 +22,10 @@ Recipes are stored in esmvaltool/recipes/ * recipe_iht_toa.yml calculates the IHT maps for the following radiative fluxes: - * Total net, SW net, LW net (Figure 2). - * Total CRE, SW CRE, LW CRE (Figure 4). - * All-sky and clear-sky reflected SW (Figure 5). - * The meridional heat transports (MHT) of the fluxes above (Figures 1 and 3). + * Total net, SW net, LW net (Figure 2). + * Total CRE, SW CRE, LW CRE (Figure 4). + * All-sky and clear-sky reflected SW (Figure 5). + * The meridional heat transports (MHT) of the fluxes above (Figures 1 and 3). Diagnostics are stored in esmvaltool/diag_scripts/iht_toa/ From 397cc4427b5e6968eb2b910f7d28733807341b94 Mon Sep 17 00:00:00 2001 From: alejandrobodas Date: Wed, 1 Nov 2023 14:08:18 +0000 Subject: [PATCH 59/59] #3177 review. Fix author position and docstring; delete print statement. --- .zenodo.json | 9 +++++---- CITATION.cff | 9 +++++---- .../diag_scripts/iht_toa/single_model_diagnostics.py | 3 +-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index b19b301317..11e2188ba9 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -5,10 +5,6 @@ "name": "Andela, Bouwe", "orcid": "0000-0001-9005-8940" }, - { - "affiliation": "MetOffice, UK", - "name": "Bodas-Salcedo, Alejandro" - }, { "affiliation": "DLR, Germany", "name": "Broetz, Bjoern" @@ -90,6 +86,11 @@ "name": "Bock, Lisa", "orcid": "0000-0001-7058-5938" }, + { + "affiliation": "MetOffice, UK", + "name": "Bodas-Salcedo, Alejandro", + "orcid": "0000-0002-7890-2536" + }, { "affiliation": "BSC, Spain", "name": "Caron, Louis-Philippe", diff --git a/CITATION.cff b/CITATION.cff index 7ec65a6968..147e3acd17 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -8,10 +8,6 @@ authors: family-names: Andela given-names: Bouwe orcid: "https://orcid.org/0000-0001-9005-8940" - - - affiliation: "MetOffice, UK" - family-names: Bodas-Salcedo - given-names: Alejandro - affiliation: "DLR, Germany" family-names: Broetz @@ -94,6 +90,11 @@ authors: family-names: Bock given-names: Lisa orcid: "https://orcid.org/0000-0001-7058-5938" + - + affiliation: "MetOffice, UK" + family-names: Bodas-Salcedo + given-names: Alejandro + orcid: "https://orcid.org/0000-0002-7890-2536" - affiliation: "BSC, Spain" family-names: Caron diff --git a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py index 71433269b6..fc917a8aa5 100644 --- a/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py +++ b/esmvaltool/diag_scripts/iht_toa/single_model_diagnostics.py @@ -99,7 +99,7 @@ def get_provenance_record(filenames, figure_caption): def matching_strings(list_of_strings, substrings): - """Return the subset of strings that of files . + """Return subset of ``list_of_strings`` with matches in ``substrings``. Parameters ---------- @@ -983,7 +983,6 @@ def main(config): logger.info("Dataset %s", dataset_name) iht[model_name][dataset_name] = ImpliedHeatTransport(files) - print(iht) # Produce plots plot_single_model_diagnostics(iht, config)

+91i>?h1g9-BvB;JrY#V@yzD&A?%x}ePRGd1 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 literal 0 HcmV?d00001 diff --git a/doc/sphinx/source/recipes/figures/iht_toa/figure5_CERES-EBAF_CERES-EBAF.png b/doc/sphinx/source/recipes/figures/iht_toa/figure5_CERES-EBAF_CERES-EBAF.png new file mode 100644 index 0000000000000000000000000000000000000000..e241ae07e3b03ef70cc5935a0b0398590fb98813 GIT binary patch literal 324689 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

3&GBX@_4$XP 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 literal 0 HcmV?d00001 diff --git a/doc/sphinx/source/recipes/figures/iht_toa/figure3_CERES-EBAF_CERES-EBAF.png b/doc/sphinx/source/recipes/figures/iht_toa/figure3_CERES-EBAF_CERES-EBAF.png new file mode 100644 index 0000000000000000000000000000000000000000..6562693268b4044034208fd1b80e3b2bc2f35d09 GIT binary patch literal 83470 zcmdqJg~f3rBg~80qK?wrCU-^LJ&lxOS(Ix6cD9DKuV<3 zGba1}-tRi+PdLxD_x3?xtvT;`k1>9AuP_xQ8GIZn925$LFZ)PR4TZX_fI^||VqwDH z+{!sBS^wdF(^b~xbfr&{%MwVdTkdZM%D#?ueusTys zF#KWshSj^}Y0FEDZ=W9H`uX{tA2j{DYu204C90*OLi9CPnX_gV`EldFx5nWQ1_kvX z&SaOhu`fdm$V1DbiPw{W|HGw7-e{y2*V@*0w3?gI-QC?hGn277RkyIYX}3~>ynw3G zqax&D6KGkI6W%e(CzU+yAvrUB^5ltme{#!WPdq+lBJu{kxED7QT6Pm7o@91zu4UZN zPqE4O?4xcatJ~%z!>wC^2Qz*d2h(1JGBPp-zDG;984(Q&`?=g+t6>o)yg zzHIOAde2kB`)SyemX>}TwX(6Xd8Dk&?;=1RyhsJ_!%FhLhrdGH{#SpB?t?mqxmFUv znbohkm71EGx}2Pxg}Q~l^E--f?Egmm6@}^S>?{#-;}xu|`VDwWQWk7S!DI?@I-3t{ zu3fvP?9E|qZCy}U7~vY3n|oVTRrT=jkm%aAqxQR4ss=|#N5tghLB++z^_qe1p_Aj` zE)86Can@MIRPY3|Rw5Z^xOi4Z`veo^I!aBuRG7&$3Ux<^<}RLQYV5_+WEN55VhKJx zbm!2kegK;&eedL8OD2Exmrkx)Ub3(UH!(5s?)n6&mezO~US&7jgW?x-u#DfbzaGdU=<)X!tbVGn$H-77EP2V_Wa|elN7AsfaDuYBm$9(1A7-kQI4*RK zV5x?x-G+PpklX6kqf=sp=C!|$HoLp}_1HBtGZTeJBk&3~{3R~0eH&!IR9JpZ7WJt; zrx_GIVZ#Y}xxevqVQsB1O~~zgrS;XToCeueqn}QX*NV-K?vVG<`<=Grsplq(`JJ0) zn8M|`td0cvogal*WcYl({GK#xy}G96+WpH6l7f$io$;Adyl)B!BsVudU{X$37)%$z zpDxx9osWaH`KmsL%LJEZJe(!vF}5*P_qxIB;F3zAE}svHda{;*N6?qI{G?P=a^Bv; z6ciMfFJI>CXZ<+-X(N&%cFT~4K}s{ZGF$j ztmKJzv_3rF_;IW$guE@iX%9cEH*S3RdW_ilgG`k_{XBz@3JTan&ks$LIP~T8^k^!rM&}Ewrss2B8}wEc z2L)lEUm|n-wIbW}a`*FS|lSk-q2*a$|wmq>)+S z`g$xZEbU!g@o8zcD=LB5>da&Uf`W4!8|+i8QemFjjj`6EKSL}7HXd^GWa?k|0zYu}^6Z1=NZbY*^cy@Ac`OEIXJ=8(-}2Ng zr|Sh_zu#>O#(yszMdh(?Kb(buI@#Y?SbA;9(J&hXEzw<#EAO3C{tp8KgQL$!Cnw8K za#fh!H!8;uVXY<_eY{>^#7{a)NlPR5lnUD+xuSv>E(V`gF1Dkq%hcXJCL<$*Os<`@ zw6c;>Na*eN@7k%Usf$OqgJ4YOci989mB`PH)<>)g$op3VjAJw|&w$QhOp^+vfB~8{ihrr^M4waHP z4L;6O%NfDd!$NyUKU?|kVKS_DjTA|u93uv)stH|^{o>!<-To?$DsovTC#Q?|VF+Zt z6G!}5g^rF6b&HAVmyRFozp=t6GSEXNN{l7a9Tf;@1e#$%wO0h42NS*Q7$jHY#~8D+ zyPahdf?NMaopf||s^!Qf3a^=%n4lb-oO-L87O9c)3{S~KCkh^Z_Yl3mzaNW`aIpNm zH}MW?cjG7j3|V}g+m`Q&Ag4inXig3z+!p(U5j{LM^p|91BrqMKlaTeZjlW2wq>l5)7|H>@}xt)LYix1{%unPK~ z3a~%KvK}*yJC#O4uvWkkMV$oq?b9GydZLO^@iEm0T z{`@!F5`emliJ7D{B%VM5gPjW|OI|Z30nH;PC+-kJ`mti`saig0WadYIms~a{Q(&&g z%(aDl{q*=w?eh)Yl^SSJQZU}39k2y-2QhmH3JM<61CU_MedoR4%V+iNopD<*GGP@` z1!6m+s7YyQzeHZ+!8tXlvHf{ZPfu?J9;#&shh*4A{{~cnW3&FfH2Lk@a`$bMv->b> z$BGRHfYaq6=OX0hB?`~7g++<}9hh8yM@8O)9 zmR4F;*4ot-(&%&Yw~O9yQ8v}twDDipj~{PfUfuQFT@kP2TkJe6$#`i_O`OFBkZsZ) zRt67xEI*-Qab!5F@7D;K_G|kS<#(?LLOVR+`&%%k*?(v+eZsG~-DhwyGrT z8W`)xK8@$c*6{C|O!`{Yj4!fp0PZzZw326iL*U|S>`PgU18556R->%G=SLRPURw=a z_qzZA#^@IQ`l>9(KDQD`G(Y$0aXvhIe)oT82NO+xO_^;yraQmBz|_RCu&_8k*%GUD z+e){n)66&f@`jI1yX5*zDeUK`$GfW@V~WXKFKV2Z|8`t8EO|DZb*cDhvu;bySdua) zuA6^zvZhU0?5zDxalJVFs=RM8eZsqm?Io5#i|;Ho_Leka;DTL+0h)YeY+ z6+Bpm_xD~o8nxmpZrG=yiVB7YzI-QXG2MRX-9xEpum0q_C>jyZibp57#tL#bW~zP9 z?%OvWF+sm_#Fl0Ps7t1#n~Vkfb6>Kn>FC#6M$%9sap7QP(W5{F>i{-*g@%r~_?G1C zVOUrgQfyG-BYEn#J@?n4g>l2$(YLg;6lj-PY0MoHE8Sm)onYg%k zwdWoyYyrO&{|OZE5~*Vm=Q>GU?QWSWE=A=x_Pn+~c4Lc05NdEsc8oEQs2QNWtejkH zM@P=1vz4H21ji#cIOB6b+jO>14L#j&<(%}k(jv6~Q+QM!n4iw)BRHRpejjzL%P2o_Ozk;m3$JHZe7A zyF%}+Vp0knidpo3+78f4mjGvJDXF=&wI>{L$>-(!M6ci2u5jTj%^7{E4GZ$y<}3n~ z`1hxM(_MgR&?Tjy6XQ&Bii)P2^(75gT912|dwO_y-1YeTlu7YTJAh8yG@o2%yO~CO ze_&Row0?`-#6B;W1O-#3>fD?GIzd%;$k6*}tT@j2p4h%vOG{17Ho6f=gsC|Vb;^2) zB^kP~Ald6TUp5lhBtlfp_4M^U;6WVyX(K$E3!%qJjV7D@GuH+LrmU~061M<5bg^{sy$bV30BMGP zXM9!mGv?d#9sN*mm_I4Ru}C%kdxsQFZCI|F?GbrS)hauEq#@W%R>#_V0YU^Kvp&<* z)VD*cnw>$+z*N5`gkNHXapkD9k(ZAK_02QU&$u-D8n)2QgdJjS6Gh| zT)A=ukOdY#{t}=E;PHjsO+Qbzng(G=B5f~O!12bwz<|f+tM>}InwwvsTSD>27DF9p zJ(c~hA%_u(qa=dyhL!iUQj;#X3iyCX0nMbQ*|w;tX#HnZ%tX0Gxy=Ok`T2=GFhgkh zyp|(@|4y3zwE<#l`d96^fV8fEr#plhe&>R$iQ!ib+~;C3Nc{ma5K&Tg7wD9KuXVi> zLBS5|i_Xu_|Ax=H6OipSJ}Zq_Kj7w^1|Cb~jc5B$8c#OsybGVYyK4pfX}x{H@{fUYAEavk12)JfrD{6`u? zkNJPS=l}Uq_`$_S|KCf!3j*7vWI<;p;6VcS?{k~=l1YTzym%?;i;0r#-~@nqMnxB!xN`A@3sVojj;sUBbKunV=*AKC!O6smY)r+?6MmC{TA69D_9 z4-${HIDzp5H#sIoKtN!Q5a+-^GHtFrtztUp-LGB|O~Y{X{^>lp%?uUyFaWdEdYl99 zy#wi9@86rI`((X;pK{-owWp`&DBAB}%58gpe@qO~9H9lU0GL{6IG9El|3MUV5N1rt5p)J}kd|B!)MLsUNU!I>T&6M!Zq!qOX)~T;Zq{T1m;P7#k>)7?3^? zM!VZV;$K}YFh4&p;4q5v=Z{J`|#KFbI{rxS^ zbj6|lCf+sfz@~raZvl}YWeyDCVY&Gi2S-Pi-Q?L>BSfGBAp~X*#%85J4}0=rQ6GCU znZ+sa)D93AN=i!J0T)*OyS56{FSewFi;bNf)F;;$Cp3ai*+U$H4W4^hwm&~JlE82Z zy{%4B6D*fwGErux*WgJ$M7}&VHC5xfmUQl{l%wVd#ZaVI)0)Ko#KFbo+f`+&u>uy; z0xU=R|GHYGwbq%2Uu6wYl_&5YR(itMYx zI8|XybocUtMzf>cG|oTc9d9u-?)UHPHB4rNQLt(i>CN7iiJ@Cs8Gesp=luM664H_> z!$t=9G+4>|UUM%0UFt(=>*(CI`o{c8BTrmf8WXMqnTg1*`1VcX%n=$QjnMN**j=D7 zbi)hLd!mbnhD##-Q8+}U@x`d;tBgNQ8Mu{UV|BEV!z0mK&tQ+NBD zy7KD5U|KDI)o7?%-cy*)z)R$slwothl|UyjwX;)#hX@T)imEC5mN#f7M`LGz0FiYG zqT7K5xq3e!8lF%1!$Qq+rzJV)OqczE>ED!z&X!ALMQMD}2t$Y|Xbcs)>>#-w&&x_m zUItBMh+G*2Fhl7Wx~Q6(nigMrhRC3cmhQekVF9?DRm@FeT?C)Dr7cm#8(Igl-$3d@ zy#g*5LhsuR{fiPPAc)McT4=RsTR?ofK_?H3j{fy~H2-*8-U-ZwGNYDD(ez@`prVWy z>A#0LAmwQQnyRs-rL4GktEn>eHCo!Jsw#eFo;v2wjiuzp)=|hBO~#(YqHwfl=`(U zEW-jpTvA{|lmV|tGL7=MV z1iq($-ERxCo<`KWy4kkoOI%u7nkB4hx-E=>(`gJ5iSFSqK7DWMhLS}Q&R(&e&Lre$h`r% z0A$ou0mn-y9v&WGJ;&{ZUx2i{vws{H7uWiu(wg1_{Xyv80`M$W5xqUb6ecgq8%oRL zxWH}WM`F5&SDD9-In=8pEKtUwE=)|LuOAc@Ky!e}1h4e~nvSfz`~o~BxN2&6A8@4N z?P-WXQb3^3_CgmL4oyEF7uPGOinup#b$o4v3(eoEeFLNKmQlp5F}j0|8&3JD3p z&AhUIVn;$sLBS*&NhDnW9kso)bAEMIXHn>1t3%`IUwQbMW-uoZlV*5$7CTHv&IG zTpn*I9fdc%EQ9_p2;XXcpP4blVOk1A5OQN&Hy^abC!cMGtI9N($%J?MdA=1JHnq>Y zI62Md<)$OE&VQ3hYV_0N?LU8*O95=NW*hwt9QpbcdfW#P7crC?5`VIB2n*L2NRWz? zwWaV_gkE6baRg0%RL>=dzpZTkcd@5K6vVYAc8B9>J$N;*`CnZ%*y}ul!s^*)&Ry~> zk*{B0U0nsi2?GN|mS+`59Po8-2wdOu&B-1xw{~N$5YQwSpIFL%1k?tXya>bOqXsL| zzdNI8BZ7jweaOfogcmYYK&^R~-%fF>ip6cySNVpJP~D?|%hSqnmJHz_R?7VY0N*Kj z@$$F7@PR2i(co2ezU_~OjzCx0px4T)E$xB* zseCKsBF%Kfjx&c0K=*Z5k8fkNLCTJz2Vwkzr$`^(6ChJ6krbc_xhToOciFbg#Ocoa(AF-!i;{@hy5kge( zWZ-Js0a)zv6psRGyJ!0&p~tnMp<#9SeaQJXyxb#s`8)B}xW;(dK|Q2E&)Yynh3f#S zzq7|au%WC+lBkWy(mbNVpuoD%uOTu>s{`VBn$)?h#`zu_foq!X`8$u>XR6X}>J7|Z zQaU;%PtW`LTE*tD*2yV74Q{IEJ>~V6L9&iZPagn)x?}sZ%q#-NCPIn27!U(W9aaEp z@T=G+Fx{{UraJ^d;w?axORK7`%mRXd0av16O4O=1iUp#Tz=$`b;ym zY%^T_6+*?p9s`ad`{s_2x}4JSaSxSfU(>|E222m+#q6E9mM{y;}?aT4AZ)hN*!Cn+^)PKHdij7XG=sp2T38R?xqkchZSW=w z{px+sJbg-KLjQt2CXR&$TFqr;Wo4K=CjZyocnDe&&Say-ARP<^kgYf!PWm{TBEj^~ zDL2Qk`?vd585q6y-l&#TG{ELCFy$i=#p>6uU;wGWlR#*Sf*)Oyz2Usj^bZV85<^2n zL`96fDT7nr3EDyOR`nIXu>u|S#bj8dgtU+)Du_B17&aOFs|ImXdV+lUArdmMo2qSY zn0fe%jCd&w@0b;YnMoLC_|Km|U;j~wTd4~u*CTxcyoLYt1z8i58!$ZxOY&_F;8=)9b{zTy}WLJaXf%Xd8002pyQWFg8 zu>xa&_!nB&TGTZjOfj*hOI1ruMbN(#y5OPh2JHbPc-xOp1EM}eRzT^(gqt|lHN3pMK#u7GiiGyP z+VLjLvNli!nq#rI7qjJohM;h-ay$h%1F(7sMj%Pt&-=HkDjyY1c5T(~5I`*-eWnMH z-`}qQhJ0$VncPEA%O#;}0&`_8(Y{0kQKYT=L5Q`4f?{DGIY(Ad;$cl^K>2*KoL1_U z(PG04kQ&flrKNp=CC#ypX1;o{v9t7g*^?1=s6$Ue@-iR*9kA#Jg#Fqz{W}b)@jl|N zd%n>+I2Z%ZOw46wGUal3Z>u=f3mgVXk19ZjFxAoYwNe55Q43^sjpr)U)6meMs)15v zE;wQv%iW?T1$M^))kp%;)BgHIfLzYV)$3qAtPW+O0|bG|zzvCx`Go~==Ev zGh#*eRdPyVzep&wj7vj+VZ{%S5X)PBdk%-6;6?aHMJa~0gBF#wJ6Y`*0HQd0ZB}ib zYlp`xaHP>O@r*$4M%hf&Cc>!uMSWWVl0O#;%2Hen#Oy#ygKi1#PXY`^2e5ZxrhBaB zyhdT+;YsF?l2A}|!u*v`QX&8d(TrFv=wnljKGg4q(6s57;6WbWRe)O;^aefJ*x23E z^Y7lc;Z@H`5HB=WJ_CVPM~dHg@tc)vx{hP5%c@D7z9StONED#L3V`A)mlFqoiwEQf zlDfR>k~;ASpGE=w{8q(%2>LNT?EoqDXJ5+gl?Vj{s0ypmaG*cLBqXf}Y5?d1Pd>I0a8Cx`>-usIl&-~wb2(B7xK&&EI(aY1#l zaB;ze#etS15u$cuo@XKKODLZUCFXdJ{M85JUw#D;ieA5U>oP!C-Oo1IE9PG<$BWV$ zU#X>TUt}220PT4e90F0z+tP*jMOT(o1Y$H^6L7d5LO|O(J$+s}a0j~j;o>hUBva#i zcIWGJ9DYp@o1% zlttgQc#hC&42*5Re+Pa5p((6SNgnuhu>sDGlHQTTE)EH~f`o&hDiN;Xy*n&(3UWb= zk0|u|PL?}&aC6kKS9I@d7U@ki6DJBot`DlH3lU!PM+*!Z-oOT>u-q49hzz?}AOXK~ zVco*9>?=>|40V9|Vt^EZ_=Cs<1Bu1~9BA+I3E29VYFkzz!QcfgxKn8?< zmd%+A+DI_$<0WeCK``)v)=<<5DHXx@O27d^rW+V{M~m^w$O^#_f}vC9wq>A{A*u+< zU+f@+D%=rHgc!%7r+*|sO-r#jY5PDSkMFv?gV|Q4K?Cflm3UtmJRpz{Ajg5^i zKr6w3MK1xw0)c|QFUgKsrx$w(D;`OHK%z`z_A|KqT$UrZ08#|j)d>L#t+1b=lb7%F zKEcGq6n)-u`5k~~SaV1Y(IAe0nOPs`;vGFbVbFKC!T9BdMA?mu!Ol)3=mZ2!5{ca* zvev~V2A>u_Ll#j}K>-i4fmd9@!sPgjNl z-EReH=8sa{$5QnK|6`ZOPf}W%3JE@rff5d}t#^=pLFOI^h_T>zRzKgMg0{ms{>4LT zg5|ffoTyfNz@i{Sdz&RM6{OO-VQi|hCW7aj0GXQaL&k|LAbY|^_JGiWnqqV2Y}h4% zKqr(NWsRAvaU{6$7k|J#20)yxE>u76p z*?i}MRYt4!Ik^Ylk$yi+d5?>M?&1GJGgTaDtP`JY-)6RP;Q$PYq`WIGwz2_pbwIki+2lpLe|tTLz(1D8RkKd$0+IYLFZfux|67IL2p{y2$*2 zrw5&r&*hmo*&`gLtkYpD1|IB!^%n7Csqicon-Am&ybJAeJUe!Un?PGJfBF{O98mIt z@q4jARE;ob@GQ0b%7g-aAR;0H_x$`E={~10$(apJ2HWOy=kkA-e5C(ahEE%N;Te52 z0*!QSym(w}bFA}zO5 zmg;xrnmPZds|yIzSNyL3>E?s4(}Rhvc=2)?!m_fmfk8oNwXF{TTXFHk7wZ#p^YdGP z_X$cP8nWepd_jYY5m1BlaIv0oEr)H8;D*u8m4ombNzaFtZa(9BbRfV(ynkv`LKL+6 zXJnAwS1HaU1_ZMJEgVQrwnHQIN`2b0$ulPvtS z%fi_4D1Go_4 z(4>*Z3gZE<5xR3)+)s7y&7Ww#jJ99JxvrUrBUTi5$HklUc|WQU^RsdY z@xKJAcJTykm?$Vfao}olJMgw9u#n+EnLC28f)uB59DHlfa2J%Xm9M!mWbf!Dz}5e= zzi$rIGyB7btl?)!?&`L3dN%lUymph?m_y`da3wS@dE>qDAbHkO6mlpDB!e+1u@dj@v6`nj6ipBWDyh#1KXNb zlgQ17w(7DVg~?{ia44aDQoFhRImWpE^UJzFSjMf$b^uGvg%WC2GRPS;_#&Wq{_*jo zphw(uko+(RnKwv*AyK!_HWRHK5m(VdBO{SSF0b`iBz(sNOtaZXQXaQ4NR1~4&aUJQ z*Dl@nY0lBz9vpVLy#DXn{D8!wu|N~WZ$jo_uAtSokSu@-hNL@}^%z855RVy)6an~% z>JtNsc~oNJ;}<7#MXKH~EQL?j%MmLEn)2F}7b1{91RL-sGjk}keEB=Fs#ef_B7eRx z++?px`QyIK#S>!p)p(U_YGH%NrQ@n|4K?Sc4v2-gG9ZBZH&v8|McD|c32r=0GJQK(y^=gpl5`DTLC1ky0-TBKUXKGxNW6&Qkb$_ z2K>l=qp0|h*c^?RFO5G~O^^)3hCF9gQ+~d6`i*cX6+nm@pLSn`-3+Xb zfxftX-`#L6?sKv5MD?m5H=k24TdzoF2id4BFyn77{I3)81?>t%WL7JnMVlP&ys|XrACHe=ztRVftx(mLAB? zwV4tZ^CL{a^*0$95h!@pke&&Vp}Scl-Sc;EZwb6mI7NVH*ua3HoBy*z~(^F zGO5Y(n$vKsn1`RgtF7&(GI7V?VDZphOUVv6_G6q%z=?{ItD1D;)&7yt?@^}|fJ^PN zJbgl1;f=j6BL8dhV&-H`_VxEag%UmP@;Tm(P5F)Y2pas#N+=lIjadoO?-`)~8A?J= zzYPIy@Bjc~{9Vu2%&&pz4xyv5;_{M`>({UQ1N~KpV6csi+=@^b*EOW9WKytYD1Ik> zVSBff94A!uMDf{nR?+qM3Lzz&nOjwiZodCL_M(l+n)uya7Zi+h8KCnZUWdRk@_tuUKzV!g=+Tf{`6ZY)h*AjL+6eqW*dreen?zlIe~WcgVMT1~ z1!pV4r%b<-sPQhzWWl%ej^a>MWNks)hu%tvao$wbjRhS`J+}hK_GT1K-%nqz+h_ER_5CdeaZ&$m%S@A)_ z2*4o{$pSk868*WLyL|uIR~@>P2piII*lKRJ_<*j;BWJPLcnf>uw)l#I{&*@akI_m7 zqaUrY8i2?g&qQz4OVuAJHz_$ehCh@Sj72^N$*c-6GgRT^20%|~ z5V(Nl%>y?XKA$ z>;Bk2(XObCyUc<6&#pi7!MESmYA07fqV+AzHfZ+vwBbl;L@I#V41zl#tDjYz6cimN ztc*3mmf-ok2Ogo3rxpZ^7Xr+MoarFltsJPcCL*#WAa%6bO)*GP9bb|IHO3Jv$Zy3A z;j%Dq+;15KMZ9(CBS_4gR?qQj_{G`$!tnYWx8!<|wXw?0k1oY5kz?RWfUSwNCFAVp z>)#(Dm=iXbX93Gg#&KpbGMu2sH6@5shQ`D!!`4Th0X4rJSil7{TA(h_(kcQigE;Ty z=F!naSg!f4E#zUqo@QR`EL4qywn%qn8O=>5$4-QzU*5y>p0hmGDM~YHR7AAN;D4a< zjTpFd5TNd&;OG(}>%X{3(kTh`IXCwL_$1WIrCDIe$MXnyha3ikc|g1auzBIXff@rb zjy)+dLPA0a!1o?&5o18kii<#p#lgGOZlV=aHk=Hp%8=kueW39Uvtr5Qsr`SA-1VLvYJs!iyJbt{o^VDlP$U1$KuCw%|`; zb`{v3Z0ss{VEwlWq-tLhtX0jm6vkt%N&4biNZZ`hP$V>vMor|0E&N;fSm3`tu!#s6 zAcmuAIa_RhRNQrtY$coc@k0%|iq&`#{z|7HAdeA33NLv71i2jFf1s9e7}R$ogZ86l zAr+8-q}2%g2S1Kb5R?A^XRDxn7+F}zKzGwAdny|nLx_(LaGLDc8DxI7$VQr>XR||- zUNJut=8cLm@}_pC|K_lpdD$BCQt{hGhJ=KiEBON`=k4JSD?ee_#M4r zTG(^eH$()IfHVBbT7RrfPD3w5+M|394En zB-`4-RO~5ZK$QAK7X#iW_;JuoXE!#Gb3;T+k#I^QnGOU7*ur};Ub`#X?EwyQMGWD+ z{rz|lS*)+GNBTKpk3fYX&CvFTBy?QhNL{_Xy+fHvUgWj%1Mu5mis3-;VdysJJL;Un zf9G5OU@{<5t3Rh7}3LI|pQY^ZXd*&3&#Va-azfiZjClnAp5)OilWMo27p;X${_ zN{zi(KHv}FX`?GkpbbQhf;G<45f8iK{JhVGFnS$w}-uWDkj5ZU8g%3csflkB|SXUR|*Y2JkhI{vt zfTJLm7G$ujSBUxwarC(W5M5y|!7c#83Mly4C)@-Wu?MDoIk2$K$ZHDe!bd#;>@nOV zbKkh9$`a9eX^pG3PlaBZF{+rablx3)hNo2zBT%*IQ6od3CD@<*a6S|TLID{(3v`)V zflA;Hf!}Kc?(cuczrKk5JCy)z1QpRo>PAg^^mwJ|8PEZgk`hLY7DRwP&MX_l;fq7C zn*~8H11A?knx&96K_c5*4F}0EHEs^7lEE8+WJ9(FNGGYgQodt2=w0s!J3lqXz3AYG zjuC18S+)nBY?Gpv)!Kp8%DPHaYefYM%cNq?LT8_mxh;&T-pk*s59Z%pMkXdFfTak8 z1kVm&x%lD|oQQ?8d^Ys%h3^zRYb4@}oNG0Dx}+XtXRM}1#ry2lGWL@^HAXn42bP8+ z9BIIS#DOVPt+L)WA`bAF_q&fcLn|0>p01?XNiSxUGL|u=S*(3R zKKR64NbDTUKosayUBjh|b}QG^ix?E%Lev@hS|`Z!(0#H-t>ADE6%2bbaAdfxb+JDU zu`4)j?UFs$y3NR#GgS9bY8V1dP@WQ?G66XBUEf)J!)=BGvS-I}p5DZxCT;!isJtqd zK3C5*OmDsl|ILG>wkj$P0%M|`<-uiOtrkF7Fl&5+xdRl(?`@lRzjZm!<)L3c_kZ=4 z;n)Pbd1LoyoOOX&#pmF%Bm>JI_w%&?WP3n@TbxKrNRUL%&JKst%WPi1IJoOVH}se! zLdd>ucwo?Hw{Zfc8^fbVbKqQbDINd%KAR+M(5`z){KH+z)gBe|5+N)8Cq?$gZi{wh z-*g~5U*(!x=jXOR^J8!?VQunJL(8GF{{W|+0Wq3(D$YK16L z=Z-2WDy4?F;*>98S|d^ZJDLTvAjdS}#HcDZKF z>A-^qa-xv)0I�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