|
1 | 1 | --- |
2 | 2 | title: "Introduction" |
3 | 3 | teaching: 0 |
4 | | -exercises: 0 |
| 4 | +exercises: 25 |
5 | 5 | questions: |
6 | | -- "Key question (FIXME)" |
| 6 | +- What is ESMValTool and when is it useful? |
| 7 | +- What are the main components of ESMValTool? |
| 8 | +- How does ESMValTool contribute to FAIR climate research? |
| 9 | +- What is the role of the ESMValTool community? |
| 10 | + |
7 | 11 | objectives: |
8 | | -- "First learning objective. (FIXME)" |
| 12 | +- Describe key strengths and weaknesses of ESMValTool |
| 13 | +- Know the different components of ESMValTool |
| 14 | +- Understand the concept of a community-driven software project |
| 15 | + |
9 | 16 | keypoints: |
10 | | -- "First key point. Brief Answer to questions. (FIXME)" |
| 17 | +- ESMValTool provides a reliable interface to analyse and evaluate climate data |
| 18 | +- Using ESMValTool promotes standardization, collaboration, and reuse |
| 19 | +- ESMValTool is built and maintained by an active community of scientists and developers |
| 20 | +- ESMValTool is written in Python, but supports diagnostic scripts in multiple languages |
| 21 | + |
11 | 22 | --- |
12 | | -FIXME |
13 | 23 |
|
14 | | -{% include links.md %} |
| 24 | +## What is ESMValTool |
| 25 | + |
| 26 | +EMSValTool is first and foremost a tool to analyse climate data. But you probably already knew that and we like to think there's more to it than that. So let's start with a quick check to synchronize our expectations. |
| 27 | + |
| 28 | +> ## Question: what is ESMValTool |
| 29 | +> |
| 30 | +> Which of the following items would you say apply to ESMValTool? |
| 31 | +> |
| 32 | +> - A tool to analyse climate data |
| 33 | +> - The easy way out |
| 34 | +> - A community effort |
| 35 | +> - Free |
| 36 | +> - A command line tool |
| 37 | +> - A way to make climate science more [FAIR](https://fair-software.eu/about) |
| 38 | +> - Perfect |
| 39 | +> - Suitable for (Jupyter) notebooks |
| 40 | +> |
| 41 | +> Check our answers by unfolding the box below. |
| 42 | +> |
| 43 | +> > ## ESMValTool is |
| 44 | +> > |
| 45 | +> > ✓ **A tool to analyse climate data.** It takes care of finding, opening, checking, fixing, concatenating, and preprocessing CMIP data and several other supported datasets. |
| 46 | +> > |
| 47 | +> > ✕ **The easy way out.** If you just want to do an exploratory analysis or quickly hack something together, ESMValTool is probably not the way to go. The tool is intended for robust, repeatable and shareable climate analysis. That *does* require a bit more effort. |
| 48 | +> > |
| 49 | +> > ✓ **A community effort.** EMSValTool is developed and maintained by a large team of climate scientists and software engineers. It is an open source project to which anyone can contribute. Its longevity depends on these contributions. |
| 50 | +> > |
| 51 | +> > ✓ **Free.** ESMValTool is licenced under Apache 2.0, which means everyone can use, modify, or share it free of charge. However, we *do* encourage all users to contribute to the community once they get more comfortable with the tool. |
| 52 | +> > |
| 53 | +> > ✓ **A command line tool.** ESMValTool was originally designed for the command line. But, we are working on a user-friendly python interface as well. |
| 54 | +> > |
| 55 | +> > ✓ **A way to make climate science more [FAIR](https://fair-software.eu/about).** ESMValTool collects provenance information about the data and code that are used to obtain a result. It comes with a readable recipe format that makes climate analysis consistent, reproducible, and easy to share. |
| 56 | +> > |
| 57 | +> > ✕ **Perfect.** Although we are continuously working to improve the tool, you may encounter some bugs or missing features. In the following episodes, you will learn how to troubleshoot, find help, and maybe even contribute to the solution yourself. |
| 58 | +> > |
| 59 | +> > ✕ **Suitable for (Jupyter) notebooks.** ESMValTool was designed as a command line tool. But, we are working on a user-friendly Python interface as well. |
| 60 | +> {: .solution} |
| 61 | +{: .challenge} |
| 62 | + |
| 63 | +To learn more about ESMValTool, you can look at the [documentation](https://docs.esmvaltool.org/en/latest/introduction.html), the [official website](https://www.esmvaltool.org/about.html), or the [overview paper](https://gmd.copernicus.org/articles/13/1179/2020/) in *Geoscientific Model Development*. |
| 64 | + |
| 65 | +## How does ESMValTool work |
| 66 | + |
| 67 | +The figure below shows the different components of ESMValTool. Some of the most important work is done in the 'core', which performs a number of preprocessor steps. Outside of the core we have some configuration files that specify things like *where to find the CMIP data*. The most important file however, is the *recipe* that specifies which preprocessor functions need to be applied to what data. The recipe also points to a diagnostic script that is executed after the preprocessor and performs a more specific analysis on the preprocessed data. |
15 | 68 |
|
| 69 | + |
| 70 | + |
| 71 | +> ## Discussion: (dis)advantages of this approach |
| 72 | +> |
| 73 | +> Discuss or think about the pros and cons of this architecture for a moment. Then unfold the box below to see our answers. |
| 74 | +> |
| 75 | +> |
| 76 | +> > ## See our thoughts |
| 77 | +> > |
| 78 | +> > - Streamlining common preprocessing steps ensures consistency in the algorithms being used and the way they are executed. This facilitates comparison and reproducibility. |
| 79 | +> > - Provenance and citation information can be tracked through the entire workflow. |
| 80 | +> > - The core builds upon the [iris](https://scitools.org.uk/iris/docs/latest/) package, which is quite strict in order to comply with CF conventions and minimize unexpected results. |
| 81 | +> > - Recipes are easy to read and share. |
| 82 | +> > - A collection of recipes and diagnostic scripts is shipped with ESMValTool, ready for re-use. Everyone can add to this collection. |
| 83 | +> > - The recipe format takes some getting used to and may be a bit less flexible then working on the datasets directly. |
| 84 | +> > - Features or dataset support that are missing from ESMValCore can be a limiting factor. |
| 85 | +> {: .solution} |
| 86 | +{: .discussion} |
| 87 | + |
| 88 | +## Community |
| 89 | + |
| 90 | +ESMValTool is built and maintained by an active community of scientists and software engineers. Many of the interactions take place on GitHub. Here, we briefly introduce you to some of the most important pages. |
| 91 | + |
| 92 | +> ## Meet ESMValGroup |
| 93 | +> |
| 94 | +> Browse to [github.com/ESMValGroup](https://github.com/ESMValGroup). This is our 'organization' GitHub page. Have a look around. How many collaborators are there? Do you know any of them? Near the top of the page there are 2 pinned repositories: ESMValTool and ESMValCore. Visit each of the repositories. How many people have contributed to each of them? Can you also find out how many people have contributed to this tutorial? |
| 95 | +> |
| 96 | +> > ## Solution |
| 97 | +> > |
| 98 | +> > At the time of making this lesson, there were 138 members of ESMValGroup. 55 of them contributed to ESMValTool, 48 to ESMValCore. 52 (!) people contributed to this tutorial. |
| 99 | +> {: .solution} |
| 100 | +{: .challenge} |
| 101 | + |
| 102 | +> ## Issues and pull requests |
| 103 | +> |
| 104 | +> Go back to the repository pages of [ESMValTool](https://github.com/ESMValGroup/ESMValTool) or [ESMValCore](https://github.com/ESMValGroup/ESMValCore). There are tabs for 'issues' and 'pull requests'. You can use the labels to navigate them a bit more. How many open issues are about enhancements of ESMValTool? And how many bugs have been fixed in ESMValCore? There is also an 'insights' tab, where you can see a summary of recent activity. How many issues have been opened and closed in the past month? |
| 105 | +> |
| 106 | +> > ## Solution |
| 107 | +> > |
| 108 | +> > At the time of making this lesson, there were 50 ESMValTool issues (the majority) about enhancement and 31 bugs had been fixed in the Core. 13 ESMValTool issues had been closed in the past month, versus 8 opened: overall good progress. |
| 109 | +> {: .solution} |
| 110 | +{: .challenge} |
| 111 | + |
| 112 | +## Conclusion |
| 113 | + |
| 114 | +This concludes the introduction of the tutorial. You now have a basic knowledge of ESMValTool and our community. The following episodes will walk you through the installation, configuration and running your first recipes. |
| 115 | + |
| 116 | +{% include links.md %} |
0 commit comments