Skip to content

Commit 70ac62b

Browse files
authored
Merge pull request #187 from ncasuk/edit-README
Draft: Tidy repo
2 parents f04dd5d + 5b1e632 commit 70ac62b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+92886
-536
lines changed

README.md

+26-41
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,6 @@
11
# Introduction to Scientific Computing course
22
This repository holds teaching materials for the NCAS Introduction to Scientific Computing course.
33

4-
## Overview
5-
6-
The course covers:
7-
- Introduction to the Linux shell
8-
- [Presentations and Exercises](https://ncasuk.github.io/ncas-isc-shell/)
9-
- Python Setup
10-
- [Logging in to the JASMIN Notebook Service ](https://github.com/ncasuk/ncas-isc/blob/main/setup/Logging_in_to_the_JASMIN_Notebook_Service.pdf)
11-
- Git and GitHub
12-
- [Presentation](https://github.com/ncasuk/ncas-isc/tree/main/version_control)
13-
- [Exercise](https://github.com/ncasuk/ncas-isc/tree/main/version_control)
14-
- Introduction to Python
15-
- [Python Introduction Slides](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/README.md)
16-
- [Exercises - Jupyter Notebooks](https://github.com/ncasuk/ncas-isc/tree/main/python-intro/exercises) | [Solutions](https://github.com/ncasuk/ncas-isc/tree/main/python-intro/solutions)
17-
- Data manipulation and visualisation in Python (Working with Data)
18-
- [Python working with data Slides](https://github.com/ncasuk/ncas-isc/tree/main/python-data/README.md)
19-
- [Exercises - Jupyter Notebooks](https://github.com/ncasuk/ncas-isc/tree/main/python-data/exercises) | [Solutions](https://github.com/ncasuk/ncas-isc/tree/main/python-data/solutions)
20-
214
## Index
225
### Overview Presentations
236
* [Algorithmic thinking](https://github.com/ncasuk/ncas-isc/blob/main/working_practices/Algorithmic_thinking.pdf)
@@ -37,35 +20,37 @@ The course covers:
3720

3821
| Lesson | Exercise | Solution |
3922
| ------ | -------- | -------- |
40-
| [Running and quitting](https://swcarpentry.github.io/python-novice-gapminder/01-run-quit.html) | [Exercise 01](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex01_running_notebooks.ipynb) | [Solution 01](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex01_running_notebooks.ipynb) |
41-
| [Variables and assignment](https://swcarpentry.github.io/python-novice-gapminder/02-variables.html) | [Exercise 02](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex02_variables_assignment.ipynb) | [Solution 02](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex02_variables_assignment.ipynb) |
42-
| [Data types and type conversion](https://swcarpentry.github.io/python-novice-gapminder/03-types-conversion.html) | [Exercise 03](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex03_data_types.ipynb) | [Solution 03](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex03_data_types.ipynb) |
43-
| [Built-in functions and Help](https://swcarpentry.github.io/python-novice-gapminder/04-built-in.html) | [Exercise 04](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex04_built_in_functions.ipynb) | [Solution 04](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex04_built_in_functions.ipynb) |
44-
| [Libraries](https://swcarpentry.github.io/python-novice-gapminder/06-libraries.html) | [Exercise 05](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex06_libraries.ipynb) | [Solution 05](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex06_libraries.ipynb) |
45-
| [Reading tabular data into data frames](https://swcarpentry.github.io/python-novice-gapminder/07-reading-tabular.html) | [Exercise 06](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex07_dataframes.ipynb) | [Solution 06](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex07_dataframes.ipynb) |
46-
| [Pandas data frames](https://swcarpentry.github.io/python-novice-gapminder/08-data-frames.html) | [Exercise 07](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex08_pandas_dataframes.ipynb) | [Solution 07](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex08_pandas_dataframes.ipynb) |
47-
| [Plotting](https://swcarpentry.github.io/python-novice-gapminder/09-plotting.html) | [Exercise 08](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex09_plotting.ipynb) | [Solution 08](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex09_plotting.ipynb) |
48-
| [Lists](https://swcarpentry.github.io/python-novice-gapminder/11-lists.html) | [Exercise 09](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex11_lists.ipynb) | [Solution 09](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex11_lists.ipynb) |
49-
| [For loops](https://swcarpentry.github.io/python-novice-gapminder/12-for-loops.html) | [Exercise 10](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex12_for_loops.ipynb) | [Solution 10](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex12_for_loops.ipynb) |
50-
| [Conditionals](https://swcarpentry.github.io/python-novice-gapminder/13-conditionals.html) | [Exercise 11](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex13_conditionals.ipynb) | [Solution 11](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex13_conditionals.ipynb) |
51-
| [Looping over data sets](https://swcarpentry.github.io/python-novice-gapminder/14-looping-data-sets.html) | [Exercise 12](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex14_looping_data_sets.ipynb) | [Solution 12](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex14_looping_data_sets.ipynb) |
52-
| [Writing functions](https://swcarpentry.github.io/python-novice-gapminder/16-writing-functions.html) | [Exercise 13](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex16_writing_functions.ipynb) | [Solution 13](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex16_writing_functions.ipynb) |
53-
| [Variable scope](https://swcarpentry.github.io/python-novice-gapminder/17-scope.html) | [Exercise 14](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex17_variable_scope.ipynb) | [Solution 14](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex17_variable_scope.ipynb) |
54-
| [Programming style](https://swcarpentry.github.io/python-novice-gapminder/18-style.html) | [Exercise 15](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex18_programming_style.ipynb) | [Solution 15](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/exercises/ex18_programming_style.ipynb) |
23+
| [Running and quitting](https://swcarpentry.github.io/python-novice-gapminder/01-run-quit.html) | [Exercise 01](/python-intro/exercises/ex01_running_notebooks.ipynb) | [Solution 01](/python-intro/solutions/ex01_running_notebooks.ipynb) |
24+
| [Variables and assignment](https://swcarpentry.github.io/python-novice-gapminder/02-variables.html) | [Exercise 02](/python-intro/exercises/ex02_variables_assignment.ipynb) | [Solution 02](/python-intro/solutions/ex02_variables_assignment.ipynb) |
25+
| [Data types and type conversion](https://swcarpentry.github.io/python-novice-gapminder/03-types-conversion.html) | [Exercise 03](/python-intro/exercises/ex03_data_types.ipynb) | [Solution 03](/python-intro/solutions/ex03_data_types.ipynb) |
26+
| [Built-in functions and Help](https://swcarpentry.github.io/python-novice-gapminder/04-built-in.html) | [Exercise 04](/python-intro/exercises/ex04_built_in_functions.ipynb) | [Solution 04](/python-intro/solutions/ex04_built_in_functions.ipynb) |
27+
| [Libraries](https://swcarpentry.github.io/python-novice-gapminder/06-libraries.html) | [Exercise 05](/python-intro/exercises/ex05_libraries.ipynb) | [Solution 05](/python-intro/solutions/ex05_libraries.ipynb) |
28+
| [Reading tabular data into data frames](https://swcarpentry.github.io/python-novice-gapminder/07-reading-tabular.html) | [Exercise 06](/python-intro/exercises/ex06_dataframes.ipynb) | [Solution 06](/python-intro/solutions/ex06_dataframes.ipynb) |
29+
| [Pandas data frames](https://swcarpentry.github.io/python-novice-gapminder/08-data-frames.html) | [Exercise 07](/python-intro/exercises/ex07_pandas_dataframes.ipynb) | [Solution 07](/python-intro/solutions/ex07_pandas_dataframes.ipynb) |
30+
| [Plotting](https://swcarpentry.github.io/python-novice-gapminder/09-plotting.html) | [Exercise 08](/python-intro/exercises/ex08_plotting.ipynb) | [Solution 08](/python-intro/solutions/ex08_plotting.ipynb) |
31+
| [Lists](https://swcarpentry.github.io/python-novice-gapminder/11-lists.html) | [Exercise 09](/python-intro/exercises/ex09_lists.ipynb) | [Solution 09](/python-intro/solutions/ex09_lists.ipynb) |
32+
| [For loops](https://swcarpentry.github.io/python-novice-gapminder/12-for-loops.html) | [Exercise 10](/python-intro/exercises/ex10_for_loops.ipynb) | [Solution 10](/python-intro/solutions/ex10_for_loops.ipynb) |
33+
| [Conditionals](https://swcarpentry.github.io/python-novice-gapminder/13-conditionals.html) | [Exercise 11](/python-intro/exercises/ex11_conditionals.ipynb) | [Solution 11](/python-intro/solutions/ex11_conditionals.ipynb) |
34+
| [Looping over data sets](https://swcarpentry.github.io/python-novice-gapminder/14-looping-data-sets.html) | [Exercise 12](/python-intro/exercises/ex12_looping_data_sets.ipynb) | [Solution 12](/python-intro/solutions/ex12_looping_data_sets.ipynb) |
35+
| [Writing functions](https://swcarpentry.github.io/python-novice-gapminder/16-writing-functions.html) | [Exercise 13](/python-intro/exercises/ex13_writing_functions.ipynb) | [Solution 13](/python-intro/solutions/ex13_writing_functions.ipynb) |
36+
| [Variable scope](https://swcarpentry.github.io/python-novice-gapminder/17-scope.html) | [Exercise 14](/python-intro/exercises/ex14_variable_scope.ipynb) | [Solution 14](/python-intro/solutions/ex14_variable_scope.ipynb) |
37+
| [Programming style](https://swcarpentry.github.io/python-novice-gapminder/18-style.html) | [Exercise 15](/python-intro/exercises/ex15_programming_style.ipynb) | [Solution 15](/python-intro/solutions/ex15_programming_style.ipynb) |
38+
| [Wrap Up / Summary](/python-intro/exercises/ex16_wrap_up.ipynb) |
5539

5640
## Python - Working with Data
5741

5842
| Lesson | Exercise | Solution |
5943
| ------ | -------- | -------- |
60-
| __xarray:__ Introduction to [multidimensional arrays](https://geohackweek.github.io/nDarrays/01-introduction/), [xarray](https://geohackweek.github.io/nDarrays/02-xarray-architecture/) and [indexing](https://geohackweek.github.io/nDarrays/03-label-based-indexing/) | [Exercise 01]() | [Solution 01]() |
61-
| __xarray:__ [Plotting]() and [Indexing]() | [Exercise 02]() | [Solution 02]() |
62-
| __xarray:__ [GroupBy processing]() and [masking]() | [Exercise 03]() | [Solution 03]() |
63-
| [cf-python]() | [Exercise 04]() | [Solution 04]() |
64-
| [matplotlib]() | [Exercise 05]() | [Solution 05]() |
65-
| [numpy]() | [Exercise 06]() | [Solution 06]() |
66-
| [netCDF4]() | [Exercise 07]() | [Solution 07]() |
67-
| [Weather Exercise]() | [Exercise 08]() | [Solution 08]() |
68-
| [Sentinel Data Exercise]() | [Exercise 09]() | [Solution 09]() |
44+
| __xarray:__ Introduction to [multidimensional arrays](https://geohackweek.github.io/nDarrays/01-introduction/), [xarray](https://geohackweek.github.io/nDarrays/02-xarray-architecture/) and [indexing](https://geohackweek.github.io/nDarrays/03-label-based-indexing/) | [Exercise 01](/python-data/exercises/ex01_xarray_intro.ipynb) | [Solution 01](/python-data/solutions/ex01_xarray_intro.ipynb) |
45+
| __xarray:__ [Plotting](https://geohackweek.github.io/nDarrays/04-plotting/) and [Aggregation](https://geohackweek.github.io/nDarrays/05-aggregation/) | [Exercise 02](/python-data/exercises/ex02_plotting_and_aggregation.ipynb) | [Solution 02](/python-data/solutions/ex02_plotting_and_aggregation.ipynb) |
46+
| __xarray:__ [GroupBy processing](https://geohackweek.github.io/nDarrays/07-groupby-processing/) and [masking](https://geohackweek.github.io/nDarrays/09-masking/) | [Exercise 03](/python-data/exercises/ex03_groupby_processing_and_masking.ipynb) | [Solution 03](/python-data/solutions/ex03_groupby_processing_and_masking.ipynb) |
47+
| [cf-python]() | [Exercise 04](/python-data/exercises/ex04_cf_python.ipynb) | [Solution 04](/python-data/solutions/ex04_cf_python.ipynb) |
48+
| [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) |
49+
| [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) |
50+
| [netCDF4 basics](https://unidata.github.io/netcdf4-python/#tutorial) | [Exercise 07](/python-data/exercises/ex07_netcdf4_basics.ipynb) | [Solution 07](/python-data/solutions/ex07_netcdf4_basics.ipynb) |
51+
| [netCDF advanced](https://unidata.github.io/netcdf4-python/#dealing-with-time-coordinates) | [Exercise 08](/python-data/exercises/ex08_netcdf4_advanced.ipynb) | [Exercise 08](/python-data/solutions/ex08_netcdf4_advanced.ipynb) |
52+
| Weather Exercise | [Exercise 09a](/python-data/exercises/ex09a_weather_api.ipynb) | [Solution 09b](/python-data/solutions/ex09a_weather_api.ipynb) |
53+
| Sentinel Data Exercise | [Exercise 09b](/python-data/exercises/ex09b_satellite_data.ipynb) | [Solution 09b](/python-data/solutions/ex09b_satellite_data.ipynb) |
6954

7055

7156
## Useful materials and resources

python-data/README.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ Presentation material is used from the links listed below:
1515
4. [cf-python]()
1616
5. [matplotlib](https://matplotlib.org/stable/users/explain/quick_start.html)
1717
6. [numpy](https://numpy.org/doc/stable/user/quickstart.html)
18-
7. [NetCDF4](https://unidata.github.io/netcdf4-python/#tutorial)
18+
7. [NetCDF4 basics](https://unidata.github.io/netcdf4-python/#tutorial)
19+
8. [NetCDF4 advanced](https://unidata.github.io/netcdf4-python/#dealing-with-time-coordinates)
20+
9. [Weather Exercise](./exercises/ex09a_weather_api.ipynb) and [Satellite Exercise](./exercises/ex09b_satellite_data.ipynb)
1921

20-
Each of these has an equivalent notebook in the [exercises](/python-data/exercises) folder with the solutions in the [solutions](python-data/solutions) folder.
22+
Each of these has an equivalent notebook in the [exercises](./exercises) folder with the solutions in the [solutions](./solutions) folder.

python-data/exercises/ex07a_netcdf4_basics.ipynb python-data/exercises/ex07_netcdf4_basics.ipynb

+8-2
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,19 @@
1111
"tags": []
1212
},
1313
"source": [
14-
"# Exercise 7a: NetCDF4 Basics"
14+
"# Exercise 7: NetCDF4 Basics"
1515
]
1616
},
1717
{
1818
"cell_type": "markdown",
1919
"id": "0ac81b88-7771-4404-89cd-d9ec233651d7",
20-
"metadata": {},
20+
"metadata": {
21+
"editable": true,
22+
"slideshow": {
23+
"slide_type": ""
24+
},
25+
"tags": []
26+
},
2127
"source": [
2228
"## Aim: Introduce the netCDF4 library in Python to read and create NetCDF4 Files."
2329
]

python-data/exercises/ex07b_netcdf4_advanced.ipynb python-data/exercises/ex08_netcdf4_advanced.ipynb

+8-2
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,19 @@
55
"id": "22542fd5-6792-4df8-9122-fe35f3e4ddf5",
66
"metadata": {},
77
"source": [
8-
"# Exercise 7b: NetCDF4 Advanced"
8+
"# Exercise 8: NetCDF4 Advanced"
99
]
1010
},
1111
{
1212
"cell_type": "markdown",
1313
"id": "b8bc8ade-8ef9-4caa-b734-d0a0df52a450",
14-
"metadata": {},
14+
"metadata": {
15+
"editable": true,
16+
"slideshow": {
17+
"slide_type": ""
18+
},
19+
"tags": []
20+
},
1521
"source": [
1622
"## Aim: Introduce more advanced uses of the netCDF4 library in Python to read and create NetCDF4 Files."
1723
]

0 commit comments

Comments
 (0)