diff --git a/README.md b/README.md index 5ea12a0..9d6e393 100644 --- a/README.md +++ b/README.md @@ -41,9 +41,9 @@ This repository holds teaching materials for the NCAS Introduction to Scientific | Lesson | Exercise | Solution | | ------ | -------- | -------- | -| __xarray:__ Introduction to [multidimensional arrays](https://tutorial.xarray.dev/fundamentals/01_data_structures.html), [xarray data structures](https://tutorial.xarray.dev/fundamentals/01_datastructures.html) and [indexing](https://tutorial.xarray.dev/fundamentals/02.1_indexing_Basic.html) | [Exercise 01](/python-data/exercises/ex01_xr_intro.ipynb) [Exercise 01.5](/python-data/exercises/ex01.5_xr_label_based_indexing.ipynb)| [Solution 01](/python-data/solutions/ex01_xarray_intro.ipynb) [Solution 01.5](/python-data/solutions/ex01.5_xr_label_based_indexing.ipynb)| -| __xarray:__ [Plotting](https://tutorial.xarray.dev/fundamentals/04.1_basic_plotting.html) and [Aggregation](https://tutorial.xarray.dev/fundamentals/03.1_computation_with_xarray.html) | [Exercise 02](/python-data/exercises/ex02_xr_plotting.ipynb) [Exercise 02.5](/python-data/exercises/ex02.5_xr_aggregation.ipynb)| [Solution 02](/python-data/solutions/ex02_plotting.ipynb) [Solution 02.5](/python-data/solutions/ex02.5_xr_aggregation.ipynb)| -| __xarray:__ [GroupBy processing](https://tutorial.xarray.dev/fundamentals/03.2_groupby_with_xarray.html) and [masking](https://tutorial.xarray.dev/intermediate/indexing/boolean-masking-indexing.html) | [Exercise 03](/python-data/exercises/ex03_xr_groupby.ipynb) [Exercise 03.5](/python-data/exercises/ex03.5_xr_masking.ipynb)| [Solution 03](/python-data/solutions/ex03_groupby.ipynb) [Solution 03.5](/python-data/solutions/ex03.5_masking.ipynb)| +| __xarray:__ Introduction to [multidimensional arrays](https://tutorial.xarray.dev/fundamentals/01_data_structures.html), [xarray data structures](https://tutorial.xarray.dev/fundamentals/01_datastructures.html) and [indexing](https://tutorial.xarray.dev/fundamentals/02.1_indexing_Basic.html) | [Exercise 01a](/python-data/exercises/ex01a_xr_intro.ipynb) [Exercise 01b](/python-data/exercises/ex01b_xr_label_based_indexing.ipynb)| [Solution 01a](/python-data/solutions/ex01a_xr_intro.ipynb) [Solution 0b](/python-data/solutions/ex01b_xr_label_based_indexing.ipynb)| +| __xarray:__ [Plotting](https://tutorial.xarray.dev/fundamentals/04.1_basic_plotting.html) and [Aggregation](https://tutorial.xarray.dev/fundamentals/03.1_computation_with_xarray.html) | [Exercise 02a](/python-data/exercises/ex02a_xr_plotting.ipynb) [Exercise 02b](/python-data/exercises/ex02b_xr_aggregation.ipynb)| [Solution 02a](/python-data/solutions/ex02a_xr_plotting.ipynb) [Solution 02b](/python-data/solutions/ex02b_xr_aggregation.ipynb)| +| __xarray:__ [GroupBy processing](https://tutorial.xarray.dev/fundamentals/03.2_groupby_with_xarray.html) and [masking](https://tutorial.xarray.dev/intermediate/indexing/boolean-masking-indexing.html) | [Exercise 03a](/python-data/exercises/ex03a_xr_groupby.ipynb) [Exercise 03b](/python-data/exercises/ex03b_xr_masking.ipynb)| [Solution 03a](/python-data/solutions/ex03a_xr_groupby.ipynb) [Solution 03b](/python-data/solutions/ex03b_xr_masking.ipynb)| | [cf-python]() | [Exercise 04](/python-data/exercises/ex04_cf_python.ipynb) | [Solution 04](/python-data/solutions/ex04_cf_python.ipynb) | | [matplotlib](https://matplotlib.org/stable/users/explain/quick_start.html) | [Exercise 05](/python-data/exercises/ex05_matplotlib.ipynb) | [Solution 05](/python-data/solutions/ex05_matplotlib.ipynb) | | [numpy](https://numpy.org/doc/stable/user/quickstart.html) | [Exercise 06](/python-data/exercises/ex06_numpy.ipynb) | [Solution 06](/python-data/solutions/ex06_numpy.ipynb) | diff --git a/python-data/exercises/ex01_xr_intro.ipynb b/python-data/exercises/ex01a_xr_intro.ipynb similarity index 99% rename from python-data/exercises/ex01_xr_intro.ipynb rename to python-data/exercises/ex01a_xr_intro.ipynb index 2372a4e..085c3e0 100644 --- a/python-data/exercises/ex01_xr_intro.ipynb +++ b/python-data/exercises/ex01a_xr_intro.ipynb @@ -11,7 +11,7 @@ "tags": [] }, "source": [ - "# Exercise 1: Introduction to xarray\n" + "# Exercise 1a: Introduction to xarray\n" ] }, { diff --git a/python-data/exercises/ex01.5_xr_label_based_indexing.ipynb b/python-data/exercises/ex01b_xr_label_based_indexing.ipynb similarity index 99% rename from python-data/exercises/ex01.5_xr_label_based_indexing.ipynb rename to python-data/exercises/ex01b_xr_label_based_indexing.ipynb index 32dc8e9..10fc82f 100644 --- a/python-data/exercises/ex01.5_xr_label_based_indexing.ipynb +++ b/python-data/exercises/ex01b_xr_label_based_indexing.ipynb @@ -11,7 +11,7 @@ "tags": [] }, "source": [ - "# Exercise 1.5: Label-based indexing" + "# Exercise 1b: Label-based indexing" ] }, { diff --git a/python-data/exercises/ex02_xr_plotting.ipynb b/python-data/exercises/ex02a_xr_plotting.ipynb similarity index 99% rename from python-data/exercises/ex02_xr_plotting.ipynb rename to python-data/exercises/ex02a_xr_plotting.ipynb index 63fbe72..4e8d8dd 100644 --- a/python-data/exercises/ex02_xr_plotting.ipynb +++ b/python-data/exercises/ex02a_xr_plotting.ipynb @@ -11,7 +11,7 @@ "tags": [] }, "source": [ - "# Exercise 2: Plotting" + "# Exercise 2a: Plotting" ] }, { diff --git a/python-data/exercises/ex02.5_xr_aggregation.ipynb b/python-data/exercises/ex02b_xr_aggregation.ipynb similarity index 99% rename from python-data/exercises/ex02.5_xr_aggregation.ipynb rename to python-data/exercises/ex02b_xr_aggregation.ipynb index 7540cc5..6501da3 100644 --- a/python-data/exercises/ex02.5_xr_aggregation.ipynb +++ b/python-data/exercises/ex02b_xr_aggregation.ipynb @@ -11,7 +11,7 @@ "tags": [] }, "source": [ - "# Exercise 2.5: Arithmetic and Aggregation" + "# Exercise 2b: Arithmetic and Aggregation" ] }, { diff --git a/python-data/exercises/ex03_xr_groupby.ipynb b/python-data/exercises/ex03a_xr_groupby.ipynb similarity index 99% rename from python-data/exercises/ex03_xr_groupby.ipynb rename to python-data/exercises/ex03a_xr_groupby.ipynb index 106d28a..11bcfa7 100644 --- a/python-data/exercises/ex03_xr_groupby.ipynb +++ b/python-data/exercises/ex03a_xr_groupby.ipynb @@ -11,7 +11,7 @@ "tags": [] }, "source": [ - "# Exercise 3: Grouping" + "# Exercise 3a: Grouping" ] }, { diff --git a/python-data/exercises/ex03.5_xr_masking.ipynb b/python-data/exercises/ex03b_xr_masking.ipynb similarity index 99% rename from python-data/exercises/ex03.5_xr_masking.ipynb rename to python-data/exercises/ex03b_xr_masking.ipynb index 70e3366..7bfba7f 100644 --- a/python-data/exercises/ex03.5_xr_masking.ipynb +++ b/python-data/exercises/ex03b_xr_masking.ipynb @@ -11,7 +11,7 @@ "tags": [] }, "source": [ - "# Exercise 3.5: Masking" + "# Exercise 3b: Masking" ] }, { diff --git a/python-data/solutions/ex01_xr_intro.ipynb b/python-data/solutions/ex01a_xr_intro.ipynb similarity index 99% rename from python-data/solutions/ex01_xr_intro.ipynb rename to python-data/solutions/ex01a_xr_intro.ipynb index bafc814..22c6b8c 100644 --- a/python-data/solutions/ex01_xr_intro.ipynb +++ b/python-data/solutions/ex01a_xr_intro.ipynb @@ -11,7 +11,7 @@ "tags": [] }, "source": [ - "# Exercise 1: Introduction to xarray\n" + "# Exercise 1a: Introduction to xarray\n" ] }, { diff --git a/python-data/solutions/ex01.5_xr_label_based_indexing.ipynb b/python-data/solutions/ex01b_xr_label_based_indexing.ipynb similarity index 99% rename from python-data/solutions/ex01.5_xr_label_based_indexing.ipynb rename to python-data/solutions/ex01b_xr_label_based_indexing.ipynb index 8ac2c58..c63f80e 100644 --- a/python-data/solutions/ex01.5_xr_label_based_indexing.ipynb +++ b/python-data/solutions/ex01b_xr_label_based_indexing.ipynb @@ -11,7 +11,7 @@ "tags": [] }, "source": [ - "# Exercise 1.5: Label-based indexing" + "# Exercise 1b: Label-based indexing" ] }, { diff --git a/python-data/solutions/ex02_xr_plotting.ipynb b/python-data/solutions/ex02a_xr_plotting.ipynb similarity index 99% rename from python-data/solutions/ex02_xr_plotting.ipynb rename to python-data/solutions/ex02a_xr_plotting.ipynb index e0dfa17..2080091 100644 --- a/python-data/solutions/ex02_xr_plotting.ipynb +++ b/python-data/solutions/ex02a_xr_plotting.ipynb @@ -11,7 +11,7 @@ "tags": [] }, "source": [ - "# Exercise 2: Plotting" + "# Exercise 2a: Plotting" ] }, { diff --git a/python-data/solutions/ex02.5_xr_aggregation.ipynb b/python-data/solutions/ex02b_xr_aggregation.ipynb similarity index 99% rename from python-data/solutions/ex02.5_xr_aggregation.ipynb rename to python-data/solutions/ex02b_xr_aggregation.ipynb index f6df2b3..35aa3c5 100644 --- a/python-data/solutions/ex02.5_xr_aggregation.ipynb +++ b/python-data/solutions/ex02b_xr_aggregation.ipynb @@ -11,7 +11,7 @@ "tags": [] }, "source": [ - "# Exercise 2.5: Arithmetic and Aggregation" + "# Exercise 2b: Arithmetic and Aggregation" ] }, { diff --git a/python-data/solutions/ex03_xr_groupby.ipynb b/python-data/solutions/ex03a_xr_groupby.ipynb similarity index 99% rename from python-data/solutions/ex03_xr_groupby.ipynb rename to python-data/solutions/ex03a_xr_groupby.ipynb index 310c899..51ae342 100644 --- a/python-data/solutions/ex03_xr_groupby.ipynb +++ b/python-data/solutions/ex03a_xr_groupby.ipynb @@ -11,7 +11,7 @@ "tags": [] }, "source": [ - "# Exercise 3: Grouping" + "# Exercise 3a: Grouping" ] }, { diff --git a/python-data/solutions/ex03.5_xr_masking.ipynb b/python-data/solutions/ex03b_xr_masking.ipynb similarity index 99% rename from python-data/solutions/ex03.5_xr_masking.ipynb rename to python-data/solutions/ex03b_xr_masking.ipynb index 3fed437..48318c6 100644 --- a/python-data/solutions/ex03.5_xr_masking.ipynb +++ b/python-data/solutions/ex03b_xr_masking.ipynb @@ -11,7 +11,7 @@ "tags": [] }, "source": [ - "# Exercise 3.5: Masking" + "# Exercise 3b: Masking" ] }, {