From 17e15073525455a6f8562c3e34e028602bf14c15 Mon Sep 17 00:00:00 2001 From: Lisa Bock Date: Fri, 9 Feb 2024 09:17:08 +0100 Subject: [PATCH] rm files not used --- .../clouds_ecs/calculate_ice_fraction.py | 385 ----------- .../diag_scripts/clouds_ecs/group_lev_diff.py | 466 ------------- .../clouds_ecs/plot_ice_fraction.py | 175 ----- .../clouds_ecs/plot_pattern_corr.py | 116 ---- .../recipe_clouds_ecs_eval_height_line.yml | 382 ----------- .../recipe_clouds_ecs_eval_height_map.yml | 335 --------- .../recipe_clouds_ecs_eval_icefrac.yml | 381 ----------- .../recipe_clouds_ecs_eval_zonal_sea.yml | 635 ------------------ .../recipe_clouds_ecs_patterncorr.yml | 293 -------- 9 files changed, 3168 deletions(-) delete mode 100644 esmvaltool/diag_scripts/clouds_ecs/calculate_ice_fraction.py delete mode 100644 esmvaltool/diag_scripts/clouds_ecs/group_lev_diff.py delete mode 100644 esmvaltool/diag_scripts/clouds_ecs/plot_ice_fraction.py delete mode 100644 esmvaltool/diag_scripts/clouds_ecs/plot_pattern_corr.py delete mode 100644 esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_height_line.yml delete mode 100644 esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_height_map.yml delete mode 100644 esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_icefrac.yml delete mode 100644 esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_zonal_sea.yml delete mode 100644 esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_patterncorr.yml diff --git a/esmvaltool/diag_scripts/clouds_ecs/calculate_ice_fraction.py b/esmvaltool/diag_scripts/clouds_ecs/calculate_ice_fraction.py deleted file mode 100644 index 490922c9c0..0000000000 --- a/esmvaltool/diag_scripts/clouds_ecs/calculate_ice_fraction.py +++ /dev/null @@ -1,385 +0,0 @@ -"""Python example diagnostic.""" -import logging -import os -from copy import deepcopy -from pathlib import Path -from pprint import pformat - -import cf_units -import iris -import iris.plot as iplt -import iris.quickplot as qplt -import matplotlib.pyplot as plt -import numpy as np - -from esmvaltool.diag_scripts.shared import ( - ProvenanceLogger, - get_diagnostic_filename, - group_metadata, - run_diagnostic, - save_data, - save_figure, - select_metadata, - sorted_metadata, - io, -) -from esmvaltool.diag_scripts.shared.plot import quickplot - -logger = logging.getLogger(Path(__file__).stem) - -LINE_LEGEND = { - 'ECS_high_hist': 'ECS_high', - 'ECS_med_hist': 'ECS_med', - 'ECS_low_hist': 'ECS_low', -} - -LINE_COLOR = { - 'ECS_high_hist': 'royalblue', - 'ECS_high_scen': 'royalblue', - 'ECS_med_hist': 'green', - 'ECS_med_scen': 'green', - 'ECS_low_hist': 'orange', - 'ECS_low_scen': 'orange', - 'CMIP6': 'firebrick', - 'CMIP5': 'royalblue', - 'CMIP3': 'darkcyan', - 'OBS': 'black' -} - -LINE_DASH = { - 'ECS_high_hist': 'solid', - 'ECS_high_scen': 'dashed', - 'ECS_med_hist': 'solid', - 'ECS_med_scen': 'dashed', - 'ECS_low_hist': 'solid', - 'ECS_low_scen': 'dashed', - 'CMIP6': 'solid', - 'CMIP5': 'solid', - 'CMIP3': 'solid', - 'OBS': 'solid' -} - -def _get_provenance_record(caption): - """Create a provenance record.""" - - record = { - 'caption': caption, - 'statistics': ['mean'], - 'domains': ['global'], - 'plot_types': ['zonal'], - 'authors': [ - 'bock_lisa', - ], - 'references': [ - 'acknow_project', - ], - } - return record - - -def write_data(data, cfg): - """Write netcdf file.""" - var_attr = {'short_name': 'ice_fraction', - 'long_name': 'ice fraction', - 'units': cf_units.Unit('1') - } - - global_attrs = {'project': list(cfg['input_data'].values())[0]['project']} - caption = 'Ice fraction' - filename = var_attr['short_name'] - attributes = {} - caption += '.' - attributes.update(global_attrs) - path = get_diagnostic_filename(filename, cfg) - - data_dict = {} - data_dict["Temperature"] = data[0] - data_dict["Ice fraction mean"] = data[1] - data_dict["Ice fraction p5"] = data[2] - data_dict["Ice fraction p95"] = data[3] - - io.save_scalar_data(data_dict, - path, - var_attr, - attributes=attributes) - - - -def plot_icefrac(ice_frac, legend, cfg): - """Create diagnostic data and plot it.""" - - cube_label = legend - line_color = LINE_COLOR.get(legend, legend) - line_dash = LINE_DASH.get(legend, legend) - - plt.plot(ice_frac[0], ice_frac[1], label=cube_label, color=line_color, - linestyle=line_dash) - plt.xlabel('Temperature (K)') - plt.ylabel('Ice fraction') - - logger.info("Plotting %s", legend) - - -def plot_errorband(x_axis, y_axis_p5, y_axis_p95, legend, cfg): - """Create diagnostic data and plot it.""" - - line_color = LINE_COLOR.get(legend, legend) - line_dash = LINE_DASH.get(legend, legend) - - plt.fill_between(x_axis, y_axis_p5, y_axis_p95, color=line_color, - linestyle=line_dash, alpha=.1) - - logger.info("Plotting %s", legend) - - -def create_bins(lower_bound, width, quantity): - """Create_bins returns an equal-width (distance) partitioning.""" - - bins = [] - for low in range(lower_bound, - lower_bound + quantity*width + 1, width): - bins.append((low, low+width)) - return bins - - -def find_bin(value, bins): - - for i in range(0, len(bins)): - if bins[i][0] <= value < bins[i][1]: - return i - return -1 - - -def calculate_icefrac(input_data, cfg, description=None): - """Calculate ice fraction.""" - logger.info("Calculating ice fraction.") - msg = '' if description is None else f' for {description}' - ancestors = [] - ice_frac = [] - ice_frac_all = [] - - # ta bins - ta_bins = create_bins(lower_bound=230, - width=5, - quantity=13) - ta_axis = [np.mean(x) for x in ta_bins] - - print(ta_bins) - print(ta_axis) - - # Iterate over all datasets and save ice fraction - for dataset in select_metadata(input_data, short_name='ta'): - dataset_name = dataset['dataset'] - logger.debug("Calculating ice fraction of dataset '%s'", dataset_name) - cli_data = select_metadata(input_data, - short_name='cli', - dataset=dataset_name) - clw_data = select_metadata(input_data, - short_name='clw', - dataset=dataset_name) - if not cli_data: - logger.debug( - "No 'cli' data for '%s' available, skipping ice fracion " - "calculation for it", dataset_name) - continue - elif not clw_data: - logger.debug( - "No 'clw' data for '%s' available, skipping ice fracion " - "calculation for it", dataset_name) - continue - ta_cube = dataset['cube'] - cli_cube = cli_data[0]['cube'] - clw_cube = clw_data[0]['cube'] - ancestors.extend(dataset['ancestors'] + cli_data[0]['ancestors'] - + clw_data[0]['ancestors']) - - cli_cube.data[cli_cube.data < 0.001] = np.nan - clw_cube.data[clw_cube.data < 0.001] = np.nan - - # Calculate ice fraction - ice_fraction = (cli_cube / (clw_cube + cli_cube)) - - binned_weights = [[] for _ in range(len(ta_bins))] - - longitude = ta_cube.coord('longitude').points - latitude = ta_cube.coord('latitude').points - air_pressure = ta_cube.coord('air_pressure').points - - for ipres, pressure in enumerate(air_pressure): - for ilat, lat in enumerate(latitude): - for ilon, lon in enumerate(longitude): - bin_index = find_bin(ta_cube.data[ipres, ilat, ilon], ta_bins) - if (bin_index >= 0 and ice_fraction.data[ipres, ilat, ilon] > 0.): - #print(bin_index, ta_cube.data[ipres, ilat, ilon], - # ice_fraction.data[ipres, ilat, ilon], ipres, ilat, ilon) - binned_weights[bin_index].append(ice_fraction.data[ipres, ilat, ilon]) - - ice_frac_all.append([np.mean(ibin) for ibin in binned_weights]) - - print(ice_frac_all) - - ice_frac.append(ta_axis) - ice_frac.append(np.average(ice_frac_all, axis=0)) - ice_frac.append(np.quantile(ice_frac_all, 0.05, axis=0)) - ice_frac.append(np.quantile(ice_frac_all, 0.95, axis=0)) - - print(ice_frac) - - return ice_frac - - -def preprocess_data(cfg, year_idx=None): - """Preprocess data.""" - input_data = deepcopy(list(cfg['input_data'].values())) - - project = input_data[0]['project'] - new_input_data = [] - for (var, var_data) in group_metadata(input_data, 'short_name').items(): - grouped_data = group_metadata(var_data, 'dataset') - for (dataset_name, datasets) in grouped_data.items(): - logger.debug("Preprocessing '%s' data for dataset '%s'", var, - dataset_name) - - cube = iris.load_cube(datasets[0]['filename']) - - logger.debug("Running example computation") - cube = iris.util.squeeze(cube) - - new_input_data.append({ - **datasets[0], - 'ancestors': [datasets[0]['filename']], - 'cube': cube, - }) - - return new_input_data - - -def set_default_cfg(cfg): - """Set default values for cfg.""" - cfg = deepcopy(cfg) - cfg.setdefault('title_key', 'dataset') - return cfg - - -def main(cfg): - """Run diagnostic.""" - cfg = set_default_cfg(cfg) - input_data = preprocess_data(cfg) - - ice_frac = calculate_icefrac(input_data, cfg) - - plot_icefrac(ice_frac, "ECS_high_hist", cfg) - - plot_errorband(ice_frac[0], ice_frac[2], ice_frac[3], "ECS_high_hist", cfg) - -# all_vars = list(group_metadata(input_data, 'short_name')) -# vars_groups = group_metadata(input_data, 'short_name') - -# groups = group_metadata(input_data, 'variable_group', sort='dataset') -# print(groups) - -# cubes = iris.cube.CubeList() - -# plt.figure(figsize=(8, 12)) - -# for group_name in groups: -# logger.info("Processing group %s", group_name) -# -# for attributes in groups[group_name]: -# logger.info("Loop dataset %s", attributes['dataset']) -# if attributes['dataset'] == 'MultiModelMean': -# logger.info("Processing dataset %s", attributes['dataset']) -# input_file = attributes['filename'] -# -# cube = compute_diagnostic(input_file) -# if cube.var_name == 'ta': -# cube_ta = cube -# -# cubes.append(cube) -# -# plot_diagnostic(cube, group_name, plot_type, cfg) -# -# elif attributes['dataset'] == 'MultiModelP5': -# logger.info("Processing dataset %s", attributes['dataset']) -# input_file = attributes['filename'] -# cube_p5 = compute_diagnostic(input_file) -# cubes.append(cube_p5) -# -# elif attributes['dataset'] == 'MultiModelP95': -# logger.info("Processing dataset %s", attributes['dataset']) -# input_file = attributes['filename'] -# cube_p95 = compute_diagnostic(input_file) -# cubes.append(cube_p95) -# -# #if cube_p5 and cube_p95: -# if group_name != 'OBS': -# plot_errorband(cube_p5, cube_p95, group_name, plot_type, cfg) -# -# if plot_type == 'height': -# plt.ylim(1000.,100.) -# plt.yscale('log') -# title = 'Vertical mean of ' + attributes['long_name'] -# elif plot_type == 'zonal': -# title = 'Zonal mean of ' + attributes['long_name'] -# else: -# title = attributes['long_name'] -# -# plt.title(title) -# plt.legend(ncol=1) -# plt.grid(True) -# -# for group_name in cfg['group_by']: -# -# logger.info("Processing group %s", group_name) -# -# for attributes_1 in groups[group_name[0]]: -# logger.info("Loop dataset %s", attributes_1['dataset']) -# if attributes_1['dataset'] == 'MultiModelMean': -# logger.info("Processing dataset %s", attributes_1['dataset']) -# input_file_1 = attributes_1['filename'] -# -# for attributes_2 in groups[group_name[1]]: -# logger.info("Loop dataset %s", attributes_2['dataset']) -# if attributes_2['dataset'] == 'MultiModelMean': -# logger.info("Processing dataset %s", attributes_2['dataset']) -# input_file_2 = attributes_2['filename'] -# -# cube = compute_diff(input_file_1, input_file_2) -# -# cubes.append(cube) -# -# plot_diagnostic_diff(cube, group_name[0], plot_type, cfg) -# -# - caption = ("Ice fraction") - - path = get_diagnostic_filename('ice_fraction', cfg) - - #provenance_record = get_provenance_record( - # attributes, ancestor_files=cfg['input_files']) - - # Provenance - provenance_record = _get_provenance_record(caption) - provenance_record['ancestors'] = cfg['input_files'] - with ProvenanceLogger(cfg) as provenance_logger: - provenance_logger.log(path, provenance_record) - - basename = 'ice_fraction' - - # Save the data used for the plot - #save_data(basename, provenance_record, cfg, ice_frac) - write_data(ice_frac, cfg) - - title = 'Ice fraction' - - plt.title(title) - - # And save the plot - save_figure(basename, provenance_record, cfg) - - - -if __name__ == '__main__': - - with run_diagnostic() as config: - main(config) diff --git a/esmvaltool/diag_scripts/clouds_ecs/group_lev_diff.py b/esmvaltool/diag_scripts/clouds_ecs/group_lev_diff.py deleted file mode 100644 index 78499990fa..0000000000 --- a/esmvaltool/diag_scripts/clouds_ecs/group_lev_diff.py +++ /dev/null @@ -1,466 +0,0 @@ -"""Python example diagnostic.""" -import logging -import os -from copy import deepcopy -from pathlib import Path -from pprint import pformat - -import iris -import iris.plot as iplt -import iris.quickplot as qplt -import cartopy.crs as ccrs -import matplotlib.pyplot as plt -import numpy as np - -from esmvaltool.diag_scripts.shared import ( - group_metadata, - run_diagnostic, - get_plot_filename, - save_data, - save_figure, - select_metadata, - sorted_metadata, - io, -) -from esmvaltool.diag_scripts.shared.plot import quickplot - -logger = logging.getLogger(Path(__file__).stem) - -VAR_NAMES = { - 'cl': 'cloud_fraction', - 'cli': 'ice_water_content', - 'clw': 'liquid_water_content', -} -LINE_LEGEND = { - 'ECS_high_hist': 'ECS_high', - 'ECS_med_hist': 'ECS_med', - 'ECS_low_hist': 'ECS_low', -} -LINE_COLOR = { - 'ECS_high_hist': 'royalblue', - 'ECS_high_scen': 'royalblue', - 'ECS_med_hist': 'green', - 'ECS_med_scen': 'green', - 'ECS_low_hist': 'orange', - 'ECS_low_scen': 'orange', - 'CMIP6': 'firebrick', - 'CMIP5': 'royalblue', - 'CMIP3': 'darkcyan', - 'OBS': 'black' -} -LINE_DASH = { - 'ECS_high_hist': 'solid', - 'ECS_high_scen': 'dashed', - 'ECS_med_hist': 'solid', - 'ECS_med_scen': 'dashed', - 'ECS_low_hist': 'solid', - 'ECS_low_scen': 'dashed', - 'CMIP6': 'solid', - 'CMIP5': 'solid', - 'CMIP3': 'solid', - 'OBS': 'solid' -} -FIGURE_NUMBER = { - 'ECS_high_hist': 231, - 'ECS_med_hist': 232, - 'ECS_low_hist': 233, - 'ECS_high_scen': 425, - 'ECS_med_scen': 426, - 'ECS_low_scen': 427, - 'OBS': 424 -} -FIGURE_NUMBER_DIFF = { - 'ECS_high_hist': 234, - 'ECS_med_hist': 235, - 'ECS_low_hist': 236, -} - -def get_provenance_record(attributes, ancestor_files): - """Create a provenance record describing the diagnostic data and plot.""" - caption = ("Average {short_name} between {start_year} and {end_year} " - "according to {dataset}.".format(**attributes)) - - record = { - 'caption': caption, - 'statistics': ['mean'], - 'domains': ['global'], - 'plot_types': ['zonal'], - 'authors': [ - 'andela_bouwe', - 'righi_mattia', - ], - 'references': [ - 'acknow_project', - ], - 'ancestors': ancestor_files, - } - return record - - -def _get_cube_list(input_files): - """Get :class:`iris.cube.CubeList` of input files.""" - cubes = iris.cube.CubeList() - - # Input files - for filename in input_files: - logger.info("Loading '%s'", filename) - cube = _load_cube_with_dataset_coord(filename) - cube.attributes['filename'] = filename - cubes.append(cube) - - # Check metadata of cubes - for cube in cubes: - check_metadata(cube.attributes) - - return cubes - -def _get_multi_model_mean(cubes, var): - """Compute multi-model mean.""" - - logger.debug("Calculating multi-model mean") - dataset_names = [] - #mmm = [] - mmm = {} - for (dataset, cube) in cubes.items(): - dataset_names.append(dataset) - #mmm.append(cube.data) - mmm['dataset'] = cube.data - #mmm = np.ma.array(mmm) - mmm = np.ma.masked_invalid(list(mmm.values())) - mmm_cube = cube.copy(data=np.ma.mean(mmm, axis=0)) - #dataset_0 = list(cubes.keys())[0] - #print("dataset_0") - #print(dataset_0) - #mmm_cube = cubes[dataset_0].copy(data=np.ma.mean(mmm, axis=0)) - #print(mmm_cube) - attributes = { - 'dataset': 'MultiModelMean', - 'short_name': var, - 'datasets': '|'.join(dataset_names), - } - mmm_cube.attributes = attributes - return mmm_cube - - -def read_data(filename): - """Compute an example diagnostic.""" - logger.debug("Loading %s", filename) - cube = iris.load_cube(filename) - - if cube.var_name == 'cli': - cube.convert_units('g/kg') - elif cube.var_name == 'clw': - cube.convert_units('g/kg') - - logger.debug("Reading data") - cube = iris.util.squeeze(cube) - return cube - - -def compute_diff(filename1, filename2): - """Compute difference between two cubes.""" - logger.debug("Loading %s", filename1) - cube1 = iris.load_cube(filename1) - cube2 = iris.load_cube(filename2) - - if cube1.var_name == 'cli': - cube1.convert_units('g/kg') - cube2.convert_units('g/kg') - elif cube1.var_name == 'clw': - cube1.convert_units('g/kg') - cube2.convert_units('g/kg') - - cube = cube2 - cube1 - cube.metadata = cube1.metadata - return cube - -def compute_diff_temp(input_data, group, var, dataset): - """Compute relative change per temperture change.""" - - dataset_name = dataset['dataset'] - var = dataset['short_name'] - - input_file_1 = dataset['filename'] - - var_data_2 = select_metadata(input_data, - short_name=var, - dataset=dataset_name, - variable_group=var+"_"+group[1]) - if not var_data_2: - raise ValueError( - f"No '{var}' data for '{dataset_name}' in '{group[1]}' available") - - input_file_2 = var_data_2[0]['filename'] - - ta_data_1 = select_metadata(input_data, - short_name='ta', - dataset=dataset_name, - variable_group='ta_'+group[0]) - ta_data_2 = select_metadata(input_data, - short_name='ta', - dataset=dataset_name, - variable_group='ta_'+group[1]) - if not ta_data_1: - raise ValueError( - f"No 'ta' data for '{dataset_name}' in '{group[0]}' available") - if not ta_data_2: - raise ValueError( - f"No 'ta' data for '{dataset_name}' in '{group[1]}' available") - input_file_ta_1 = ta_data_1[0]['filename'] - input_file_ta_2 = ta_data_2[0]['filename'] - - if var != 'cl': - cl_data_1 = select_metadata(input_data, - short_name='cl', - dataset=dataset_name, - variable_group='cl_'+group[0]) - cl_data_2 = select_metadata(input_data, - short_name='cl', - dataset=dataset_name, - variable_group='cl_'+group[1]) - if not cl_data_1: - raise ValueError( - f"No 'cl' data for '{dataset_name}' in '{group[0]}' available") - if not cl_data_2: - raise ValueError( - f"No 'cl' data for '{dataset_name}' in '{group[1]}' available") - input_file_cl_1 = cl_data_1[0]['filename'] - input_file_cl_2 = cl_data_2[0]['filename'] - else: - input_file_cl_1 = input_file_1 - input_file_cl_2 = input_file_2 - - cube = read_data(input_file_1) - if var in ['clw', 'cli']: - cube.data[cube.data < 0.001] = np.nan - elif var in ['cl']: - cube.data[cube.data < 0.1] = np.nan - - cube_diff = compute_diff(input_file_1, input_file_2) - cube_ta_diff = compute_diff(input_file_ta_1, input_file_ta_2) - cube_cl = read_data(input_file_cl_2) - - cube_ta_diff.data[cube_ta_diff.data < 0.1] = np.nan - - #cube_diff = cube_diff / cube_ta_diff - cube_diff = 100. * (cube_diff / cube) / cube_ta_diff - - cube_diff.data[cube_cl.data < 0.01] = np.nan - - #cube_diff.units = 'g/kg/K' - cube_diff.units = '%/K' - - return cube_diff - - -def plot_model(cube, attributes, plot_type, cfg): - """Plot each single model.""" - - plt.figure(figsize=(12, 8)) - plt.ylim(1000.,100.) - plt.yscale('log') - plt.yticks([1000., 800., 600., 400., 300., 200., 100.], [1000, 800, 600, 400, 300, 200, 100]) - plt.xticks([-60, -30, 0, 30, 60], [-60, -30, 0, 30, 60]) - cube.coord('air_pressure').convert_units('hPa') - if cube.var_name == 'cl': - levels = np.linspace(0., 50., 11) - elif cube.var_name == 'cli': - levels = np.linspace(0., 0.02, 11) - elif cube.var_name == 'clw': - levels = np.linspace(0., 0.05, 11) - qplt.contourf(cube, levels=levels, extend='max') - - # Appearance - dataset_name = attributes['dataset'] - title = f'{VAR_NAMES.get(cube.var_name, cube.var_name)} for {dataset_name}' - filename = ('{}_{}_{}'.format(VAR_NAMES.get(cube.var_name, cube.var_name), - attributes['exp'], dataset_name)) - - plt.title(title) - plot_path = get_plot_filename(filename, cfg) - plt.savefig(plot_path, - bbox_inches='tight', - orientation='landscape') - logger.info("Wrote %s", plot_path) - plt.close() - - -def plot_diagnostic(cube, legend, plot_type, cfg): - """Create diagnostic data and plot it.""" - - if cfg.get('quickplot'): - # Create the plot - quickplot(cube, **cfg['quickplot']) - else: - leg = legend.split('_', 1)[1] - nplot = FIGURE_NUMBER.get(leg, leg) - - plt.subplot(nplot) - - plt.ylim(1000.,100.) - plt.yscale('log') - plt.yticks([1000., 800., 600., 400., 300., 200., 100.], [1000, 800, 600, 400, 300, 200, 100]) - plt.xticks([-60, -30, 0, 30, 60], [-60, -30, 0, 30, 60]) - cube.coord('air_pressure').convert_units('hPa') - if cube.var_name == 'cl': - levels = np.linspace(0., 50., 11) - elif cube.var_name == 'cli': - levels = np.linspace(0., 0.02, 11) - cube.convert_units('g/kg') - elif cube.var_name == 'clw': - levels = np.linspace(0., 0.05, 11) - cube.convert_units('g/kg') - qplt.contourf(cube, levels=levels, extend='max') - - logger.info("Plotting %s", legend) - - -def plot_diagnostic_diff(cube, legend, plot_type, cfg): - """Create diagnostic data and plot it.""" - - if cfg.get('quickplot'): - # Create the plot - quickplot(cube, **cfg['quickplot']) - else: - nplot = FIGURE_NUMBER_DIFF.get(legend, legend) - - plt.subplot(nplot) - - plt.ylim(1000.,100.) - plt.yscale('log') - plt.yticks([1000., 800., 600., 400., 300., 200., 100.], [1000, 800, 600, 400, 300, 200, 100]) - plt.xticks([-60, -30, 0, 30, 60], [-60, -30, 0, 30, 60]) - cube.coord('air_pressure').convert_units('hPa') - #levels = np.linspace(-8., 8., 33) - levels = np.linspace(-10., 10., 41) - #levels = np.linspace(-15., 15., 31) - if cube.var_name == 'cl': - levels = np.linspace(-6., 6., 13) - elif cube.var_name == 'cli': - levels = np.linspace(-0.01, 0.01, 11) - cube.convert_units('g/kg') - elif cube.var_name == 'clw': - levels = np.linspace(-0.01, 0.01, 11) - cube.convert_units('g/kg') - qplt.contourf(cube, levels=levels, extend='both', cmap='coolwarm') - - logger.info("Plotting %s", legend) - - -def main(cfg): - """Run diagnostic.""" - cfg = deepcopy(cfg) - cfg.setdefault('title_key', 'dataset') - cfg.setdefault('filename_attach', 'base') - cfg.setdefault('plot_each_model', False) - logger.info("Using key '%s' to create titles for datasets", - cfg['title_key']) - - plot_type = cfg['plot_type'] - - input_data = list(cfg['input_data'].values()) - all_vars = group_metadata(input_data, 'short_name') - - for var in all_vars: - - if var != 'ta': - - logger.info("Processing variable %s", var) - - groups = group_metadata(all_vars[var], 'variable_group', sort='dataset') - - plt.figure(constrained_layout=True, figsize=(12, 8)) - - for group_name in groups: - if 'hist' in group_name: - if 'ta_' not in group_name: - logger.info("Processing group %s", group_name) - - dataset_names = [] - cubes = {} - - for dataset in groups[group_name]: - - dataset_name = dataset['dataset'] - var = dataset['short_name'] - - if dataset_name != 'MultiModelMean': - - logger.info("Processing dataset %s", dataset_name) - - input_file = dataset['filename'] - cube = read_data(input_file) - - #cube = cube.collapsed('longitude', iris.analysis.MEAN) - - if cfg['plot_each_model']: - plot_model(cube, dataset, plot_type, cfg) - - cubes[dataset_name] = cube - - cube_mmm = _get_multi_model_mean(cubes, var) - - plot_diagnostic(cube, group_name, plot_type, cfg) - - title = group_name.split('_',1)[1] - plt.title(title, fontsize=10) - - provenance_record = get_provenance_record( - dataset, ancestor_files=cfg['input_files']) - basename = 'mean_' + group_name + '_' + cfg['filename_attach'] - # Save the data used for the plot - save_data(basename, provenance_record, cfg, cube_mmm) - - - for group_name in cfg['group_by']: - - logger.info("Processing group %s of variable %s", group_name[0], var) - - dataset_names = [] - cubes_diff = {} - - for dataset in groups[var + "_" + group_name[0]]: - dataset_name = dataset['dataset'] - var = dataset['short_name'] - - if dataset_name != 'MultiModelMean': - logger.info("Loop dataset %s", dataset_name) - dataset_names.append(dataset_name) - - cube_diff = compute_diff_temp(input_data, group_name, var, dataset) - - #cube_diff = cube_diff.collapsed('longitude', iris.analysis.MEAN) - - cubes_diff[dataset_name] = cube_diff - - cube_mmm = _get_multi_model_mean(cubes_diff, var) - - plot_diagnostic_diff(cube_mmm, group_name[0], plot_type, cfg) - - title = group_name[1] + " - " + group_name[0] - plt.title(title, fontsize=9) - - provenance_record = get_provenance_record( - dataset, ancestor_files=cfg['input_files']) - #basename = 'diff_' + var + '_' + group_name[0] + '_' + cfg['filename_attach'] - basename = 'diff_' + var + '_' + group_name[0] + '_' + group_name[1] + '_' + cfg['filename_attach'] - # Save the data used for the plot - save_data(basename, provenance_record, cfg, cube_mmm) - - plt.suptitle(var) - - provenance_record = get_provenance_record( - dataset, ancestor_files=cfg['input_files']) - - basename = 'diff_' + var + '_' + cfg['filename_attach'] - # Save the data used for the plot - save_data(basename, provenance_record, cfg, cube_mmm) - - # And save the plot - save_figure(basename, provenance_record, cfg) - - -if __name__ == '__main__': - - with run_diagnostic() as config: - main(config) diff --git a/esmvaltool/diag_scripts/clouds_ecs/plot_ice_fraction.py b/esmvaltool/diag_scripts/clouds_ecs/plot_ice_fraction.py deleted file mode 100644 index a7eb1dfb80..0000000000 --- a/esmvaltool/diag_scripts/clouds_ecs/plot_ice_fraction.py +++ /dev/null @@ -1,175 +0,0 @@ -"""Python example diagnostic.""" -import logging -import os -from copy import deepcopy -from pathlib import Path -from pprint import pformat - -import cf_units -import iris -import iris.plot as iplt -import iris.quickplot as qplt -import matplotlib.pyplot as plt -import numpy as np - -from esmvaltool.diag_scripts.shared import ( - ProvenanceLogger, - get_diagnostic_filename, - group_metadata, - run_diagnostic, - save_data, - save_figure, - select_metadata, - sorted_metadata, - io, -) -from esmvaltool.diag_scripts.shared.plot import quickplot - -logger = logging.getLogger(Path(__file__).stem) - -LINE_LEGEND = { - 'ECS_high_hist': 'ECS_high', - 'ECS_med_hist': 'ECS_med', - 'ECS_low_hist': 'ECS_low', -} - -LINE_COLOR = { - 'ECS_high_hist': 'royalblue', - 'ECS_high_scen': 'royalblue', - 'ECS_med_hist': 'green', - 'ECS_med_scen': 'green', - 'ECS_low_hist': 'orange', - 'ECS_low_scen': 'orange', - 'CMIP6': 'firebrick', - 'CMIP5': 'royalblue', - 'CMIP3': 'darkcyan', - 'OBS': 'black' -} - -LINE_DASH = { - 'ECS_high_hist': 'solid', - 'ECS_high_scen': 'dashed', - 'ECS_med_hist': 'solid', - 'ECS_med_scen': 'dashed', - 'ECS_low_hist': 'solid', - 'ECS_low_scen': 'dashed', - 'CMIP6': 'solid', - 'CMIP5': 'solid', - 'CMIP3': 'solid', - 'OBS': 'solid' -} - -def _get_provenance_record(caption): - """Create a provenance record.""" - - record = { - 'caption': caption, - 'statistics': ['mean'], - 'domains': ['global'], - 'plot_types': ['zonal'], - 'authors': [ - 'bock_lisa', - ], - 'references': [ - 'acknow_project', - ], - } - return record - - -def plot_icefrac(ice_frac, legend, cfg): - """Create diagnostic data and plot it.""" - - cube_label = legend - line_color = LINE_COLOR.get(legend, legend) - line_dash = LINE_DASH.get(legend, legend) - - plt.plot(ice_frac[0], ice_frac[1], label=cube_label, color=line_color, - linestyle=line_dash) - plt.xlabel('Temperature (K)') - plt.ylabel('Ice fraction') - - logger.info("Plotting %s", legend) - - -def plot_errorband(x_axis, y_axis_p5, y_axis_p95, legend, cfg): - """Create diagnostic data and plot it.""" - - line_color = LINE_COLOR.get(legend, legend) - line_dash = LINE_DASH.get(legend, legend) - - plt.fill_between(x_axis, y_axis_p5, y_axis_p95, color=line_color, - linestyle=line_dash, alpha=.1) - - logger.info("Plotting %s", legend) - - -def set_default_cfg(cfg): - """Set default values for cfg.""" - cfg = deepcopy(cfg) - cfg.setdefault('title_key', 'dataset') - return cfg - - -def main(cfg): - """Run diagnostic.""" - cfg = set_default_cfg(cfg) - - input_files = io.get_all_ancestor_files(cfg, pattern='ice_fraction.nc') - - for group_name in cfg['groups']: - - logger.info("Processing group %s", group_name) - - input_file = [filename for filename in input_files if group_name in filename] - - print(input_file) - - cube_ice_frac = iris.load_cube(input_file) - - print(cube_ice_frac) - - coords = cube_ice_frac.coord('dataset').points - - print(coords) - - ice_frac = [] - - ice_frac.append(cube_ice_frac.data[0, :]) - ice_frac.append(cube_ice_frac.data[1, :]) - ice_frac.append(cube_ice_frac.data[2, :]) - ice_frac.append(cube_ice_frac.data[3, :]) - - plot_icefrac(ice_frac, group_name, cfg) - - plot_errorband(ice_frac[0], ice_frac[2], ice_frac[3], group_name, cfg) - - caption = ("Ice fraction") - - path = get_diagnostic_filename('ice_fraction_all', cfg) - - # Provenance - provenance_record = _get_provenance_record(caption) - provenance_record['ancestors'] = cfg['input_files'] - - basename = 'ice_fraction_all' - - # Save the data used for the plot - save_data(basename, provenance_record, cfg, cube_ice_frac) - - title = 'Ice fraction' - - plt.title(title) - plt.legend(ncol=1) - plt.axhline(y=0.5, xmin=230., xmax=300., color='black', linewidth=3) - plt.grid(True) - - # And save the plot - save_figure(basename, provenance_record, cfg) - - - -if __name__ == '__main__': - - with run_diagnostic() as config: - main(config) diff --git a/esmvaltool/diag_scripts/clouds_ecs/plot_pattern_corr.py b/esmvaltool/diag_scripts/clouds_ecs/plot_pattern_corr.py deleted file mode 100644 index f655352a0a..0000000000 --- a/esmvaltool/diag_scripts/clouds_ecs/plot_pattern_corr.py +++ /dev/null @@ -1,116 +0,0 @@ -"""Python example diagnostic.""" -import logging -import os -from copy import deepcopy -from pathlib import Path -from pprint import pformat - -import iris -from iris.analysis.stats import pearsonr -import iris.plot as iplt -import cartopy.crs as ccrs -import matplotlib.pyplot as plt -import numpy as np -import pandas as pd -import random -import seaborn as sns -from scipy.stats import bootstrap - -import esmvaltool.diag_scripts.shared.iris_helpers as ih -from esmvaltool.diag_scripts.shared import ( - extract_variables, - group_metadata, - run_diagnostic, - get_diagnostic_filename, - get_plot_filename, - save_data, - save_figure, - select_metadata, - sorted_metadata, - io, -) -from esmvaltool.diag_scripts.shared.plot import quickplot - -logger = logging.getLogger(Path(__file__).stem) - -VAR_NAMES = { - 'clt': 'Total Cloud Fraction', - 'lwp': 'Liquid Water Path', - 'clivi': 'Ice Water Path', - 'netcre': 'net_cre', - 'swcre': 'sw_cre', - 'lwcre': 'lw_cre', -} -PALETTE = { - 'ECS_high': 'royalblue', - 'ECS_med': 'green', - 'ECS_low': 'orange', -} - - -def create_data_frame(input_files): - """Collect all correlation values from the input_files.""" - - corr_df = None - - for ifile in input_files: - df = pd.read_csv(ifile) - select_corr = df.loc[(df['Statistic'] == 'Corr') & (df['Group'] != 'OBS')] - var = ifile.split("_")[-1].split(".")[0] - select_corr['Variable'] = var - print(var) - if corr_df is None: - corr_df = select_corr - else: - corr_df = pd.concat([corr_df, select_corr], axis = 0) - print("Append") - print(corr_df.tail()) - - return corr_df - - -def plot_corr(data_frame, cfg): - """Plot correlation figure""" - - plt.figure(constrained_layout=True, figsize=(12, 8)) - - sns.set_style('darkgrid') - sns.set(font_scale=2) - #sns.boxplot(data=data_frame, x='Variable', y='Value', hue='Group', palette=PALETTE) - sns.stripplot(data=data_frame, x='Variable', y='Value', - order = cfg['diag_order'], - marker = '_', s = 20, jitter=False, - hue='Group', hue_order = ['ECS_low', 'ECS_med', 'ECS_high'], - dodge=True, palette=PALETTE) - plt.ylabel('Correlation') - - # Save plot - plot_path = get_plot_filename('pattern_corr', cfg) - plt.savefig(plot_path) - logger.info("Wrote %s", plot_path) - plt.close() - - - -def main(cfg): - """Run diagnostic.""" - - # Get input files - pattern = cfg.get('patterns') - - input_files = [i for i in io.get_all_ancestor_files(cfg) if pattern in i] - if not input_files: - raise ValueError("No input files found") - logger.info("Found input files:\n%s", pformat(input_files)) - - # Create data frame - data_frame = create_data_frame(input_files) - - # Plot correlation - plot_corr(data_frame, cfg) - - -if __name__ == '__main__': - - with run_diagnostic() as config: - main(config) diff --git a/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_height_line.yml b/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_height_line.yml deleted file mode 100644 index 8c83127aea..0000000000 --- a/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_height_line.yml +++ /dev/null @@ -1,382 +0,0 @@ -# ESMValTool -# recipe_icon_eval.yml ---- -documentation: - title: Evaluation of clouds considering ECS - - description: Evaluate clouds in high ECS models. - - authors: - - bock_lisa - - references: - - acknow_project - - -YEARS: &years - start_year: 1985 - end_year: 2004 - -YEARS_ssp585: &years_scen - start_year: 2081 - end_year: 2100 - - -DATASETS_ECS_HIGH: &datasets_ecs_high - # - {dataset: ACCESS-CM2, grid: gn, institute: CSIRO-ARCCSS} # no clwvi - - {dataset: CanESM5, grid: gn} - - {dataset: CESM2, grid: gn, ensemble: r4i1p1f1} - #- {dataset: CESM2-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - - {dataset: CESM2-WACCM, grid: gn, institute: NCAR} - # - {dataset: CESM2-WACCM-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - # - {dataset: CIESM} # no rsutcs scenario data - - {dataset: CNRM-CM6-1, ensemble: r1i1p1f2} - - {dataset: CNRM-ESM2-1, ensemble: r1i1p1f2} - # - {dataset: EC-Earth3-CC} # no cl, cli, clw - # - {dataset: FIO-ESM-2-0, grid: gn} # no rsutcs - - {dataset: HadGEM3-GC31-LL, grid: gn, ensemble: r1i1p1f3} - - {dataset: HadGEM3-GC31-MM, grid: gn, ensemble: r1i1p1f3} - - {dataset: IPSL-CM6A-LR} - - {dataset: KACE-1-0-G} - - {dataset: NESM3, grid: gn} - - {dataset: TaiESM1, grid: gn} - - {dataset: UKESM1-0-LL, ensemble: r1i1p1f2, grid: gn} - - - {dataset: CSIRO-Mk3-6-0, ensemble: r1i1p1, project: CMIP5} - - {dataset: HadGEM2-ES, ensemble: r1i1p1, project: CMIP5} - - {dataset: IPSL-CM5A-LR, ensemble: r1i1p1, project: CMIP5} - - {dataset: IPSL-CM5A-MR, ensemble: r1i1p1, project: CMIP5} - - {dataset: MIROC-ESM, ensemble: r1i1p1, project: CMIP5} - -DATASETS_ECS_HIGH: &datasets_ecs_high_scenario - # - {dataset: ACCESS-CM2, grid: gn, institute: CSIRO-ARCCSS} # no clwvi - - {dataset: CanESM5, grid: gn, exp: ssp585} - - {dataset: CESM2, grid: gn, ensemble: r4i1p1f1, exp: ssp585} - #- {dataset: CESM2-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - - {dataset: CESM2-WACCM, grid: gn, institute: NCAR, exp: ssp585} - # - {dataset: CESM2-WACCM-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - # - {dataset: CIESM, exp: ssp585} # no rsutcs scenario data - - {dataset: CNRM-CM6-1, ensemble: r1i1p1f2, exp: ssp585} - - {dataset: CNRM-ESM2-1, ensemble: r1i1p1f2, exp: ssp585} - # - {dataset: EC-Earth3-CC, exp: ssp585} # no cl, cli, clw - # - {dataset: FIO-ESM-2-0, grid: gn, exp: ssp585} # no rsutcs - - {dataset: HadGEM3-GC31-LL, grid: gn, ensemble: r1i1p1f3, exp: ssp585} - - {dataset: HadGEM3-GC31-MM, grid: gn, ensemble: r1i1p1f3, exp: ssp585} # no clwvi, clivi - - {dataset: IPSL-CM6A-LR, exp: ssp585} - - {dataset: KACE-1-0-G, exp: ssp585} - - {dataset: NESM3, grid: gn, exp: ssp585} - - {dataset: TaiESM1, grid: gn, exp: ssp585} - - {dataset: UKESM1-0-LL, ensemble: r1i1p1f2, grid: gn, exp: ssp585} - - - {dataset: CSIRO-Mk3-6-0, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: HadGEM2-ES, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: IPSL-CM5A-LR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: IPSL-CM5A-MR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MIROC-ESM, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - -DATASETS_ECS_MED: &datasets_ecs_med - # - {dataset: ACCESS-ESM1-5, grid: gn, institute: CSIRO} # no clwvi - # - {dataset: AWI-CM-1-1-MR, grid: gn} # no cl, cli, clw - - {dataset: BCC-CSM2-MR, grid: gn} - # - {dataset: BCC-ESM1, grid: gn} # no scenario data - # - {dataset: CAS-ESM2-0, grid: gn} # download failed - # - {dataset: CNRM-CM6-1-HR, ensemble: r1i1p1f2} # no cl, cli, clw scenario data - - {dataset: CMCC-CM2-SR5, grid: gn} - - {dataset: CMCC-ESM2, grid: gn} - # - {dataset: EC-Earth3-Veg} # no cl, cli, clw - - {dataset: FGOALS-f3-L} - - {dataset: FGOALS-g3, grid: gn} - - {dataset: GISS-E2-1-H, grid: gn} - # - {dataset: KIOST-ESM, grid: gr1} # no cl - # - {dataset: MCM-UA-1-0, grid: gn} # no clt - - {dataset: MPI-ESM1-2-HR, grid: gn} - - {dataset: MPI-ESM1-2-LR, grid: gn} - - {dataset: MRI-ESM2-0, grid: gn} - # - {dataset: SAM0-UNICON, grid: gn} # no scenario data - - - {dataset: ACCESS1-0, ensemble: r1i1p1, project: CMIP5} - - {dataset: ACCESS1-3, ensemble: r1i1p1, project: CMIP5} - - {dataset: BNU-ESM, ensemble: r1i1p1, project: CMIP5} - - {dataset: CanESM2, ensemble: r1i1p1, project: CMIP5} - - {dataset: CCSM4, ensemble: r1i1p1, project: CMIP5} - # - {dataset: CNRM-CM5-2, ensemble: r1i1p1, project: CMIP5} # no scenario data - # - {dataset: CNRM-CM5, ensemble: r1i1p1, project: CMIP5} # no cl, cli, clw - - {dataset: FGOALS-g2, ensemble: r1i1p1, project: CMIP5} - - {dataset: GFDL-CM3, ensemble: r1i1p1, project: CMIP5} - - {dataset: MPI-ESM-LR, ensemble: r1i1p1, project: CMIP5} - - {dataset: MPI-ESM-MR, ensemble: r1i1p1, project: CMIP5} - # - {dataset: MPI-ESM-P, ensemble: r1i1p1, project: CMIP5} # no scenario data - - -DATASETS_ECS_MED_scenario: &datasets_ecs_med_scenario - # - {dataset: ACCESS-ESM1-5, grid: gn, institute: CSIRO, exp: ssp585} # no clwvi - # - {dataset: AWI-CM-1-1-MR, grid: gn, exp: ssp585} # no cl, cli, clw - - {dataset: BCC-CSM2-MR, grid: gn, exp: ssp585} - # - {dataset: BCC-ESM1, grid: gn, exp: ssp585} # no scenario data - # - {dataset: CAS-ESM2-0, grid: gn, exp: ssp585} # download failed - # - {dataset: CNRM-CM6-1-HR, ensemble: r1i1p1f2, exp: ssp585} # no cl, cli, clw scenario data - - {dataset: CMCC-CM2-SR5, grid: gn, exp: ssp585} - - {dataset: CMCC-ESM2, grid: gn, exp: ssp585} - # - {dataset: EC-Earth3-Veg, exp: ssp585} # no cl, cli, clw - - {dataset: FGOALS-f3-L, exp: ssp585} - - {dataset: FGOALS-g3, grid: gn, exp: ssp585} - - {dataset: GISS-E2-1-H, grid: gn, ensemble: r1i1p1f2, exp: ssp585} - # - {dataset: KIOST-ESM, grid: gr1, exp: ssp585} # no cl - # - {dataset: MCM-UA-1-0, grid: gn, exp: ssp585} # no scenario data - - {dataset: MPI-ESM1-2-HR, grid: gn, exp: ssp585} - - {dataset: MPI-ESM1-2-LR, grid: gn, exp: ssp585} - - {dataset: MRI-ESM2-0, grid: gn, exp: ssp585} - # - {dataset: SAM0-UNICON, grid: gn, exp: ssp585} # no scenario data - - - {dataset: ACCESS1-0, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: ACCESS1-3, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: BNU-ESM, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: CanESM2, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: CCSM4, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - # - {dataset: CNRM-CM5-2, ensemble: r1i1p1, project: CMIP5, exp: rcp85} # no scenario data - # - {dataset: CNRM-CM5, ensemble: r1i1p1, project: CMIP5, exp: rcp85} # no cl, cli, clw - - {dataset: FGOALS-g2, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GFDL-CM3, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MPI-ESM-LR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MPI-ESM-MR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - # - {dataset: MPI-ESM-P, ensemble: r1i1p1, project: CMIP5, exp: rcp85} # no scenario data - - -DATASETS_ECS_LOW: &datasets_ecs_low - - {dataset: CAMS-CSM1-0, grid: gn} - - {dataset: GISS-E2-1-G, grid: gn} - # - {dataset: IITM-ESM, grid: gn} # no cli, clw - # - {dataset: INM-CM4-8, grid: gr1} # no cl, cli, clw - # - {dataset: INM-CM5-0, grid: gr1} # no cl, cli, clw - - {dataset: MIROC6, grid: gn} - - {dataset: MIROC-ES2L, ensemble: r1i1p1f2, grid: gn} - # - {dataset: MPI-ESM-1-2-HAM, grid: gn} # no scenario data - # - {dataset: NorCPM1, grid: gn} # no clwvi, clivi - - {dataset: NorESM2-LM, grid: gn, institute: NCC} - - {dataset: NorESM2-MM, grid: gn, institute: NCC} - - - {dataset: bcc-csm1-1, ensemble: r1i1p1, project: CMIP5} - - {dataset: bcc-csm1-1-m, ensemble: r1i1p1, project: CMIP5} - - {dataset: GFDL-ESM2G, ensemble: r1i1p1, project: CMIP5} - - {dataset: GFDL-ESM2M, ensemble: r1i1p1, project: CMIP5} - - {dataset: GISS-E2-H, ensemble: r1i1p1, project: CMIP5} - - {dataset: GISS-E2-R, ensemble: r1i1p1, project: CMIP5} - - {dataset: inmcm4, ensemble: r1i1p1, project: CMIP5} - - {dataset: IPSL-CM5B-LR, ensemble: r1i1p1, project: CMIP5} - - {dataset: MIROC5, ensemble: r1i1p1, project: CMIP5} - - {dataset: MRI-CGCM3, ensemble: r1i1p1, project: CMIP5} - - {dataset: NorESM1-M, ensemble: r1i1p1, project: CMIP5} - - -DATASETS_ECS_LOW_scenario: &datasets_ecs_low_scenario - - {dataset: CAMS-CSM1-0, grid: gn, exp: ssp585, end_year: 2099} - - {dataset: GISS-E2-1-G, grid: gn, ensemble: r1i1p1f2, exp: ssp585} - # - {dataset: IITM-ESM, grid: gn, exp: ssp585, end_year: 2099} # no cli, clw - # - {dataset: INM-CM4-8, grid: gr1, exp: ssp585} # no cl, cli, clw - # - {dataset: INM-CM5-0, grid: gr1, exp: ssp585} # no cl, cli, clw - - {dataset: MIROC6, grid: gn, exp: ssp585} - - {dataset: MIROC-ES2L, ensemble: r1i1p1f2, grid: gn, exp: ssp585} - # - {dataset: MPI-ESM-1-2-HAM, grid: gn, exp: ssp585} #no scenario data - # - {dataset: NorCPM1, grid: gn, exp: ssp585} # no scenario data - - {dataset: NorESM2-LM, grid: gn, institute: NCC, exp: ssp585} - - {dataset: NorESM2-MM, grid: gn, institute: NCC, exp: ssp585} - - - {dataset: bcc-csm1-1, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: bcc-csm1-1-m, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GFDL-ESM2G, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GFDL-ESM2M, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GISS-E2-H, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GISS-E2-R, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: inmcm4, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: IPSL-CM5B-LR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MIROC5, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MRI-CGCM3, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: NorESM1-M, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - -preprocessors: - - height_mmm: - custom_order: true - extract_levels: - levels: {cmor_table: CMIP6, coordinate: plev27} - coordinate: air_pressure - scheme: linear - regrid: - target_grid: 2x2 - scheme: linear - area_statistics: - operator: mean - multi_model_statistics: - span: full - statistics: [mean, p5, p95] - climate_statistics: - operator: mean - - height: - extract_levels: - levels: {cmor_table: CMIP6, coordinate: plev27} - coordinate: air_pressure - scheme: linear - regrid: - target_grid: 2x2 - scheme: linear - #area_statistics: - #operator: mean - climate_statistics: - operator: mean - - -diagnostics: - - cl_height: &height_diag - description: comparison of height mean - variables: - ECS_high_hist: &var_cl - short_name: cl - preprocessor: height - mip: Amon - project: CMIP6 - exp: historical - ensemble: r1i1p1f1 - grid: gr - <<: *years - additional_datasets: *datasets_ecs_high - ECS_med_hist: - <<: *var_cl - additional_datasets: *datasets_ecs_med - ECS_low_hist: - <<: *var_cl - additional_datasets: *datasets_ecs_low - ECS_high_scen: - <<: *var_cl - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_high_scenario - ECS_med_scen: - <<: *var_cl - <<: *years_scen - additional_datasets: *datasets_ecs_med_scenario - ECS_low_scen: - <<: *var_cl - <<: *years_scen - additional_datasets: *datasets_ecs_low_scenario - ta_ECS_high_hist: &var_ta - <<: *var_cl - short_name: ta - ta_ECS_med_hist: - <<: *var_ta - additional_datasets: *datasets_ecs_med - ta_ECS_low_hist: - <<: *var_ta - additional_datasets: *datasets_ecs_low - ta_ECS_high_scen: - <<: *var_ta - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_high_scenario - ta_ECS_med_scen: - <<: *var_ta - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_med_scenario - ta_ECS_low_scen: - <<: *var_ta - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_low_scenario - OBS: - <<: *var_cl - preprocessor: height - additional_datasets: - - {dataset: ERA5, project: OBS6, type: reanaly, version: v1, tier: 3} - scripts: - height: - script: clouds_ecs/group_line_diff.py - plot_type: height - group_by: [['ECS_low_hist', 'ECS_low_scen'], - ['ECS_med_hist', 'ECS_med_scen'], - ['ECS_high_hist', 'ECS_high_scen']] - filename_attach: ssp585 - - - # cli_height: - # <<: *height_diag - # variables: - # ECS_high_hist: - # <<: *var_cl - # short_name: cli - # additional_datasets: *datasets_ecs_high - # ECS_med_hist: - # <<: *var_cl - # short_name: cli - # additional_datasets: *datasets_ecs_med - # ECS_low_hist: - # <<: *var_cl - # short_name: cli - # additional_datasets: *datasets_ecs_low - # ECS_high_scen: - # <<: *var_cl - # <<: *years_scen - # short_name: cli - # exp: ssp585 - # additional_datasets: *datasets_ecs_high_scenario - # ECS_med_scen: - # <<: *var_cl - # <<: *years_scen - # short_name: cli - # additional_datasets: *datasets_ecs_med_scenario - # ECS_low_scen: - # <<: *var_cl - # <<: *years_scen - # short_name: cli - # additional_datasets: *datasets_ecs_low_scenario - # OBS: - # <<: *var_cl - # short_name: cli - # preprocessor: height - # start_year: 2007 - # end_year: 2015 - # additional_datasets: - # - {dataset: CALIPSO-ICECLOUD, project: OBS, type: sat, version: 1-00, mip: Amon, tier: 2} - # - # - # clw_height: - # <<: *height_diag - # variables: - # ECS_high_hist: - # <<: *var_cl - # short_name: clw - # additional_datasets: *datasets_ecs_high - # ECS_med_hist: - # <<: *var_cl - # short_name: clw - # additional_datasets: *datasets_ecs_med - # ECS_low_hist: - # <<: *var_cl - # short_name: clw - # additional_datasets: *datasets_ecs_low - # ECS_high_scen: - # <<: *var_cl - # <<: *years_scen - # short_name: clw - # exp: ssp585 - # additional_datasets: *datasets_ecs_high_scenario - # ECS_med_scen: - # <<: *var_cl - # <<: *years_scen - # short_name: clw - # additional_datasets: *datasets_ecs_med_scenario - # ECS_low_scen: - # <<: *var_cl - # <<: *years_scen - # short_name: clw - # additional_datasets: *datasets_ecs_low_scenario - # OBS: - # <<: *var_cl - # short_name: clw - # preprocessor: height - # start_year: 2006 - # end_year: 2017 - # additional_datasets: - # - {dataset: CLOUDSAT-L2, project: OBS, type: sat, version: P1-R05-gridbox-average-noprecip, mip: Amon, tier: 2} diff --git a/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_height_map.yml b/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_height_map.yml deleted file mode 100644 index 5781f19812..0000000000 --- a/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_height_map.yml +++ /dev/null @@ -1,335 +0,0 @@ -# ESMValTool -# recipe_icon_eval.yml ---- -documentation: - title: Evaluation of clouds considering ECS - - description: Evaluate clouds in high ECS models. - - authors: - - bock_lisa - - references: - - acknow_project - - -YEARS: &years - start_year: 1985 - end_year: 2004 - -YEARS_ssp585: &years_ssp585 - start_year: 2081 - end_year: 2100 - - -DATASETS_ECS_HIGH: &datasets_ecs_high - # - {dataset: ACCESS-CM2, grid: gn, institute: CSIRO-ARCCSS} # no clwvi - - {dataset: CanESM5, grid: gn} - - {dataset: CESM2, grid: gn} #, ensemble: r4i1p1f1} - #- {dataset: CESM2-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - - {dataset: CESM2-WACCM, grid: gn, institute: NCAR} - # - {dataset: CESM2-WACCM-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - # - {dataset: CIESM} # no rsutcs scenario data - - {dataset: CNRM-CM6-1, ensemble: r1i1p1f2} - - {dataset: CNRM-ESM2-1, ensemble: r1i1p1f2} - # - {dataset: EC-Earth3-CC} # no cl, cli, clw - # - {dataset: FIO-ESM-2-0, grid: gn} # no rsutcs - - {dataset: HadGEM3-GC31-LL, grid: gn, ensemble: r1i1p1f3} - - {dataset: HadGEM3-GC31-MM, grid: gn, ensemble: r1i1p1f3} - - {dataset: IPSL-CM6A-LR} - - {dataset: KACE-1-0-G} - - {dataset: NESM3, grid: gn} - - {dataset: TaiESM1, grid: gn} - - {dataset: UKESM1-0-LL, ensemble: r1i1p1f2, grid: gn} - - - {dataset: CSIRO-Mk3-6-0, ensemble: r1i1p1, project: CMIP5} - - {dataset: HadGEM2-ES, ensemble: r1i1p1, project: CMIP5} - - {dataset: IPSL-CM5A-LR, ensemble: r1i1p1, project: CMIP5} - - {dataset: IPSL-CM5A-MR, ensemble: r1i1p1, project: CMIP5} - - {dataset: MIROC-ESM, ensemble: r1i1p1, project: CMIP5} - -DATASETS_ECS_HIGH: &datasets_ecs_high_scenario - # - {dataset: ACCESS-CM2, grid: gn, institute: CSIRO-ARCCSS} # no clwvi - - {dataset: CanESM5, grid: gn, exp: ssp585} - - {dataset: CESM2, grid: gn, ensemble: r4i1p1f1, exp: ssp585} - #- {dataset: CESM2-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - - {dataset: CESM2-WACCM, grid: gn, institute: NCAR, exp: ssp585} - # - {dataset: CESM2-WACCM-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - # - {dataset: CIESM, exp: ssp585} # no rsutcs scenario data - - {dataset: CNRM-CM6-1, ensemble: r1i1p1f2, exp: ssp585} - - {dataset: CNRM-ESM2-1, ensemble: r1i1p1f2, exp: ssp585} - # - {dataset: EC-Earth3-CC, exp: ssp585} # no cl, cli, clw - # - {dataset: FIO-ESM-2-0, grid: gn, exp: ssp585} # no rsutcs - - {dataset: HadGEM3-GC31-LL, grid: gn, ensemble: r1i1p1f3, exp: ssp585} - - {dataset: HadGEM3-GC31-MM, grid: gn, ensemble: r1i1p1f3, exp: ssp585} # no clwvi, clivi - - {dataset: IPSL-CM6A-LR, exp: ssp585} - - {dataset: KACE-1-0-G, exp: ssp585} - - {dataset: NESM3, grid: gn, exp: ssp585} - - {dataset: TaiESM1, grid: gn, exp: ssp585} - - {dataset: UKESM1-0-LL, ensemble: r1i1p1f2, grid: gn, exp: ssp585} - - - {dataset: CSIRO-Mk3-6-0, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: HadGEM2-ES, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: IPSL-CM5A-LR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: IPSL-CM5A-MR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MIROC-ESM, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - -DATASETS_ECS_MED: &datasets_ecs_med - # - {dataset: ACCESS-ESM1-5, grid: gn, institute: CSIRO} # no clwvi - # - {dataset: AWI-CM-1-1-MR, grid: gn} # no cl, cli, clw - - {dataset: BCC-CSM2-MR, grid: gn} - # - {dataset: BCC-ESM1, grid: gn} # no scenario data - # - {dataset: CAS-ESM2-0, grid: gn} # download failed - # - {dataset: CNRM-CM6-1-HR, ensemble: r1i1p1f2} # no cl, cli, clw scenario data - - {dataset: CMCC-CM2-SR5, grid: gn} - - {dataset: CMCC-ESM2, grid: gn} - # - {dataset: EC-Earth3-Veg} # no cl, cli, clw - - {dataset: FGOALS-f3-L} - - {dataset: FGOALS-g3, grid: gn} - - {dataset: GISS-E2-1-H, grid: gn} - # - {dataset: KIOST-ESM, grid: gr1} # no cl - # - {dataset: MCM-UA-1-0, grid: gn} # no clt - - {dataset: MPI-ESM1-2-HR, grid: gn} - - {dataset: MPI-ESM1-2-LR, grid: gn} - - {dataset: MRI-ESM2-0, grid: gn} - # - {dataset: SAM0-UNICON, grid: gn} # no scenario data - - - {dataset: ACCESS1-0, ensemble: r1i1p1, project: CMIP5} - - {dataset: ACCESS1-3, ensemble: r1i1p1, project: CMIP5} - - {dataset: BNU-ESM, ensemble: r1i1p1, project: CMIP5} - - {dataset: CanESM2, ensemble: r1i1p1, project: CMIP5} - - {dataset: CCSM4, ensemble: r1i1p1, project: CMIP5} - # - {dataset: CNRM-CM5-2, ensemble: r1i1p1, project: CMIP5} # no scenario data - # - {dataset: CNRM-CM5, ensemble: r1i1p1, project: CMIP5} # no cl, cli, clw - - {dataset: FGOALS-g2, ensemble: r1i1p1, project: CMIP5} - - {dataset: GFDL-CM3, ensemble: r1i1p1, project: CMIP5} - - {dataset: MPI-ESM-LR, ensemble: r1i1p1, project: CMIP5} - - {dataset: MPI-ESM-MR, ensemble: r1i1p1, project: CMIP5} - # - {dataset: MPI-ESM-P, ensemble: r1i1p1, project: CMIP5} # no scenario data - - -DATASETS_ECS_MED_scenario: &datasets_ecs_med_scenario - # - {dataset: ACCESS-ESM1-5, grid: gn, institute: CSIRO, exp: ssp585} # no clwvi - # - {dataset: AWI-CM-1-1-MR, grid: gn, exp: ssp585} # no cl, cli, clw - - {dataset: BCC-CSM2-MR, grid: gn, exp: ssp585} - # - {dataset: BCC-ESM1, grid: gn, exp: ssp585} # no scenario data - # - {dataset: CAS-ESM2-0, grid: gn, exp: ssp585} # download failed - # - {dataset: CNRM-CM6-1-HR, ensemble: r1i1p1f2, exp: ssp585} # no cl, cli, clw scenario data - - {dataset: CMCC-CM2-SR5, grid: gn, exp: ssp585} - - {dataset: CMCC-ESM2, grid: gn, exp: ssp585} - # - {dataset: EC-Earth3-Veg, exp: ssp585} # no cl, cli, clw - - {dataset: FGOALS-f3-L, exp: ssp585} - - {dataset: FGOALS-g3, grid: gn, exp: ssp585} - - {dataset: GISS-E2-1-H, grid: gn, ensemble: r1i1p1f2, exp: ssp585} - # - {dataset: KIOST-ESM, grid: gr1, exp: ssp585} # no cl - # - {dataset: MCM-UA-1-0, grid: gn, exp: ssp585} # no scenario data - - {dataset: MPI-ESM1-2-HR, grid: gn, exp: ssp585} - - {dataset: MPI-ESM1-2-LR, grid: gn, exp: ssp585} - - {dataset: MRI-ESM2-0, grid: gn, exp: ssp585} - # - {dataset: SAM0-UNICON, grid: gn, exp: ssp585} # no scenario data - - - {dataset: ACCESS1-0, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: ACCESS1-3, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: BNU-ESM, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: CanESM2, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: CCSM4, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - # - {dataset: CNRM-CM5-2, ensemble: r1i1p1, project: CMIP5, exp: rcp85} # no scenario data - # - {dataset: CNRM-CM5, ensemble: r1i1p1, project: CMIP5, exp: rcp85} # no cl, cli, clw - - {dataset: FGOALS-g2, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GFDL-CM3, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MPI-ESM-LR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MPI-ESM-MR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - # - {dataset: MPI-ESM-P, ensemble: r1i1p1, project: CMIP5, exp: rcp85} # no scenario data - - -DATASETS_ECS_LOW: &datasets_ecs_low - - {dataset: CAMS-CSM1-0, grid: gn} - - {dataset: GISS-E2-1-G, grid: gn} - # - {dataset: IITM-ESM, grid: gn} # no cli, clw - # - {dataset: INM-CM4-8, grid: gr1} # no cl, cli, clw - # - {dataset: INM-CM5-0, grid: gr1} # no cl, cli, clw - - {dataset: MIROC6, grid: gn} - - {dataset: MIROC-ES2L, ensemble: r1i1p1f2, grid: gn} - # - {dataset: MPI-ESM-1-2-HAM, grid: gn} # no scenario data - # - {dataset: NorCPM1, grid: gn} # no clwvi, clivi - - {dataset: NorESM2-LM, grid: gn, institute: NCC} - - {dataset: NorESM2-MM, grid: gn, institute: NCC} - - - {dataset: bcc-csm1-1, ensemble: r1i1p1, project: CMIP5} - - {dataset: bcc-csm1-1-m, ensemble: r1i1p1, project: CMIP5} - - {dataset: GFDL-ESM2G, ensemble: r1i1p1, project: CMIP5} - - {dataset: GFDL-ESM2M, ensemble: r1i1p1, project: CMIP5} - - {dataset: GISS-E2-H, ensemble: r1i1p1, project: CMIP5} - - {dataset: GISS-E2-R, ensemble: r1i1p1, project: CMIP5} - - {dataset: inmcm4, ensemble: r1i1p1, project: CMIP5} - - {dataset: IPSL-CM5B-LR, ensemble: r1i1p1, project: CMIP5} - - {dataset: MIROC5, ensemble: r1i1p1, project: CMIP5} - - {dataset: MRI-CGCM3, ensemble: r1i1p1, project: CMIP5} - - {dataset: NorESM1-M, ensemble: r1i1p1, project: CMIP5} - - -DATASETS_ECS_LOW_scenario: &datasets_ecs_low_scenario - - {dataset: CAMS-CSM1-0, grid: gn, exp: ssp585, end_year: 2099} - - {dataset: GISS-E2-1-G, grid: gn, ensemble: r1i1p1f2, exp: ssp585} - # - {dataset: IITM-ESM, grid: gn, exp: ssp585, end_year: 2099} # no cli, clw - # - {dataset: INM-CM4-8, grid: gr1, exp: ssp585} # no cl, cli, clw - # - {dataset: INM-CM5-0, grid: gr1, exp: ssp585} # no cl, cli, clw - - {dataset: MIROC6, grid: gn, exp: ssp585} - - {dataset: MIROC-ES2L, ensemble: r1i1p1f2, grid: gn, exp: ssp585} - # - {dataset: MPI-ESM-1-2-HAM, grid: gn, exp: ssp585} #no scenario data - # - {dataset: NorCPM1, grid: gn, exp: ssp585} # no scenario data - - {dataset: NorESM2-LM, grid: gn, institute: NCC, exp: ssp585} - - {dataset: NorESM2-MM, grid: gn, institute: NCC, exp: ssp585} - - - {dataset: bcc-csm1-1, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: bcc-csm1-1-m, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GFDL-ESM2G, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GFDL-ESM2M, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GISS-E2-H, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GISS-E2-R, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: inmcm4, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: IPSL-CM5B-LR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MIROC5, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MRI-CGCM3, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: NorESM1-M, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - -preprocessors: - - height: - extract_levels: - levels: {cmor_table: CMIP6, coordinate: plev27} - coordinate: air_pressure - scheme: linear - regrid: - target_grid: 2x2 - scheme: linear - zonal_statistics: - operator: mean - climate_statistics: - operator: mean - - -diagnostics: - - zonal_height: &height_diag - description: mean zonal height plot - variables: - cl_ECS_high_hist: &var_cl - short_name: cl - preprocessor: height - mip: Amon - project: CMIP6 - exp: historical - ensemble: r1i1p1f1 - grid: gr - <<: *years - additional_datasets: *datasets_ecs_high - cl_ECS_med_hist: - <<: *var_cl - additional_datasets: *datasets_ecs_med - cl_ECS_low_hist: - <<: *var_cl - additional_datasets: *datasets_ecs_low - cl_ECS_high_scen: - <<: *var_cl - <<: *years_ssp585 - exp: ssp585 - additional_datasets: *datasets_ecs_high_scenario - cl_ECS_med_scen: - <<: *var_cl - <<: *years_ssp585 - additional_datasets: *datasets_ecs_med_scenario - cl_ECS_low_scen: - <<: *var_cl - <<: *years_ssp585 - additional_datasets: *datasets_ecs_low_scenario - cli_ECS_high_hist: - <<: *var_cl - short_name: cli - additional_datasets: *datasets_ecs_high - cli_ECS_med_hist: - <<: *var_cl - short_name: cli - additional_datasets: *datasets_ecs_med - cli_ECS_low_hist: - <<: *var_cl - short_name: cli - additional_datasets: *datasets_ecs_low - cli_ECS_high_scen: - <<: *var_cl - <<: *years_ssp585 - short_name: cli - exp: ssp585 - additional_datasets: *datasets_ecs_high_scenario - cli_ECS_med_scen: - <<: *var_cl - <<: *years_ssp585 - short_name: cli - additional_datasets: *datasets_ecs_med_scenario - cli_ECS_low_scen: - <<: *var_cl - <<: *years_ssp585 - short_name: cli - additional_datasets: *datasets_ecs_low_scenario - clw_ECS_high_hist: - <<: *var_cl - short_name: clw - additional_datasets: *datasets_ecs_high - clw_ECS_med_hist: - <<: *var_cl - short_name: clw - additional_datasets: *datasets_ecs_med - clw_ECS_low_hist: - <<: *var_cl - short_name: clw - additional_datasets: *datasets_ecs_low - clw_ECS_high_scen: - <<: *var_cl - <<: *years_ssp585 - short_name: clw - exp: ssp585 - additional_datasets: *datasets_ecs_high_scenario - clw_ECS_med_scen: - <<: *var_cl - <<: *years_ssp585 - short_name: clw - additional_datasets: *datasets_ecs_med_scenario - clw_ECS_low_scen: - <<: *var_cl - <<: *years_ssp585 - short_name: clw - additional_datasets: *datasets_ecs_low_scenario - ta_ECS_high_hist: &var_ta - <<: *var_cl - short_name: ta - ta_ECS_med_hist: - <<: *var_ta - additional_datasets: *datasets_ecs_med - ta_ECS_low_hist: - <<: *var_ta - additional_datasets: *datasets_ecs_low - ta_ECS_high_scen: - <<: *var_ta - <<: *years_ssp585 - exp: ssp585 - additional_datasets: *datasets_ecs_high_scenario - ta_ECS_med_scen: - <<: *var_ta - <<: *years_ssp585 - exp: ssp585 - additional_datasets: *datasets_ecs_med_scenario - ta_ECS_low_scen: - <<: *var_ta - <<: *years_ssp585 - exp: ssp585 - additional_datasets: *datasets_ecs_low_scenario - scripts: - height: - script: clouds_ecs/group_lev_diff.py - plot_type: height - group_by: [['ECS_low_hist', 'ECS_low_scen'], - ['ECS_med_hist', 'ECS_med_scen'], - ['ECS_high_hist', 'ECS_high_scen']] - filename_attach: ssp585 - #plot_each_model: true diff --git a/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_icefrac.yml b/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_icefrac.yml deleted file mode 100644 index aa3639c260..0000000000 --- a/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_icefrac.yml +++ /dev/null @@ -1,381 +0,0 @@ -# ESMValTool -# recipe_icon_eval.yml ---- -documentation: - title: Evaluation of clouds considering ECS - - description: Evaluate clouds in high ECS models. - - authors: - - bock_lisa - - references: - - acknow_project - - -YEARS: &years - start_year: 1985 - end_year: 2004 - -YEARS_scen: &years_scen - start_year: 2081 - end_year: 2100 - - -DATASETS_ECS_HIGH: &datasets_ecs_high - # - {dataset: ACCESS-CM2, grid: gn, institute: CSIRO-ARCCSS} # no clwvi - - {dataset: CanESM5, grid: gn} - - {dataset: CESM2, grid: gn, ensemble: r4i1p1f1} - #- {dataset: CESM2-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - - {dataset: CESM2-WACCM, grid: gn, institute: NCAR} - # - {dataset: CESM2-WACCM-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - # - {dataset: CIESM} # no rsutcs scenario data - - {dataset: CNRM-CM6-1, ensemble: r1i1p1f2} - - {dataset: CNRM-ESM2-1, ensemble: r1i1p1f2} - # - {dataset: EC-Earth3-CC} # no cl, cli, clw - # - {dataset: FIO-ESM-2-0, grid: gn} # no rsutcs - - {dataset: HadGEM3-GC31-LL, grid: gn, ensemble: r1i1p1f3} - - {dataset: HadGEM3-GC31-MM, grid: gn, ensemble: r1i1p1f3} - - {dataset: IPSL-CM6A-LR} - - {dataset: KACE-1-0-G} - - {dataset: NESM3, grid: gn} - - {dataset: TaiESM1, grid: gn} - - {dataset: UKESM1-0-LL, ensemble: r1i1p1f2, grid: gn} - - - {dataset: CSIRO-Mk3-6-0, ensemble: r1i1p1, project: CMIP5} - - {dataset: HadGEM2-ES, ensemble: r1i1p1, project: CMIP5} - - {dataset: IPSL-CM5A-LR, ensemble: r1i1p1, project: CMIP5} - - {dataset: IPSL-CM5A-MR, ensemble: r1i1p1, project: CMIP5} - - {dataset: MIROC-ESM, ensemble: r1i1p1, project: CMIP5} - -DATASETS_ECS_HIGH: &datasets_ecs_high_scenario - # - {dataset: ACCESS-CM2, grid: gn, institute: CSIRO-ARCCSS} # no clwvi - - {dataset: CanESM5, grid: gn, exp: ssp585} - - {dataset: CESM2, grid: gn, ensemble: r4i1p1f1, exp: ssp585} - #- {dataset: CESM2-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - - {dataset: CESM2-WACCM, grid: gn, institute: NCAR, exp: ssp585} - # - {dataset: CESM2-WACCM-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - # - {dataset: CIESM, exp: ssp585} # no rsutcs scenario data - - {dataset: CNRM-CM6-1, ensemble: r1i1p1f2, exp: ssp585} - - {dataset: CNRM-ESM2-1, ensemble: r1i1p1f2, exp: ssp585} - # - {dataset: EC-Earth3-CC, exp: ssp585} # no cl, cli, clw - # - {dataset: FIO-ESM-2-0, grid: gn, exp: ssp585} # no rsutcs - - {dataset: HadGEM3-GC31-LL, grid: gn, ensemble: r1i1p1f3, exp: ssp585} - - {dataset: HadGEM3-GC31-MM, grid: gn, ensemble: r1i1p1f3, exp: ssp585} # no clwvi, clivi - - {dataset: IPSL-CM6A-LR, exp: ssp585} - - {dataset: KACE-1-0-G, exp: ssp585} - - {dataset: NESM3, grid: gn, exp: ssp585} - - {dataset: TaiESM1, grid: gn, exp: ssp585} - - {dataset: UKESM1-0-LL, ensemble: r1i1p1f2, grid: gn, exp: ssp585} - - - {dataset: CSIRO-Mk3-6-0, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: HadGEM2-ES, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: IPSL-CM5A-LR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: IPSL-CM5A-MR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MIROC-ESM, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - -DATASETS_ECS_MED: &datasets_ecs_med - # - {dataset: ACCESS-ESM1-5, grid: gn, institute: CSIRO} # no clwvi - # - {dataset: AWI-CM-1-1-MR, grid: gn} # no cl, cli, clw - - {dataset: BCC-CSM2-MR, grid: gn} - # - {dataset: BCC-ESM1, grid: gn} # no scenario data - # - {dataset: CAS-ESM2-0, grid: gn} # download failed - # - {dataset: CNRM-CM6-1-HR, ensemble: r1i1p1f2} # no cl, cli, clw scenario data - - {dataset: CMCC-CM2-SR5, grid: gn} - - {dataset: CMCC-ESM2, grid: gn} - # - {dataset: EC-Earth3-Veg} # no cl, cli, clw - - {dataset: FGOALS-f3-L} - - {dataset: FGOALS-g3, grid: gn} - - {dataset: GISS-E2-1-H, grid: gn} - # - {dataset: KIOST-ESM, grid: gr1} # no cl - # - {dataset: MCM-UA-1-0, grid: gn} # no clt - - {dataset: MPI-ESM1-2-HR, grid: gn} - - {dataset: MPI-ESM1-2-LR, grid: gn} - - {dataset: MRI-ESM2-0, grid: gn} - # - {dataset: SAM0-UNICON, grid: gn} # no scenario data - - - {dataset: ACCESS1-0, ensemble: r1i1p1, project: CMIP5} - - {dataset: ACCESS1-3, ensemble: r1i1p1, project: CMIP5} - - {dataset: BNU-ESM, ensemble: r1i1p1, project: CMIP5} - - {dataset: CanESM2, ensemble: r1i1p1, project: CMIP5} - - {dataset: CCSM4, ensemble: r1i1p1, project: CMIP5} - # - {dataset: CNRM-CM5-2, ensemble: r1i1p1, project: CMIP5} # no scenario data - # - {dataset: CNRM-CM5, ensemble: r1i1p1, project: CMIP5} # no cl, cli, clw - - {dataset: FGOALS-g2, ensemble: r1i1p1, project: CMIP5} - - {dataset: GFDL-CM3, ensemble: r1i1p1, project: CMIP5} - - {dataset: MPI-ESM-LR, ensemble: r1i1p1, project: CMIP5} - - {dataset: MPI-ESM-MR, ensemble: r1i1p1, project: CMIP5} - # - {dataset: MPI-ESM-P, ensemble: r1i1p1, project: CMIP5} # no scenario data - - -DATASETS_ECS_MED_scenario: &datasets_ecs_med_scenario - # - {dataset: ACCESS-ESM1-5, grid: gn, institute: CSIRO, exp: ssp585} # no clwvi - # - {dataset: AWI-CM-1-1-MR, grid: gn, exp: ssp585} # no cl, cli, clw - - {dataset: BCC-CSM2-MR, grid: gn, exp: ssp585} - # - {dataset: BCC-ESM1, grid: gn, exp: ssp585} # no scenario data - # - {dataset: CAS-ESM2-0, grid: gn, exp: ssp585} # download failed - # - {dataset: CNRM-CM6-1-HR, ensemble: r1i1p1f2, exp: ssp585} # no cl, cli, clw scenario data - - {dataset: CMCC-CM2-SR5, grid: gn, exp: ssp585} - - {dataset: CMCC-ESM2, grid: gn, exp: ssp585} - # - {dataset: EC-Earth3-Veg, exp: ssp585} # no cl, cli, clw - - {dataset: FGOALS-f3-L, exp: ssp585} - - {dataset: FGOALS-g3, grid: gn, exp: ssp585} - - {dataset: GISS-E2-1-H, grid: gn, ensemble: r1i1p1f2, exp: ssp585} - # - {dataset: KIOST-ESM, grid: gr1, exp: ssp585} # no cl - # - {dataset: MCM-UA-1-0, grid: gn, exp: ssp585} # no scenario data - - {dataset: MPI-ESM1-2-HR, grid: gn, exp: ssp585} - - {dataset: MPI-ESM1-2-LR, grid: gn, exp: ssp585} - - {dataset: MRI-ESM2-0, grid: gn, exp: ssp585} - # - {dataset: SAM0-UNICON, grid: gn, exp: ssp585} # no scenario data - - - {dataset: ACCESS1-0, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: ACCESS1-3, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: BNU-ESM, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: CanESM2, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: CCSM4, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - # - {dataset: CNRM-CM5-2, ensemble: r1i1p1, project: CMIP5, exp: rcp85} # no scenario data - # - {dataset: CNRM-CM5, ensemble: r1i1p1, project: CMIP5, exp: rcp85} # no cl, cli, clw - - {dataset: FGOALS-g2, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GFDL-CM3, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MPI-ESM-LR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MPI-ESM-MR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - # - {dataset: MPI-ESM-P, ensemble: r1i1p1, project: CMIP5, exp: rcp85} # no scenario data - - -DATASETS_ECS_LOW: &datasets_ecs_low - - {dataset: CAMS-CSM1-0, grid: gn} - - {dataset: GISS-E2-1-G, grid: gn} - # - {dataset: IITM-ESM, grid: gn} # no cli, clw - # - {dataset: INM-CM4-8, grid: gr1} # no cl, cli, clw - # - {dataset: INM-CM5-0, grid: gr1} # no cl, cli, clw - - {dataset: MIROC6, grid: gn} - - {dataset: MIROC-ES2L, ensemble: r1i1p1f2, grid: gn} - # - {dataset: MPI-ESM-1-2-HAM, grid: gn} # no scenario data - # - {dataset: NorCPM1, grid: gn} # no clwvi, clivi - - {dataset: NorESM2-LM, grid: gn, institute: NCC} - - {dataset: NorESM2-MM, grid: gn, institute: NCC} - - - {dataset: bcc-csm1-1, ensemble: r1i1p1, project: CMIP5} - - {dataset: bcc-csm1-1-m, ensemble: r1i1p1, project: CMIP5} - - {dataset: GFDL-ESM2G, ensemble: r1i1p1, project: CMIP5} - - {dataset: GFDL-ESM2M, ensemble: r1i1p1, project: CMIP5} - - {dataset: GISS-E2-H, ensemble: r1i1p1, project: CMIP5} - - {dataset: GISS-E2-R, ensemble: r1i1p1, project: CMIP5} - - {dataset: inmcm4, ensemble: r1i1p1, project: CMIP5} - - {dataset: IPSL-CM5B-LR, ensemble: r1i1p1, project: CMIP5} - - {dataset: MIROC5, ensemble: r1i1p1, project: CMIP5} - - {dataset: MRI-CGCM3, ensemble: r1i1p1, project: CMIP5} - - {dataset: NorESM1-M, ensemble: r1i1p1, project: CMIP5} - - -DATASETS_ECS_LOW_scenario: &datasets_ecs_low_scenario - - {dataset: CAMS-CSM1-0, grid: gn, exp: ssp585, end_year: 2099} - - {dataset: GISS-E2-1-G, grid: gn, ensemble: r1i1p1f2, exp: ssp585} - # - {dataset: IITM-ESM, grid: gn, exp: ssp585, end_year: 2099} # no cli, clw - # - {dataset: INM-CM4-8, grid: gr1, exp: ssp585} # no cl, cli, clw - # - {dataset: INM-CM5-0, grid: gr1, exp: ssp585} # no cl, cli, clw - - {dataset: MIROC6, grid: gn, exp: ssp585} - - {dataset: MIROC-ES2L, ensemble: r1i1p1f2, grid: gn, exp: ssp585} - # - {dataset: MPI-ESM-1-2-HAM, grid: gn, exp: ssp585} #no scenario data - # - {dataset: NorCPM1, grid: gn, exp: ssp585} # no scenario data - - {dataset: NorESM2-LM, grid: gn, institute: NCC, exp: ssp585} - - {dataset: NorESM2-MM, grid: gn, institute: NCC, exp: ssp585} - - - {dataset: bcc-csm1-1, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: bcc-csm1-1-m, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GFDL-ESM2G, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GFDL-ESM2M, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GISS-E2-H, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GISS-E2-R, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: inmcm4, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: IPSL-CM5B-LR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MIROC5, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MRI-CGCM3, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: NorESM1-M, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - -preprocessors: - - height_mmm: - custom_order: true - extract_levels: - levels: {cmor_table: CMIP6, coordinate: plev27} - coordinate: air_pressure - scheme: linear - regrid: - target_grid: 2x2 - scheme: linear - multi_model_statistics: - span: full - statistics: [mean] - #statistics: [mean, p5, p95] - climate_statistics: - operator: mean - - height: - extract_levels: - levels: {cmor_table: CMIP6, coordinate: plev27} - coordinate: air_pressure - scheme: linear - regrid: - target_grid: 2x2 - scheme: linear - climate_statistics: - operator: mean - - -diagnostics: - - ice_frac_ECS_high_hist: &ice_frac_calc - description: calculation of ice fraction - variables: - ta: &var_ta - preprocessor: height_mmm - mip: Amon - project: CMIP6 - exp: historical - ensemble: r1i1p1f1 - grid: gr - <<: *years - cli: - <<: *var_ta - clw: - <<: *var_ta - additional_datasets: *datasets_ecs_high - scripts: - calc_icefrac: - script: clouds_ecs/calculate_ice_fraction.py - - ice_frac_ECS_med_hist: - <<: *ice_frac_calc - additional_datasets: *datasets_ecs_med - - ice_frac_ECS_low_hist: - <<: *ice_frac_calc - additional_datasets: *datasets_ecs_low - - ice_frac_ECS_high_scen: &ice_frac_calc_scen - <<: *ice_frac_calc - variables: - ta: &var_ta_scen - preprocessor: height_mmm - mip: Amon - project: CMIP6 - exp: ssp585 - ensemble: r1i1p1f1 - grid: gr - <<: *years_scen - cli: - <<: *var_ta_scen - clw: - <<: *var_ta_scen - additional_datasets: *datasets_ecs_high_scenario - - ice_frac_ECS_med_scen: - <<: *ice_frac_calc_scen - additional_datasets: *datasets_ecs_med_scenario - - ice_frac_ECS_low_scen: - <<: *ice_frac_calc_scen - additional_datasets: *datasets_ecs_low_scenario - - - ice_frac_all: - description: plot all ice fractions - scripts: - ice_frac_plot: - script: clouds_ecs/plot_ice_fraction.py - ancestors: ['ice_frac_ECS*/calc_icefrac'] - #groups: ['ECS_low_hist', 'ECS_med_hist', 'ECS_high_hist'] - groups: ['ECS_low_hist', 'ECS_low_scen', - 'ECS_med_hist', 'ECS_med_scen', - 'ECS_high_hist', 'ECS_high_scen'] - - - -# ice_frac: &ice_frac_diag -# description: ice fraction -# variables: -# ECS_high_hist_tas: &var_ta -# short_name: ta -# preprocessor: height_mmm -# mip: Amon -# project: CMIP6 -# exp: historical -# ensemble: r1i1p1f1 -# grid: gr -# <<: *years -# additional_datasets: *datasets_ecs_high -# ECS_med_hist_ta: -# <<: *var_ta -# additional_datasets: *datasets_ecs_med -# ECS_low_hist_ta: -# <<: *var_ta -# additional_datasets: *datasets_ecs_low -# ECS_high_scen_ta: -# <<: *var_ta -# <<: *years_ssp585 -# exp: ssp585 -# additional_datasets: *datasets_ecs_high -# ECS_med_scen_ta: -# <<: *var_ta -# <<: *years_ssp585 -# additional_datasets: *datasets_ecs_med_scenario -# ECS_low_scen_ta: -# <<: *var_ta -# <<: *years_ssp585 -# additional_datasets: *datasets_ecs_low_scenario -# -# ECS_high_hist_cli: &var_cli -# <<: *var_ta -# short_name: cli -# ECS_med_hist_cli: -# <<: *var_cli -# additional_datasets: *datasets_ecs_med -# ECS_low_hist_cli: -# <<: *var_cli -# additional_datasets: *datasets_ecs_low -# ECS_high_scen_cli: -# <<: *var_cli -# <<: *years_ssp585 -# exp: ssp585 -# additional_datasets: *datasets_ecs_high -# ECS_med_scen_cli: -# <<: *var_cli -# <<: *years_ssp585 -# additional_datasets: *datasets_ecs_med_scenario -# ECS_low_scen_cli: -# <<: *var_cli -# <<: *years_ssp585 -# additional_datasets: *datasets_ecs_low_scenario -# -# ECS_high_hist_clw: &var_clw -# <<: *var_ta -# short_name: clw -# ECS_med_hist_clw: -# <<: *var_clw -# additional_datasets: *datasets_ecs_med -# ECS_low_hist_clw: -# <<: *var_clw -# additional_datasets: *datasets_ecs_low -# ECS_high_scen_clw: -# <<: *var_clw -# <<: *years_ssp585 -# exp: ssp585 -# additional_datasets: *datasets_ecs_high -# ECS_med_scen_clw: -# <<: *var_clw -# <<: *years_ssp585 -# additional_datasets: *datasets_ecs_med_scenario -# ECS_low_scen_clw: -# <<: *var_clw -# <<: *years_ssp585 -# additional_datasets: *datasets_ecs_low_scenario -# -# scripts: -# fraction: -# script: clouds_ecs/group_ice_fraction.py -# group_by: [['ECS_low_hist', 'ECS_low_scen'], -# ['ECS_med_hist', 'ECS_med_scen'], -# ['ECS_high_hist', 'ECS_high_scen']] -# diff --git a/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_zonal_sea.yml b/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_zonal_sea.yml deleted file mode 100644 index d0cfcacdff..0000000000 --- a/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_eval_zonal_sea.yml +++ /dev/null @@ -1,635 +0,0 @@ -# ESMValTool -# recipe_icon_eval.yml ---- -documentation: - - title: Evaluation of clouds considering ECS - - description: Evaluate clouds in high ECS models. - - authors: - - bock_lisa - - references: - - acknow_project - - -YEARS_hist: &years_hist - start_year: 1985 - end_year: 2004 - -YEARS_scen: &years_scen - start_year: 2081 - end_year: 2100 - - -DATASETS_ECS_HIGH: &datasets_ecs_high - # - {dataset: ACCESS-CM2, grid: gn, institute: CSIRO-ARCCSS} # no clwvi - - {dataset: CanESM5, grid: gn} - - {dataset: CESM2, grid: gn, ensemble: r4i1p1f1} - #- {dataset: CESM2-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - - {dataset: CESM2-WACCM, grid: gn, institute: NCAR} - # - {dataset: CESM2-WACCM-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - # - {dataset: CIESM} # no rsutcs scenario data - - {dataset: CNRM-CM6-1, ensemble: r1i1p1f2} - - {dataset: CNRM-ESM2-1, ensemble: r1i1p1f2} - # - {dataset: EC-Earth3-CC} # no cl, cli, clw - # - {dataset: FIO-ESM-2-0, grid: gn} # no rsutcs - - {dataset: HadGEM3-GC31-LL, grid: gn, ensemble: r1i1p1f3} - - {dataset: HadGEM3-GC31-MM, grid: gn, ensemble: r1i1p1f3} - - {dataset: IPSL-CM6A-LR} - - {dataset: KACE-1-0-G} - - {dataset: NESM3, grid: gn} - - {dataset: TaiESM1, grid: gn} - - {dataset: UKESM1-0-LL, ensemble: r1i1p1f2, grid: gn} - - - {dataset: CSIRO-Mk3-6-0, ensemble: r1i1p1, project: CMIP5} - - {dataset: HadGEM2-ES, ensemble: r1i1p1, project: CMIP5} - - {dataset: IPSL-CM5A-LR, ensemble: r1i1p1, project: CMIP5} - - {dataset: IPSL-CM5A-MR, ensemble: r1i1p1, project: CMIP5} - - {dataset: MIROC-ESM, ensemble: r1i1p1, project: CMIP5} - -DATASETS_ECS_HIGH: &datasets_ecs_high_scenario - # - {dataset: ACCESS-CM2, grid: gn, institute: CSIRO-ARCCSS} # no clwvi - - {dataset: CanESM5, grid: gn, exp: ssp585} - - {dataset: CESM2, grid: gn, ensemble: r4i1p1f1, exp: ssp585} - #- {dataset: CESM2-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - - {dataset: CESM2-WACCM, grid: gn, institute: NCAR, exp: ssp585} - # - {dataset: CESM2-WACCM-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - # - {dataset: CIESM, exp: ssp585} # no rsutcs scenario data - - {dataset: CNRM-CM6-1, ensemble: r1i1p1f2, exp: ssp585} - - {dataset: CNRM-ESM2-1, ensemble: r1i1p1f2, exp: ssp585} - # - {dataset: EC-Earth3-CC, exp: ssp585} # no cl, cli, clw - # - {dataset: FIO-ESM-2-0, grid: gn, exp: ssp585} # no rsutcs - - {dataset: HadGEM3-GC31-LL, grid: gn, ensemble: r1i1p1f3, exp: ssp585} - - {dataset: HadGEM3-GC31-MM, grid: gn, ensemble: r1i1p1f3, exp: ssp585} # no clwvi, clivi - - {dataset: IPSL-CM6A-LR, exp: ssp585} - - {dataset: KACE-1-0-G, exp: ssp585} - - {dataset: NESM3, grid: gn, exp: ssp585} - - {dataset: TaiESM1, grid: gn, exp: ssp585} - - {dataset: UKESM1-0-LL, ensemble: r1i1p1f2, grid: gn, exp: ssp585} - - - {dataset: CSIRO-Mk3-6-0, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: HadGEM2-ES, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: IPSL-CM5A-LR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: IPSL-CM5A-MR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MIROC-ESM, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - -DATASETS_ECS_MED: &datasets_ecs_med - # - {dataset: ACCESS-ESM1-5, grid: gn, institute: CSIRO} # no clwvi - # - {dataset: AWI-CM-1-1-MR, grid: gn} # no cl, cli, clw - - {dataset: BCC-CSM2-MR, grid: gn} - # - {dataset: BCC-ESM1, grid: gn} # no scenario data - # - {dataset: CAS-ESM2-0, grid: gn} # download failed - # - {dataset: CNRM-CM6-1-HR, ensemble: r1i1p1f2} # no cl, cli, clw scenario data - - {dataset: CMCC-CM2-SR5, grid: gn} - - {dataset: CMCC-ESM2, grid: gn} - # - {dataset: EC-Earth3-Veg} # no cl, cli, clw - - {dataset: FGOALS-f3-L} - - {dataset: FGOALS-g3, grid: gn} - - {dataset: GISS-E2-1-H, grid: gn} - # - {dataset: KIOST-ESM, grid: gr1} # no cl - # - {dataset: MCM-UA-1-0, grid: gn} # no clt - - {dataset: MPI-ESM1-2-HR, grid: gn} - - {dataset: MPI-ESM1-2-LR, grid: gn} - - {dataset: MRI-ESM2-0, grid: gn} - # - {dataset: SAM0-UNICON, grid: gn} # no scenario data - - - {dataset: ACCESS1-0, ensemble: r1i1p1, project: CMIP5} - - {dataset: ACCESS1-3, ensemble: r1i1p1, project: CMIP5} - - {dataset: BNU-ESM, ensemble: r1i1p1, project: CMIP5} - - {dataset: CanESM2, ensemble: r1i1p1, project: CMIP5} - - {dataset: CCSM4, ensemble: r1i1p1, project: CMIP5} - # - {dataset: CNRM-CM5-2, ensemble: r1i1p1, project: CMIP5} # no scenario data - # - {dataset: CNRM-CM5, ensemble: r1i1p1, project: CMIP5} # no cl, cli, clw - - {dataset: FGOALS-g2, ensemble: r1i1p1, project: CMIP5} - - {dataset: GFDL-CM3, ensemble: r1i1p1, project: CMIP5} - - {dataset: MPI-ESM-LR, ensemble: r1i1p1, project: CMIP5} - - {dataset: MPI-ESM-MR, ensemble: r1i1p1, project: CMIP5} - # - {dataset: MPI-ESM-P, ensemble: r1i1p1, project: CMIP5} # no scenario data - - -DATASETS_ECS_MED_scenario: &datasets_ecs_med_scenario - # - {dataset: ACCESS-ESM1-5, grid: gn, institute: CSIRO, exp: ssp585} # no clwvi - # - {dataset: AWI-CM-1-1-MR, grid: gn, exp: ssp585} # no cl, cli, clw - - {dataset: BCC-CSM2-MR, grid: gn, exp: ssp585} - # - {dataset: BCC-ESM1, grid: gn, exp: ssp585} # no scenario data - # - {dataset: CAS-ESM2-0, grid: gn, exp: ssp585} # download failed - # - {dataset: CNRM-CM6-1-HR, ensemble: r1i1p1f2, exp: ssp585} # no cl, cli, clw scenario data - - {dataset: CMCC-CM2-SR5, grid: gn, exp: ssp585} - - {dataset: CMCC-ESM2, grid: gn, exp: ssp585} - # - {dataset: EC-Earth3-Veg, exp: ssp585} # no cl, cli, clw - - {dataset: FGOALS-f3-L, exp: ssp585} - - {dataset: FGOALS-g3, grid: gn, exp: ssp585} - - {dataset: GISS-E2-1-H, grid: gn, ensemble: r1i1p1f2, exp: ssp585} - # - {dataset: KIOST-ESM, grid: gr1, exp: ssp585} # no cl - # - {dataset: MCM-UA-1-0, grid: gn, exp: ssp585} # no scenario data - - {dataset: MPI-ESM1-2-HR, grid: gn, exp: ssp585} - - {dataset: MPI-ESM1-2-LR, grid: gn, exp: ssp585} - - {dataset: MRI-ESM2-0, grid: gn, exp: ssp585} - # - {dataset: SAM0-UNICON, grid: gn, exp: ssp585} # no scenario data - - - {dataset: ACCESS1-0, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: ACCESS1-3, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: BNU-ESM, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: CanESM2, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: CCSM4, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - # - {dataset: CNRM-CM5-2, ensemble: r1i1p1, project: CMIP5, exp: rcp85} # no scenario data - # - {dataset: CNRM-CM5, ensemble: r1i1p1, project: CMIP5, exp: rcp85} # no cl, cli, clw - - {dataset: FGOALS-g2, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GFDL-CM3, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MPI-ESM-LR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MPI-ESM-MR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - # - {dataset: MPI-ESM-P, ensemble: r1i1p1, project: CMIP5, exp: rcp85} # no scenario data - - -DATASETS_ECS_LOW: &datasets_ecs_low - - {dataset: CAMS-CSM1-0, grid: gn} - - {dataset: GISS-E2-1-G, grid: gn} - # - {dataset: IITM-ESM, grid: gn} # no cli, clw - # - {dataset: INM-CM4-8, grid: gr1} # no cl, cli, clw - # - {dataset: INM-CM5-0, grid: gr1} # no cl, cli, clw - - {dataset: MIROC6, grid: gn} - - {dataset: MIROC-ES2L, ensemble: r1i1p1f2, grid: gn} - # - {dataset: MPI-ESM-1-2-HAM, grid: gn} # no scenario data - # - {dataset: NorCPM1, grid: gn} # no clwvi, clivi - - {dataset: NorESM2-LM, grid: gn, institute: NCC} - - {dataset: NorESM2-MM, grid: gn, institute: NCC} - - - {dataset: bcc-csm1-1, ensemble: r1i1p1, project: CMIP5} - - {dataset: bcc-csm1-1-m, ensemble: r1i1p1, project: CMIP5} - - {dataset: GFDL-ESM2G, ensemble: r1i1p1, project: CMIP5} - - {dataset: GFDL-ESM2M, ensemble: r1i1p1, project: CMIP5} - - {dataset: GISS-E2-H, ensemble: r1i1p1, project: CMIP5} - - {dataset: GISS-E2-R, ensemble: r1i1p1, project: CMIP5} - - {dataset: inmcm4, ensemble: r1i1p1, project: CMIP5} - - {dataset: IPSL-CM5B-LR, ensemble: r1i1p1, project: CMIP5} - - {dataset: MIROC5, ensemble: r1i1p1, project: CMIP5} - - {dataset: MRI-CGCM3, ensemble: r1i1p1, project: CMIP5} - - {dataset: NorESM1-M, ensemble: r1i1p1, project: CMIP5} - - -DATASETS_ECS_LOW_scenario: &datasets_ecs_low_scenario - - {dataset: CAMS-CSM1-0, grid: gn, exp: ssp585, end_year: 2099} - - {dataset: GISS-E2-1-G, grid: gn, ensemble: r1i1p1f2, exp: ssp585} - # - {dataset: IITM-ESM, grid: gn, exp: ssp585, end_year: 2099} # no cli, clw - # - {dataset: INM-CM4-8, grid: gr1, exp: ssp585} # no cl, cli, clw - # - {dataset: INM-CM5-0, grid: gr1, exp: ssp585} # no cl, cli, clw - - {dataset: MIROC6, grid: gn, exp: ssp585} - - {dataset: MIROC-ES2L, ensemble: r1i1p1f2, grid: gn, exp: ssp585} - # - {dataset: MPI-ESM-1-2-HAM, grid: gn, exp: ssp585} #no scenario data - # - {dataset: NorCPM1, grid: gn, exp: ssp585} # no scenario data - - {dataset: NorESM2-LM, grid: gn, institute: NCC, exp: ssp585} - - {dataset: NorESM2-MM, grid: gn, institute: NCC, exp: ssp585} - - - {dataset: bcc-csm1-1, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: bcc-csm1-1-m, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GFDL-ESM2G, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GFDL-ESM2M, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GISS-E2-H, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: GISS-E2-R, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: inmcm4, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: IPSL-CM5B-LR, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MIROC5, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: MRI-CGCM3, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - {dataset: NorESM1-M, ensemble: r1i1p1, project: CMIP5, exp: rcp85} - - -preprocessors: - - zonal_mmm: - custom_order: true - mask_landsea: - mask_out: land - regrid: - target_grid: 2x2 - scheme: linear - zonal_statistics: - operator: mean - multi_model_statistics: - span: full - statistics: [mean, p5, p95] - climate_statistics: - operator: mean - - zonal: - mask_landsea: - mask_out: land - regrid: - target_grid: 2x2 - scheme: linear - #zonal_statistics: - # operator: mean - climate_statistics: - operator: mean - - -diagnostics: - - clt_zonal: &zonal_diag - description: comparison of zonal mean - variables: - ECS_high_hist: &var_clt - short_name: clt - preprocessor: zonal - mip: Amon - project: CMIP6 - exp: historical - ensemble: r1i1p1f1 - grid: gr - <<: *years_hist - additional_datasets: *datasets_ecs_high - ECS_med_hist: - <<: *var_clt - additional_datasets: *datasets_ecs_med - ECS_low_hist: - <<: *var_clt - additional_datasets: *datasets_ecs_low - ECS_high_scen: - <<: *var_clt - <<: *years_scen - additional_datasets: *datasets_ecs_high_scenario - ECS_med_scen: - <<: *var_clt - <<: *years_scen - additional_datasets: *datasets_ecs_med_scenario - ECS_low_scen: - <<: *var_clt - <<: *years_scen - additional_datasets: *datasets_ecs_low_scenario - tas_ECS_high_hist: &var_tas - <<: *var_clt - short_name: tas - tas_ECS_med_hist: - <<: *var_tas - additional_datasets: *datasets_ecs_med - tas_ECS_low_hist: - <<: *var_tas - additional_datasets: *datasets_ecs_low - tas_ECS_high_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_high_scenario - tas_ECS_med_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_med_scenario - tas_ECS_low_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_low_scenario - OBS: - <<: *var_clt - preprocessor: zonal - additional_datasets: - - {dataset: ESACCI-CLOUD, project: OBS, type: sat, - version: AVHRR-AMPM-fv3.0, tier: 2} - scripts: - zonal_diff: - script: clouds_ecs/group_line_diff.py - group_by: [['ECS_low_hist', 'ECS_low_scen'], - ['ECS_med_hist', 'ECS_med_scen'], - ['ECS_high_hist', 'ECS_high_scen']] - plot_type: zonal - filename_attach: 'ssp585' - - - lwp_zonal: - <<: *zonal_diag - variables: - ECS_high_hist: - <<: *var_clt - short_name: lwp - derive: true - additional_datasets: *datasets_ecs_high - ECS_med_hist: - <<: *var_clt - short_name: lwp - derive: true - additional_datasets: *datasets_ecs_med - ECS_low_hist: - <<: *var_clt - short_name: lwp - derive: true - additional_datasets: *datasets_ecs_low - ECS_high_scen: - <<: *var_clt - <<: *years_scen - short_name: lwp - derive: true - additional_datasets: *datasets_ecs_high_scenario - ECS_med_scen: - <<: *var_clt - <<: *years_scen - short_name: lwp - derive: true - additional_datasets: *datasets_ecs_med_scenario - ECS_low_scen: - <<: *var_clt - <<: *years_scen - short_name: lwp - derive: true - additional_datasets: *datasets_ecs_low_scenario - tas_ECS_high_hist: - <<: *var_tas - tas_ECS_med_hist: - <<: *var_tas - additional_datasets: *datasets_ecs_med - tas_ECS_low_hist: - <<: *var_tas - additional_datasets: *datasets_ecs_low - tas_ECS_high_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_high_scenario - tas_ECS_med_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_med_scenario - tas_ECS_low_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_low_scenario - OBS: - <<: *var_clt - short_name: lwp - derive: true - preprocessor: zonal - additional_datasets: - - {dataset: ESACCI-CLOUD, project: OBS, type: sat, - version: AVHRR-AMPM-fv3.0, tier: 2} - - - iwp_zonal: - <<: *zonal_diag - variables: - ECS_high_hist: - <<: *var_clt - short_name: clivi - additional_datasets: *datasets_ecs_high - ECS_med_hist: - <<: *var_clt - short_name: clivi - additional_datasets: *datasets_ecs_med - ECS_low_hist: - <<: *var_clt - short_name: clivi - additional_datasets: *datasets_ecs_low - ECS_high_scen: - <<: *var_clt - <<: *years_scen - short_name: clivi - additional_datasets: *datasets_ecs_high_scenario - ECS_med_scen: - <<: *var_clt - <<: *years_scen - short_name: clivi - additional_datasets: *datasets_ecs_med_scenario - ECS_low_scen: - <<: *var_clt - <<: *years_scen - short_name: clivi - additional_datasets: *datasets_ecs_low_scenario - tas_ECS_high_hist: - <<: *var_tas - tas_ECS_med_hist: - <<: *var_tas - additional_datasets: *datasets_ecs_med - tas_ECS_low_hist: - <<: *var_tas - additional_datasets: *datasets_ecs_low - tas_ECS_high_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_high_scenario - tas_ECS_med_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_med_scenario - tas_ECS_low_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_low_scenario - OBS: - <<: *var_clt - short_name: clivi - preprocessor: zonal - additional_datasets: - - {dataset: ESACCI-CLOUD, project: OBS, type: sat, - version: AVHRR-AMPM-fv3.0, tier: 2} - - - netcre_zonal: - <<: *zonal_diag - variables: - ECS_high_hist: - <<: *var_clt - short_name: netcre - derive: true - additional_datasets: *datasets_ecs_high - ECS_med_hist: - <<: *var_clt - short_name: netcre - derive: true - additional_datasets: *datasets_ecs_med - ECS_low_hist: - <<: *var_clt - short_name: netcre - derive: true - additional_datasets: *datasets_ecs_low - ECS_high_scen: - <<: *var_clt - <<: *years_scen - short_name: netcre - derive: true - additional_datasets: *datasets_ecs_high_scenario - ECS_med_scen: - <<: *var_clt - <<: *years_scen - short_name: netcre - derive: true - additional_datasets: *datasets_ecs_med_scenario - ECS_low_scen: - <<: *var_clt - <<: *years_scen - short_name: netcre - derive: true - additional_datasets: *datasets_ecs_low_scenario - tas_ECS_high_hist: - <<: *var_tas - tas_ECS_med_hist: - <<: *var_tas - additional_datasets: *datasets_ecs_med - tas_ECS_low_hist: - <<: *var_tas - additional_datasets: *datasets_ecs_low - tas_ECS_high_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_high_scenario - tas_ECS_med_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_med_scenario - tas_ECS_low_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_low_scenario - OBS: - <<: *var_clt - short_name: netcre - derive: true - preprocessor: zonal - additional_datasets: - - {dataset: CERES-EBAF, project: obs4mips, level: L3B, version: Ed2-7, - tier: 1, start_year: 2000, end_year: 2013} - - - swcre_zonal: - <<: *zonal_diag - variables: - ECS_high_hist: - <<: *var_clt - short_name: swcre - derive: true - additional_datasets: *datasets_ecs_high - ECS_med_hist: - <<: *var_clt - short_name: swcre - derive: true - additional_datasets: *datasets_ecs_med - ECS_low_hist: - <<: *var_clt - short_name: swcre - derive: true - additional_datasets: *datasets_ecs_low - ECS_high_scen: - <<: *var_clt - <<: *years_scen - short_name: swcre - derive: true - additional_datasets: *datasets_ecs_high_scenario - ECS_med_scen: - <<: *var_clt - <<: *years_scen - short_name: swcre - derive: true - additional_datasets: *datasets_ecs_med_scenario - ECS_low_scen: - <<: *var_clt - <<: *years_scen - short_name: swcre - derive: true - additional_datasets: *datasets_ecs_low_scenario - tas_ECS_high_hist: - <<: *var_tas - tas_ECS_med_hist: - <<: *var_tas - additional_datasets: *datasets_ecs_med - tas_ECS_low_hist: - <<: *var_tas - additional_datasets: *datasets_ecs_low - tas_ECS_high_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_high_scenario - tas_ECS_med_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_med_scenario - tas_ECS_low_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_low_scenario - OBS: - <<: *var_clt - short_name: swcre - derive: true - preprocessor: zonal - additional_datasets: - - {dataset: CERES-EBAF, project: obs4mips, level: L3B, version: Ed2-7, - tier: 1, start_year: 2000, end_year: 2013} - - - lwcre_zonal: - <<: *zonal_diag - variables: - ECS_high_hist: - <<: *var_clt - short_name: lwcre - derive: true - additional_datasets: *datasets_ecs_high - ECS_med_hist: - <<: *var_clt - short_name: lwcre - derive: true - additional_datasets: *datasets_ecs_med - ECS_low_hist: - <<: *var_clt - short_name: lwcre - derive: true - additional_datasets: *datasets_ecs_low - ECS_high_scen: - <<: *var_clt - <<: *years_scen - short_name: lwcre - derive: true - additional_datasets: *datasets_ecs_high_scenario - ECS_med_scen: - <<: *var_clt - <<: *years_scen - short_name: lwcre - derive: true - additional_datasets: *datasets_ecs_med_scenario - ECS_low_scen: - <<: *var_clt - <<: *years_scen - short_name: lwcre - derive: true - additional_datasets: *datasets_ecs_low_scenario - tas_ECS_high_hist: - <<: *var_tas - tas_ECS_med_hist: - <<: *var_tas - additional_datasets: *datasets_ecs_med - tas_ECS_low_hist: - <<: *var_tas - additional_datasets: *datasets_ecs_low - tas_ECS_high_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_high_scenario - tas_ECS_med_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_med_scenario - tas_ECS_low_scen: - <<: *var_tas - <<: *years_scen - exp: ssp585 - additional_datasets: *datasets_ecs_low_scenario - OBS: - <<: *var_clt - short_name: lwcre - derive: true - preprocessor: zonal - additional_datasets: - - {dataset: CERES-EBAF, project: obs4mips, level: L3B, version: Ed2-7, - tier: 1, start_year: 2000, end_year: 2013} diff --git a/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_patterncorr.yml b/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_patterncorr.yml deleted file mode 100644 index 93247379ab..0000000000 --- a/esmvaltool/recipes/clouds_ecs/recipe_clouds_ecs_patterncorr.yml +++ /dev/null @@ -1,293 +0,0 @@ -# ESMValTool -# recipe_clouds_ecs_patterncorr.yml ---- -documentation: - - title: Pattern correlation for clouds - - description: | - Pattern correlation for clouds - - authors: - - bock_lisa - -preprocessors: - - regrid_2_2: - regrid: - target_grid: 2x2 - scheme: linear - - -YEARS_hist: &years_hist - start_year: 1985 - end_year: 2004 - - -DATASETS: &datasets - # - {dataset: ACCESS-CM2, grid: gn, institute: CSIRO-ARCCSS} # no clwvi - - {dataset: CanESM5, grid: gn, tag: ECS_high} - - {dataset: CESM2, grid: gn, ensemble: r4i1p1f1, tag: ECS_high} - #- {dataset: CESM2-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - - {dataset: CESM2-WACCM, grid: gn, institute: NCAR, tag: ECS_high} - # - {dataset: CESM2-WACCM-FV2, grid: gn, institute: NCAR} # no clt (ssp585) - # - {dataset: CIESM} # no rsutcs scenario data - - {dataset: CNRM-CM6-1, ensemble: r1i1p1f2, tag: ECS_high} - - {dataset: CNRM-ESM2-1, ensemble: r1i1p1f2, tag: ECS_high} - # - {dataset: EC-Earth3-CC} # no cl, cli, clw - # - {dataset: FIO-ESM-2-0, grid: gn} # no rsutcs - - {dataset: HadGEM3-GC31-LL, grid: gn, ensemble: r1i1p1f3, tag: ECS_high} - - {dataset: HadGEM3-GC31-MM, grid: gn, ensemble: r1i1p1f3, tag: ECS_high} - - {dataset: IPSL-CM6A-LR, tag: ECS_high} - - {dataset: KACE-1-0-G, tag: ECS_high} - - {dataset: NESM3, grid: gn, tag: ECS_high} - - {dataset: TaiESM1, grid: gn, tag: ECS_high} - - {dataset: UKESM1-0-LL, ensemble: r1i1p1f2, grid: gn, tag: ECS_high} - - - {dataset: CSIRO-Mk3-6-0, ensemble: r1i1p1, project: CMIP5, tag: ECS_high} - - {dataset: HadGEM2-ES, ensemble: r1i1p1, project: CMIP5, tag: ECS_high} - - {dataset: IPSL-CM5A-LR, ensemble: r1i1p1, project: CMIP5, tag: ECS_high} - - {dataset: IPSL-CM5A-MR, ensemble: r1i1p1, project: CMIP5, tag: ECS_high} - - {dataset: MIROC-ESM, ensemble: r1i1p1, project: CMIP5, tag: ECS_high} - - # - {dataset: ACCESS-ESM1-5, grid: gn, institute: CSIRO} # no clwvi - # - {dataset: AWI-CM-1-1-MR, grid: gn} # no cl, cli, clw - - {dataset: BCC-CSM2-MR, grid: gn, tag: ECS_med} - # - {dataset: BCC-ESM1, grid: gn} # no scenario data - # - {dataset: CAS-ESM2-0, grid: gn} # download failed - # - {dataset: CNRM-CM6-1-HR, ensemble: r1i1p1f2} # no cl, cli, clw scenario data - - {dataset: CMCC-CM2-SR5, grid: gn, tag: ECS_med} - - {dataset: CMCC-ESM2, grid: gn, tag: ECS_med} - # - {dataset: EC-Earth3-Veg} # no cl, cli, clw - - {dataset: FGOALS-f3-L, tag: ECS_med} - - {dataset: FGOALS-g3, grid: gn, tag: ECS_med} - - {dataset: GISS-E2-1-H, grid: gn, tag: ECS_med} - # - {dataset: KIOST-ESM, grid: gr1} # no cl - # - {dataset: MCM-UA-1-0, grid: gn} # no clt - - {dataset: MPI-ESM1-2-HR, grid: gn, tag: ECS_med} - - {dataset: MPI-ESM1-2-LR, grid: gn, tag: ECS_med} - - {dataset: MRI-ESM2-0, grid: gn, tag: ECS_med} - # - {dataset: SAM0-UNICON, grid: gn} # no scenario data - - - {dataset: ACCESS1-0, ensemble: r1i1p1, project: CMIP5, tag: ECS_med} - - {dataset: ACCESS1-3, ensemble: r1i1p1, project: CMIP5, tag: ECS_med} - - {dataset: BNU-ESM, ensemble: r1i1p1, project: CMIP5, tag: ECS_med} - - {dataset: CanESM2, ensemble: r1i1p1, project: CMIP5, tag: ECS_med} - - {dataset: CCSM4, ensemble: r1i1p1, project: CMIP5, tag: ECS_med} - # - {dataset: CNRM-CM5-2, ensemble: r1i1p1, project: CMIP5} # no scenario data - # - {dataset: CNRM-CM5, ensemble: r1i1p1, project: CMIP5} # no cl, cli, clw - - {dataset: FGOALS-g2, ensemble: r1i1p1, project: CMIP5, tag: ECS_med} - - {dataset: GFDL-CM3, ensemble: r1i1p1, project: CMIP5, tag: ECS_med} - - {dataset: MPI-ESM-LR, ensemble: r1i1p1, project: CMIP5, tag: ECS_med} - - {dataset: MPI-ESM-MR, ensemble: r1i1p1, project: CMIP5, tag: ECS_med} - # - {dataset: MPI-ESM-P, ensemble: r1i1p1, project: CMIP5} # no scenario data - - - {dataset: CAMS-CSM1-0, grid: gn, tag: ECS_low} - - {dataset: GISS-E2-1-G, grid: gn, tag: ECS_low} - # - {dataset: IITM-ESM, grid: gn} # no cli, clw - # - {dataset: INM-CM4-8, grid: gr1} # no cl, cli, clw - # - {dataset: INM-CM5-0, grid: gr1} # no cl, cli, clw - - {dataset: MIROC6, grid: gn, tag: ECS_low} - - {dataset: MIROC-ES2L, ensemble: r1i1p1f2, grid: gn, tag: ECS_low} - # - {dataset: MPI-ESM-1-2-HAM, grid: gn} # no scenario data - # - {dataset: NorCPM1, grid: gn} # no clwvi, clivi - - {dataset: NorESM2-LM, grid: gn, institute: NCC, tag: ECS_low} - - {dataset: NorESM2-MM, grid: gn, institute: NCC, tag: ECS_low} - - - {dataset: bcc-csm1-1, ensemble: r1i1p1, project: CMIP5, tag: ECS_low} - - {dataset: bcc-csm1-1-m, ensemble: r1i1p1, project: CMIP5, tag: ECS_low} - - {dataset: GFDL-ESM2G, ensemble: r1i1p1, project: CMIP5, tag: ECS_low} - - {dataset: GFDL-ESM2M, ensemble: r1i1p1, project: CMIP5, tag: ECS_low} - - {dataset: GISS-E2-H, ensemble: r1i1p1, project: CMIP5, tag: ECS_low} - - {dataset: GISS-E2-R, ensemble: r1i1p1, project: CMIP5, tag: ECS_low} - - {dataset: inmcm4, ensemble: r1i1p1, project: CMIP5, tag: ECS_low} - - {dataset: IPSL-CM5B-LR, ensemble: r1i1p1, project: CMIP5, tag: ECS_low} - - {dataset: MIROC5, ensemble: r1i1p1, project: CMIP5, tag: ECS_low} - - {dataset: MRI-CGCM3, ensemble: r1i1p1, project: CMIP5, tag: ECS_low} - - {dataset: NorESM1-M, ensemble: r1i1p1, project: CMIP5, tag: ECS_low} - - -diagnostics: - - # ********************************************************************** - # Centered pattern correlation - # ********************************************************************** - - tas: &corr_diag - description: Calculate pattern correlation value - variables: - tas: &tas_settings - preprocessor: regrid_2_2 - reference_dataset: ERA5 - alternative_dataset: NCEP - project: CMIP6 - exp: historical - ensemble: r1i1p1f1 - grid: gr - mip: Amon - <<: *years_hist - additional_datasets: *datasets - additional_datasets: - - {dataset: ERA5, project: OBS6, type: reanaly, version: v1, tier: 3} - - {dataset: NCEP, project: OBS, type: reanaly, version: 1, tier: 2} - scripts: - pattern_cor: &fig_pattern_cor - script: ipcc_ar6/corr_pattern.ncl - group_by: tag - - clt: - <<: *corr_diag - variables: - clt: &clt_settings - <<: *tas_settings - reference_dataset: ESACCI-CLOUD - alternative_dataset: MODIS - additional_datasets: - - {dataset: ESACCI-CLOUD, project: OBS, type: sat, version: AVHRR-AMPM-fv3.0, tier: 2, - start_year: 1992, end_year: 2016} - - {dataset: MODIS, project: OBS, type: sat, version: MYD08-M3, tier: 3, - start_year: 2003, end_year: 2018} - - - clivi: - <<: *corr_diag - variables: - clivi: &clivi_settings - <<: *tas_settings - reference_dataset: ESACCI-CLOUD - alternative_dataset: CLOUDSAT-L2 - additional_datasets: - #- {dataset: ESACCI-CLOUD, project: OBS, type: sat, version: AVHRR-AMPM-fv3.0, tier: 2} - - {dataset: ESACCI-CLOUD, project: OBS, type: sat, version: AVHRR-AMPM-fv3.0, tier: 2, - start_year: 1992, end_year: 2016} - - {dataset: CLOUDSAT-L2, project: OBS, type: sat, version: P1-R05-gridbox-average-noprecip, tier: 3, - start_year: 2006, end_year: 2017} - #- {dataset: MODIS, project: OBS, type: sat, version: MYD08-M3, tier: 3, - # start_year: 2003, end_year: 2018} - - - lwp: - <<: *corr_diag - variables: - lwp: &lwp_settings - <<: *tas_settings - derive: true - force_derivation: false - reference_dataset: ESACCI-CLOUD - alternative_dataset: CLOUDSAT-L2 - additional_datasets: - - {dataset: ESACCI-CLOUD, project: OBS, type: sat, version: AVHRR-AMPM-fv3.0, tier: 2, - start_year: 1992, end_year: 2016} - - {dataset: CLOUDSAT-L2, project: OBS, type: sat, version: P1-R05-gridbox-average-noprecip, tier: 3, - start_year: 2006, end_year: 2017} - #- {dataset: MODIS, project: OBS, type: sat, version: MYD08-M3, tier: 3, - # start_year: 2003, end_year: 2018} - - - pr: - <<: *corr_diag - variables: - pr: &pr_settings - <<: *tas_settings - reference_dataset: GPCP-SG - alternative_dataset: ERA5 - additional_datasets: - - {dataset: GPCP-SG, project: obs4mips, level: L3, version: v2.2, tier: 1} - - {dataset: ERA5, project: OBS6, type: reanaly, version: v1, tier: 3} - #- {dataset: GHCN, project: OBS, type: ground, version: 1, tier: 2} - - - rlut: - <<: *corr_diag - variables: - rlut: &rlut_settings - <<: *tas_settings - reference_dataset: CERES-EBAF - alternative_dataset: ESACCI-CLOUD - additional_datasets: - - {dataset: CERES-EBAF, project: OBS, type: sat, version: Ed4.2, - tier: 2, start_year: 2001, end_year: 2022} - - {dataset: ESACCI-CLOUD, project: OBS, type: sat, version: AVHRR-AMPM-fv3.0, tier: 2, - start_year: 1992, end_year: 2016} - - - rsut: - <<: *corr_diag - variables: - rsut: &rsut_settings - <<: *tas_settings - reference_dataset: CERES-EBAF - alternative_dataset: ESACCI-CLOUD - additional_datasets: - - {dataset: CERES-EBAF, project: OBS, type: sat, version: Ed4.2, - tier: 2, start_year: 2001, end_year: 2022} - - {dataset: ESACCI-CLOUD, project: OBS, type: sat, version: AVHRR-AMPM-fv3.0, tier: 2, - start_year: 1992, end_year: 2016} - - lwcre: - <<: *corr_diag - variables: - lwcre: &lwcre_settings - <<: *tas_settings - reference_dataset: CERES-EBAF - alternative_dataset: ESACCI-CLOUD - derive: true - force_derivation: false - additional_datasets: - - {dataset: CERES-EBAF, project: OBS, type: sat, version: Ed4.2, - tier: 2, start_year: 2001, end_year: 2022} - - {dataset: ESACCI-CLOUD, project: OBS, type: sat, version: AVHRR-AMPM-fv3.0, tier: 2, - start_year: 1992, end_year: 2016} - - - swcre: - <<: *corr_diag - variables: - swcre: &swcre_settings - <<: *tas_settings - reference_dataset: CERES-EBAF - alternative_dataset: ESACCI-CLOUD - derive: true - force_derivation: false - additional_datasets: - - {dataset: CERES-EBAF, project: OBS, type: sat, version: Ed4.2, - tier: 2, start_year: 2001, end_year: 2022} - - {dataset: ESACCI-CLOUD, project: OBS, type: sat, version: AVHRR-AMPM-fv3.0, tier: 2, - start_year: 1992, end_year: 2016} - - - netcre: - <<: *corr_diag - variables: - netcre: &netcre_settings - <<: *tas_settings - reference_dataset: CERES-EBAF - alternative_dataset: ESACCI-CLOUD - derive: true - force_derivation: false - additional_datasets: - - {dataset: CERES-EBAF, project: OBS, type: sat, version: Ed4.2, - tier: 2, start_year: 2001, end_year: 2022} - - {dataset: ESACCI-CLOUD, project: OBS, type: sat, version: AVHRR-AMPM-fv3.0, tier: 2, - start_year: 1992, end_year: 2016} - - - - ### COLLECT CORRELATIONS AND PLOT ########################################### - pattern_corr: - description: Wrapper to collect and plot previously calculated correlations - scripts: - cor_collect: - script: ipcc_ar6/corr_pattern_collect.ncl - ancestors: ['*/pattern_cor'] - project_order: ['ECS_low', 'ECS_med', 'ECS_high'] - diag_order: ['clt', 'clivi', 'lwp', 'swcre', 'lwcre', 'netcre', - 'rsut', 'rlut', 'tas', 'pr'] - labels: ['Total Cloud ~C~ Fraction', 'Ice Water ~C~ Path', - 'Liquid Water ~C~ Path', - ' TOA Shortwave ~C~ Cloud Radiative ~C~ Effect', - ' TOA Longwave ~C~ Cloud Radiative ~C~ Effect', - ' TOA Net ~C~ Cloud Radiative ~C~ Effect', - 'TOA Outgoing ~C~ Shortwave ~C~ Radiation', - 'TOA Outgoing ~C~ Longwave ~C~ Radiation', - ' Near-Surface ~C~ Air Temperature', 'Precipitation']