Skip to content

Commit

Permalink
Merge pull request #187 from ncasuk/edit-README
Browse files Browse the repository at this point in the history
Draft: Tidy repo
  • Loading branch information
nf679 authored Nov 7, 2024
2 parents f04dd5d + 5b1e632 commit 70ac62b
Show file tree
Hide file tree
Showing 45 changed files with 92,886 additions and 536 deletions.
67 changes: 26 additions & 41 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,23 +1,6 @@
# Introduction to Scientific Computing course
This repository holds teaching materials for the NCAS Introduction to Scientific Computing course.

## Overview

The course covers:
- Introduction to the Linux shell
- [Presentations and Exercises](https://ncasuk.github.io/ncas-isc-shell/)
- Python Setup
- [Logging in to the JASMIN Notebook Service ](https://github.com/ncasuk/ncas-isc/blob/main/setup/Logging_in_to_the_JASMIN_Notebook_Service.pdf)
- Git and GitHub
- [Presentation](https://github.com/ncasuk/ncas-isc/tree/main/version_control)
- [Exercise](https://github.com/ncasuk/ncas-isc/tree/main/version_control)
- Introduction to Python
- [Python Introduction Slides](https://github.com/ncasuk/ncas-isc/blob/main/python-intro/README.md)
- [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)
- Data manipulation and visualisation in Python (Working with Data)
- [Python working with data Slides](https://github.com/ncasuk/ncas-isc/tree/main/python-data/README.md)
- [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)

## Index
### Overview Presentations
* [Algorithmic thinking](https://github.com/ncasuk/ncas-isc/blob/main/working_practices/Algorithmic_thinking.pdf)
Expand All @@ -37,35 +20,37 @@ The course covers:

| Lesson | Exercise | Solution |
| ------ | -------- | -------- |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [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) |
| [Wrap Up / Summary](/python-intro/exercises/ex16_wrap_up.ipynb) |

## Python - Working with Data

| Lesson | Exercise | Solution |
| ------ | -------- | -------- |
| __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]() |
| __xarray:__ [Plotting]() and [Indexing]() | [Exercise 02]() | [Solution 02]() |
| __xarray:__ [GroupBy processing]() and [masking]() | [Exercise 03]() | [Solution 03]() |
| [cf-python]() | [Exercise 04]() | [Solution 04]() |
| [matplotlib]() | [Exercise 05]() | [Solution 05]() |
| [numpy]() | [Exercise 06]() | [Solution 06]() |
| [netCDF4]() | [Exercise 07]() | [Solution 07]() |
| [Weather Exercise]() | [Exercise 08]() | [Solution 08]() |
| [Sentinel Data Exercise]() | [Exercise 09]() | [Solution 09]() |
| __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) |
| __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) |
| __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) |
| [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) |
| [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) |
| [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) |
| Weather Exercise | [Exercise 09a](/python-data/exercises/ex09a_weather_api.ipynb) | [Solution 09b](/python-data/solutions/ex09a_weather_api.ipynb) |
| Sentinel Data Exercise | [Exercise 09b](/python-data/exercises/ex09b_satellite_data.ipynb) | [Solution 09b](/python-data/solutions/ex09b_satellite_data.ipynb) |


## Useful materials and resources
Expand Down
6 changes: 4 additions & 2 deletions python-data/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ Presentation material is used from the links listed below:
4. [cf-python]()
5. [matplotlib](https://matplotlib.org/stable/users/explain/quick_start.html)
6. [numpy](https://numpy.org/doc/stable/user/quickstart.html)
7. [NetCDF4](https://unidata.github.io/netcdf4-python/#tutorial)
7. [NetCDF4 basics](https://unidata.github.io/netcdf4-python/#tutorial)
8. [NetCDF4 advanced](https://unidata.github.io/netcdf4-python/#dealing-with-time-coordinates)
9. [Weather Exercise](./exercises/ex09a_weather_api.ipynb) and [Satellite Exercise](./exercises/ex09b_satellite_data.ipynb)

Each of these has an equivalent notebook in the [exercises](/python-data/exercises) folder with the solutions in the [solutions](python-data/solutions) folder.
Each of these has an equivalent notebook in the [exercises](./exercises) folder with the solutions in the [solutions](./solutions) folder.
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,19 @@
"tags": []
},
"source": [
"# Exercise 7a: NetCDF4 Basics"
"# Exercise 7: NetCDF4 Basics"
]
},
{
"cell_type": "markdown",
"id": "0ac81b88-7771-4404-89cd-d9ec233651d7",
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"## Aim: Introduce the netCDF4 library in Python to read and create NetCDF4 Files."
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,19 @@
"id": "22542fd5-6792-4df8-9122-fe35f3e4ddf5",
"metadata": {},
"source": [
"# Exercise 7b: NetCDF4 Advanced"
"# Exercise 8: NetCDF4 Advanced"
]
},
{
"cell_type": "markdown",
"id": "b8bc8ade-8ef9-4caa-b734-d0a0df52a450",
"metadata": {},
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"## Aim: Introduce more advanced uses of the netCDF4 library in Python to read and create NetCDF4 Files."
]
Expand Down
Loading

0 comments on commit 70ac62b

Please sign in to comment.