Skip to content

Commit 5c7f1ea

Browse files
committed
add more challenges, revise the text
1 parent 8bffe03 commit 5c7f1ea

File tree

1 file changed

+142
-57
lines changed

1 file changed

+142
-57
lines changed

_episodes/03-configuration.md

Lines changed: 142 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@ objectives:
1212

1313
keypoints:
1414
- The ``config-user.yml`` tells ESMValTool where to find input data.
15-
- "``rootpath`` defines the root directory for the input data."
1615
- "``output_dir`` defines the destination directory."
16+
- "``rootpath`` defines the root path of the data."
17+
- "``drs`` defines the directory structure of the data."
1718

1819
---
1920

@@ -98,7 +99,22 @@ config_developer_file: null
9899
profile_diagnostic: false
99100
```
100101
101-
In general there is no need to change the settings listed above.
102+
> ## Saving preprocessed data
103+
>
104+
> In the configuration file, which settings are useful to make sure preprocessed
105+
> data is stored when ESMValTool is run?
106+
>
107+
>> ## Solution
108+
>>
109+
>> If the option ``remove_preproc_dir`` is set to ``false``, then the
110+
>> ``preproc/`` directory contains all the pre-processed data and the
111+
>> metadata interface files.
112+
>> If the option ``save_intermediary_cubes`` is set to ``true``
113+
>> then data will also be saved after each preprocessor step in the folder
114+
>> ``preproc``. Note that saving all intermediate results to file will result
115+
>> in a considerable slowdown.
116+
> {: .solution}
117+
{: .challenge}
102118
103119
## Destination directory
104120
@@ -108,12 +124,6 @@ a new output folder determined by recipe name, and date and time using
108124
the format: YYYYMMDD_HHMMSS.
109125
This folder contains four further subfolders: ``plots``, ``preproc``, ``run``, ``work``.
110126
111-
Let's name our destination directory ``esmvaltool_output`` in the working directory:
112-
113-
```yaml
114-
output_dir: ./esmvaltool_output
115-
```
116-
117127
> ## Content of subfolders
118128
>
119129
> - ``plots``: the location for all plots, split by individual diagnostics and fields.
@@ -130,6 +140,22 @@ are not plots, e.g. files in NetCDF format (depends on the diagnostic script).
130140
[lesson]({{ page.root }}{% link _episodes/04-recipe.md %})
131141
{: .callout}
132142
143+
> ## Set the destination directory
144+
>
145+
> Let's name our destination directory ``esmvaltool_output`` in the working directory.
146+
> How to tell ESMValTool about our destination directory?
147+
>
148+
>> ## Solution
149+
>>
150+
>> We use `output_dir` entry in the `config-user.yml` file as:
151+
>>```yaml
152+
>> output_dir: ./esmvaltool_output
153+
>>```
154+
>>
155+
>> If the `esmvaltool_output` does not exist, ESMValTool will generate it for you.
156+
> {: .solution}
157+
{: .challenge}
158+
133159
## Auxiliary data directory
134160

135161
The ``auxiliary_data_dir`` setting is the path where any required additional
@@ -151,7 +177,6 @@ You can choose the number of tasks in parallel as
151177
ESMValTool to use the maximum number of available CPUs:
152178

153179
```yaml
154-
155180
max_parallel_tasks: null
156181
```
157182

@@ -164,7 +189,6 @@ Using the number there you can increase the number of parallel tasks
164189
again to a reasonable number for the amount of memory available in your system.
165190
{: .callout}
166191

167-
168192
## Rootpath to input data
169193

170194
ESMValTool uses several categories (in ESMValTool, this is referred to as projects)
@@ -175,6 +199,7 @@ We can find more information about the projects in the ESMValTool
175199
[documentation](https://docs.esmvaltool.org/projects/esmvalcore/en/latest/quickstart/find_data.html).
176200
The ``rootpath`` specifies the directories where ESMValTool will look for input data.
177201
For each category, you can define either one path or several paths as a list.
202+
For example:
178203

179204
```yaml
180205
rootpath:
@@ -184,71 +209,131 @@ rootpath:
184209
default: ~/default_inputpath
185210
CORDEX: ~/default_inputpath
186211
```
187-
Site-specific entries for Jasmin, DKRZ and ETHZ are listed at the end of the
188-
example configuration file.
189212

190-
In this lesson, we will work with data from
191-
[CMIP5](https://esgf-node.llnl.gov/projects/cmip5/)
192-
and [obs4mips](https://esgf-node.llnl.gov/projects/obs4mips/).
193-
We add the root path of the folder where our/your data is available.
194-
195-
```yaml
196-
rootpath:
197-
...
198-
CMIP5: [~/cmip5_inputpath1, ~/cmip5_inputpath2, ~/esmvaltool_tutorial/data]
199-
obs4mips: ~/esmvaltool_tutorial/data
200-
```
213+
Site-specific entries for Jasmin and DKRZ are listed at the end of the
214+
example configuration file.
201215

202-
> ## Setting the correct rootpath
216+
> ## Set the correct rootpath
203217
>
204-
> - To get the data (or its correct rootpath), check instruction in
205-
> [Setup]({{ page.root }}{% link setup.md %}).
206-
> - For more information about setting the rootpath, see also the ESMValTool
207-
> [documentation](https://docs.esmvaltool.org/projects/esmvalcore/en/latest/esmvalcore/datafinder.html).
208-
{: .callout}
218+
> In this tutorial, we will work with data from
219+
> [CMIP5](https://esgf-node.llnl.gov/projects/cmip5/)
220+
> and [obs4mips](https://esgf-node.llnl.gov/projects/obs4mips/).
221+
> How does ESMValTool find the data?
222+
>
223+
> Hint:
224+
> to get the data (or its correct rootpath), check instruction in
225+
> [Setup]({{ page.root }}{% link setup.md %}).
226+
>
227+
>> ## Solution
228+
>>
229+
>> - Are you working on your own local machine?
230+
>> You need to add the root path of the folder where the data is available
231+
>> to the `config-user.yml` file as:
232+
>>```yaml
233+
>> rootpath:
234+
>> ...
235+
>> CMIP5: ~/esmvaltool_tutorial/data
236+
>> obs4mips: ~/esmvaltool_tutorial/data
237+
>>```
238+
>>
239+
>> - Are you working with on a computer cluster like Jasmin or DKRZ?
240+
>> Site-specific path to the data are already listed at the end of the
241+
>> `config-user.yml` file. You need to uncomment the related lines.
242+
>> For example, on Jasmin:
243+
>>```yaml
244+
>> # Site-specific entries: Jasmin
245+
>> # Uncomment the lines below to locate data on JASMIN
246+
>> rootpath:
247+
>> # CMIP6: /badc/cmip6/data/CMIP6
248+
>> CMIP5: /badc/cmip5/data/cmip5/output1
249+
>> # CMIP3: /badc/cmip3_drs/data/cmip3/output
250+
>> # OBS: /group_workspaces/jasmin4/esmeval/obsdata-v2
251+
>> # OBS6: /group_workspaces/jasmin4/esmeval/obsdata-v2
252+
>> obs4mips: /group_workspaces/jasmin4/esmeval/obsdata-v2
253+
>> # ana4mips: /group_workspaces/jasmin4/esmeval/obsdata-v2
254+
>> # CORDEX: /badc/cordex/data/CORDEX/output
255+
>>```
256+
>>
257+
>> - For more information about setting the rootpath, see also the ESMValTool
258+
>> [documentation](https://docs.esmvaltool.org/projects/esmvalcore/en/latest/quickstart/find_data.html).
259+
> {: .solution}
260+
{: .challenge}
209261

210262
## Directory structure for the data from different projects
211263

212264
Input data can be from various models, observations and reanalysis data that
213265
adhere to the [CF/CMOR standard](https://cmor.llnl.gov/). The ``drs`` setting
214-
describes the file structure. Let's use ``default`` for ``CMIP5`` in our example
215-
here:
266+
describes the file structure.
216267

217-
```yaml
218-
drs:
219-
CMIP5: default
220-
```
268+
The ``drs`` setting describes the file structure for several projects (e.g.
269+
CMIP6, CMIP5, obs4mips, OBS6, OBS) on several key machines
270+
(e.g. BADC, CP4CDS, DKRZ, ETHZ, SMHI, BSC). For more
271+
information about ``drs``, you can visit the ESMValTool documentation on
272+
[Data Reference Syntax (DRS)](https://docs.esmvaltool.org/projects/esmvalcore/en/latest/quickstart/find_data.html#cmor-drs).
221273

222-
> ## Available drs
274+
> ## Set the correct drs
223275
>
224-
> The ``drs`` setting describes the file structure for several projects (e.g.
225-
> ``CMIP6``, ``CMIP5``, ``obs4mips``, ``OBS6``, ``OBS``) on several key machines
226-
> (e.g. ``BADC``, ``CP4CDS``, ``DKRZ``, ``ETHZ``, ``SMHI``, ``BSC``). For more
227-
> information about ``drs``, you can visit the ESMValTool
228-
> [documentation](https://docs.esmvaltool.org/projects/esmvalcore/en/latest/quickstart/find_data.html#cmor-drs).
229-
{: .callout}
230-
231-
> ## Make your own configuration file
276+
> In this lesson, we will work with data from
277+
> [CMIP5](https://esgf-node.llnl.gov/projects/cmip5/)
278+
> and [obs4mips](https://esgf-node.llnl.gov/projects/obs4mips/).
279+
> How does ESMValTool know the data structure?
232280
>
233-
> It is possible to have several configuration files with different purposes,
234-
> for example: config-user_formalised_runs.yml, config-user_debugging.yml
235-
{: .callout}
281+
>> ## Solution
282+
>>
283+
>> - Are you working on your own local machine?
284+
>> You need to set the `drs` of the data
285+
>> in the `config-user.yml` file as:
286+
>>```yaml
287+
>> drs:
288+
>> CMIP5: default
289+
>> obs4mips: default
290+
>>```
291+
>>
292+
>> - Are you working with on a computer cluster like Jasmin or DKRZ?
293+
>> Site-specific `drs` of the data are already listed at the end of the
294+
>> `config-user.yml` file. You need to uncomment the related lines.
295+
>> For example, on Jasmin:
296+
>>```yaml
297+
>> # Site-specific entries: Jasmin
298+
>> # Uncomment the lines below to locate data on JASMIN
299+
>> drs:
300+
>> # CMIP6: BADC
301+
>> CMIP5: BADC
302+
>> # CMIP3: BADC
303+
>> # CORDEX: BADC
304+
>> # OBS: BADC
305+
>> # OBS6: BADC
306+
>> obs4mips: BADC
307+
>> # ana4mips: BADC
308+
>>```
309+
>>
310+
> {: .solution}
311+
{: .challenge}
236312

237-
> ## Saving preprocessed data
313+
> ## Explain the default drs (if working on local machine)
238314
>
239-
> In the configuration file, which settings are useful to make sure preprocessed
240-
> data is stored when ESMValTool is run?
315+
> 1. In the previous exercise, we set the `drs` of CMIP5 data to `default`.
316+
> Can you explain why?
317+
>
318+
> 2. Have a look at the directory structure of the data.
319+
> There is the folder `Tier1`. What does it mean?
241320
>
242321
>> ## Solution
243322
>>
244-
> > If the option ``remove_preproc_dir`` is set to ``false``, then the
245-
> > ``preproc/`` directory contains all the pre-processed data and the
246-
> > metadata interface files.
247-
> > If the option ``save_intermediary_cubes`` is set to ``true``
248-
> > then data will also be saved after each preprocessor step in the folder
249-
> > ``preproc``. Note that saving all intermediate results to file will result
250-
> > in a considerable slowdown.
323+
>> 1. `drs: default` is one way to retrieve data from a ROOT directory that has no DRS-like structure.
324+
>> ``default`` indicates that all the files are in a folder without any structure.
325+
>>
326+
>> 2. Observational data are organized in Tiers depending on their level of public availability.
327+
>> Therefore the default directory must be structured accordingly with sub-directories
328+
>> `TierX` e.g. Tier1, Tier2 or Tier3, even when `drs: default`.
329+
>>
251330
> {: .solution}
252331
{: .challenge}
253332

333+
> ## Make your own configuration file
334+
>
335+
> It is possible to have several configuration files with different purposes,
336+
> for example: config-user_formalised_runs.yml, config-user_debugging.yml
337+
{: .callout}
338+
254339
{% include links.md %}

0 commit comments

Comments
 (0)