Adding basic impact diagnostics - #4427
Conversation
LisaBock
left a comment
There was a problem hiding this comment.
Thanks @lauracasp for this great diagnostics! It looks already quite good to me.
My comments are:
- I think, it would be helpful to include the used threshold in the output filename. Then it would be possible to collect all output files in the end in one directory.
- There are a lot empty files in the recipe. You can delete some of them.
- Other comments are below.
|
Thank you for the review and the suggestions! These should be implemented now, except for the .zenodo.json file, I will do that tomorrow. |
|
Thanks @lauracasp for all the changes! Yes, I agree the folder structure is good as it is. There are two more open comments regarding the files |
|
@LisaBock thanks! Both of the comments should also be resolved now. |
LisaBock
left a comment
There was a problem hiding this comment.
Thanks @lauracasp ! Looks fine now to me!
schlunma
left a comment
There was a problem hiding this comment.
Thanks @lauracasp, looks great already! 🚀
I have a couple of (mostly minor) comments no the code, mostly about the figure caption and the ORAS5 dataset.
| Available recipes and diagnostics | ||
| --------------------------------- | ||
|
|
||
| Recipes are stored in `recipes/climatic_impact-drivers` |
There was a problem hiding this comment.
| Recipes are stored in `recipes/climatic_impact-drivers` | |
| Recipes are stored in `recipes/climatic_impact_drivers` |
To be consistent with other diagnostics, please use underscores in directory names
| A full list of all possible configuration options that can be specified in the | ||
| recipe is given at the beginning of the diagnostic script (see previous section). |
There was a problem hiding this comment.
There's a relative easy way to link the docstring of you diagnostic script here. For example, this is done in #4565:
The important files here are
- doc/sphinx/source/api/esmvaltool.diag_scripts.tropopause.cpt_hovmoeller.rst
- doc/sphinx/source/api/esmvaltool.rst
You can link to the diagnostic in the recipe documentation via
:ref:`cpt_hovmoeller.py <api.esmvaltool.diag_scripts.tropopause.cpt_hovmoeller>`
There was a problem hiding this comment.
What do "max", "mean", and "min" mean in this context? From what I understand, you're calculating the number of days where 40C is exceeded for each year and grid cell, and then calculate the max, mean, and min across all grid cells? Is that correct? If yes, I would remove the "Average" (why does it show max if it says "Average") and "at some point" (suggests you're looking at a single grid cell) from the plot title.
| Supported pre-processing options | ||
| -------------------------------- | ||
| - ``threshold_conversion``: Replace the given dataset by the count of | ||
| on how many days the data exceeds a | ||
| certian threshold at some point of time. |
There was a problem hiding this comment.
Why did you choose to put this into a separate options setting? I think it would be simpler to just add this to the other recipe configuration options below without the additional options layer.
| if cube.coords("day_of_year"): | ||
| msg = "Reusing already aggregated cube" | ||
| warnings.warn(msg, UserWarning, stacklevel=2) |
There was a problem hiding this comment.
Some of our preprocessors may add this coordinate without calculating a threshold (e.g., daily_statistics), so this is rather dangerous. It might be better to check if the long name already contains "Average number of days per year on which the"
|
|
||
| plot_sst: | ||
| additional_datasets: | ||
| - {dataset: ORAS5, project: native6, mip: Omon, type: OBS6, version: 'CONS_v0.1', tier: 2, ugrid: false, var_name: tos, raw_name: sosstsst, raw_units: deg_C, supplementary_variables: [{short_name: areacello, skip: true},{short_name: sftof, skip: true}], horizontal_grid: /work/bd1083/b382555/extraobsraw/Tier2/ORAS5/grids/oras5_mesh_T.nc, reference_for_monitor_diags: true} |
There was a problem hiding this comment.
I would suggest either replacing ORAS5 with another dataset if possible or removing this variable altogether. Having absolute paths in a published recipe is never a good idea (the recipe won't run on other machines than Levante), and there is no way to use ORAS5 without explicitly specifying a horizontal grid (which IMHO is really bad):
This comment applies to all appearances of ORAS5 in both recipes.
There was a problem hiding this comment.
I just had another look at this. Turns out the grid file can be given relative to the auxiliary_data_dir, which at least avoids having to specify absolute paths in recipes. Nevertheless, we would need to set up a proper ORAS5 directory in our OBS pool on Levante (and on other machines in the future, too) before we can include this so that this recipe can be run without special configuration settings @ESMValGroup/obs-maintainers. This should have been done before merging ESMValGroup/ESMValCore#2422.
Co-authored-by: Manuel Schlund <32543114+schlunma@users.noreply.github.com>
…_with_threshold.py Co-authored-by: Manuel Schlund <32543114+schlunma@users.noreply.github.com>
…_with_threshold.py Co-authored-by: Manuel Schlund <32543114+schlunma@users.noreply.github.com>
…_with_threshold.py Co-authored-by: Manuel Schlund <32543114+schlunma@users.noreply.github.com>
Description
Addition of basic impact diagnostics as listed in Table 1 of Elling et al 2026
! NOTE: In order to use the ORAS5 datasets on levante, the following configuration must be added to the .config/esmvaltool/data-hpc-dkrz.yml file in the native6 section:
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 or 🧪 Scientific review.
New or updated recipe/diagnostic
To help with the number of pull requests: