-
Notifications
You must be signed in to change notification settings - Fork 128
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
recreate perfmetrics portrait plot in python #3551
base: main
Are you sure you want to change the base?
Conversation
what a noble venture, Lukas! Godspeed 🏁 🍺 |
… into perfmetric_python
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some minor changes needed, mostly in documentation.
Also requires ESMValGroup/ESMValCore#2564 to run with a current core bug on multi-model statistics.
[skip ci] Co-authored-by: Bettina Gier <[email protected]>
[skip ci] Co-authored-by: Bettina Gier <[email protected]>
[skip ci] Co-authored-by: Bettina Gier <[email protected]>
[skip ci] Co-authored-by: Bettina Gier <[email protected]>
The recipe runs again with ESMValGroup/ESMValCore#2564. Should we wait for it before merging this? @schlunma I adressed all your review comments. If you have time to re-review it, that would be awesome. I added a cheaper version of the recipe to the |
[skip ci] Co-authored-by: Bettina Gier <[email protected]>
… into perfmetric_python
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @lukruh and @diegokam, this is really awesome! I got a couple of small comments on the documentation. After that I think it's good to go. 🚀
Unfortunately, I fear that we can only merge this once we have a new ESMValCore release (candidate); otherwise the doc build will fail. I am honestly a bit surprised that the tests pass; usually they fail if you use a new preprocessor that is not available in the stable version..
and grouping all datasets by project. | ||
|
||
To plot distance metrics like RMSE, pearson R, bias etc. the | ||
:func:`distance_metrics <esmvalcore.preprocessor.derive>` preprocessor or |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
:func:`distance_metrics <esmvalcore.preprocessor.derive>` preprocessor or | |
:func:`distance_metric <esmvalcore.preprocessor.distance_metric>` preprocessor or |
.. toctree:: | ||
:maxdepth: 1 | ||
|
||
recipe_perfmetrics | ||
recipe_portrait |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should appear under General-purpose diagnostics.
Plot performance metrics of multiple datasets vs up to four references | ||
A :doc:`documented example recipe </recipes/recipe_portrait>` to use this | ||
diagnostic is provided as `recipes/recipe_portrait_CMIP.yml`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should go into the docstring of the Python module.
diagnostic is provided as `recipes/recipe_portrait_CMIP.yml`. | ||
|
||
.. automodule:: esmvaltool.diag_scripts.portrait_plot | ||
:members: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
:members: | |
:no-members: | |
:no-inherited-members: | |
:no-show-inheritance: |
Do you think it makes sense to use the functions of this module outside of it? If not, I wouldn't show them.
split_by: str, optional | ||
The rectangles can be split into 2-4 triangles. This is used to show | ||
metrics for different references. For this case there is no need to change | ||
this parameter. Multiple variables can be set in the recipe with `split` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this parameter. Multiple variables can be set in the recipe with `split` | |
this parameter. Multiple variables can be set in the recipe with ``split`` |
Single backticks are rendered italic, to get monospace font you need double backticks. Applies not only to this line.
E.g. label, ticks... | ||
By default {}. | ||
plot_properties: dict, optional | ||
Dictionary that gets passed to `matplotlib.axes.Axes.set()`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dictionary that gets passed to `matplotlib.axes.Axes.set()`. | |
Dictionary that gets passed to :meth:`matplotlib.axes.Axes.set`. |
This will create a link. Applies not only to this line.
Description
portrait plot
from NCL perfmetrics in python #3550Before you get started
portrait plot
from NCL perfmetrics in python #3550Checklist
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: