Repository: ESMValGroup/ESMValTool
Pull request #3891: Add recipe for seasonal cycle and time series of Arctic/Antarctic sea ice area (REF)
Author: login: axel-lauer
Labels: name: approved by technical reviewer
name: approved by scientific reviewer
name: REF
description: Important for the CMIP Rapid Evaluation Framework (REF)
Created: 2025-01-29T08:58:17Z | Merged: 2025-03-28T10:38:49Z

## Description

This PR add the recipe `ref/recipe_ref_sea_ice_area_basic.yml` to calculate the seasonal cycle of Arctic and Antarctic sea ice area as well as time series of the Arctic September and Antarctic February sea ice area for REF.

The new recipe requires
- the updated reference dataset OSI-450 (#3963)

- Closes #3890
 
## Checklist

It is the responsibility of the author to make sure the pull request is ready to review. The icons indicate whether the item will be subject to the [🛠 Technical][1] or [🧪 Scientific][2] review.

<!-- The next two lines turn the 🛠 and 🧪 below into hyperlinks -->
[1]: https://docs.esmvaltool.org/en/latest/community/review.html#technical-review
[2]: https://docs.esmvaltool.org/en/latest/community/review.html#scientific-review

- [x] [🛠][1] This pull request has a [descriptive title](https://docs.esmvaltool.org/en/latest/community/code_documentation.html#pull-request-title)
- [x] [🛠][1] Code is written according to the [code quality guidelines](https://docs.esmvaltool.org/en/latest/community/code_documentation.html#code-quality)
- [x] [🛠][1] [Documentation](https://docs.esmvaltool.org/en/latest/community/code_documentation.html#documentation) is available
- [x] [🛠][1] [Tests](https://docs.esmvaltool.org/en/latest/community/code_documentation.html#tests) run successfully
- [x] [🛠][1] The [list of authors](https://docs.esmvaltool.org/en/latest/community/code_documentation.html#list-of-authors) is up to date
- [x] [🛠][1] Any changed dependencies have been [added or removed correctly](https://docs.esmvaltool.org/en/latest/community/code_documentation.html#dependencies)
- [x] [🛠][1] All [checks below this pull request](https://docs.esmvaltool.org/en/latest/community/code_documentation.html#pull-request-checks) were successful

### [New or updated recipe/diagnostic](https://docs.esmvaltool.org/en/latest/community/diagnostic.html)

- [x] [🧪][2] [Recipe runs successfully](https://docs.esmvaltool.org/en/latest/community/diagnostic.html#testing-recipes)
- [x] [🧪][2] [Recipe is well documented](https://docs.esmvaltool.org/en/latest/community/diagnostic.html#recipe-and-diagnostic-documentation)
- [x] [🧪][2] [Figure(s) and data](https://docs.esmvaltool.org/en/latest/community/diagnostic.html#diagnostic-output) look as expected from literature
- [x] [🛠][1] [Provenance information](https://docs.esmvaltool.org/en/latest/community/diagnostic.html#recording-provenance) has been added


Linked issue #3890: Arctic/Antarctic sea ice extent (seasonal cycle) REF
This recipe adds a seasonal cycle diagnostic for the Arctic and Antarctic sea ice area as well as time series for the Arctic September and Antarctic March sea ice area.

The new recipe (#3891) requires:

- the updated OSI-450 (aka OSISAF/CCI) sea ice concentrations: #[3963](https://github.com/ESMValGroup/ESMValTool/pull/3963)

Pull request: https://github.com/ESMValGroup/ESMValTool/pull/3891
Linked issue comments: user: login: TomLav
created_at: 2025-03-13T12:15:05Z
body: Dear ESMValTool community,

I am the PI for the ESA CCI Sea Ice Concentration data (https://github.com/ESMValGroup/ESMValTool/pull/3821) and the [OSISAF/CCI Sea Ice Concentration](https://github.com/PCMDI/obs4MIPs-cmor-tables/issues/375) data.

I am trying to get these two datasets (with a priority on the OSISAF/CCI data) into the REF. So far, I have been told to upload my data through Obs4MIPS and ESGF and I will continue this effort. At the same time, it is now clear to me that the two sea-ice metrics of REF will be implemented through ESMValTool, so it is relevant for me to find out what is already in place and how will the metric work from my files in practice.

I have some questions:

The OSISAF/CCI Sea Ice data is longer and more up-to-date than the ESACCI-SEAICE data and would be a more natural choice for REF. Both have the same file format (except the grid is 25km, not 12.5km). Could the [CMORizer for ESACCI-SEAICE](https://github.com/ESMValGroup/ESMValTool/pull/3821) be re-used for the OSISAF/CCI dataset?

Once the CMORizer has run on my data, could they be published as-is via Obs4MIPS on the ESGF or are they for internal use in ESMValTool?

I am happy to move this dicussion to emails or another github issue if preferable.

I am looking forward to help if I can
Thomas
author_association: NONE
user: login: axel-lauer
created_at: 2025-03-13T14:10:34Z
body: So far, we thought about using the ESACCI-SEAICE dataset ("High(er) Resolution Sea Ice Concentration Climate Data Record Version 3 (SSM/I and SSMIS) from the ESA CCI+", version 3.0). If the format of the OSISAF data is the same (except for horizontal resolution), adapting the existing reformatting script should be quite simple.

Is there a preferred download option for these data? I could then give this a try.

The data reformatted for ESMValTool is a "CMOR-like" format that is already quite close to the obs4MIPs format. We would have to check what is needed to get the metadata to fully comply with the obs4MIPs specifications. At the moment, ESMValTool uses the obs4MIPs CMOR tables v2.1 (I believe), so that would need to be updated to v2.5. @ESMValGroup/technical-lead-development-team would such an update of the obs4MIPs CMOR tables be easy to do?
author_association: CONTRIBUTOR
user: login: TomLav
created_at: 2025-03-13T14:28:19Z
body: > So far, we thought about using the ESACCI-SEAICE dataset ("High(er) Resolution Sea Ice Concentration Climate Data Record Version 3 (SSM/I and SSMIS) from the ESA CCI+", version 3.0).

The ESACCI-SEAICE dataset will be a great choice when wanting to assess higher (spatial and temporal) resolution simulations. But it is currently limited to 1991-2020 with no committed extension. Ideally you will keep related software in the repo for future use beyond REF.

The OSISAF/CCI covers 1978-present and is continuously updated. Its previous version was also used in CMIP6 and AR6.

>If the format of the OSISAF data is the same (except for horizontal resolution), adapting the existing reformatting script should be quite simple. 
> Is there a preferred download option for these data? I could then give this a try.

Thank you. I appreciate that you want to give this a try first. The data can be accessed either via anonymous ftp:
ftp://osisaf.met.no/reprocessed/ice/conc/v3p0
or through opendap/thredds:
https://thredds.met.no/thredds/catalog/osisaf/met.no/reprocessed/ice/conc_450a_files/catalog.html

The OSISAF/CCI dataset has both daily .nc files (similar to the ESACCI-SEAICE) but also monthly SIC mean files (under monthly/). This choice will depend on what the ESMValTool will do the metric : compute daily sea-ice area then monthly sea-ice area, or compute monthly sea-ice concentration, then monthly sea-ice area.

Let me know if I can help further.

> The data reformatted for ESMValTool is a "CMOR-like" format that is already quite close to the obs4MIPs format. We would have to check what is needed to get the metadata to fully comply with the obs4MIPs specifications. At the moment, ESMValTool uses the obs4MIPs CMOR tables v2.1 (I believe), so that would need to be updated to v2.5. @ESMValGroup/technical-lead-development-team would such an update of the obs4MIPs CMOR tables be easy to do?

I understand. I certainly don't want to put extra work on your shoulders right now. I was asking out of curiosity as I am a bit lost between CMOR, ODS, obs4MIPS, etc...
author_association: NONE
user: login: TomLav
created_at: 2025-03-14T08:14:35Z
body: Also, if I may, in order to help the community keep track of the different SIC datasets produced in Europe (no only sea-ice concentration), I would suggest that the "ESACCI-SEAICE" dataset is renamed to "SICCI-HR-SIC" in ESMValTool. SICCI-HR-SIC is how we (the data producer) refer to this dataset in publications and reports.

SICCI-HR-SIC:
"SICCI" = "Sea Ice CCI", "HR" = "High(er) Resolution", "SIC" = "Sea Ice Concentration". 

Thank you.
author_association: NONE
user: login: bouweandela
created_at: 2025-03-21T18:24:15Z
body: > @ESMValGroup/technical-lead-development-team would such an update of the obs4MIPs CMOR tables be easy to do?

Yes, we would just need to copy an up to date version of the tables into ESMValCore and make a release. To use a newer version of the tables without changing ESMValCore, you could use the [`cmor_path` variable in the config-developer.yml file](https://docs.esmvaltool.org/projects/ESMValCore/en/latest/quickstart/configure.html#developer-configuration-file) to point to a newer version of the tables.
author_association: MEMBER
user: login: bouweandela
created_at: 2025-03-21T18:26:30Z
body: > We would have to check what is needed to get the metadata to fully comply with the obs4MIPs specifications. 

I expect we will mostly need to add the ability to add the required global NetCDF attributes to the files. I started working on facilitating that in #3960.
author_association: MEMBER
user: login: bouweandela
created_at: 2025-03-21T18:32:51Z
body: > At the moment, ESMValTool uses the obs4MIPs CMOR tables v2.1 (I believe), so that would need to be updated to v2.5. 

Our copy of the obs4MIPs CMOR tables appears to be rather dated (6 years old), see [here](https://github.com/ESMValGroup/ESMValCore/tree/main/esmvalcore/cmor/tables/obs4mips).
author_association: MEMBER
user: login: axel-lauer
created_at: 2025-03-24T12:12:46Z
body: I updated our CMORizer for the OSISAF/CCI datasets (aka OSI-450) to handle version 3 ([#3963](https://github.com/ESMValGroup/ESMValTool/pull/3963)). These data are now used as reference data in the basic sea ice diagnostics for REF ([#3891](https://github.com/ESMValGroup/ESMValTool/pull/3891)).
author_association: CONTRIBUTOR

Diff:
diff --git a/doc/sphinx/source/recipes/figures/ref/annual_cycle_sea_ice_area_nh_ambiguous_dataset_ambiguous_mip_historical_r1i1p1f1.png b/doc/sphinx/source/recipes/figures/ref/annual_cycle_sea_ice_area_nh_ambiguous_dataset_ambiguous_mip_historical_r1i1p1f1.png
new file mode 100644
index 0000000000..b0f1804898
Binary files /dev/null and b/doc/sphinx/source/recipes/figures/ref/annual_cycle_sea_ice_area_nh_ambiguous_dataset_ambiguous_mip_historical_r1i1p1f1.png differ
diff --git a/doc/sphinx/source/recipes/figures/ref/timeseries_sea_ice_area_nh_sep_ambiguous_dataset_ambiguous_mip_historical_r1i1p1f1.png b/doc/sphinx/source/recipes/figures/ref/timeseries_sea_ice_area_nh_sep_ambiguous_dataset_ambiguous_mip_historical_r1i1p1f1.png
new file mode 100644
index 0000000000..56e69b2109
Binary files /dev/null and b/doc/sphinx/source/recipes/figures/ref/timeseries_sea_ice_area_nh_sep_ambiguous_dataset_ambiguous_mip_historical_r1i1p1f1.png differ
diff --git a/doc/sphinx/source/recipes/recipe_ref.rst b/doc/sphinx/source/recipes/recipe_ref.rst
index 9730656db2..aa0d3b2e08 100644
--- a/doc/sphinx/source/recipes/recipe_ref.rst
+++ b/doc/sphinx/source/recipes/recipe_ref.rst
@@ -25,6 +25,9 @@ Recipes are stored in recipes
   Maps and zonal means of longwave and shortwave cloud radiative effect
 * ref/recipe_ref_scatterplot.yml:
   2D histograms with focus on clouds
+* ref/recipe_ref_sea_ice_area_basic.yml:
+  Seasonal cycle of Arctic (NH) and Antarctic (SH) sea ice area, time series
+  of Arctic September (NH) and Antarctic February (SH) sea ice area
 
 
 Example plots:
@@ -45,9 +48,24 @@ Example plots:
    effect from CERES-EBAF Ed4.2 (solid black), ESACCI-CLOUD (dashed black),
    ISCCP-FH (dotted black) and the MPI-ESM1-2-LR model (blue).
 
-.. _fig_ref_3:
 .. figure::  /recipes/figures/ref/seaborn_jointplot.png
    :align:   center
 
    2D histogram of total cloud fraction (ESACCI-CLOUD) and shortwave cloud radiative
    effect (CERES-EBAF) for the years 2001-2016 with 1D histograms attached.
+
+.. _fig_ref_4:
+.. figure::  /recipes/figures/ref/annual_cycle_sea_ice_area_nh_ambiguous_dataset_ambiguous_mip_historical_r1i1p1f1.png
+   :align:   center
+   :width:   8cm
+
+   Average seasonal cycle of the Arctic (NH) sea ice area from MPI-ESM1-2-LR
+   (red line) compared with OSISAF/CCI (blue line). Created with recipe_ref_sea_ice_area_basic.yml.
+
+.. _fig_ref_5:
+.. figure::  /recipes/figures/ref/timeseries_sea_ice_area_nh_sep_ambiguous_dataset_ambiguous_mip_historical_r1i1p1f1.png
+   :align:   center
+   :width:   8cm
+
+   Time series of Arctic (NH) September (NH) sea ice area from MPI-ESM1-2-LR
+   (red line) compared with OSISAF/CCI (blue line). Created with recipe_ref_sea_ice_area_basic.yml.
diff --git a/esmvaltool/recipes/ref/recipe_ref_sea_ice_area_basic.yml b/esmvaltool/recipes/ref/recipe_ref_sea_ice_area_basic.yml
new file mode 100644
index 0000000000..236c03a20b
--- /dev/null
+++ b/esmvaltool/recipes/ref/recipe_ref_sea_ice_area_basic.yml
@@ -0,0 +1,154 @@
+# ESMValTool
+---
+documentation:
+  title: Seasonal cycle of NH/SH sea ice area
+  description: >
+    Plots of the seasonal cycle and time series of NH and SH sea ice area.
+  authors:
+    - lauer_axel
+  maintainer:
+    - lauer_axel
+
+
+datasets:
+  - {dataset: MPI-ESM1-2-LR, grid: gn, benchmark_dataset: true}  # example model
+
+preprocessors:
+
+  pp_nh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_nh_sep:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    extract_month:
+      month: 9
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh_feb:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    extract_month:
+      month: 2
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+
+diagnostics:
+
+  siarea_seas:
+    description: Create seasonal cycle plot of sea ice area.
+    variables:
+      sea_ice_area_nh: &var_basic
+        short_name: siconc
+        timerange: '1995/2014'
+        preprocessor: pp_nh
+        project: CMIP6
+        mip: SImon
+        exp: historical
+        ensemble: r1i1p1f1
+        grid: gr
+        reference_dataset: OSI-450-nh
+        additional_datasets:
+        - {dataset: OSI-450-nh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+      sea_ice_area_sh:
+        <<: *var_basic
+        preprocessor: pp_sh
+        reference_dataset: OSI-450-sh
+        additional_datasets:
+        - {dataset: OSI-450-sh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+    scripts:
+      allplots:
+        script: monitor/multi_datasets.py
+        plot_folder: '{plot_dir}'
+        group_variables_by: variable_group
+        facet_used_for_labels: dataset
+        plots:
+          annual_cycle: &plot_basic
+            annual_mean_kwargs: False
+            pyplot_kwargs:
+              title: 'Sea ice area (million km2)'
+            plot_kwargs:
+              OSI-450-nh:
+                color: blue
+                label: 'OSISAF/CCI'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 3
+              OSI-450-sh:
+                color: blue
+                label: 'OSISAF/CCI'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 3
+              default:
+                color: red
+                label: '{dataset}'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 4
+
+  siarea_min:
+    description: Create time series of September/February sea ice area.
+    variables:
+      sea_ice_area_nh_sep:
+        <<: *var_basic
+        timerange: '1979/2014'
+        preprocessor: pp_nh_sep
+        reference_dataset: OSI-450-nh
+        additional_datasets:
+        - {dataset: OSI-450-nh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}], timerange: 1979/2020}
+      sea_ice_area_sh_feb:
+        <<: *var_basic
+        timerange: '1979/2014'
+        preprocessor: pp_sh_feb
+        reference_dataset: OSI-450-sh
+        additional_datasets:
+        - {dataset: OSI-450-sh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}], timerange: 1979/2020}
+    scripts:
+      allplots:
+        script: monitor/multi_datasets.py
+        plot_folder: '{plot_dir}'
+        group_variables_by: variable_group
+        facet_used_for_labels: dataset
+        plots:
+          timeseries:
+            <<: *plot_basic
diff --git a/esmvaltool/references/osi-450.bibtex b/esmvaltool/references/osi-450.bibtex
index 79fcde3384..5fdcff90b7 100644
--- a/esmvaltool/references/osi-450.bibtex
+++ b/esmvaltool/references/osi-450.bibtex
@@ -1,10 +1,10 @@
 @misc{osi-450,
-  doi = {10.15770/EUM_SAF_OSI_0008},
-  url = {https://navigator.eumetsat.int/product/EO:EUM:DAT:MULT:OSI-450},
+  doi = {10.15770/EUM_SAF_OSI_0013},
+  url = {https://user.eumetsat.int/catalogue/EO:EUM:DAT:0826},
   author = {{OSI SAF}},
   keywords = {Climate,  Thematic Climate Data Record,  Ocean,  Sea Ice},
   language = {en},
-  title = {Global Sea Ice Concentration Climate Data Record v2.0 - Multimission},
+  title = {Global Sea Ice Concentration Climate Data Record v3.0 - Multimission},
   publisher = {OSI SAF},
-  year = {2017}
+  year = {2022}
 }


Reviews:
user: login: hb326
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-27T11:56:27Z
user: login: hb326
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-27T11:57:25Z
user: login: hb326
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-27T12:08:03Z
user: login: hb326
body: Thanks @hb326 for the review. I addressed your three comments in this commit: https://github.com/ESMValGroup/ESMValTool/pull/3891/commits/87b2ad56a5c9812c2550abae22bbb3972e310d09
state: CHANGES_REQUESTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-27T12:10:15Z
user: login: axel-lauer
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-27T12:54:54Z
user: login: axel-lauer
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-27T12:55:11Z
user: login: axel-lauer
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-27T12:56:21Z
user: login: hb326
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-27T14:07:22Z
user: login: hb326
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-27T14:07:33Z
user: login: hb326
body: @axel-lauer: thanks for the changes!
Looks good to me now.
👍  
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-27T14:08:47Z
user: login: schlunma
body: Thanks Axel, recipe looks good and works perfectly fine 🚀 

Could you please solve the merge conflict?
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-28T08:48:06Z
user: login: schlunma
body: Great, thanks @axel-lauer and everyone for contributing. This can be merged 🚀 
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-28T10:38:20Z

Review comments:
diff_hunk: @@ -0,0 +1,168 @@
+# ESMValTool
+---
+documentation:
+  title: Seasonal cycle of NH/SH sea ice area
+  description: >
+    Example plot of the seasonal cycle of NH and SH sea ice area (here: CMIP6 model MPI-ESM1-2-LR).
+  authors:
+    - lauer_axel
+  maintainer:
+    - lauer_axel
+
+
+datasets:
+  - {dataset: MPI-ESM1-2-LR, grid: gn, benchmark_dataset: true}
+
+preprocessors:
+
+  pp_nh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_nh_sep:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    extract_month:
+      month: 9
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh_feb:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    extract_month:
+      month: 2
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+
+diagnostics:
+
+  siarea_seas:
+    description: Create seasonal cycle plot of sea ice area.
+    variables:
+      sea_ice_area_nh: &var_basic
+        short_name: siconc
+        timerange: '1995/2014'
+        preprocessor: pp_nh
+        project: CMIP6
+        mip: SImon
+        exp: historical
+        ensemble: r1i1p1f1
+        grid: gr
+        reference_dataset: OSI-450-nh
+        additional_datasets:
+        - {dataset: OSI-450-nh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+#        - {dataset: ESACCI-SEAICE, project: OBS6, tier: 2, type: sat, version: L4-SICONC-RE-SSMI-12.5kmEASE2-fv3.0-SH,
+#           supplementary_variables: [{short_name: areacello, mip: Ofx}]}
+      sea_ice_area_sh:
path: esmvaltool/recipes/ref/recipe_ref_sea_ice_area_basic.yml
user: login: hb326
body: Can these commented out lines be removed?
created_at: 2025-03-27T11:56:26Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,168 @@
+# ESMValTool
+---
+documentation:
+  title: Seasonal cycle of NH/SH sea ice area
+  description: >
+    Example plot of the seasonal cycle of NH and SH sea ice area (here: CMIP6 model MPI-ESM1-2-LR).
+  authors:
+    - lauer_axel
+  maintainer:
+    - lauer_axel
+
+
+datasets:
+  - {dataset: MPI-ESM1-2-LR, grid: gn, benchmark_dataset: true}
+
+preprocessors:
+
+  pp_nh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_nh_sep:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    extract_month:
+      month: 9
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh_feb:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    extract_month:
+      month: 2
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+
+diagnostics:
+
+  siarea_seas:
+    description: Create seasonal cycle plot of sea ice area.
+    variables:
+      sea_ice_area_nh: &var_basic
+        short_name: siconc
+        timerange: '1995/2014'
+        preprocessor: pp_nh
+        project: CMIP6
+        mip: SImon
+        exp: historical
+        ensemble: r1i1p1f1
+        grid: gr
+        reference_dataset: OSI-450-nh
+        additional_datasets:
+        - {dataset: OSI-450-nh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+#        - {dataset: ESACCI-SEAICE, project: OBS6, tier: 2, type: sat, version: L4-SICONC-RE-SSMI-12.5kmEASE2-fv3.0-SH,
+#           supplementary_variables: [{short_name: areacello, mip: Ofx}]}
+      sea_ice_area_sh:
+        <<: *var_basic
+        preprocessor: pp_sh
+        reference_dataset: OSI-450-sh
+        additional_datasets:
+        - {dataset: OSI-450-sh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+    scripts:
+      allplots:
+        script: monitor/multi_datasets.py
+        plot_folder: '{plot_dir}'
+        group_variables_by: variable_group
+        facet_used_for_labels: dataset
+        plots:
+          annual_cycle: &plot_basic
+            annual_mean_kwargs: False
+            pyplot_kwargs:
+              title: 'Sea ice area (million km2)'
+            plot_kwargs:
+              'MPI-ESM1-2-LR':
+                color: red
+                label: '{dataset}'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 4
+              ESACCI-SEAICE:
+                color: black
+                label: '{dataset}'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 3
+              OSI-450-nh:
+                color: blue
+                label: 'OSISAF/CCI'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 3
+              OSI-450-sh:
+                color: blue
+                label: 'OSISAF/CCI'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 3
+              default:
+                color: lightgray
+                label: null
+                linestyle: '-'
+                linewidth: 1
+                zorder: 1
+
+  siarea_min:
+    description: Create time series of September/March sea ice area.
+    variables:
path: esmvaltool/recipes/ref/recipe_ref_sea_ice_area_basic.yml
user: login: hb326
body: I think this should be "Create time series of September/February sea ice area"
created_at: 2025-03-27T11:57:25Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,168 @@
+# ESMValTool
+---
+documentation:
+  title: Seasonal cycle of NH/SH sea ice area
+  description: >
+    Example plot of the seasonal cycle of NH and SH sea ice area (here: CMIP6 model MPI-ESM1-2-LR).
+  authors:
+    - lauer_axel
+  maintainer:
+    - lauer_axel
+
+
+datasets:
+  - {dataset: MPI-ESM1-2-LR, grid: gn, benchmark_dataset: true}
+
+preprocessors:
+
+  pp_nh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_nh_sep:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    extract_month:
+      month: 9
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh_feb:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    extract_month:
+      month: 2
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+
+diagnostics:
+
+  siarea_seas:
+    description: Create seasonal cycle plot of sea ice area.
+    variables:
+      sea_ice_area_nh: &var_basic
+        short_name: siconc
+        timerange: '1995/2014'
+        preprocessor: pp_nh
+        project: CMIP6
+        mip: SImon
+        exp: historical
+        ensemble: r1i1p1f1
+        grid: gr
+        reference_dataset: OSI-450-nh
+        additional_datasets:
+        - {dataset: OSI-450-nh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+#        - {dataset: ESACCI-SEAICE, project: OBS6, tier: 2, type: sat, version: L4-SICONC-RE-SSMI-12.5kmEASE2-fv3.0-SH,
+#           supplementary_variables: [{short_name: areacello, mip: Ofx}]}
+      sea_ice_area_sh:
+        <<: *var_basic
+        preprocessor: pp_sh
+        reference_dataset: OSI-450-sh
+        additional_datasets:
+        - {dataset: OSI-450-sh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+    scripts:
+      allplots:
+        script: monitor/multi_datasets.py
+        plot_folder: '{plot_dir}'
+        group_variables_by: variable_group
+        facet_used_for_labels: dataset
+        plots:
+          annual_cycle: &plot_basic
+            annual_mean_kwargs: False
+            pyplot_kwargs:
+              title: 'Sea ice area (million km2)'
+            plot_kwargs:
+              'MPI-ESM1-2-LR':
path: esmvaltool/recipes/ref/recipe_ref_sea_ice_area_basic.yml
user: login: hb326
body: Do we want this to be hard-coded? It probably would need to be a little more flexible when implemented in the REF so that it just refers to the model that is used.
created_at: 2025-03-27T12:08:03Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,168 @@
+# ESMValTool
+---
+documentation:
+  title: Seasonal cycle of NH/SH sea ice area
+  description: >
+    Example plot of the seasonal cycle of NH and SH sea ice area (here: CMIP6 model MPI-ESM1-2-LR).
+  authors:
+    - lauer_axel
+  maintainer:
+    - lauer_axel
+
+
+datasets:
+  - {dataset: MPI-ESM1-2-LR, grid: gn, benchmark_dataset: true}
+
+preprocessors:
+
+  pp_nh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_nh_sep:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    extract_month:
+      month: 9
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh_feb:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    extract_month:
+      month: 2
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+
+diagnostics:
+
+  siarea_seas:
+    description: Create seasonal cycle plot of sea ice area.
+    variables:
+      sea_ice_area_nh: &var_basic
+        short_name: siconc
+        timerange: '1995/2014'
+        preprocessor: pp_nh
+        project: CMIP6
+        mip: SImon
+        exp: historical
+        ensemble: r1i1p1f1
+        grid: gr
+        reference_dataset: OSI-450-nh
+        additional_datasets:
+        - {dataset: OSI-450-nh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+#        - {dataset: ESACCI-SEAICE, project: OBS6, tier: 2, type: sat, version: L4-SICONC-RE-SSMI-12.5kmEASE2-fv3.0-SH,
+#           supplementary_variables: [{short_name: areacello, mip: Ofx}]}
+      sea_ice_area_sh:
+        <<: *var_basic
+        preprocessor: pp_sh
+        reference_dataset: OSI-450-sh
+        additional_datasets:
+        - {dataset: OSI-450-sh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+    scripts:
+      allplots:
+        script: monitor/multi_datasets.py
+        plot_folder: '{plot_dir}'
+        group_variables_by: variable_group
+        facet_used_for_labels: dataset
+        plots:
+          annual_cycle: &plot_basic
+            annual_mean_kwargs: False
+            pyplot_kwargs:
+              title: 'Sea ice area (million km2)'
+            plot_kwargs:
+              'MPI-ESM1-2-LR':
+                color: red
+                label: '{dataset}'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 4
+              ESACCI-SEAICE:
+                color: black
+                label: '{dataset}'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 3
+              OSI-450-nh:
+                color: blue
+                label: 'OSISAF/CCI'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 3
+              OSI-450-sh:
+                color: blue
+                label: 'OSISAF/CCI'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 3
+              default:
+                color: lightgray
+                label: null
+                linestyle: '-'
+                linewidth: 1
+                zorder: 1
+
+  siarea_min:
+    description: Create time series of September/March sea ice area.
+    variables:
path: esmvaltool/recipes/ref/recipe_ref_sea_ice_area_basic.yml
user: login: axel-lauer
body: Thanks for spotting this. Changed here: https://github.com/ESMValGroup/ESMValTool/pull/3891/commits/87b2ad56a5c9812c2550abae22bbb3972e310d09
created_at: 2025-03-27T12:54:54Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,168 @@
+# ESMValTool
+---
+documentation:
+  title: Seasonal cycle of NH/SH sea ice area
+  description: >
+    Example plot of the seasonal cycle of NH and SH sea ice area (here: CMIP6 model MPI-ESM1-2-LR).
+  authors:
+    - lauer_axel
+  maintainer:
+    - lauer_axel
+
+
+datasets:
+  - {dataset: MPI-ESM1-2-LR, grid: gn, benchmark_dataset: true}
+
+preprocessors:
+
+  pp_nh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_nh_sep:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    extract_month:
+      month: 9
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh_feb:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    extract_month:
+      month: 2
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+
+diagnostics:
+
+  siarea_seas:
+    description: Create seasonal cycle plot of sea ice area.
+    variables:
+      sea_ice_area_nh: &var_basic
+        short_name: siconc
+        timerange: '1995/2014'
+        preprocessor: pp_nh
+        project: CMIP6
+        mip: SImon
+        exp: historical
+        ensemble: r1i1p1f1
+        grid: gr
+        reference_dataset: OSI-450-nh
+        additional_datasets:
+        - {dataset: OSI-450-nh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+#        - {dataset: ESACCI-SEAICE, project: OBS6, tier: 2, type: sat, version: L4-SICONC-RE-SSMI-12.5kmEASE2-fv3.0-SH,
+#           supplementary_variables: [{short_name: areacello, mip: Ofx}]}
+      sea_ice_area_sh:
path: esmvaltool/recipes/ref/recipe_ref_sea_ice_area_basic.yml
user: login: axel-lauer
body: Yes, lines removed: https://github.com/ESMValGroup/ESMValTool/pull/3891/commits/87b2ad56a5c9812c2550abae22bbb3972e310d09
created_at: 2025-03-27T12:55:11Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,168 @@
+# ESMValTool
+---
+documentation:
+  title: Seasonal cycle of NH/SH sea ice area
+  description: >
+    Example plot of the seasonal cycle of NH and SH sea ice area (here: CMIP6 model MPI-ESM1-2-LR).
+  authors:
+    - lauer_axel
+  maintainer:
+    - lauer_axel
+
+
+datasets:
+  - {dataset: MPI-ESM1-2-LR, grid: gn, benchmark_dataset: true}
+
+preprocessors:
+
+  pp_nh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_nh_sep:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    extract_month:
+      month: 9
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh_feb:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    extract_month:
+      month: 2
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+
+diagnostics:
+
+  siarea_seas:
+    description: Create seasonal cycle plot of sea ice area.
+    variables:
+      sea_ice_area_nh: &var_basic
+        short_name: siconc
+        timerange: '1995/2014'
+        preprocessor: pp_nh
+        project: CMIP6
+        mip: SImon
+        exp: historical
+        ensemble: r1i1p1f1
+        grid: gr
+        reference_dataset: OSI-450-nh
+        additional_datasets:
+        - {dataset: OSI-450-nh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+#        - {dataset: ESACCI-SEAICE, project: OBS6, tier: 2, type: sat, version: L4-SICONC-RE-SSMI-12.5kmEASE2-fv3.0-SH,
+#           supplementary_variables: [{short_name: areacello, mip: Ofx}]}
+      sea_ice_area_sh:
+        <<: *var_basic
+        preprocessor: pp_sh
+        reference_dataset: OSI-450-sh
+        additional_datasets:
+        - {dataset: OSI-450-sh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+    scripts:
+      allplots:
+        script: monitor/multi_datasets.py
+        plot_folder: '{plot_dir}'
+        group_variables_by: variable_group
+        facet_used_for_labels: dataset
+        plots:
+          annual_cycle: &plot_basic
+            annual_mean_kwargs: False
+            pyplot_kwargs:
+              title: 'Sea ice area (million km2)'
+            plot_kwargs:
+              'MPI-ESM1-2-LR':
path: esmvaltool/recipes/ref/recipe_ref_sea_ice_area_basic.yml
user: login: axel-lauer
body: Good point. Changed here: https://github.com/ESMValGroup/ESMValTool/pull/3891/commits/87b2ad56a5c9812c2550abae22bbb3972e310d09
created_at: 2025-03-27T12:56:20Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,168 @@
+# ESMValTool
+---
+documentation:
+  title: Seasonal cycle of NH/SH sea ice area
+  description: >
+    Example plot of the seasonal cycle of NH and SH sea ice area (here: CMIP6 model MPI-ESM1-2-LR).
+  authors:
+    - lauer_axel
+  maintainer:
+    - lauer_axel
+
+
+datasets:
+  - {dataset: MPI-ESM1-2-LR, grid: gn, benchmark_dataset: true}
+
+preprocessors:
+
+  pp_nh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_nh_sep:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    extract_month:
+      month: 9
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh_feb:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    extract_month:
+      month: 2
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+
+diagnostics:
+
+  siarea_seas:
+    description: Create seasonal cycle plot of sea ice area.
+    variables:
+      sea_ice_area_nh: &var_basic
+        short_name: siconc
+        timerange: '1995/2014'
+        preprocessor: pp_nh
+        project: CMIP6
+        mip: SImon
+        exp: historical
+        ensemble: r1i1p1f1
+        grid: gr
+        reference_dataset: OSI-450-nh
+        additional_datasets:
+        - {dataset: OSI-450-nh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+#        - {dataset: ESACCI-SEAICE, project: OBS6, tier: 2, type: sat, version: L4-SICONC-RE-SSMI-12.5kmEASE2-fv3.0-SH,
+#           supplementary_variables: [{short_name: areacello, mip: Ofx}]}
+      sea_ice_area_sh:
path: esmvaltool/recipes/ref/recipe_ref_sea_ice_area_basic.yml
user: login: hb326
body: Perfect.
created_at: 2025-03-27T14:07:21Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,168 @@
+# ESMValTool
+---
+documentation:
+  title: Seasonal cycle of NH/SH sea ice area
+  description: >
+    Example plot of the seasonal cycle of NH and SH sea ice area (here: CMIP6 model MPI-ESM1-2-LR).
+  authors:
+    - lauer_axel
+  maintainer:
+    - lauer_axel
+
+
+datasets:
+  - {dataset: MPI-ESM1-2-LR, grid: gn, benchmark_dataset: true}
+
+preprocessors:
+
+  pp_nh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_nh_sep:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: 30
+      end_latitude: 90
+    extract_month:
+      month: 9
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    climate_statistics:
+      period: month
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+  pp_sh_feb:
+    extract_region:
+      start_longitude: 0
+      end_longitude: 360
+      start_latitude: -90
+      end_latitude: -30
+    extract_month:
+      month: 2
+    area_statistics:
+      operator: sum
+    convert_units:
+      units: 1e6 km2
+
+
+diagnostics:
+
+  siarea_seas:
+    description: Create seasonal cycle plot of sea ice area.
+    variables:
+      sea_ice_area_nh: &var_basic
+        short_name: siconc
+        timerange: '1995/2014'
+        preprocessor: pp_nh
+        project: CMIP6
+        mip: SImon
+        exp: historical
+        ensemble: r1i1p1f1
+        grid: gr
+        reference_dataset: OSI-450-nh
+        additional_datasets:
+        - {dataset: OSI-450-nh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+#        - {dataset: ESACCI-SEAICE, project: OBS6, tier: 2, type: sat, version: L4-SICONC-RE-SSMI-12.5kmEASE2-fv3.0-SH,
+#           supplementary_variables: [{short_name: areacello, mip: Ofx}]}
+      sea_ice_area_sh:
+        <<: *var_basic
+        preprocessor: pp_sh
+        reference_dataset: OSI-450-sh
+        additional_datasets:
+        - {dataset: OSI-450-sh, project: OBS, type: reanaly, version: v3, mip: OImon, tier: 2,
+           supplementary_variables: [{short_name: areacello, mip: fx}]}
+    scripts:
+      allplots:
+        script: monitor/multi_datasets.py
+        plot_folder: '{plot_dir}'
+        group_variables_by: variable_group
+        facet_used_for_labels: dataset
+        plots:
+          annual_cycle: &plot_basic
+            annual_mean_kwargs: False
+            pyplot_kwargs:
+              title: 'Sea ice area (million km2)'
+            plot_kwargs:
+              'MPI-ESM1-2-LR':
+                color: red
+                label: '{dataset}'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 4
+              ESACCI-SEAICE:
+                color: black
+                label: '{dataset}'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 3
+              OSI-450-nh:
+                color: blue
+                label: 'OSISAF/CCI'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 3
+              OSI-450-sh:
+                color: blue
+                label: 'OSISAF/CCI'
+                linestyle: '-'
+                linewidth: 2
+                zorder: 3
+              default:
+                color: lightgray
+                label: null
+                linestyle: '-'
+                linewidth: 1
+                zorder: 1
+
+  siarea_min:
+    description: Create time series of September/March sea ice area.
+    variables:
path: esmvaltool/recipes/ref/recipe_ref_sea_ice_area_basic.yml
user: login: hb326
body: Great.
created_at: 2025-03-27T14:07:33Z
author_association: CONTRIBUTOR

PR comments:
user: login: TomLav
created_at: 2025-03-13T12:20:44Z
body: Hello, I am the PI for the ESACCI-SEAICE dataset. I am also the PI for another dataset (OSISAF/CCI) that is longer and more up-to-date (although coarser resolution).

I would suggest that the OSISAF/CCI dataset is used as a reference dataset by REF. Can I help getting the OSISAF/CCI dataset as reference for the two REF sea-ice metrics in ESMValTool?

The file format of ESACCI-SEAICE and OSISAF/CCI are identical, except for the filename convention, and the grid spacing (12.5km for ESACCI-SEAICE, and 25km for OSISAF/CCI).
author_association: NONE
user: login: axel-lauer
created_at: 2025-03-21T12:22:11Z
body: I am adding sea ice area to the recipes. I am also running an updated version of the OSI-450 CMORizer to create the OSISAF/CCI v3.0 dataset for this recipe.
author_association: CONTRIBUTOR
user: login: TomLav
created_at: 2025-03-24T09:24:37Z
body: Hello @axel-lauer,

Thank you for your work bringing our data into ESMValTool

I do not know ESMValTool enough to find the information myself in the code, but I am wondering:
* does this recipe start from daily SIC files, then computes daily sea-ice area, before averaging these to monthly SIA?
* is the full range of sea-ice concentration considered when computing SIA or only SIC>=15% (it is better to have the full range)
* is the recipe limited to 1995-2014? is it a REF or CMIP standard? the OSISAF/CCI dataset covers 1979-present
* could the resulting SIA be referred / labelled with the "OSISAF/CCI" name?
author_association: NONE
user: login: axel-lauer
created_at: 2025-03-24T12:24:25Z
body: > Thank you for your work bringing our data into ESMValTool

Thanks for pointing us to the new dataset. I just opened a pull request to update the OSISAF/CCI (aka OSI-450) from version 2 to version 3 (https://github.com/ESMValGroup/ESMValTool/pull/3963).

> I do not know ESMValTool enough to find the information myself in the code, but I am wondering:
> 
> * does this recipe start from daily SIC files, then computes daily sea-ice area, before averaging these to monthly SIA?

The REF recipe uses the monthly means directly.

> * is the full range of sea-ice concentration considered when computing SIA or only SIC>=15% (it is better to have the full range)

At first, we used sea ice extent (SIC >= 15%) but we now changed this to sea ice area (calculated as the sum of the sea ice fraction in each grid cell multiplied by the grid cell area).

> * is the recipe limited to 1995-2014? is it a REF or CMIP standard? the OSISAF/CCI dataset covers 1979-present

The time period 1995-2014 is currently used for calculation of the average seasonal cycle and matches the last 20 years of data from the historical CMIP6 simulations. This could be adjusted once the first CMIP7 data are available. The newly added time series of Arctic September and Antarctic March sea ice area cover the full period of the OSISAF/CCI dataset (1979-2020).

> * could the resulting SIA be referred / labelled with the "OSISAF/CCI" name?

Sure, I changed this in the plots produced by basic sea ice diagnostics for REF (recipe_ref_sea_ice_area_basic.yml) (https://github.com/ESMValGroup/ESMValTool/pull/3891).
author_association: CONTRIBUTOR
user: login: TomLav
created_at: 2025-03-24T12:41:12Z
body: > The newly added time series of Arctic September and Antarctic March sea ice area cover the full period of the OSISAF/CCI dataset (1979-2020).

FYI: the OSI-450 CDR covers 1979-2020. It is extended from 01.01.2021 to present with our Interim CDR. The Interim CDR has codename OSI-430, its sea-ice area can be appended to OSI-450 under the label "OSISAF/CCI". The OSI-430 files have exactly the same format as OSI-450, but are found in a separate location:

- https://thredds.met.no/thredds/catalog/osisaf/met.no/reprocessed/ice/conc_cra_files/monthly/catalog.html
- ftp://osisaf.met.no/reprocessed/ice/conc-cont-reproc/v3p0/monthly

This in case you want to append more recent years to the SIA timeseries.

> The newly added time series of Arctic September and Antarctic **March**

We usually consider that **February** is the month with minimum yearly sea-ice area in the Antarctic (but March might be a decision by CMIP or REF).

![image](https://github.com/user-attachments/assets/93289a56-4f78-4d6e-b85e-55583a06160e)

author_association: NONE
user: login: TomLav
created_at: 2025-03-24T12:54:12Z
body: >> does this recipe start from daily SIC files, then computes daily sea-ice area, before averaging these to monthly SIA?

> The REF recipe uses the monthly means directly.

The original monthly SIC data is on equal area 25x25km grid, so the area of all grid cells is 625km^2. Also, the grid cells with a valid (non-NaN) SIC have no fractional land, so the whole (625km^2 * SIC) contributes to SIC (no need to weight with Ofx).

Sorry if the above is obvious, I just want to double-check the computation that goes to REF.
author_association: NONE
user: login: axel-lauer
created_at: 2025-03-24T13:10:51Z
body: > FYI: the OSI-450 CDR covers 1979-2020. It is extended from 01.01.2021 to present with our Interim CDR. The Interim CDR has codename OSI-430, its sea-ice area can be appended to OSI-450 under the label "OSISAF/CCI". The OSI-430 files have exactly the same format as OSI-450, but are found in a separate location:

So far, we did not use ICDR values as we were afraid it would be quite hard to keep track of which actual data has been used in case the ICDR record gets updated.

> > The newly added time series of Arctic September and Antarctic **March**
> 
> We usually consider that **February** is the month with minimum yearly sea-ice area in the Antarctic (but March might be a decision by CMIP or REF).

Thanks for spotting this. I just changed the time series of Antarctic sea ice area from March to February (https://github.com/ESMValGroup/ESMValTool/pull/3891/commits/5d26b0826519f370aef918654b6ebf3ff27faf87).
author_association: CONTRIBUTOR
user: login: axel-lauer
created_at: 2025-03-24T13:20:29Z
body: > > > does this recipe start from daily SIC files, then computes daily sea-ice area, before averaging these to monthly SIA?
> 
> > The REF recipe uses the monthly means directly.
> 
> The original monthly SIC data is on equal area 25x25km grid, so the area of all grid cells is 625km^2. Also, the grid cells with a valid (non-NaN) SIC have no fractional land, so the whole (625km^2 * SIC) contributes to SIC (no need to weight with Ofx).

The data remain on their native 25x25 km grid. For irregular grids (i.e. 2-dim latitude and longitude values), ESMValTool usually simply uses the grid cell areas (here "areacello") provided for the particular grid for calculations instead of trying to estimate the grid cell areas. Even though in case of OSISAF/CCI, all values of the field areacello are constant (625 km^2), having such a "fx" file makes running ESMValTool easier.
author_association: CONTRIBUTOR
user: login: TomLav
created_at: 2025-03-24T13:42:40Z
body: Thank you for answering my questions @axel-lauer .

In case you want to check the results of the present recipe, we distribute a monthly sea-ice area product from OSI-450/OSI-430:

- NH: https://thredds.met.no/thredds/catalog/osisaf/met.no/ice/index/v2p2/nh/catalog.html?dataset=osisaf/met.no/ice/index/v2p2/nh/osisaf_nh_sia_monthly.nc
- SH: https://thredds.met.no/thredds/catalog/osisaf/met.no/ice/index/v2p2/sh/catalog.html?dataset=osisaf/met.no/ice/index/v2p2/sh/osisaf_sh_sia_monthly.nc

Others than that I have nothing to add :) 
author_association: NONE
user: login: axel-lauer
created_at: 2025-03-28T08:54:25Z
body: > Could you please solve the merge conflict?

Done!


author_association: CONTRIBUTOR
user: login: TomLav
created_at: 2025-03-28T09:09:39Z
body: Just a comment to say that I am positively impressed by the process of developing this metric, and the fact that it involved an assigned scientific reviewer (and a scientific review period).

This is probably not the right place to make such a suggestion, but I would still put down that (when possible) the scientific review should also involve the PI of the observation dataset. Both because we can help accessing and using the data, but also because we are then aware of the use in ESMValTool and can inform when changes or new version are made. 

As a matter of fact, I can inform you that a new (bug-fix) release of the OSISAF/CCI dataset is underway that will (marginally) change the sea-ice areas computed with this recipe. This will be v3.1 (OSI-450-a1) that should be released in the next month. The sea-ice area computed by the current recipe (from v3.0) are **perfectly ok for scientific exploitation by REF** and other users. But the new ones (from v3.1) will be marginally better.

It is fine for me if you want to close this PR and I open an issue later when the OSISAF/CCI v3.1 is released. 
author_association: NONE
user: login: axel-lauer
created_at: 2025-03-28T10:22:27Z
body: > This is probably not the right place to make such a suggestion, but I would still put down that (when possible) the scientific review should also involve the PI of the observation dataset. Both because we can help accessing and using the data, but also because we are then aware of the use in ESMValTool and can inform when changes or new version are made.

That's a very good idea. In most cases, though, dataset PIs are unfortunately not available for this task. So thanks for sharing your expertise with us here!!

> As a matter of fact, I can inform you that a new (bug-fix) release of the OSISAF/CCI dataset is underway that will (marginally) change the sea-ice areas computed with this recipe. This will be v3.1 (OSI-450-a1) that should be released in the next month. The sea-ice area computed by the current recipe (from v3.0) are **perfectly ok for scientific exploitation by REF** and other users. But the new ones (from v3.1) will be marginally better.

Thanks for letting us know. From the ESMValTool side, it would be very easy to switch from v3.0 to v3.1 once available. But I am not sure the tight REF schedule allows for waiting for v3.1. We will check how it would work to update recipes or reference datasets at a later stage.

> It is fine for me if you want to close this PR and I open an issue later when the OSISAF/CCI v3.1 is released.

That would be great and we would be very happy to hear about v3.1 once the dataset is released.
author_association: CONTRIBUTOR