diff --git a/.github/workflows/export-cmor-cvs-table.yaml b/.github/workflows/export-cmor-cvs-table.yaml index 45a453fa..abfdf3de 100644 --- a/.github/workflows/export-cmor-cvs-table.yaml +++ b/.github/workflows/export-cmor-cvs-table.yaml @@ -26,7 +26,7 @@ jobs: ESGVOC_REVISION: "5145b8f6d8b1859c663e63fb7b0bad952e8bc7b5" # Modify these as needed UNIVERSE_CVS_FORK: "znichollscr" - UNIVERSE_CVS_BRANCH: "add-abrupt-experiments" + UNIVERSE_CVS_BRANCH: "add-amip-experiments" CMIP7_CVS_FORK: ${{ github.event.pull_request.head.repo.owner.login }} CMIP7_CVS_BRANCH: ${{ github.head_ref || github.ref_name }} run: | diff --git a/activity/c4mip.json b/activity/c4mip.json index 649cb60b..2649ec9d 100644 --- a/activity/c4mip.json +++ b/activity/c4mip.json @@ -4,7 +4,10 @@ "type": "activity", "experiments": [ "1pctco2-bgc", - "1pctco2-rad" + "1pctco2-rad", + "esm-flat10", + "esm-flat10-cdr", + "esm-flat10-zec" ], "urls": [ "https://doi.org/10.5194/egusphere-2024-3356", diff --git a/activity/cfmip.json b/activity/cfmip.json index fec418e2..c649a203 100644 --- a/activity/cfmip.json +++ b/activity/cfmip.json @@ -4,7 +4,9 @@ "type": "activity", "experiments": [ "abrupt-0p5xco2", - "abrupt-2xco2" + "abrupt-2xco2", + "amip-p4k", + "amip-piforcing" ], "urls": [ "https://doi.org/10.5194/gmd-10-359-2017" diff --git a/activity/cmip.json b/activity/cmip.json index d5d88a24..7e96d153 100644 --- a/activity/cmip.json +++ b/activity/cmip.json @@ -4,7 +4,14 @@ "type": "activity", "experiments": [ "1pctco2", - "abrupt-4xco2" + "abrupt-4xco2", + "amip", + "esm-hist", + "esm-picontrol", + "esm-picontrol-spinup", + "historical", + "picontrol", + "picontrol-spinup" ], "urls": [ "https://doi.org/10.5194/gmd-18-6671-2025" diff --git a/activity/damip.json b/activity/damip.json new file mode 100644 index 00000000..2c99418a --- /dev/null +++ b/activity/damip.json @@ -0,0 +1,13 @@ +{ + "@context": "000_context.jsonld", + "id": "damip", + "type": "activity", + "experiments": [ + "hist-aer", + "hist-ghg", + "hist-nat" + ], + "urls": [ + "https://doi.org/10.5194/gmd-18-4399-2025" + ] +} diff --git a/activity/pmip.json b/activity/pmip.json new file mode 100644 index 00000000..c9a25f50 --- /dev/null +++ b/activity/pmip.json @@ -0,0 +1,12 @@ +{ + "@context": "000_context.jsonld", + "id": "pmip", + "type": "activity", + "experiments": [ + "abrupt-127k" + ], + "urls": [ + "https://doi.org/10.5194/cp-19-883-2023", + "https://doi.org/10.5194/gmd-10-3979-2017" + ] +} diff --git a/cmor-cvs.json b/cmor-cvs.json index 768057d7..63c21ae2 100644 --- a/cmor-cvs.json +++ b/cmor-cvs.json @@ -9,7 +9,9 @@ "activity_id": { "C4MIP": "Coupled climate carbon cycle model intercomparison project: exploration of the response of the coupled carbon-climate system.", "CFMIP": "Cloud feedback model intercomparison project. Focussed primarily on cloud feedbacks with a secondary focus on understanding of response to forcing, model biases, circulation, regional-scale precipitation, and non-linear changes.", - "CMIP": "CMIP core common experiments i.e. the DECK (Diagnostic, Evaluation and Characterization of Klima)", + "CMIP": "CMIP core common experiments i.e. the DECK (Diagnostic, Evaluation and Characterization of Klima).", + "DAMIP": "Detection and attribution model intercomparison project: exploration of the role of individual forcings (both anthropogenic and natural) in past and future climate change.", + "PMIP": "Palaeoclimate modelling intercomparison project: assessment of paleoclimate i.e. climate thousands of years or more in the past.", "ScenarioMIP": "Future scenario experiments. Exploration of the future climate under a (selected) range of possible boundary conditions" }, "area_label": { @@ -121,6 +123,24 @@ "start_year": "", "tier": 1 }, + "abrupt-127k": { + "activity_id": [ + "PMIP" + ], + "description": "Simulation to examine the response to orbital and greenhouse gas concentration changes associated with the last interglacial (127 000 years before present).", + "end_year": "", + "experiment": "Simulation to examine the response to orbital and greenhouse gas concentration changes associated with the last interglacial (127 000 years before present).", + "experiment_id": "abrupt-127k", + "min_number_yrs_per_sim": 100, + "parent_activity_id": [ + "CMIP" + ], + "parent_experiment_id": [ + "piControl" + ], + "start_year": "", + "tier": 1 + }, "abrupt-2xCO2": { "activity_id": [ "CFMIP" @@ -157,13 +177,109 @@ "start_year": "", "tier": 1 }, + "amip": { + "activity_id": [ + "CMIP" + ], + "description": "Simulation of the climate of the recent past with prescribed sea surface temperatures and sea ice concentrations.", + "end_year": 2021, + "experiment": "Simulation of the climate of the recent past with prescribed sea surface temperatures and sea ice concentrations.", + "experiment_id": "amip", + "min_number_yrs_per_sim": 43, + "parent_activity_id": [], + "parent_experiment_id": [], + "start_year": 1979, + "tier": 1 + }, + "amip-p4k": { + "activity_id": [ + "CFMIP" + ], + "description": "Same as `amip` simulation, except sea surface temperatures are increased by 4K in ice-free regions.", + "end_year": 2021, + "experiment": "Same as `amip` simulation, except sea surface temperatures are increased by 4K in ice-free regions.", + "experiment_id": "amip-p4k", + "min_number_yrs_per_sim": 43, + "parent_activity_id": [], + "parent_experiment_id": [], + "start_year": 1979, + "tier": 1 + }, + "amip-piForcing": { + "activity_id": [ + "CFMIP" + ], + "description": "Same as `amip` simulation, except it starts in 1870 and all forcings are set to pre-industrial levels rather than time-varying forcings.", + "end_year": 2021, + "experiment": "Same as `amip` simulation, except it starts in 1870 and all forcings are set to pre-industrial levels rather than time-varying forcings.", + "experiment_id": "amip-piForcing", + "min_number_yrs_per_sim": 152, + "parent_activity_id": [], + "parent_experiment_id": [], + "start_year": 1870, + "tier": 1 + }, + "esm-flat10": { + "activity_id": [ + "C4MIP" + ], + "description": "10 PgC / yr constant carbon dioxide emissions.", + "end_year": "", + "experiment": "10 PgC / yr constant carbon dioxide emissions.", + "experiment_id": "esm-flat10", + "min_number_yrs_per_sim": 100, + "parent_activity_id": [ + "CMIP" + ], + "parent_experiment_id": [ + "esm-piControl" + ], + "start_year": "", + "tier": 1 + }, + "esm-flat10-cdr": { + "activity_id": [ + "C4MIP" + ], + "description": "Extension of `esm-flat10` where emissions decline linearly to -10 PgC / yr then stay constant until cumulative emissions (including the emissions in `esm-flat10`) reach zero. An extra 20 years is included at the end to allow for calculating averages over different time windows.", + "end_year": "", + "experiment": "Extension of `esm-flat10` where emissions decline linearly to -10 PgC / yr then stay constant until cumulative emissions (including the emissions in `esm-flat10`) reach zero. An extra 20 years is included at the end to allow for calculating averages over different time windows.", + "experiment_id": "esm-flat10-cdr", + "min_number_yrs_per_sim": 220, + "parent_activity_id": [ + "C4MIP" + ], + "parent_experiment_id": [ + "esm-flat10" + ], + "start_year": "", + "tier": 1 + }, + "esm-flat10-zec": { + "activity_id": [ + "C4MIP" + ], + "description": "Extension of `esm-flat10` with zero emissions.", + "end_year": "", + "experiment": "Extension of `esm-flat10` with zero emissions.", + "experiment_id": "esm-flat10-zec", + "min_number_yrs_per_sim": 100, + "parent_activity_id": [ + "C4MIP" + ], + "parent_experiment_id": [ + "esm-flat10" + ], + "start_year": "", + "tier": 1 + }, "esm-hist": { "activity_id": [ "CMIP" ], - "description": "Simulation of the climate of the recent past (typically meaning 1850 to present-day) with prescribed CO2 emissions (for prescribed CO2 concentration runs, see `historical`)", + "description": "Simulation of the climate of the recent past (typically meaning 1850 to present-day) with prescribed carbon dioxide emissions (for prescribed carbon dioxide concentrations, see `historical`).", "end_year": 2021, - "experiment": "Simulation of the climate of the recent past (typically meaning 1850 to present-day) with prescribed CO2 emissions (for prescribed CO2 concentration runs, see `historical`)", + "experiment": "Simulation of the climate of the recent past (typically meaning 1850 to present-day) with prescribed carbon dioxide emissions (for prescribed carbon dioxide concentrations, see `historical`).", "experiment_id": "esm-hist", "min_number_yrs_per_sim": 172, "parent_activity_id": [ @@ -179,11 +295,11 @@ "activity_id": [ "CMIP" ], - "description": "Pre-industrial control simulation with prescribed CO2 emissions (for pre-industrial control with prescribed CO2 concentrations, see `piControl`). Used to characterise natural variability and unforced behaviour.", + "description": "Pre-industrial control simulation with prescribed carbon dioxide emissions (for prescribed carbon dioxide concentrations, see `piControl`). Used to characterise natural variability and unforced behaviour.", "end_year": "", - "experiment": "Pre-industrial control simulation with prescribed CO2 emissions (for pre-industrial control with prescribed CO2 concentrations, see `piControl`). Used to characterise natural variability and unforced behaviour.", + "experiment": "Pre-industrial control simulation with prescribed carbon dioxide emissions (for prescribed carbon dioxide concentrations, see `piControl`). Used to characterise natural variability and unforced behaviour.", "experiment_id": "esm-piControl", - "min_number_yrs_per_sim": 500, + "min_number_yrs_per_sim": 400, "parent_activity_id": [ "CMIP" ], @@ -197,15 +313,15 @@ "activity_id": [ "CMIP" ], - "description": "Pre-industrial control spin-up simulation with prescribed CO2 emissions (for spin-up with prescribed CO2 concentrations, see `piControl-spinup`). Used to get the model into a state of approximate radiative equilibrium before starting the piControl simulation.", + "description": "Spin-up simulation. Used to get the model into a state of approximate radiative equilibrium before starting the `esm-piControl` simulation.", "end_year": "", - "experiment": "Pre-industrial control spin-up simulation with prescribed CO2 emissions (for spin-up with prescribed CO2 concentrations, see `piControl-spinup`). Used to get the model into a state of approximate radiative equilibrium before starting the piControl simulation.", + "experiment": "Spin-up simulation. Used to get the model into a state of approximate radiative equilibrium before starting the `esm-piControl` simulation.", "experiment_id": "esm-piControl-spinup", "min_number_yrs_per_sim": "", "parent_activity_id": [], "parent_experiment_id": [], "start_year": "", - "tier": 1 + "tier": 3 }, "esm-scen7-h": { "activity_id": [ @@ -459,13 +575,67 @@ "start_year": 2100, "tier": 0 }, + "hist-GHG": { + "activity_id": [ + "DAMIP" + ], + "description": "Response to historical aerosol forcing (with extension using forcings from the `m` scenario simulation). All other conditions are kept the same as piControl.", + "end_year": 2035, + "experiment": "Response to historical aerosol forcing (with extension using forcings from the `m` scenario simulation). All other conditions are kept the same as piControl.", + "experiment_id": "hist-GHG", + "min_number_yrs_per_sim": 186, + "parent_activity_id": [ + "CMIP" + ], + "parent_experiment_id": [ + "piControl" + ], + "start_year": 1850, + "tier": 1 + }, + "hist-aer": { + "activity_id": [ + "DAMIP" + ], + "description": "Response to historical aerosol forcing (with extension using forcings from the `m` scenario simulation). All other conditions are kept the same as piControl.", + "end_year": 2035, + "experiment": "Response to historical aerosol forcing (with extension using forcings from the `m` scenario simulation). All other conditions are kept the same as piControl.", + "experiment_id": "hist-aer", + "min_number_yrs_per_sim": 186, + "parent_activity_id": [ + "CMIP" + ], + "parent_experiment_id": [ + "piControl" + ], + "start_year": 1850, + "tier": 1 + }, + "hist-nat": { + "activity_id": [ + "DAMIP" + ], + "description": "Response to historical aerosol forcing (with extension using forcings from the `m` scenario simulation). All other conditions are kept the same as piControl.", + "end_year": 2035, + "experiment": "Response to historical aerosol forcing (with extension using forcings from the `m` scenario simulation). All other conditions are kept the same as piControl.", + "experiment_id": "hist-nat", + "min_number_yrs_per_sim": 186, + "parent_activity_id": [ + "CMIP" + ], + "parent_experiment_id": [ + "piControl" + ], + "start_year": 1850, + "tier": 1 + }, "historical": { "activity_id": [ "CMIP" ], - "description": "Simulation of the climate of the recent past (typically meaning 1850 to present-day)", + "description": "Simulation of the climate of the recent past (typically meaning 1850 to present-day) with prescribed carbon dioxide concentrations (for prescribed carbon dioxide emissions, see `esm-hist`).", "end_year": 2021, - "experiment": "Simulation of the climate of the recent past (typically meaning 1850 to present-day)", + "experiment": "Simulation of the climate of the recent past (typically meaning 1850 to present-day) with prescribed carbon dioxide concentrations (for prescribed carbon dioxide emissions, see `esm-hist`).", "experiment_id": "historical", "min_number_yrs_per_sim": 172, "parent_activity_id": [ @@ -481,11 +651,11 @@ "activity_id": [ "CMIP" ], - "description": "Pre-industrial control simulation. Used to characterise natural variability and unforced behaviour.", + "description": "Pre-industrial control simulation with prescribed carbon dioxide concentrations (for prescribed carbon dioxide emissions, see `esm-piControl`). Used to characterise natural variability and unforced behaviour.", "end_year": "", - "experiment": "Pre-industrial control simulation. Used to characterise natural variability and unforced behaviour.", + "experiment": "Pre-industrial control simulation with prescribed carbon dioxide concentrations (for prescribed carbon dioxide emissions, see `esm-piControl`). Used to characterise natural variability and unforced behaviour.", "experiment_id": "piControl", - "min_number_yrs_per_sim": 500, + "min_number_yrs_per_sim": 400, "parent_activity_id": [ "CMIP" ], @@ -499,15 +669,15 @@ "activity_id": [ "CMIP" ], - "description": "Pre-industrial control spin-up simulation. Used to get the model into a state of approximate radiative equilibrium before starting the piControl simulation.", + "description": "Spin-up simulation. Used to get the model into a state of approximate radiative equilibrium before starting the `piControl` simulation.", "end_year": "", - "experiment": "Pre-industrial control spin-up simulation. Used to get the model into a state of approximate radiative equilibrium before starting the piControl simulation.", + "experiment": "Spin-up simulation. Used to get the model into a state of approximate radiative equilibrium before starting the `piControl` simulation.", "experiment_id": "piControl-spinup", "min_number_yrs_per_sim": "", "parent_activity_id": [], "parent_experiment_id": [], "start_year": "", - "tier": 1 + "tier": 3 }, "scen7-h": { "activity_id": [ diff --git a/create-cmor-cvs-table-export-environment.sh b/create-cmor-cvs-table-export-environment.sh index c0f3f60b..ae7fc28d 100644 --- a/create-cmor-cvs-table-export-environment.sh +++ b/create-cmor-cvs-table-export-environment.sh @@ -7,9 +7,9 @@ python3.13 -m venv venv ESGVOC_FORK="znichollscr" ESGVOC_REVISION="5145b8f6d8b1859c663e63fb7b0bad952e8bc7b5" UNIVERSE_CVS_FORK="znichollscr" -UNIVERSE_CVS_BRANCH="add-abrupt-experiments" +UNIVERSE_CVS_BRANCH="add-amip-experiments" CMIP7_CVS_FORK="znichollscr" -CMIP7_CVS_BRANCH="add-abrupt-experiments" +CMIP7_CVS_BRANCH="add-amip-experiments" venv/bin/pip install -r requirements-cmor-cvs-table.txt venv/bin/pip install --no-deps "git+https://github.com/$ESGVOC_FORK/esgf-vocab.git@$ESGVOC_REVISION" diff --git a/experiment/abrupt-127k.json b/experiment/abrupt-127k.json new file mode 100644 index 00000000..f670c043 --- /dev/null +++ b/experiment/abrupt-127k.json @@ -0,0 +1,8 @@ +{ + "@context": "000_context.jsonld", + "id": "abrupt-127k", + "type": "experiment", + "min_number_yrs_per_sim": 100.0, + "parent_mip_era": "cmip7", + "tier": 1 +} diff --git a/experiment/amip-p4k.json b/experiment/amip-p4k.json new file mode 100644 index 00000000..e6ca3dcd --- /dev/null +++ b/experiment/amip-p4k.json @@ -0,0 +1,10 @@ +{ + "@context": "000_context.jsonld", + "id": "amip-p4k", + "type": "experiment", + "start_timestamp": "1979-01-01", + "end_timestamp": "2021-12-31", + "min_number_yrs_per_sim": 43.0, + "parent_mip_era": "cmip7", + "tier": 1 +} diff --git a/experiment/amip-piforcing.json b/experiment/amip-piforcing.json new file mode 100644 index 00000000..5cef2a14 --- /dev/null +++ b/experiment/amip-piforcing.json @@ -0,0 +1,10 @@ +{ + "@context": "000_context.jsonld", + "id": "amip-piforcing", + "type": "experiment", + "start_timestamp": "1870-01-01", + "end_timestamp": "2021-12-31", + "min_number_yrs_per_sim": 152.0, + "parent_mip_era": "cmip7", + "tier": 1 +} diff --git a/experiment/amip.json b/experiment/amip.json new file mode 100644 index 00000000..36a93ce4 --- /dev/null +++ b/experiment/amip.json @@ -0,0 +1,10 @@ +{ + "@context": "000_context.jsonld", + "id": "amip", + "type": "experiment", + "start_timestamp": "1979-01-01", + "end_timestamp": "2021-12-31", + "min_number_yrs_per_sim": 43.0, + "parent_mip_era": "cmip7", + "tier": 1 +} diff --git a/experiment/esm-flat10-cdr.json b/experiment/esm-flat10-cdr.json new file mode 100644 index 00000000..60364fd9 --- /dev/null +++ b/experiment/esm-flat10-cdr.json @@ -0,0 +1,7 @@ +{ + "@context": "000_context.jsonld", + "id": "esm-flat10-cdr", + "type": "experiment", + "parent_mip_era": "cmip7", + "tier": 1 +} diff --git a/experiment/esm-flat10-zec.json b/experiment/esm-flat10-zec.json new file mode 100644 index 00000000..fc7fb752 --- /dev/null +++ b/experiment/esm-flat10-zec.json @@ -0,0 +1,7 @@ +{ + "@context": "000_context.jsonld", + "id": "esm-flat10-zec", + "type": "experiment", + "parent_mip_era": "cmip7", + "tier": 1 +} diff --git a/experiment/esm-flat10.json b/experiment/esm-flat10.json new file mode 100644 index 00000000..5790474f --- /dev/null +++ b/experiment/esm-flat10.json @@ -0,0 +1,7 @@ +{ + "@context": "000_context.jsonld", + "id": "esm-flat10", + "type": "experiment", + "parent_mip_era": "cmip7", + "tier": 1 +} diff --git a/experiment/esm-hist.json b/experiment/esm-hist.json index f222c439..d874c8cf 100644 --- a/experiment/esm-hist.json +++ b/experiment/esm-hist.json @@ -2,8 +2,9 @@ "@context": "000_context.jsonld", "id": "esm-hist", "type": "experiment", + "start_timestamp": "1850-01-01", "end_timestamp": "2021-12-31", - "min_number_yrs_per_sim": 172, + "min_number_yrs_per_sim": 172.0, "parent_mip_era": "cmip7", "tier": 1 } diff --git a/experiment/esm-picontrol-spinup.json b/experiment/esm-picontrol-spinup.json index 6092a1e7..de2c58bd 100644 --- a/experiment/esm-picontrol-spinup.json +++ b/experiment/esm-picontrol-spinup.json @@ -1,5 +1,8 @@ { "@context": "000_context.jsonld", "id": "esm-picontrol-spinup", - "type": "experiment" + "type": "experiment", + "min_number_yrs_per_sim": null, + "parent_mip_era": null, + "tier": 3 } diff --git a/experiment/esm-picontrol.json b/experiment/esm-picontrol.json index 9c6c3de1..74ebea2f 100644 --- a/experiment/esm-picontrol.json +++ b/experiment/esm-picontrol.json @@ -2,6 +2,7 @@ "@context": "000_context.jsonld", "id": "esm-picontrol", "type": "experiment", + "min_number_yrs_per_sim": 400.0, "parent_mip_era": "cmip7", "tier": 1 } diff --git a/experiment/hist-aer.json b/experiment/hist-aer.json new file mode 100644 index 00000000..4e29cb29 --- /dev/null +++ b/experiment/hist-aer.json @@ -0,0 +1,12 @@ +{ + "@context": "000_context.jsonld", + "id": "hist-aer", + "type": "experiment", + "description": "Response to historical aerosol forcing (with extension using forcings from the `m` scenario simulation). All other conditions are kept the same as piControl.", + "start_timestamp": "1850-01-01", + "end_timestamp": "2035-12-31", + "min_number_yrs_per_sim": 186.0, + "min_ensemble_size": 3, + "parent_mip_era": "cmip7", + "tier": 1 +} diff --git a/experiment/hist-ghg.json b/experiment/hist-ghg.json new file mode 100644 index 00000000..8f8096a2 --- /dev/null +++ b/experiment/hist-ghg.json @@ -0,0 +1,12 @@ +{ + "@context": "000_context.jsonld", + "id": "hist-ghg", + "type": "experiment", + "description": "Response to historical aerosol forcing (with extension using forcings from the `m` scenario simulation). All other conditions are kept the same as piControl.", + "start_timestamp": "1850-01-01", + "end_timestamp": "2035-12-31", + "min_number_yrs_per_sim": 186.0, + "min_ensemble_size": 3, + "parent_mip_era": "cmip7", + "tier": 1 +} diff --git a/experiment/hist-nat.json b/experiment/hist-nat.json new file mode 100644 index 00000000..76f42c67 --- /dev/null +++ b/experiment/hist-nat.json @@ -0,0 +1,12 @@ +{ + "@context": "000_context.jsonld", + "id": "hist-nat", + "type": "experiment", + "description": "Response to historical aerosol forcing (with extension using forcings from the `m` scenario simulation). All other conditions are kept the same as piControl.", + "start_timestamp": "1850-01-01", + "end_timestamp": "2035-12-31", + "min_number_yrs_per_sim": 186.0, + "min_ensemble_size": 3, + "parent_mip_era": "cmip7", + "tier": 1 +} diff --git a/experiment/historical.json b/experiment/historical.json index 9403afc0..8b736345 100644 --- a/experiment/historical.json +++ b/experiment/historical.json @@ -2,8 +2,9 @@ "@context": "000_context.jsonld", "id": "historical", "type": "experiment", + "start_timestamp": "1850-01-01", "end_timestamp": "2021-12-31", - "min_number_yrs_per_sim": 172, + "min_number_yrs_per_sim": 172.0, "parent_mip_era": "cmip7", "tier": 1 } diff --git a/experiment/picontrol-spinup.json b/experiment/picontrol-spinup.json index 2f4686f4..3cf40116 100644 --- a/experiment/picontrol-spinup.json +++ b/experiment/picontrol-spinup.json @@ -1,5 +1,8 @@ { "@context": "000_context.jsonld", "id": "picontrol-spinup", - "type": "experiment" + "type": "experiment", + "min_number_yrs_per_sim": null, + "parent_mip_era": null, + "tier": 3 } diff --git a/experiment/picontrol.json b/experiment/picontrol.json index 3cacf332..1ff67182 100644 --- a/experiment/picontrol.json +++ b/experiment/picontrol.json @@ -2,6 +2,7 @@ "@context": "000_context.jsonld", "id": "picontrol", "type": "experiment", + "min_number_yrs_per_sim": 400.0, "parent_mip_era": "cmip7", "tier": 1 }