From c86d5b85cf42d6108f9e070643f8191c73411ebb Mon Sep 17 00:00:00 2001 From: Manuel Schlund Date: Fri, 22 May 2026 12:32:39 +0200 Subject: [PATCH 1/6] Made TCR diagnostic work with CMIP7 data --- .../climate_ref_esmvaltool/diagnostics/tcr.py | 47 ++++++------------- .../src/climate_ref_esmvaltool/recipe.py | 2 +- .../src/climate_ref_esmvaltool/recipes.txt | 4 +- ...ecipe_transient_climate_response_cmip6.yml | 30 ++++++------ ...ecipe_transient_climate_response_cmip7.yml | 33 ++++++------- 5 files changed, 46 insertions(+), 70 deletions(-) diff --git a/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/tcr.py b/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/tcr.py index a7bd3e3e8..22e678886 100644 --- a/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/tcr.py +++ b/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/tcr.py @@ -7,7 +7,6 @@ AddParentDataset, AddSupplementaryDataset, RequireContiguousTimerange, - RequireFacets, ) from climate_ref_core.datasets import ExecutionDatasetCollection, FacetFilter, SourceDatasetType from climate_ref_core.diagnostics import DataRequirement @@ -32,7 +31,7 @@ class TransientClimateResponse(ESMValToolDiagnostic): name = "Transient Climate Response" slug = "transient-climate-response" - base_recipe = "recipe_tcr.yml" + base_recipe = "ref/recipe_ref_tcr.yml" experiments = ( "1pctCO2", @@ -67,7 +66,7 @@ class TransientClimateResponse(ESMValToolDiagnostic): FacetFilter( facets={ "branded_variable": "tas_tavg-h2m-hxy-u", - "experiment_id": experiments, + "experiment_id": "1pctCO2", "frequency": "mon", "region": "glb", }, @@ -75,8 +74,8 @@ class TransientClimateResponse(ESMValToolDiagnostic): ), group_by=("source_id", "variant_label", "grid_label"), constraints=( + AddParentDataset.from_defaults(SourceDatasetType.CMIP7), RequireContiguousTimerange(group_by=("instance_id",)), - RequireFacets("experiment_id", experiments), AddSupplementaryDataset.from_defaults("areacella", SourceDatasetType.CMIP7), ), ), @@ -156,27 +155,8 @@ def update_recipe( input_files: dict[SourceDatasetType, pandas.DataFrame], ) -> None: """Update the recipe.""" - # Only run the diagnostic that computes TCR for a single model. - recipe["diagnostics"] = { - "tcr": { - "description": "Calculate TCR.", - "variables": { - "tas": { - "preprocessor": "spatial_mean", - }, - }, - "scripts": { - "calculate": { - "script": "climate_metrics/tcr.py", - "calculate_mmm": False, - }, - }, - }, - } - - # Prepare updated datasets section in recipe. It contains two - # datasets, one for the "1pctCO2" and one for the "piControl" - # experiment. + # Prepare updated datasets section in recipe. It contains two datasets, + # one for the "1pctCO2" and one for the "piControl" experiment. cmip_source = get_cmip_source_type(input_files) df = input_files[cmip_source] recipe["datasets"] = get_child_and_parent_dataset( @@ -187,14 +167,15 @@ def update_recipe( parent_duration_in_years=140, ) - # Remove keys from the recipe that are only used for YAML anchors - keys_to_remove = [ - "TCR", - "SCATTERPLOT", - "VAR_SETTING", - ] - for key in keys_to_remove: - recipe.pop(key, None) + # Delete branding suffixes from dataset entries because they are + # variable-specific + for dataset in recipe["datasets"]: + dataset.pop("branding_suffix", None) + + # For CMIP6, delete all appearances of branding suffixes + if cmip_source == SourceDatasetType.CMIP6: + for variable in recipe["diagnostics"]["tcr"]["variables"].values(): + variable.pop("branding_suffix", None) @staticmethod def format_result( diff --git a/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py b/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py index 9a03162c3..85ae94dd3 100644 --- a/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py +++ b/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py @@ -296,7 +296,7 @@ def get_child_and_parent_dataset( return [child_dataset, parent_dataset] -_ESMVALTOOL_COMMIT = "dead90ca848d3892ed90785b3940909d58d27780" +_ESMVALTOOL_COMMIT = "4168f12dcb3fdabfd4eedf21217632ef16aa448a" _ESMVALTOOL_VERSION = f"2.14.0.dev65+g{_ESMVALTOOL_COMMIT[:9]}" _ESMVALTOOL_URL = f"git+https://github.com/ESMValGroup/ESMValTool.git@{_ESMVALTOOL_COMMIT}" diff --git a/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipes.txt b/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipes.txt index 54ac7b692..576cf14bf 100644 --- a/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipes.txt +++ b/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipes.txt @@ -2,7 +2,6 @@ examples/recipe_python.yml ab3f06d269bb2c1368f4dc39da9bcb232fb2 recipe_calculate_gwl_exceedance_stats.yml 9f28304b85f7043fb76eb29ee84da46e084941c9db80eaa2993c151dbf022472 recipe_ecs.yml 0cc57034fcb64e32015b4ff949ece5df8cdb8c6f493618b50ceded119fb37918 recipe_seaice_sensitivity.yml 07270818ebf04a58713dc989720cc9ace77f28d42b1ea189c3bdaf22f5d64577 -recipe_tcr.yml 35f9ef035a4e71aff5cac5dd26c49da2162fc00291bf3b0bd16b661b7b2f606b recipe_tcre.yml 48fc9e3baf541bbcef7491853ea3a774053771dca33352b41466425faeaa38af recipe_zec.yml b0af7f789b7610ab3f29a6617124aa40c40866ead958204fc199eaf82863de51 ref/recipe_enso_basicclimatology.yml 9ea7deb7ee668e39ac44618b96496d898bd82285c22dcee4fce4695e0c9fa82b @@ -10,8 +9,9 @@ ref/recipe_enso_characteristics.yml 34c2518b138068ac96d212910b979d54a8fc ref/recipe_ref_annual_cycle_region.yml 88e0c2f07a76c4de4276547badcc74091516e03840eddb1f0e62469c67a0a86d ref/recipe_ref_cre.yml 4375f262479c3b3e1b348b71080a6d758e195bda76516a591182045a3a29aa32 ref/recipe_ref_fire.yml 2ad82effaca4e742d8abe6a0aa07bb46e1e92ef0d2d240760f7623b0ba045926 -ref/recipe_ref_ozone.yml 388aaf01721c0856ab7143b47b9d2f1efeaaae4ef57e11572c1e133b49aad0a6 +ref/recipe_ref_ozone.yml 09ded4946ecd762ba000916c9f8618120a2e6269930427ae5129da466165f3e5 ref/recipe_ref_sea_ice_area_basic.yml 7d01a8527880663ca28284772f83a8356d9972fb4f022a4000e50a56ce044b09 ref/recipe_ref_scatterplot.yml b99d1736e16256d161847b025811d7088ad9f892d4887fb009fa99c4079135a0 +ref/recipe_ref_tcr.yml 443dbd46f5ef13ea187a1acdb6e70ecfa7669e0ef4b21392e9a00b5d0c821ef5 ref/recipe_ref_timeseries_region.yml deee4403ea25867401e163f6c9d7fcc4fee09d3088009007fcad6a29d01247a8 ref/recipe_ref_trend_regions.yml 18fe246a51474bd12172ab1ba141efac999a247de7774822f77ae6ef144645fe diff --git a/packages/climate-ref-esmvaltool/tests/unit/diagnostics/recipes/recipe_transient_climate_response_cmip6.yml b/packages/climate-ref-esmvaltool/tests/unit/diagnostics/recipes/recipe_transient_climate_response_cmip6.yml index 9744ab71d..1dbe77347 100644 --- a/packages/climate-ref-esmvaltool/tests/unit/diagnostics/recipes/recipe_transient_climate_response_cmip6.yml +++ b/packages/climate-ref-esmvaltool/tests/unit/diagnostics/recipes/recipe_transient_climate_response_cmip6.yml @@ -11,22 +11,6 @@ documentation: - schlund_manuel references: - gregory08jgr - projects: - - crescendo -preprocessors: - spatial_mean: - area_statistics: - operator: mean -diagnostics: - tcr: - description: Calculate TCR. - variables: - tas: - preprocessor: spatial_mean - scripts: - calculate: - script: climate_metrics/tcr.py - calculate_mmm: false datasets: - project: CMIP6 activity: CMIP @@ -46,3 +30,17 @@ datasets: grid: gn mip: Amon timerange: 0101/0240 +preprocessors: + spatial_mean: + area_statistics: + operator: mean +diagnostics: + tcr: + description: Calculate TCR. + variables: + tas: + preprocessor: spatial_mean + scripts: + calculate: + script: climate_metrics/tcr.py + calculate_mmm: false diff --git a/packages/climate-ref-esmvaltool/tests/unit/diagnostics/recipes/recipe_transient_climate_response_cmip7.yml b/packages/climate-ref-esmvaltool/tests/unit/diagnostics/recipes/recipe_transient_climate_response_cmip7.yml index 0e9a366d6..188edb433 100644 --- a/packages/climate-ref-esmvaltool/tests/unit/diagnostics/recipes/recipe_transient_climate_response_cmip7.yml +++ b/packages/climate-ref-esmvaltool/tests/unit/diagnostics/recipes/recipe_transient_climate_response_cmip7.yml @@ -11,26 +11,9 @@ documentation: - schlund_manuel references: - gregory08jgr - projects: - - crescendo -preprocessors: - spatial_mean: - area_statistics: - operator: mean -diagnostics: - tcr: - description: Calculate TCR. - variables: - tas: - preprocessor: spatial_mean - scripts: - calculate: - script: climate_metrics/tcr.py - calculate_mmm: false datasets: - project: CMIP7 activity: CMIP - branding_suffix: tavg-h2m-hxy-u dataset: ACCESS-ESM1-5 ensemble: r1i1p1f1 exp: 1pctCO2 @@ -42,7 +25,6 @@ datasets: timerange: 0101/0240 - project: CMIP7 activity: CMIP - branding_suffix: tavg-h2m-hxy-u dataset: ACCESS-ESM1-5 ensemble: r1i1p1f1 exp: piControl @@ -52,3 +34,18 @@ datasets: mip: atmos region: glb timerange: 0101/0240 +preprocessors: + spatial_mean: + area_statistics: + operator: mean +diagnostics: + tcr: + description: Calculate TCR. + variables: + tas: + branding_suffix: tavg-h2m-hxy-u + preprocessor: spatial_mean + scripts: + calculate: + script: climate_metrics/tcr.py + calculate_mmm: false From 0fdd00b2b407f53469f90e5927eb0cfa2d48f47a Mon Sep 17 00:00:00 2001 From: Manuel Schlund Date: Fri, 22 May 2026 12:34:27 +0200 Subject: [PATCH 2/6] Add changelog --- changelog/686.fix.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog/686.fix.md diff --git a/changelog/686.fix.md b/changelog/686.fix.md new file mode 100644 index 000000000..c471c4abf --- /dev/null +++ b/changelog/686.fix.md @@ -0,0 +1 @@ +Made TCR diagnostic work with CMIP7 data. From 258df71b7d59375240bbf5c922112c114e88a8a5 Mon Sep 17 00:00:00 2001 From: Manuel Schlund Date: Fri, 29 May 2026 14:14:17 +0200 Subject: [PATCH 3/6] Update ESMValTool commit hash to latest main branch --- .../climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py b/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py index 85ae94dd3..90d6ca7f0 100644 --- a/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py +++ b/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py @@ -296,7 +296,7 @@ def get_child_and_parent_dataset( return [child_dataset, parent_dataset] -_ESMVALTOOL_COMMIT = "4168f12dcb3fdabfd4eedf21217632ef16aa448a" +_ESMVALTOOL_COMMIT = "34bc49f3e1c04555d816341c5377033995168751" _ESMVALTOOL_VERSION = f"2.14.0.dev65+g{_ESMVALTOOL_COMMIT[:9]}" _ESMVALTOOL_URL = f"git+https://github.com/ESMValGroup/ESMValTool.git@{_ESMVALTOOL_COMMIT}" From 058d62af3753cb11ce7fe421c3a9ac079ee60a37 Mon Sep 17 00:00:00 2001 From: Manuel Schlund Date: Fri, 29 May 2026 15:01:21 +0200 Subject: [PATCH 4/6] Fix regression test --- ...regression_transient_climate_response_.yml | 101 ++++++++++++++++-- 1 file changed, 92 insertions(+), 9 deletions(-) diff --git a/packages/climate-ref-esmvaltool/tests/unit/test_solve_regression/test_solve_regression_transient_climate_response_.yml b/packages/climate-ref-esmvaltool/tests/unit/test_solve_regression/test_solve_regression_transient_climate_response_.yml index 0660cdfd2..5b64c673c 100644 --- a/packages/climate-ref-esmvaltool/tests/unit/test_solve_regression/test_solve_regression_transient_climate_response_.yml +++ b/packages/climate-ref-esmvaltool/tests/unit/test_solve_regression/test_solve_regression_transient_climate_response_.yml @@ -449,6 +449,10 @@ cmip7_gn_CAMS-CSM1-0_r1i1p1f1: cmip7: - CMIP7.CMIP.CAMS.CAMS-CSM1-0.1pctCO2.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190708 - CMIP7.CMIP.CAMS.CAMS-CSM1-0.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190729 +cmip7_gn_CAMS-CSM1-0_r2i1p1f1: + cmip7: + - CMIP7.CMIP.CAMS.CAMS-CSM1-0.1pctCO2.r2i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190726 + - CMIP7.CMIP.CAMS.CAMS-CSM1-0.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190729 cmip7_gn_CAS-ESM2-0_r1i1p1f1: cmip7: - CMIP7.CMIP.CAS.CAS-ESM2-0.1pctCO2.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20201226 @@ -516,15 +520,55 @@ cmip7_gn_CanESM5_r1i1p2f1: - CMIP7.CMIP.CCCma.CanESM5.1pctCO2.r1i1p2f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190429 - CMIP7.CMIP.CCCma.CanESM5.historical.r1i1p2f1.glb.fx.areacella.ti-u-hxy-u.gn.v20190429 - CMIP7.CMIP.CCCma.CanESM5.piControl.r1i1p2f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190429 +cmip7_gn_CanESM5_r2i1p1f1: + cmip7: + - CMIP7.CMIP.CCCma.CanESM5.1pctCO2.r1i1p1f1.glb.fx.areacella.ti-u-hxy-u.gn.v20190429 + - CMIP7.CMIP.CCCma.CanESM5.1pctCO2.r2i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190429 + - CMIP7.CMIP.CCCma.CanESM5.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190429 +cmip7_gn_CanESM5_r2i1p2f1: + cmip7: + - CMIP7.CMIP.CCCma.CanESM5.1pctCO2.r1i1p1f1.glb.fx.areacella.ti-u-hxy-u.gn.v20190429 + - CMIP7.CMIP.CCCma.CanESM5.1pctCO2.r2i1p2f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190429 + - CMIP7.CMIP.CCCma.CanESM5.historical.r1i1p2f1.glb.fx.areacella.ti-u-hxy-u.gn.v20190429 + - CMIP7.CMIP.CCCma.CanESM5.piControl.r1i1p2f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190429 +cmip7_gn_CanESM5_r3i1p1f1: + cmip7: + - CMIP7.CMIP.CCCma.CanESM5.1pctCO2.r1i1p1f1.glb.fx.areacella.ti-u-hxy-u.gn.v20190429 + - CMIP7.CMIP.CCCma.CanESM5.1pctCO2.r3i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190429 + - CMIP7.CMIP.CCCma.CanESM5.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190429 +cmip7_gn_CanESM5_r3i1p2f1: + cmip7: + - CMIP7.CMIP.CCCma.CanESM5.1pctCO2.r1i1p1f1.glb.fx.areacella.ti-u-hxy-u.gn.v20190429 + - CMIP7.CMIP.CCCma.CanESM5.1pctCO2.r3i1p2f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190429 + - CMIP7.CMIP.CCCma.CanESM5.historical.r1i1p2f1.glb.fx.areacella.ti-u-hxy-u.gn.v20190429 + - CMIP7.CMIP.CCCma.CanESM5.piControl.r1i1p2f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190429 cmip7_gn_FGOALS-g3_r1i1p1f1: cmip7: - CMIP7.CMIP.CAS.FGOALS-g3.1pctCO2.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20191215 - CMIP7.CMIP.CAS.FGOALS-g3.historical.r1i1p1f1.glb.fx.areacella.ti-u-hxy-u.gn.v20210615 - CMIP7.CMIP.CAS.FGOALS-g3.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190818 +cmip7_gn_FGOALS-g3_r2i1p1f1: + cmip7: + - CMIP7.CMIP.CAS.FGOALS-g3.1pctCO2.r2i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20191222 + - CMIP7.CMIP.CAS.FGOALS-g3.historical.r1i1p1f1.glb.fx.areacella.ti-u-hxy-u.gn.v20210615 + - CMIP7.CMIP.CAS.FGOALS-g3.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190818 +cmip7_gn_FGOALS-g3_r3i1p1f1: + cmip7: + - CMIP7.CMIP.CAS.FGOALS-g3.1pctCO2.r3i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20191222 + - CMIP7.CMIP.CAS.FGOALS-g3.historical.r1i1p1f1.glb.fx.areacella.ti-u-hxy-u.gn.v20210615 + - CMIP7.CMIP.CAS.FGOALS-g3.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190818 cmip7_gn_FIO-ESM-2-0_r1i1p1f1: cmip7: - CMIP7.CMIP.FIO-QLNM.FIO-ESM-2-0.1pctCO2.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20200302 - CMIP7.CMIP.FIO-QLNM.FIO-ESM-2-0.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20191010 +cmip7_gn_FIO-ESM-2-0_r2i1p1f1: + cmip7: + - CMIP7.CMIP.FIO-QLNM.FIO-ESM-2-0.1pctCO2.r2i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20200302 + - CMIP7.CMIP.FIO-QLNM.FIO-ESM-2-0.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20191010 +cmip7_gn_FIO-ESM-2-0_r3i1p1f1: + cmip7: + - CMIP7.CMIP.FIO-QLNM.FIO-ESM-2-0.1pctCO2.r3i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20200302 + - CMIP7.CMIP.FIO-QLNM.FIO-ESM-2-0.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20191010 cmip7_gn_GISS-E2-1-G_r101i1p1f1: cmip7: - CMIP7.CMIP.NASA-GISS.GISS-E2-1-G.1pctCO2.r101i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190815 @@ -561,6 +605,26 @@ cmip7_gn_GISS-E2-2-H_r1i1p1f1: cmip7: - CMIP7.CMIP.NASA-GISS.GISS-E2-2-H.1pctCO2.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20191120 - CMIP7.CMIP.NASA-GISS.GISS-E2-2-H.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20191120 +cmip7_gn_HadGEM3-GC31-LL_r1i1p1f3: + cmip7: + - CMIP7.CMIP.MOHC.HadGEM3-GC31-LL.1pctCO2.r1i1p1f3.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190620 + - CMIP7.CMIP.MOHC.HadGEM3-GC31-LL.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20211103 +cmip7_gn_HadGEM3-GC31-LL_r2i1p1f3: + cmip7: + - CMIP7.CMIP.MOHC.HadGEM3-GC31-LL.1pctCO2.r2i1p1f3.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190724 + - CMIP7.CMIP.MOHC.HadGEM3-GC31-LL.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20211103 +cmip7_gn_HadGEM3-GC31-LL_r3i1p1f3: + cmip7: + - CMIP7.CMIP.MOHC.HadGEM3-GC31-LL.1pctCO2.r3i1p1f3.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190821 + - CMIP7.CMIP.MOHC.HadGEM3-GC31-LL.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20211103 +cmip7_gn_HadGEM3-GC31-LL_r4i1p1f3: + cmip7: + - CMIP7.CMIP.MOHC.HadGEM3-GC31-LL.1pctCO2.r4i1p1f3.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190821 + - CMIP7.CMIP.MOHC.HadGEM3-GC31-LL.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20211103 +cmip7_gn_HadGEM3-GC31-MM_r1i1p1f3: + cmip7: + - CMIP7.CMIP.MOHC.HadGEM3-GC31-MM.1pctCO2.r1i1p1f3.glb.mon.tas.tavg-h2m-hxy-u.gn.v20200115 + - CMIP7.CMIP.MOHC.HadGEM3-GC31-MM.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190920 cmip7_gn_ICON-ESM-LR_r1i1p1f1: cmip7: - CMIP7.CMIP.MPI-M.ICON-ESM-LR.1pctCO2.r1i1p1f1.glb.fx.areacella.ti-u-hxy-u.gn.v20220111 @@ -612,6 +676,9 @@ cmip7_gn_MRI-ESM2-0_r1i2p1f1: - CMIP7.CMIP.MRI.MRI-ESM2-0.1pctCO2.r1i1p1f1.glb.fx.areacella.ti-u-hxy-u.gn.v20190603 - CMIP7.CMIP.MRI.MRI-ESM2-0.1pctCO2.r1i2p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20191205 - CMIP7.CMIP.MRI.MRI-ESM2-0.piControl.r1i2p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20191205 +cmip7_gn_NESM3_r1i1p1f1: + cmip7: + - CMIP7.CMIP.NUIST.NESM3.1pctCO2.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190707 cmip7_gn_NorCPM1_r1i1p1f1: cmip7: - CMIP7.CMIP.NCC.NorCPM1.1pctCO2.r1i1p1f1.glb.fx.areacella.ti-u-hxy-u.gn.v20190914 @@ -644,6 +711,18 @@ cmip7_gn_UKESM1-0-LL_r1i1p1f2: cmip7: - CMIP7.CMIP.MOHC.UKESM1-0-LL.1pctCO2.r1i1p1f2.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190406 - CMIP7.CMIP.MOHC.UKESM1-0-LL.piControl.r1i1p1f2.glb.mon.tas.tavg-h2m-hxy-u.gn.v20200828 +cmip7_gn_UKESM1-0-LL_r2i1p1f2: + cmip7: + - CMIP7.CMIP.MOHC.UKESM1-0-LL.1pctCO2.r2i1p1f2.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190603 + - CMIP7.CMIP.MOHC.UKESM1-0-LL.piControl.r1i1p1f2.glb.mon.tas.tavg-h2m-hxy-u.gn.v20200828 +cmip7_gn_UKESM1-0-LL_r3i1p1f2: + cmip7: + - CMIP7.CMIP.MOHC.UKESM1-0-LL.1pctCO2.r3i1p1f2.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190604 + - CMIP7.CMIP.MOHC.UKESM1-0-LL.piControl.r1i1p1f2.glb.mon.tas.tavg-h2m-hxy-u.gn.v20200828 +cmip7_gn_UKESM1-0-LL_r4i1p1f2: + cmip7: + - CMIP7.CMIP.MOHC.UKESM1-0-LL.1pctCO2.r4i1p1f2.glb.mon.tas.tavg-h2m-hxy-u.gn.v20190604 + - CMIP7.CMIP.MOHC.UKESM1-0-LL.piControl.r1i1p1f2.glb.mon.tas.tavg-h2m-hxy-u.gn.v20200828 cmip7_gn_UKESM1-1-LL_r1i1p1f2: cmip7: - CMIP7.CMIP.MOHC.UKESM1-1-LL.1pctCO2.r1i1p1f2.glb.mon.tas.tavg-h2m-hxy-u.gn.v20220513 @@ -662,15 +741,6 @@ cmip7_gr1_KIOST-ESM_r1i1p1f1: cmip7: - CMIP7.CMIP.KIOST.KIOST-ESM.1pctCO2.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr1.v20210601 - CMIP7.CMIP.KIOST.KIOST-ESM.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr1.v20210329 -cmip7_gr_CIESM_r1i1p1f1: - cmip7: - - CMIP7.CMIP.THU.CIESM.1pctCO2.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20200417 - - CMIP7.CMIP.THU.CIESM.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20200417 -cmip7_gr_CNRM-CM6-1-HR_r1i1p1f2: - cmip7: - - CMIP7.CMIP.CNRM-CERFACS.CNRM-CM6-1-HR.1pctCO2.r1i1p1f2.glb.fx.areacella.ti-u-hxy-u.gr.v20191021 - - CMIP7.CMIP.CNRM-CERFACS.CNRM-CM6-1-HR.1pctCO2.r1i1p1f2.glb.mon.tas.tavg-h2m-hxy-u.gr.v20191021 - - CMIP7.CMIP.CNRM-CERFACS.CNRM-CM6-1-HR.piControl.r1i1p1f2.glb.mon.tas.tavg-h2m-hxy-u.gr.v20191021 cmip7_gr_CNRM-CM6-1_r1i1p1f2: cmip7: - CMIP7.CMIP.CNRM-CERFACS.CNRM-CM6-1.1pctCO2.r1i1p1f2.glb.fx.areacella.ti-u-hxy-u.gr.v20180626 @@ -724,10 +794,23 @@ cmip7_gr_EC-Earth3-Veg_r1i1p1f1: - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg.1pctCO2.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20200325 - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg.historical.r11i1p1f1.glb.fx.areacella.ti-u-hxy-u.gr.v20230203 - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3-Veg.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20210419 +cmip7_gr_EC-Earth3_r3i1p1f1: + cmip7: + - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3.1pctCO2.r3i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20210522 + - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3.historical.r1i1p1f1.glb.fx.areacella.ti-u-hxy-u.gr.v20210324 + - CMIP7.CMIP.EC-Earth-Consortium.EC-Earth3.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20200312 cmip7_gr_FGOALS-f3-L_r1i1p1f1: cmip7: - CMIP7.CMIP.CAS.FGOALS-f3-L.1pctCO2.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20200620 - CMIP7.CMIP.CAS.FGOALS-f3-L.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20191029 +cmip7_gr_FGOALS-f3-L_r2i1p1f1: + cmip7: + - CMIP7.CMIP.CAS.FGOALS-f3-L.1pctCO2.r2i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20200620 + - CMIP7.CMIP.CAS.FGOALS-f3-L.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20191029 +cmip7_gr_FGOALS-f3-L_r3i1p1f1: + cmip7: + - CMIP7.CMIP.CAS.FGOALS-f3-L.1pctCO2.r3i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20200620 + - CMIP7.CMIP.CAS.FGOALS-f3-L.piControl.r1i1p1f1.glb.mon.tas.tavg-h2m-hxy-u.gr.v20191029 cmip7_gr_IPSL-CM5A2-INCA_r1i1p1f1: cmip7: - CMIP7.CMIP.IPSL.IPSL-CM5A2-INCA.1pctCO2.r1i1p1f1.glb.fx.areacella.ti-u-hxy-u.gr.v20201218 From 48a2c3309395486efe301035ad5471a8dc749532 Mon Sep 17 00:00:00 2001 From: Manuel Schlund Date: Fri, 29 May 2026 15:20:38 +0200 Subject: [PATCH 5/6] Remove unused variable --- .../src/climate_ref_esmvaltool/diagnostics/tcr.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/tcr.py b/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/tcr.py index 22e678886..801b3ae63 100644 --- a/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/tcr.py +++ b/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/diagnostics/tcr.py @@ -33,11 +33,6 @@ class TransientClimateResponse(ESMValToolDiagnostic): slug = "transient-climate-response" base_recipe = "ref/recipe_ref_tcr.yml" - experiments = ( - "1pctCO2", - "piControl", - ) - data_requirements = ( ( DataRequirement( From e6cbe30a62a7068208898d03f67f89e385aaa000 Mon Sep 17 00:00:00 2001 From: Manuel Schlund Date: Fri, 29 May 2026 16:32:11 +0200 Subject: [PATCH 6/6] Use latest ESMValTool main commit --- .../climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py b/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py index 90d6ca7f0..3336bd95f 100644 --- a/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py +++ b/packages/climate-ref-esmvaltool/src/climate_ref_esmvaltool/recipe.py @@ -296,7 +296,7 @@ def get_child_and_parent_dataset( return [child_dataset, parent_dataset] -_ESMVALTOOL_COMMIT = "34bc49f3e1c04555d816341c5377033995168751" +_ESMVALTOOL_COMMIT = "0a9a986bd598f6d9334d8f480e03d57e456c3bb4" _ESMVALTOOL_VERSION = f"2.14.0.dev65+g{_ESMVALTOOL_COMMIT[:9]}" _ESMVALTOOL_URL = f"git+https://github.com/ESMValGroup/ESMValTool.git@{_ESMVALTOOL_COMMIT}"