diff --git a/changelog/257.feature.md b/changelog/257.feature.md new file mode 100644 index 000000000..ed875ea25 --- /dev/null +++ b/changelog/257.feature.md @@ -0,0 +1 @@ +Added a diagnostic to calculate climate variables at global warming levels. diff --git a/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/metrics/__init__.py b/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/metrics/__init__.py index 51ad72d34..fe00db60c 100644 --- a/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/metrics/__init__.py +++ b/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/metrics/__init__.py @@ -1,5 +1,6 @@ """ESMValTool metrics.""" +from cmip_ref_metrics_esmvaltool.metrics.climate_at_global_warming_levels import ClimateAtGlobalWarmingLevels from cmip_ref_metrics_esmvaltool.metrics.ecs import EquilibriumClimateSensitivity from cmip_ref_metrics_esmvaltool.metrics.example import GlobalMeanTimeseries from cmip_ref_metrics_esmvaltool.metrics.tcr import TransientClimateResponse @@ -7,6 +8,7 @@ from cmip_ref_metrics_esmvaltool.metrics.zec import ZeroEmissionCommitment __all__ = [ + "ClimateAtGlobalWarmingLevels", "EquilibriumClimateSensitivity", "GlobalMeanTimeseries", "TransientClimateResponse", diff --git a/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/metrics/climate_at_global_warming_levels.py b/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/metrics/climate_at_global_warming_levels.py new file mode 100644 index 000000000..01db30cf5 --- /dev/null +++ b/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/metrics/climate_at_global_warming_levels.py @@ -0,0 +1,99 @@ +import pandas + +from cmip_ref_core.constraints import ( + AddSupplementaryDataset, + RequireContiguousTimerange, + RequireFacets, +) +from cmip_ref_core.datasets import FacetFilter, SourceDatasetType +from cmip_ref_core.metrics import DataRequirement +from cmip_ref_metrics_esmvaltool.metrics.base import ESMValToolMetric +from cmip_ref_metrics_esmvaltool.recipe import dataframe_to_recipe +from cmip_ref_metrics_esmvaltool.types import Recipe + + +class ClimateAtGlobalWarmingLevels(ESMValToolMetric): + """ + Calculate climate variables at global warming levels. + """ + + name = "Climate variables at global warming levels" + slug = "esmvaltool-climate-at-global-warming-levels" + base_recipe = "recipe_calculate_gwl_exceedance_stats.yml" + + variables = ( + "pr", + "tas", + ) + + data_requirements = ( + DataRequirement( + source_type=SourceDatasetType.CMIP6, + filters=( + FacetFilter( + facets={ + "variable_id": variables, + "experiment_id": ( + "ssp126", + "ssp245", + "ssp370", + "ssp585", + ), + }, + ), + ), + group_by=("experiment_id",), + constraints=( + RequireFacets("variable_id", variables), + AddSupplementaryDataset( + supplementary_facets={"experiment_id": "historical"}, + matching_facets=( + "source_id", + "member_id", + "grid_label", + "table_id", + "variable_id", + ), + optional_matching_facets=tuple(), + ), + RequireFacets("experiment_id", ("historical",)), + RequireContiguousTimerange(group_by=("instance_id",)), + AddSupplementaryDataset.from_defaults("areacella", SourceDatasetType.CMIP6), + ), + ), + ) + + @staticmethod + def update_recipe(recipe: Recipe, input_files: pandas.DataFrame) -> None: + """Update the recipe.""" + # Set up the datasets + diagnostics = recipe["diagnostics"] + for diagnostic in diagnostics.values(): + diagnostic.pop("additional_datasets") + recipe_variables = dataframe_to_recipe(input_files) + datasets = recipe_variables["tas"]["additional_datasets"] + datasets = [ds for ds in datasets if ds["exp"] != "historical"] + for dataset in datasets: + dataset.pop("timerange") + dataset["activity"] = ["CMIP", dataset["activity"]] + dataset["exp"] = ["historical", dataset["exp"]] + recipe["datasets"] = datasets + + # Specify the timeranges + diagnostics["calculate_gwl_exceedance_years"]["variables"]["tas_anomaly"] = { + "short_name": "tas", + "preprocessor": "calculate_anomalies", + "timerange": "1850/2100", + } + + diagnostics["gwl_mean_plots_tas"]["variables"]["tas"] = { + "short_name": "tas", + "preprocessor": "multi_model_gwl_stats", + "timerange": "2000/2100", + } + + diagnostics["gwl_mean_plots_pr"]["variables"]["pr"] = { + "short_name": "pr", + "preprocessor": "multi_model_gwl_stats", + "timerange": "2000/2100", + } diff --git a/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/recipe.py b/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/recipe.py index 16aa019fe..f420ba9c8 100644 --- a/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/recipe.py +++ b/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/recipe.py @@ -115,8 +115,8 @@ def dataframe_to_recipe(files: pd.DataFrame) -> dict[str, Any]: return variables -_ESMVALTOOL_COMMIT = "864a0b9328e6d29d0591ffb593fdfcc88b22f1b8" -_ESMVALTOOL_VERSION = f"2.13.0.dev21+{_ESMVALTOOL_COMMIT[:10]}" +_ESMVALTOOL_COMMIT = "a759ce46d5185e3784997ce38a3956e39322cdac" +_ESMVALTOOL_VERSION = f"2.13.0.dev27+g{_ESMVALTOOL_COMMIT[:9]}" _RECIPES = pooch.create( path=pooch.os_cache("cmip_ref_metrics_esmvaltool"), diff --git a/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/recipes.txt b/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/recipes.txt index e837a6c2c..fab5af50c 100644 --- a/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/recipes.txt +++ b/packages/ref-metrics-esmvaltool/src/cmip_ref_metrics_esmvaltool/recipes.txt @@ -1,4 +1,5 @@ examples/recipe_python.yml ab3f06d269bb2c1368f4dc39da9bcb232fb2adb1fa556ba769e6c16294ffb4a3 +recipe_calculate_gwl_exceedance_stats.yml 5aa266abc9a8029649b689a2b369a47623b0935d609354332ff4148994642d6b recipe_ecs.yml 0cc57034fcb64e32015b4ff949ece5df8cdb8c6f493618b50ceded119fb37918 recipe_tcr.yml 35f9ef035a4e71aff5cac5dd26c49da2162fc00291bf3b0bd16b661b7b2f606b recipe_tcre.yml 4668e357e00c515a8264ac75cb319ce558289689e10189e6f9e982886c414c94 diff --git a/packages/ref-metrics-esmvaltool/tests/unit/metrics/input_files_climate_at_global_warming_levels.json b/packages/ref-metrics-esmvaltool/tests/unit/metrics/input_files_climate_at_global_warming_levels.json new file mode 100644 index 000000000..d92717ace --- /dev/null +++ b/packages/ref-metrics-esmvaltool/tests/unit/metrics/input_files_climate_at_global_warming_levels.json @@ -0,0 +1,1371 @@ +[ + { + "start_time":"2015-01-16T00:00:00.000", + "end_time":"2049-12-16T00:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/MOHC\/UKESM1-0-LL\/ssp126\/r1i1p1f2\/Amon\/tas\/gn\/v20190503\/tas_Amon_UKESM1-0-LL_ssp126_r1i1p1f2_gn_201501-204912.nc", + "activity_id":"ScenarioMIP", + "branch_method":"standard", + "branch_time_in_child":59400.0, + "branch_time_in_parent":59400.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"Native N96 grid; 192 x 144 longitude\/latitude", + "grid_label":"gn", + "institution_id":"MOHC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"UKESM1-0-LL", + "parent_time_units":"days since 1850-01-01-00-00-00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos", + "source_id":"UKESM1-0-LL", + "source_type":"AOGCM AER BGC CHEM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20190503", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.ScenarioMIP.MOHC.UKESM1-0-LL.ssp126.r1i1p1f2.Amon.tas.gn.v20190503" + }, + { + "start_time":"2050-01-16T00:00:00.000", + "end_time":"2100-12-16T00:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/MOHC\/UKESM1-0-LL\/ssp126\/r1i1p1f2\/Amon\/tas\/gn\/v20190503\/tas_Amon_UKESM1-0-LL_ssp126_r1i1p1f2_gn_205001-210012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"standard", + "branch_time_in_child":59400.0, + "branch_time_in_parent":59400.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"Native N96 grid; 192 x 144 longitude\/latitude", + "grid_label":"gn", + "institution_id":"MOHC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"UKESM1-0-LL", + "parent_time_units":"days since 1850-01-01-00-00-00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos", + "source_id":"UKESM1-0-LL", + "source_type":"AOGCM AER BGC CHEM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20190503", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.ScenarioMIP.MOHC.UKESM1-0-LL.ssp126.r1i1p1f2.Amon.tas.gn.v20190503" + }, + { + "start_time":"2015-01-16T00:00:00.000", + "end_time":"2049-12-16T00:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/MOHC\/UKESM1-0-LL\/ssp126\/r1i1p1f2\/Amon\/pr\/gn\/v20190503\/pr_Amon_UKESM1-0-LL_ssp126_r1i1p1f2_gn_201501-204912.nc", + "activity_id":"ScenarioMIP", + "branch_method":"standard", + "branch_time_in_child":59400.0, + "branch_time_in_parent":59400.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"Native N96 grid; 192 x 144 longitude\/latitude", + "grid_label":"gn", + "institution_id":"MOHC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"UKESM1-0-LL", + "parent_time_units":"days since 1850-01-01-00-00-00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos", + "source_id":"UKESM1-0-LL", + "source_type":"AOGCM AER BGC CHEM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20190503", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.ScenarioMIP.MOHC.UKESM1-0-LL.ssp126.r1i1p1f2.Amon.pr.gn.v20190503" + }, + { + "start_time":"2050-01-16T00:00:00.000", + "end_time":"2100-12-16T00:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/MOHC\/UKESM1-0-LL\/ssp126\/r1i1p1f2\/Amon\/pr\/gn\/v20190503\/pr_Amon_UKESM1-0-LL_ssp126_r1i1p1f2_gn_205001-210012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"standard", + "branch_time_in_child":59400.0, + "branch_time_in_parent":59400.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"Native N96 grid; 192 x 144 longitude\/latitude", + "grid_label":"gn", + "institution_id":"MOHC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"UKESM1-0-LL", + "parent_time_units":"days since 1850-01-01-00-00-00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos", + "source_id":"UKESM1-0-LL", + "source_type":"AOGCM AER BGC CHEM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20190503", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.ScenarioMIP.MOHC.UKESM1-0-LL.ssp126.r1i1p1f2.Amon.pr.gn.v20190503" + }, + { + "start_time":"2015-01-16T12:00:00.000", + "end_time":"2100-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/MIROC\/MIROC6\/ssp126\/r1i1p1f1\/Amon\/tas\/gn\/v20190627\/tas_Amon_MIROC6_ssp126_r1i1p1f1_gn_201501-210012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"standard", + "branch_time_in_child":60265.0, + "branch_time_in_parent":60265.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"native atmosphere T85 Gaussian grid", + "grid_label":"gn", + "institution_id":"MIROC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"MIROC6", + "parent_time_units":"days since 1850-1-1", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"MIROC6", + "source_type":"AOGCM AER", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190627", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.ScenarioMIP.MIROC.MIROC6.ssp126.r1i1p1f1.Amon.tas.gn.v20190627" + }, + { + "start_time":"2015-01-16T12:00:00.000", + "end_time":"2100-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/MIROC\/MIROC6\/ssp126\/r1i1p1f1\/Amon\/pr\/gn\/v20190627\/pr_Amon_MIROC6_ssp126_r1i1p1f1_gn_201501-210012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"standard", + "branch_time_in_child":60265.0, + "branch_time_in_parent":60265.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"native atmosphere T85 Gaussian grid", + "grid_label":"gn", + "institution_id":"MIROC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"MIROC6", + "parent_time_units":"days since 1850-1-1", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"MIROC6", + "source_type":"AOGCM AER", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190627", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.ScenarioMIP.MIROC.MIROC6.ssp126.r1i1p1f1.Amon.pr.gn.v20190627" + }, + { + "start_time":"2015-01-16T12:00:00.000", + "end_time":"2100-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/CNRM-CERFACS\/CNRM-CM6-1\/ssp126\/r1i1p1f2\/Amon\/tas\/gr\/v20190219\/tas_Amon_CNRM-CM6-1_ssp126_r1i1p1f2_gr_201501-210012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"standard", + "branch_time_in_child":60265.0, + "branch_time_in_parent":60265.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"data regridded to a T127 gaussian grid (128x256 latlon) from a native atmosphere T127l reduced gaussian grid", + "grid_label":"gr", + "institution_id":"CNRM-CERFACS", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"CNRM-CM6-1", + "parent_time_units":"days since 1850-01-01 00:00:00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos", + "source_id":"CNRM-CM6-1", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20190219", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.ScenarioMIP.CNRM-CERFACS.CNRM-CM6-1.ssp126.r1i1p1f2.Amon.tas.gr.v20190219" + }, + { + "start_time":"2015-01-16T12:00:00.000", + "end_time":"2100-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/CNRM-CERFACS\/CNRM-CM6-1\/ssp126\/r1i1p1f2\/Amon\/pr\/gr\/v20190219\/pr_Amon_CNRM-CM6-1_ssp126_r1i1p1f2_gr_201501-210012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"standard", + "branch_time_in_child":60265.0, + "branch_time_in_parent":60265.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"data regridded to a T127 gaussian grid (128x256 latlon) from a native atmosphere T127l reduced gaussian grid", + "grid_label":"gr", + "institution_id":"CNRM-CERFACS", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"CNRM-CM6-1", + "parent_time_units":"days since 1850-01-01 00:00:00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos", + "source_id":"CNRM-CM6-1", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20190219", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.ScenarioMIP.CNRM-CERFACS.CNRM-CM6-1.ssp126.r1i1p1f2.Amon.pr.gr.v20190219" + }, + { + "start_time":"2015-01-16T12:00:00.000", + "end_time":"2100-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/CCCma\/CanESM5\/ssp126\/r1i1p1f1\/Amon\/tas\/gn\/v20190429\/tas_Amon_CanESM5_ssp126_r1i1p1f1_gn_201501-210012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"Spin-up documentation", + "branch_time_in_child":60225.0, + "branch_time_in_parent":60225.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"T63L49 native atmosphere, T63 Linear Gaussian Grid; 128 x 64 longitude\/latitude; 49 levels; top level 1 hPa", + "grid_label":"gn", + "institution_id":"CCCma", + "nominal_resolution":"500 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"CanESM5", + "parent_time_units":"days since 1850-01-01 0:0:0.0", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"CanESM5", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190429", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.ScenarioMIP.CCCma.CanESM5.ssp126.r1i1p1f1.Amon.tas.gn.v20190429" + }, + { + "start_time":"2101-01-16T12:00:00.000", + "end_time":"2300-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/CCCma\/CanESM5\/ssp126\/r1i1p1f1\/Amon\/tas\/gn\/v20190429\/tas_Amon_CanESM5_ssp126_r1i1p1f1_gn_210101-230012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"Spin-up documentation", + "branch_time_in_child":60225.0, + "branch_time_in_parent":60225.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"T63L49 native atmosphere, T63 Linear Gaussian Grid; 128 x 64 longitude\/latitude; 49 levels; top level 1 hPa", + "grid_label":"gn", + "institution_id":"CCCma", + "nominal_resolution":"500 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"CanESM5", + "parent_time_units":"days since 1850-01-01 0:0:0.0", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"CanESM5", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190429", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.ScenarioMIP.CCCma.CanESM5.ssp126.r1i1p1f1.Amon.tas.gn.v20190429" + }, + { + "start_time":"2015-01-16T12:00:00.000", + "end_time":"2100-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/CCCma\/CanESM5\/ssp126\/r1i1p1f1\/Amon\/pr\/gn\/v20190429\/pr_Amon_CanESM5_ssp126_r1i1p1f1_gn_201501-210012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"Spin-up documentation", + "branch_time_in_child":60225.0, + "branch_time_in_parent":60225.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"T63L49 native atmosphere, T63 Linear Gaussian Grid; 128 x 64 longitude\/latitude; 49 levels; top level 1 hPa", + "grid_label":"gn", + "institution_id":"CCCma", + "nominal_resolution":"500 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"CanESM5", + "parent_time_units":"days since 1850-01-01 0:0:0.0", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"CanESM5", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190429", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.ScenarioMIP.CCCma.CanESM5.ssp126.r1i1p1f1.Amon.pr.gn.v20190429" + }, + { + "start_time":"2101-01-16T12:00:00.000", + "end_time":"2300-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/CCCma\/CanESM5\/ssp126\/r1i1p1f1\/Amon\/pr\/gn\/v20190429\/pr_Amon_CanESM5_ssp126_r1i1p1f1_gn_210101-230012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"Spin-up documentation", + "branch_time_in_child":60225.0, + "branch_time_in_parent":60225.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"T63L49 native atmosphere, T63 Linear Gaussian Grid; 128 x 64 longitude\/latitude; 49 levels; top level 1 hPa", + "grid_label":"gn", + "institution_id":"CCCma", + "nominal_resolution":"500 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"CanESM5", + "parent_time_units":"days since 1850-01-01 0:0:0.0", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"CanESM5", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190429", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.ScenarioMIP.CCCma.CanESM5.ssp126.r1i1p1f1.Amon.pr.gn.v20190429" + }, + { + "start_time":"2015-01-16T12:00:00.000", + "end_time":"2100-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/CAS\/FGOALS-f3-L\/ssp126\/r1i1p1f1\/Amon\/tas\/gr\/v20191013\/tas_Amon_FGOALS-f3-L_ssp126_r1i1p1f1_gr_201501-210012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"Spin-up documentation", + "branch_time_in_child":2310.0, + "branch_time_in_parent":12345.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"gs1x1", + "grid_label":"gr", + "institution_id":"CAS", + "nominal_resolution":"100 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"FGOALS-f3-L", + "parent_time_units":"days since 0001-01-01", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"FGOALS-f3-L", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20191013", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.ScenarioMIP.CAS.FGOALS-f3-L.ssp126.r1i1p1f1.Amon.tas.gr.v20191013" + }, + { + "start_time":"2015-01-16T12:00:00.000", + "end_time":"2100-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/CAS\/FGOALS-f3-L\/ssp126\/r1i1p1f1\/Amon\/pr\/gr\/v20191013\/pr_Amon_FGOALS-f3-L_ssp126_r1i1p1f1_gr_201501-210012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"Spin-up documentation", + "branch_time_in_child":2310.0, + "branch_time_in_parent":12345.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"gs1x1", + "grid_label":"gr", + "institution_id":"CAS", + "nominal_resolution":"100 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"FGOALS-f3-L", + "parent_time_units":"days since 0001-01-01", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"FGOALS-f3-L", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20191013", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.ScenarioMIP.CAS.FGOALS-f3-L.ssp126.r1i1p1f1.Amon.pr.gr.v20191013" + }, + { + "start_time":"2015-01-16T12:00:00.000", + "end_time":"2100-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/BCC\/BCC-CSM2-MR\/ssp126\/r1i1p1f1\/Amon\/tas\/gn\/v20190314\/tas_Amon_BCC-CSM2-MR_ssp126_r1i1p1f1_gn_201501-210012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"Standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":2015.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"T106", + "grid_label":"gn", + "institution_id":"BCC", + "nominal_resolution":"100 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"BCC-CSM2-MR", + "parent_time_units":"days since 2015-01-01", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"BCC-CSM2-MR", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190314", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.ScenarioMIP.BCC.BCC-CSM2-MR.ssp126.r1i1p1f1.Amon.tas.gn.v20190314" + }, + { + "start_time":"2015-01-16T12:00:00.000", + "end_time":"2100-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/ScenarioMIP\/BCC\/BCC-CSM2-MR\/ssp126\/r1i1p1f1\/Amon\/pr\/gn\/v20190314\/pr_Amon_BCC-CSM2-MR_ssp126_r1i1p1f1_gn_201501-210012.nc", + "activity_id":"ScenarioMIP", + "branch_method":"Standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":2015.0, + "experiment":"update of RCP2.6 based on SSP1", + "experiment_id":"ssp126", + "frequency":"mon", + "grid":"T106", + "grid_label":"gn", + "institution_id":"BCC", + "nominal_resolution":"100 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"BCC-CSM2-MR", + "parent_time_units":"days since 2015-01-01", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"BCC-CSM2-MR", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190314", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.ScenarioMIP.BCC.BCC-CSM2-MR.ssp126.r1i1p1f1.Amon.pr.gn.v20190314" + }, + { + "start_time":"1850-01-16T00:00:00.000", + "end_time":"1949-12-16T00:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/MOHC\/UKESM1-0-LL\/historical\/r1i1p1f2\/Amon\/tas\/gn\/v20190406\/tas_Amon_UKESM1-0-LL_historical_r1i1p1f2_gn_185001-194912.nc", + "activity_id":"CMIP", + "branch_method":"standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":144000.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"Native N96 grid; 192 x 144 longitude\/latitude", + "grid_label":"gn", + "institution_id":"MOHC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"UKESM1-0-LL", + "parent_time_units":"days since 1850-01-01-00-00-00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos", + "source_id":"UKESM1-0-LL", + "source_type":"AOGCM AER BGC CHEM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20190406", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.CMIP.MOHC.UKESM1-0-LL.historical.r1i1p1f2.Amon.tas.gn.v20190406" + }, + { + "start_time":"1950-01-16T00:00:00.000", + "end_time":"2014-12-16T00:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/MOHC\/UKESM1-0-LL\/historical\/r1i1p1f2\/Amon\/tas\/gn\/v20190406\/tas_Amon_UKESM1-0-LL_historical_r1i1p1f2_gn_195001-201412.nc", + "activity_id":"CMIP", + "branch_method":"standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":144000.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"Native N96 grid; 192 x 144 longitude\/latitude", + "grid_label":"gn", + "institution_id":"MOHC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"UKESM1-0-LL", + "parent_time_units":"days since 1850-01-01-00-00-00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos", + "source_id":"UKESM1-0-LL", + "source_type":"AOGCM AER BGC CHEM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20190406", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.CMIP.MOHC.UKESM1-0-LL.historical.r1i1p1f2.Amon.tas.gn.v20190406" + }, + { + "start_time":"1850-01-16T00:00:00.000", + "end_time":"1949-12-16T00:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/MOHC\/UKESM1-0-LL\/historical\/r1i1p1f2\/Amon\/pr\/gn\/v20190406\/pr_Amon_UKESM1-0-LL_historical_r1i1p1f2_gn_185001-194912.nc", + "activity_id":"CMIP", + "branch_method":"standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":144000.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"Native N96 grid; 192 x 144 longitude\/latitude", + "grid_label":"gn", + "institution_id":"MOHC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"UKESM1-0-LL", + "parent_time_units":"days since 1850-01-01-00-00-00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos", + "source_id":"UKESM1-0-LL", + "source_type":"AOGCM AER BGC CHEM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20190406", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.CMIP.MOHC.UKESM1-0-LL.historical.r1i1p1f2.Amon.pr.gn.v20190406" + }, + { + "start_time":"1950-01-16T00:00:00.000", + "end_time":"2014-12-16T00:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/MOHC\/UKESM1-0-LL\/historical\/r1i1p1f2\/Amon\/pr\/gn\/v20190406\/pr_Amon_UKESM1-0-LL_historical_r1i1p1f2_gn_195001-201412.nc", + "activity_id":"CMIP", + "branch_method":"standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":144000.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"Native N96 grid; 192 x 144 longitude\/latitude", + "grid_label":"gn", + "institution_id":"MOHC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"UKESM1-0-LL", + "parent_time_units":"days since 1850-01-01-00-00-00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos", + "source_id":"UKESM1-0-LL", + "source_type":"AOGCM AER BGC CHEM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20190406", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.CMIP.MOHC.UKESM1-0-LL.historical.r1i1p1f2.Amon.pr.gn.v20190406" + }, + { + "start_time":"1850-01-16T12:00:00.000", + "end_time":"1949-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/MIROC\/MIROC6\/historical\/r1i1p1f1\/Amon\/tas\/gn\/v20181212\/tas_Amon_MIROC6_historical_r1i1p1f1_gn_185001-194912.nc", + "activity_id":"CMIP", + "branch_method":"standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":0.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"native atmosphere T85 Gaussian grid", + "grid_label":"gn", + "institution_id":"MIROC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"MIROC6", + "parent_time_units":"days since 3200-1-1", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"MIROC6", + "source_type":"AOGCM AER", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20181212", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.CMIP.MIROC.MIROC6.historical.r1i1p1f1.Amon.tas.gn.v20181212" + }, + { + "start_time":"1950-01-16T12:00:00.000", + "end_time":"2014-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/MIROC\/MIROC6\/historical\/r1i1p1f1\/Amon\/tas\/gn\/v20181212\/tas_Amon_MIROC6_historical_r1i1p1f1_gn_195001-201412.nc", + "activity_id":"CMIP", + "branch_method":"standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":0.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"native atmosphere T85 Gaussian grid", + "grid_label":"gn", + "institution_id":"MIROC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"MIROC6", + "parent_time_units":"days since 3200-1-1", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"MIROC6", + "source_type":"AOGCM AER", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20181212", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.CMIP.MIROC.MIROC6.historical.r1i1p1f1.Amon.tas.gn.v20181212" + }, + { + "start_time":"1850-01-16T12:00:00.000", + "end_time":"1949-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/MIROC\/MIROC6\/historical\/r1i1p1f1\/Amon\/pr\/gn\/v20181212\/pr_Amon_MIROC6_historical_r1i1p1f1_gn_185001-194912.nc", + "activity_id":"CMIP", + "branch_method":"standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":0.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"native atmosphere T85 Gaussian grid", + "grid_label":"gn", + "institution_id":"MIROC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"MIROC6", + "parent_time_units":"days since 3200-1-1", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"MIROC6", + "source_type":"AOGCM AER", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20181212", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.CMIP.MIROC.MIROC6.historical.r1i1p1f1.Amon.pr.gn.v20181212" + }, + { + "start_time":"1950-01-16T12:00:00.000", + "end_time":"2014-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/MIROC\/MIROC6\/historical\/r1i1p1f1\/Amon\/pr\/gn\/v20181212\/pr_Amon_MIROC6_historical_r1i1p1f1_gn_195001-201412.nc", + "activity_id":"CMIP", + "branch_method":"standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":0.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"native atmosphere T85 Gaussian grid", + "grid_label":"gn", + "institution_id":"MIROC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"MIROC6", + "parent_time_units":"days since 3200-1-1", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"MIROC6", + "source_type":"AOGCM AER", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20181212", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.CMIP.MIROC.MIROC6.historical.r1i1p1f1.Amon.pr.gn.v20181212" + }, + { + "start_time":"1850-01-16T12:00:00.000", + "end_time":"2014-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/CNRM-CERFACS\/CNRM-CM6-1\/historical\/r1i1p1f2\/Amon\/tas\/gr\/v20180917\/tas_Amon_CNRM-CM6-1_historical_r1i1p1f2_gr_185001-201412.nc", + "activity_id":"CMIP", + "branch_method":"standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":0.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"data regridded to a T127 gaussian grid (128x256 latlon) from a native atmosphere T127l reduced gaussian grid", + "grid_label":"gr", + "institution_id":"CNRM-CERFACS", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"CNRM-CM6-1", + "parent_time_units":"days since 1850-01-01 00:00:00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos", + "source_id":"CNRM-CM6-1", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20180917", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.CMIP.CNRM-CERFACS.CNRM-CM6-1.historical.r1i1p1f2.Amon.tas.gr.v20180917" + }, + { + "start_time":"1850-01-16T12:00:00.000", + "end_time":"2014-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/CNRM-CERFACS\/CNRM-CM6-1\/historical\/r1i1p1f2\/Amon\/pr\/gr\/v20180917\/pr_Amon_CNRM-CM6-1_historical_r1i1p1f2_gr_185001-201412.nc", + "activity_id":"CMIP", + "branch_method":"standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":0.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"data regridded to a T127 gaussian grid (128x256 latlon) from a native atmosphere T127l reduced gaussian grid", + "grid_label":"gr", + "institution_id":"CNRM-CERFACS", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"CNRM-CM6-1", + "parent_time_units":"days since 1850-01-01 00:00:00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos", + "source_id":"CNRM-CM6-1", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20180917", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.CMIP.CNRM-CERFACS.CNRM-CM6-1.historical.r1i1p1f2.Amon.pr.gr.v20180917" + }, + { + "start_time":"1850-01-16T12:00:00.000", + "end_time":"2014-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/CCCma\/CanESM5\/historical\/r1i1p1f1\/Amon\/tas\/gn\/v20190429\/tas_Amon_CanESM5_historical_r1i1p1f1_gn_185001-201412.nc", + "activity_id":"CMIP", + "branch_method":"Spin-up documentation", + "branch_time_in_child":0.0, + "branch_time_in_parent":1223115.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"T63L49 native atmosphere, T63 Linear Gaussian Grid; 128 x 64 longitude\/latitude; 49 levels; top level 1 hPa", + "grid_label":"gn", + "institution_id":"CCCma", + "nominal_resolution":"500 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"CanESM5", + "parent_time_units":"days since 1850-01-01 0:0:0.0", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"CanESM5", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190429", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.CMIP.CCCma.CanESM5.historical.r1i1p1f1.Amon.tas.gn.v20190429" + }, + { + "start_time":"1850-01-16T12:00:00.000", + "end_time":"2014-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/CCCma\/CanESM5\/historical\/r1i1p1f1\/Amon\/pr\/gn\/v20190429\/pr_Amon_CanESM5_historical_r1i1p1f1_gn_185001-201412.nc", + "activity_id":"CMIP", + "branch_method":"Spin-up documentation", + "branch_time_in_child":0.0, + "branch_time_in_parent":1223115.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"T63L49 native atmosphere, T63 Linear Gaussian Grid; 128 x 64 longitude\/latitude; 49 levels; top level 1 hPa", + "grid_label":"gn", + "institution_id":"CCCma", + "nominal_resolution":"500 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"CanESM5", + "parent_time_units":"days since 1850-01-01 0:0:0.0", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"CanESM5", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190429", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.CMIP.CCCma.CanESM5.historical.r1i1p1f1.Amon.pr.gn.v20190429" + }, + { + "start_time":"1850-01-16T12:00:00.000", + "end_time":"2014-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/CAS\/FGOALS-f3-L\/historical\/r1i1p1f1\/Amon\/tas\/gr\/v20190927\/tas_Amon_FGOALS-f3-L_historical_r1i1p1f1_gr_185001-201412.nc", + "activity_id":"CMIP", + "branch_method":"Spin-up documentation", + "branch_time_in_child":2310.0, + "branch_time_in_parent":12345.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"gs1x1", + "grid_label":"gr", + "institution_id":"CAS", + "nominal_resolution":"100 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"FGOALS-f3-L", + "parent_time_units":"days since 0001-01-01", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"FGOALS-f3-L", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190927", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.CMIP.CAS.FGOALS-f3-L.historical.r1i1p1f1.Amon.tas.gr.v20190927" + }, + { + "start_time":"1850-01-16T12:00:00.000", + "end_time":"2014-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/CAS\/FGOALS-f3-L\/historical\/r1i1p1f1\/Amon\/pr\/gr\/v20190927\/pr_Amon_FGOALS-f3-L_historical_r1i1p1f1_gr_185001-201412.nc", + "activity_id":"CMIP", + "branch_method":"Spin-up documentation", + "branch_time_in_child":2310.0, + "branch_time_in_parent":12345.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"gs1x1", + "grid_label":"gr", + "institution_id":"CAS", + "nominal_resolution":"100 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"FGOALS-f3-L", + "parent_time_units":"days since 0001-01-01", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"FGOALS-f3-L", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190927", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.CMIP.CAS.FGOALS-f3-L.historical.r1i1p1f1.Amon.pr.gr.v20190927" + }, + { + "start_time":"1850-01-16T12:00:00.000", + "end_time":"2014-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/BCC\/BCC-CSM2-MR\/historical\/r1i1p1f1\/Amon\/tas\/gn\/v20181126\/tas_Amon_BCC-CSM2-MR_historical_r1i1p1f1_gn_185001-201412.nc", + "activity_id":"CMIP", + "branch_method":"Standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":2289.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"T106", + "grid_label":"gn", + "institution_id":"BCC", + "nominal_resolution":"100 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"BCC-CSM2-MR", + "parent_time_units":"days since 1850-01-01", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"BCC-CSM2-MR", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"tas", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20181126", + "standard_name":"air_temperature", + "long_name":"Near-Surface Air Temperature", + "units":"K", + "instance_id":"CMIP6.CMIP.BCC.BCC-CSM2-MR.historical.r1i1p1f1.Amon.tas.gn.v20181126" + }, + { + "start_time":"1850-01-16T12:00:00.000", + "end_time":"2014-12-16T12:00:00.000", + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/BCC\/BCC-CSM2-MR\/historical\/r1i1p1f1\/Amon\/pr\/gn\/v20181126\/pr_Amon_BCC-CSM2-MR_historical_r1i1p1f1_gn_185001-201412.nc", + "activity_id":"CMIP", + "branch_method":"Standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":2289.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"mon", + "grid":"T106", + "grid_label":"gn", + "institution_id":"BCC", + "nominal_resolution":"100 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"BCC-CSM2-MR", + "parent_time_units":"days since 1850-01-01", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"BCC-CSM2-MR", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"Amon", + "variable_id":"pr", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20181126", + "standard_name":"precipitation_flux", + "long_name":"Precipitation", + "units":"kg m-2 s-1", + "instance_id":"CMIP6.CMIP.BCC.BCC-CSM2-MR.historical.r1i1p1f1.Amon.pr.gn.v20181126" + }, + { + "start_time":null, + "end_time":null, + "path":"\/home\/bandela\/climate_data\/CMIP6\/GMMIP\/BCC\/BCC-CSM2-MR\/hist-resIPO\/r1i1p1f1\/fx\/areacella\/gn\/v20190613\/areacella_fx_BCC-CSM2-MR_hist-resIPO_r1i1p1f1_gn.nc", + "activity_id":"GMMIP", + "branch_method":"Standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":0.0, + "experiment":"initialized from \"historical\" run year 1870 and SSTs in tropical lobe of the IPO domain (20degS-20degN, 175degE-75degW) restored to AMIP SSTs with historical forcings", + "experiment_id":"hist-resIPO", + "frequency":"fx", + "grid":"T106", + "grid_label":"gn", + "institution_id":"BCC", + "nominal_resolution":"100 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"historical", + "parent_source_id":"BCC-CSM2-MR", + "parent_time_units":"days since 1870-01-01", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"BCC-CSM2-MR", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"fx", + "variable_id":"areacella", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190613", + "standard_name":"cell_area", + "long_name":"Grid-Cell Area for Atmospheric Variables", + "units":"m2", + "instance_id":"CMIP6.GMMIP.BCC.BCC-CSM2-MR.hist-resIPO.r1i1p1f1.fx.areacella.gn.v20190613" + }, + { + "start_time":null, + "end_time":null, + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/CCCma\/CanESM5\/historical\/r1i1p1f1\/fx\/areacella\/gn\/v20190429\/areacella_fx_CanESM5_historical_r1i1p1f1_gn.nc", + "activity_id":"CMIP", + "branch_method":"Spin-up documentation", + "branch_time_in_child":0.0, + "branch_time_in_parent":1223115.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"fx", + "grid":"T63L49 native atmosphere, T63 Linear Gaussian Grid; 128 x 64 longitude\/latitude; 49 levels; top level 1 hPa", + "grid_label":"gn", + "institution_id":"CCCma", + "nominal_resolution":"500 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"CanESM5", + "parent_time_units":"days since 1850-01-01 0:0:0.0", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"CanESM5", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"fx", + "variable_id":"areacella", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190429", + "standard_name":"cell_area", + "long_name":"Grid-Cell Area for Atmospheric Grid Variables", + "units":"m2", + "instance_id":"CMIP6.CMIP.CCCma.CanESM5.historical.r1i1p1f1.fx.areacella.gn.v20190429" + }, + { + "start_time":null, + "end_time":null, + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/CNRM-CERFACS\/CNRM-CM6-1\/historical\/r1i1p1f2\/fx\/areacella\/gr\/v20180917\/areacella_fx_CNRM-CM6-1_historical_r1i1p1f2_gr.nc", + "activity_id":"CMIP", + "branch_method":"standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":0.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"fx", + "grid":"data regridded to a T127 gaussian grid (128x256 latlon) from a native atmosphere T127l reduced gaussian grid", + "grid_label":"gr", + "institution_id":"CNRM-CERFACS", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"CNRM-CM6-1", + "parent_time_units":"days since 1850-01-01 00:00:00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos land", + "source_id":"CNRM-CM6-1", + "source_type":"AOGCM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"fx", + "variable_id":"areacella", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20180917", + "standard_name":"cell_area", + "long_name":"Grid-Cell Area for Atmospheric Variables", + "units":"m2", + "instance_id":"CMIP6.CMIP.CNRM-CERFACS.CNRM-CM6-1.historical.r1i1p1f2.fx.areacella.gr.v20180917" + }, + { + "start_time":null, + "end_time":null, + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/MIROC\/MIROC6\/historical\/r1i1p1f1\/fx\/areacella\/gn\/v20190311\/areacella_fx_MIROC6_historical_r1i1p1f1_gn.nc", + "activity_id":"CMIP", + "branch_method":"standard", + "branch_time_in_child":0.0, + "branch_time_in_parent":0.0, + "experiment":"all-forcing simulation of the recent past", + "experiment_id":"historical", + "frequency":"fx", + "grid":"native atmosphere T85 Gaussian grid", + "grid_label":"gn", + "institution_id":"MIROC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl", + "parent_source_id":"MIROC6", + "parent_time_units":"days since 3200-1-1", + "parent_variant_label":"r1i1p1f1", + "product":"model-output", + "realm":"atmos", + "source_id":"MIROC6", + "source_type":"AOGCM AER", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"fx", + "variable_id":"areacella", + "variant_label":"r1i1p1f1", + "member_id":"r1i1p1f1", + "vertical_levels":1, + "version":"v20190311", + "standard_name":"cell_area", + "long_name":"Grid-Cell Area for Atmospheric Variables", + "units":"m2", + "instance_id":"CMIP6.CMIP.MIROC.MIROC6.historical.r1i1p1f1.fx.areacella.gn.v20190311" + }, + { + "start_time":null, + "end_time":null, + "path":"\/home\/bandela\/climate_data\/CMIP6\/CMIP\/MOHC\/UKESM1-0-LL\/piControl\/r1i1p1f2\/fx\/areacella\/gn\/v20190705\/areacella_fx_UKESM1-0-LL_piControl_r1i1p1f2_gn.nc", + "activity_id":"CMIP", + "branch_method":"standard", + "branch_time_in_child":39600.0, + "branch_time_in_parent":39600.0, + "experiment":"pre-industrial control", + "experiment_id":"piControl", + "frequency":"fx", + "grid":"Native N96 grid; 192 x 144 longitude\/latitude", + "grid_label":"gn", + "institution_id":"MOHC", + "nominal_resolution":"250 km", + "parent_activity_id":"CMIP", + "parent_experiment_id":"piControl-spinup", + "parent_source_id":"UKESM1-0-LL", + "parent_time_units":"days since 1850-01-01-00-00-00", + "parent_variant_label":"r1i1p1f2", + "product":"model-output", + "realm":"atmos", + "source_id":"UKESM1-0-LL", + "source_type":"AOGCM AER BGC CHEM", + "sub_experiment":"none", + "sub_experiment_id":"none", + "table_id":"fx", + "variable_id":"areacella", + "variant_label":"r1i1p1f2", + "member_id":"r1i1p1f2", + "vertical_levels":1, + "version":"v20190705", + "standard_name":"cell_area", + "long_name":"Grid-Cell Area for Atmospheric Grid Variables", + "units":"m2", + "instance_id":"CMIP6.CMIP.MOHC.UKESM1-0-LL.piControl.r1i1p1f2.fx.areacella.gn.v20190705" + } +] diff --git a/packages/ref-metrics-esmvaltool/tests/unit/metrics/test_climate_at_global_warming_levels.py b/packages/ref-metrics-esmvaltool/tests/unit/metrics/test_climate_at_global_warming_levels.py new file mode 100644 index 000000000..9bea12b1b --- /dev/null +++ b/packages/ref-metrics-esmvaltool/tests/unit/metrics/test_climate_at_global_warming_levels.py @@ -0,0 +1,41 @@ +from pathlib import Path + +import pandas +import pytest +from cmip_ref_metrics_esmvaltool.metrics import ClimateAtGlobalWarmingLevels +from cmip_ref_metrics_esmvaltool.recipe import load_recipe + +from cmip_ref_core.datasets import DatasetCollection, MetricDataset, SourceDatasetType + + +@pytest.fixture +def metric_dataset(): + return MetricDataset( + { + SourceDatasetType.CMIP6: DatasetCollection( + datasets=pandas.read_json( + Path(__file__).parent / "input_files_climate_at_global_warming_levels.json" + ), + slug_column="test", + ), + } + ) + + +def test_update_recipe(metric_dataset): + input_files = metric_dataset[SourceDatasetType.CMIP6].datasets + recipe = load_recipe("recipe_calculate_gwl_exceedance_stats.yml") + ClimateAtGlobalWarmingLevels().update_recipe(recipe, input_files) + assert "datasets" in recipe + datasets = recipe["datasets"] + assert len(datasets) == 6 + assert datasets[0]["exp"] == ["historical", "ssp126"] + + for dataset in datasets: + # timerange is defined per diagnostic + assert "timerange" not in datasets + for diagnostic in recipe["diagnostics"].values(): + for variable in diagnostic["variables"].values(): + assert "preprocessor" in variable + assert "timerange" in variable + assert "additional_datasets" not in diagnostic diff --git a/packages/ref/src/cmip_ref/cli/datasets.py b/packages/ref/src/cmip_ref/cli/datasets.py index d936ad5c7..87efd5954 100644 --- a/packages/ref/src/cmip_ref/cli/datasets.py +++ b/packages/ref/src/cmip_ref/cli/datasets.py @@ -59,7 +59,7 @@ def format_(columns: Iterable[str]) -> str: f"Choose from: {format_(data_catalog.columns)}" ) raise typer.Exit(code=1) - data_catalog = data_catalog[column] + data_catalog = data_catalog[column].sort_values(by=column) pretty_print_df(data_catalog, console=console)