Skip to content

Commit 8eb5908

Browse files
author
Ben Mather
committed
Merge branch 'master' of github.com:brmather/Python-for-Geoscientists
2 parents ead3b52 + 941e627 commit 8eb5908

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

README.md

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
## Python for Geoscientists
2+
3+
A notebook-based introduction to python, jupyter notebooks and programming workflows with examples from python packages for the Earth Sciences.
4+
5+
6+
![](CourseContent/Notebooks/Images/ImageForLandingPage.png)
7+
8+
The material is broken down into a number of sections of, approximately, increasing difficulty.
9+
10+
1. [Introduction to python / jupyter](CourseContent/Notebooks/Introduction2Python/1-IntroductionToIpython.ipynb)
11+
1. [Introduction to version control with git](CourseContent/Notebooks/Introduction2VersionControl/1-GettingStartedWithGit.ipynb)
12+
1. [Getting Started with Numpy / Scipy](CourseContent/Notebooks/Numpy+Scipy/1-IntroductionToNumpy.ipynb)
13+
1. [Introduction to Matplotlib](CourseContent/Notebooks/Plotting/1-IntroductionToMatplotlib.ipynb)
14+
1. [Stripy for meshing / mapping the Sphere](CourseContent/Notebooks/SphericalMeshing/SphericalTriangulations/Ex1-Spherical-Triangulations.ipynb)
15+
1. [Making beautiful and useful maps with Cartopy](CourseContent/Notebooks/Mapping/0-Preliminaries.ipynb)
16+
1. [Finite Differences with numpy](CourseContent/Notebooks/SolveMathProblems/1-IntroductionToNumericalSolutions.ipynb)
17+
18+
19+
### Description
20+
21+
Python has become a popular language for scientific computing, boasting a rich set of libraries
22+
relevant to geoscientists working with data. It has all the friendly features and conveniences you
23+
would expect of a modern programming language. The Python programming language offers
24+
adaptability and versatility to the types of analyses, modelling, and workflows that geoscientists
25+
utilise. The tools and workflows you will explore in this course are presented as Jupyter notebooks
26+
and can easily be adapted to your own research.
27+
28+
We are also going to focus on problem-solving approaches to computation - developing a systematic approach to programming, testing, debugging and documentation. We will make use of git for version control which is a tool / strategy that you will definitely find helpful in future. We will do all of our work within the literate programming environment of jupyter notebooks / jupyter lab.
29+
30+
We will introduce/review the 'standard' scientific python toolkits such as numpy, scipy, matplotlib, pandas. We will teach you how to manipulate and transform data in simple ways, plotting, mapping, visualisation, interpolation, gridding, function fitting, and exporting data / images into common, interchangeable data formats such as hdf5 and netcdf, geotiff.
31+
32+
We will learn how to orchestrate common earth science python software applications, seismic data set acquisition and analysis (obspy), meshing and interpolation (stripy). We will learn how to solve very simple differential equations with application to geothermal energy and ground water flow, statistical analysis of data sets.
33+
34+
35+
### Dependencies
36+
37+
We have distributed this as a Docker image for portability, but it is possible to install python3 and additional dependencies on your computer to make this run natively:
38+
39+
- `numpy`
40+
- `scipy`
41+
- `matplotlib`
42+
- `cartopy` (requires GDAL libraries)
43+
- `lavavu` (for SphericalTriangulation notebooks only)
44+
- `pandas`
45+
- `scikit-learn`
46+
- `obspy`
47+
- `jupyter`
48+
49+
These may all be installed with **pip**:
50+
51+
```sh
52+
python3 -m pip install jupyter
53+
```
54+
55+
or through **conda**, which comes with [Anaconda](https://docs.anaconda.com/anaconda/install/):
56+
57+
```sh
58+
conda install jupyter
59+
```
60+
61+
62+
### Acknowledgements
63+
64+
This coursework was created by a number of collaborators whom we want to acknowledge:
65+
66+
- Louis Moresi (for the course structure and the majority of the notebooks)
67+
- Nathanial Butterworth (machine learning and introductionary notebooks)
68+
- Rohitash Chandra (machine learning and data wrangling)
69+
- Ben Mather (advanced finite difference notebooks)

0 commit comments

Comments
 (0)