Skip to content

Commit db873ea

Browse files
committed
Rewrite entire episode
1 parent 57f6428 commit db873ea

File tree

1 file changed

+83
-119
lines changed

1 file changed

+83
-119
lines changed

_episodes/01-introduction.md

Lines changed: 83 additions & 119 deletions
Original file line numberDiff line numberDiff line change
@@ -1,155 +1,127 @@
11
---
22
title: "Introduction"
3-
teaching: 20
3+
teaching: 5
44
exercises: 10
55
questions:
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?
6+
- What is ESMValTool?
7+
- Who are the people behind ESMValTool?
108

119
objectives:
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
10+
- Familiarize with ESMValTool
11+
- Synchronize expectations
1512

1613
keypoints:
1714
- ESMValTool provides a reliable interface to analyse and evaluate climate data
18-
- Using ESMValTool promotes standardization, collaboration, and reuse
15+
- A large collection of recipes and diagnostic scripts is already available
1916
- ESMValTool is built and maintained by an active community of scientists and
2017
developers
21-
- ESMValTool is written in Python, but supports diagnostic scripts in multiple
22-
languages
23-
2418
---
2519

2620
## What is ESMValTool?
2721

28-
ESMValTool is first and foremost a tool to analyse climate data. But you
29-
probably already knew that and we like to think there's more to it than that. So
30-
let's start with a quick check to synchronize our expectations.
22+
This tutorial is a first introduction to ESMValTool. Before diving into the
23+
technical steps, let's talk about what ESMValTool is all about.
3124

32-
> ## Question: what is ESMValTool
33-
>
34-
> Which of the following items would you say apply to ESMValTool?
25+
> ## What is ESMValTool?
3526
>
36-
> - A tool to analyse climate data
37-
> - The easy way out
38-
> - A community effort
39-
> - Free
40-
> - A command line tool
41-
> - A way to make climate science more [FAIR](https://fair-software.eu/about)
42-
> - Perfect
43-
> - Suitable for (Jupyter) notebooks
27+
> What do you already know about, or expect from ESMValTool?
4428
>
45-
> Check our answers by unfolding the box below.
46-
>
47-
> > ## ESMValTool is
48-
> >
49-
> > ✓ **A tool to analyse climate data.** It takes care of finding,
50-
> > opening, checking, fixing, concatenating, and preprocessing CMIP data and
51-
> > several other supported datasets.
29+
> > ## ESMValTool is...
5230
> >
53-
> > ✕ **The easy way out.** If you just want to do an exploratory
54-
> > analysis or quickly hack something together, ESMValTool is probably not the
55-
> > way to go. The tool is intended for robust, repeatable and shareable climate
56-
> > analysis. That *does* require a bit more effort.
31+
> > EMSValTool is many things, but in this tutorial we will focus on the
32+
> > following traits:
5733
> >
58-
> > ✓ **A community effort.** ESMValTool is developed and maintained by a
59-
> > large team of climate scientists and software engineers. It is an open
60-
> > source project to which anyone can contribute. Its longevity depends on
61-
> > these contributions.
34+
> > ✓ **A tool to analyse climate data**
6235
> >
63-
> > ✓ **Free.** ESMValTool is licenced under Apache 2.0, which means
64-
> > everyone can use, modify, or share it free of charge. However, we *do*
65-
> > encourage all users to contribute to the community once they get more
66-
> > comfortable with the tool.
36+
> > ✓ **A library for reproducible climate science**
6737
> >
68-
> > ✓ **A command line tool.** ESMValTool was originally designed for the
69-
> > command line. But, we are working on a user-friendly python interface as
70-
> > well.
38+
> > ✓ **A community effort**
7139
> >
72-
> > ✓ **A way to make climate science more
73-
> > [FAIR](https://fair-software.eu/about).** ESMValTool collects provenance
74-
> > information about the data and code that are used to obtain a result. It
75-
> > comes with a readable recipe format that makes climate analysis consistent,
76-
> > reproducible, and easy to share.
77-
> >
78-
> > ✕ **Perfect.** Although we are continuously working to improve the
79-
> > tool, you may encounter some bugs or missing features. In the following
80-
> > episodes, you will learn how to troubleshoot, find help, and maybe even
81-
> > contribute to the solution yourself.
82-
> >
83-
> > ✕ **Suitable for (Jupyter) notebooks.** ESMValTool was designed as a
84-
> > command line tool. But, we are working on a user-friendly Python interface
85-
> > as well.
8640
> {: .solution}
8741
{: .challenge}
8842

89-
To learn more about ESMValTool, you can look at the section
90-
``Where can I get more information on ESMValTool?`` in the lesson
91-
[Conclusion of the basic tutorial]({{ page.root }}{% link _episodes/07-conclusions.md %}).
43+
## A tool to analyse climate data
9244

93-
## How does ESMValTool work
45+
ESMValTool takes care of finding, opening, checking, fixing, concatenating, and
46+
preprocessing CMIP data and several other supported datasets.
9447

95-
The figure below shows the different components of ESMValTool. Some of the most
96-
important work is done in the 'core', which performs a number of preprocessor
97-
steps. Outside of the core we have some configuration files that specify things
98-
like *where to find the CMIP data*. The most important file however, is the
99-
*recipe* that specifies which preprocessor functions need to be applied to what
100-
data. The recipe also points to a diagnostic script that is executed after the
101-
preprocessor and performs a more specific analysis on the preprocessed data.
48+
The central componnent of ESMValTool that we will see in this tutorial is the
49+
**recipe**. Any ESMValTool recipe is basically a set of instructions to reproduce
50+
a certain result. The basic structure of a recipe is as follows:
10251

103-
![figure showing ESMValTool architecture]({{ page.root
104-
}}/fig/esmvaltool_architecture.png)
52+
- **Description** with relevant (citation) information
53+
- **Datasets** that should be analysed
54+
- **Preprocessor** steps that must be applied
55+
- **Diagnostic** scripts performing more specific evaluation steps
10556

106-
> ## Discussion: (dis)advantages of this approach
107-
>
108-
> Discuss or think about the pros and cons of this architecture for a moment.
109-
> Then unfold the box below to see our answers.
57+
An example recipe could look like this:
58+
59+
```yaml
60+
documentation:
61+
description: Example recipe
62+
authors:
63+
- lastname_firstname
64+
65+
datasets:
66+
- {dataset: HadGEM2-ES, project: CMIP5, exp: historical, mip: Amon, ensemble: r1i1p1, start_year: 1960, end_year: 2099}
67+
68+
preprocessors:
69+
global_mean:
70+
area_statistics:
71+
operator: mean
72+
73+
diagnostics:
74+
hockeystick_plot:
75+
description: plot of global mean temperature change
76+
variables:
77+
temperature:
78+
short_name: tas
79+
preprocessor: global_mean
80+
scripts: hockeystick.py
81+
```
82+
83+
> ## Understanding the different section of the recipe
11084
>
85+
> Try to figure out the meaning of the different dataset keys. Hint: they can
86+
> be found in the documentation of ESMValTool.
11187
>
112-
> > ## See our thoughts
113-
> >
114-
> > - Streamlining common preprocessing steps ensures consistency in the
115-
> > algorithms being used and the way they are executed. This facilitates
116-
> > comparison and reproducibility.
117-
> > - Provenance and citation information can be tracked through the entire
118-
> > workflow.
119-
> > - The core builds upon the [iris](https://scitools.org.uk/iris/docs/latest/)
120-
> > package, which is quite strict in order to comply with CF conventions and
121-
> > minimize unexpected results.
122-
> > - Recipes are easy to read and share.
123-
> > - A collection of recipes and diagnostic scripts is shipped with ESMValTool,
124-
> > ready for re-use. Everyone can add to this collection.
125-
> > - The recipe format takes some getting used to and may be a bit less
126-
> > flexible then working on the datasets directly.
127-
> > - Features or dataset support that are missing from ESMValCore can be a
128-
> > limiting factor.
88+
> > ## Solution
89+
> > The keys are explained in the ESMValTool documentation, in the section `The
90+
> recipe format`, under
91+
> [datasets](https://docs.esmvaltool.org/projects/esmvalcore/en/latest/recipe/overview.html#recipe-section-datasets)
12992
> {: .solution}
130-
{: .discussion}
93+
{: .challenge}
94+
95+
## A library for reproducible climate science
13196

132-
## Community
97+
More than a tool, ESMValTool is a library of publicly available recipes and
98+
diagnostic scripts. It comes with a large collection of recipes and diagnostic
99+
scripts to reproduce important results.
100+
101+
> ## Explore the available recipes
102+
>
103+
> Go to the [documentation of esmvaltool](https://docs.esmvaltool.org/) and
104+
> explore the `available recipes` section. Which recipe(s) would you like to
105+
> try?
106+
{: .challenge}
107+
108+
## A community effort
133109

134110
ESMValTool is built and maintained by an active community of scientists and
135-
software engineers. Many of the interactions take place on GitHub. Here, we
136-
briefly introduce you to some of the most important pages.
111+
software engineers. It is an open source project to which anyone can contribute.
112+
Many of the interactions take place on GitHub. Here, we briefly introduce you to
113+
some of the most important pages.
137114

138115
> ## Meet ESMValGroup
139116
>
140117
> Browse to [github.com/ESMValGroup](https://github.com/ESMValGroup). This is
141118
> our 'organization' GitHub page. Have a look around. How many collaborators are
142-
> there? Do you know any of them? Near the top of the page there are 2 pinned
143-
> repositories: ESMValTool and ESMValCore. Visit each of the repositories. How
144-
> many people have contributed to each of them? Can you also find out how many
145-
> people have contributed to this tutorial?
119+
> there? Do you know any of them?
146120
>
147-
> > ## Solution
148-
> >
149-
> > At the time of making this lesson, there were 138 members of ESMValGroup. 55
150-
> > of them contributed to ESMValTool, 48 to ESMValCore. 52 (!) people
151-
> > contributed to this tutorial.
152-
> {: .solution}
121+
> Near the top of the page there are 2 pinned repositories: ESMValTool and
122+
> ESMValCore. Visit each of the repositories. How many people have contributed
123+
> to each of them? Can you also find out how many people have contributed to
124+
> this tutorial?
153125
{: .challenge}
154126

155127
> ## Issues and pull requests
@@ -162,20 +134,12 @@ briefly introduce you to some of the most important pages.
162134
> bugs have been fixed in ESMValCore? There is also an 'insights' tab, where you
163135
> can see a summary of recent activity. How many issues have been opened and
164136
> closed in the past month?
165-
>
166-
> > ## Solution
167-
> >
168-
> > At the time of making this lesson, there were 50 ESMValTool issues (the
169-
> > majority) about enhancement and 31 bugs had been fixed in the Core. 13
170-
> > ESMValTool issues had been closed in the past month, versus 8 opened:
171-
> > overall good progress.
172-
> {: .solution}
173137
{: .challenge}
174138

175139
## Conclusion
176140

177141
This concludes the introduction of the tutorial. You now have a basic knowledge
178-
of ESMValTool and our community. The following episodes will walk you through
142+
of ESMValTool and its community. The following episodes will walk you through
179143
the installation, configuration and running your first recipes.
180144

181145
{% include links.md %}

0 commit comments

Comments
 (0)