11---
22title : " Introduction"
3- teaching : 20
3+ teaching : 5
44exercises : 10
55questions :
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
119objectives :
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
1613keypoints :
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
134110ESMValTool 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
177141This 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
179143the installation, configuration and running your first recipes.
180144
181145{% include links.md %}
0 commit comments