Skip to content

Commit f0fc6f7

Browse files
authored
Merge pull request #33 from ESMValGroup/update_episode1
Add content to episode 1 of the tutorial
2 parents 9d5fe33 + 17a15e7 commit f0fc6f7

File tree

1 file changed

+107
-6
lines changed

1 file changed

+107
-6
lines changed

_episodes/01-introduction.md

Lines changed: 107 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,116 @@
11
---
22
title: "Introduction"
33
teaching: 0
4-
exercises: 0
4+
exercises: 25
55
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+
711
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+
916
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+
1122
---
12-
FIXME
1323

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.
1568

69+
![figure showing ESMValTool architecture]({{ page.root }}/fig/esmvaltool_architecture.png)
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

Comments
 (0)