Python for Hydrology and Hydrogeology

Australian Water School Develop confidence in the powerful programming language Python

Target Audience

This course is intended for anyone working in the water sector, that has no or very limited experience with Python.


Python has become part of the toolbox of scientists and engineers, and has numerous applications in hydrology. By mastering Python, you are able to extend data analysis and modelling capabilities far beyond what is possible with spreadsheets, GIS platforms and other standard software.

In this 3-part course attendees will learn how to perform; data wrangling and multivariate exploratory data analysis, time series analysis and data visualisation. Each session is hosted by experts in their field, who delve in-depth into the key topic, explaining best practice techniques and approaches. Practical examples and demonstrations are analysed, allowing attendees to apply the knowledge gained and learn hands-on how to use Python- in order to save you time, money and integrate systems effectively.

Take sessions anytime, at your own pace with unlimited course access for 30-days. The course is also eligible for claiming CPD hours with Engineers Australia, under Type 2 of the guidelines available here. For internationals, further details can be found here.

Course Contents

Part 1 | Data wrangling and multivariate exploratory data analysis – Lead by Luk Peeters

1. Hydrochemistry data

  • Download data from GA’s website
  • Explore data through scatter plots
  • Make a Piper plot (and map)
  • Multivariate analysis: principal component analysis, clustering (touching on machine learning in scikit learn)

2. Exploratory Data Analysis APY Lands groundwater dataset

  • Load pre-compiled dataset
  • Summarise dataset
  • Visually explore relationships and test hypothesis in the dataset using violin-plots

3. Datacube: AWRA

  • Load dataset of Australian Water Resources Assessment model from Bureau of Meteorology website
  • Visualise and explore maps and time series of AWRA outputs
  • Multivariate analysis and visualisation

Part 2 | Time series analysis – Lead by Chris Turnadge

1. Data pre-processing

  • Using interpolation to fill gaps
  • Detection and removal of outliers
  • Resampling to higher or lower sampling resolution
  • Temporal differencing
  • Detrending data using time and frequency domain methods

2. Decomposing hydrograph data

  • Quantifying the relative contributions of component processes

3. Interpreting responses to time-lagged processes

  • Demonstration of convolution
  • Regression deconvolution

4. Interpreting responses to periodic processes

  • The discrete Fourier transform
  • Periodogram-based approaches
  • Harmonic least squares

Part 3 | Data visualisation – Lead by Vincent Post

1. Data visualisation and linking it with Google Earth
2. Visualisation of modelled flowpaths in 3D
3. Evaluation of pumping tests

Learning Objectives

You will learn the basics of Python and be provided an overview of its most important libraries. The course will give you the confidence to create basic programs to process hydrological data and calculations.