This course is for Python users who want to advance their skills for hydrological data processing and modelling

Python is an ever-evolving programming language with endless possibilities. During this masterclass, attendees will learn about Python’s many aspects based on an interactive, case-based approach. The process of developing a code project will be broken into small modules that will be covered one step at a time.

This course is intended for hydro(geo)logists who already have experience with Python. It is aimed at practitioners and researchers who want to take their Python skills beyond the use of basic scripts. This course will provide you with a set of ready-to-use Python notebooks that can be adapted for a wide range of applications. This course covers a range of topics, including data analysis, visualisation, AI-assisted Python coding using ChatGPT and the Cursor AI code editor, mapping, and modelling.

Registered participants will have access to the course material and resources for up to a month after the final session. Spaces are limited, so don't miss out - register now to secure your place!


Thursday, 1 August 2024 - Thursday, 26 September 2024
3:00pm (Australia/Sydney; find your local time)
Format x8, 2 hour live interactive sessions + Pre/post-course materials via the learning platform; live recording available post session
Cost Standard fee $1495.00 (INC GST)
Bundle with Python essentials for a $295.00 discount - contact training@awschool.com.au for more information
Code LC-25-8-107
Contact training@awschool.com.au


Vincent Post

Edinsi Groundwater & Flinders University

Vincent is a hydrogeologist with over 15 years of experience in Python programming. He uses it on a daily basis for many if not all of his tasks, such as working with logger data, preparation of model... Read more

Raoul Collenteur


Raoul is a hydrologist focusing on groundwater related problems and developing open-source software to solve them. He leads and is involved in developing open-source software such as Pastas, PyEt and ... Read more

Bill Katzenmeyer


William Mark (Bill) Katzenmeyer, P.E., C.F.M. is Senior Water Resources Technical Lead for C.H. Fenstermaker and Associates, LLC.  Bill specializes in hydrologic and hydraulic modeling, automation, a... Read more

Aaron Nichols

Atwell, LLC

Aaron Nichols is a water resources engineer at Atwell, LLC, specializes in 2D modeling with HEC-RAS and FLO-2D. He has worked on projects that include large-scale 2D urban modeling, design of regional... Read more

Panel Members

Cristina Solorzano Rivas

Flinders University

Cristina completed her first degree in Civil Engineering in Honduras, which neighbours her birth country of El Salvador. In 2000, she emigrated to Barcelona, Spain, where she worked as a hydraulics en... Read more

Course Outcomes

In this Python Masterclass you will be equipped with the essential skills and knowledge needed to excel in water modelling. You will be able to:

  • Use Python in Visual Studio Code
  • Create functions, classes and libraries
  • Develop custom hydrological models
  • AI tools such as ChatGPT and Cursor AI code editor for code optimisation
  • Create high-impact data visualisations
  • Collaborate using GitHub
  • Interface with QGIS and create interactive maps


By the end of this course you will have the ability to create sophisticated models, analyse complex data, and present your results for better performance.

Course Overview

In this course you will be working on building a working hydrological model in Python. It will teach you the foundations of good modelling practice, focussing on the following aspects:

  • Creating functions
  • Building a library
  • Documenting code
  • Collaborating with GitHub

As you progress through the course, you will learn how to use the advanced Python skills for water modelling:

  • Model creation and optimisation
  • Figure creation using Matplotlib and Plotly
  • GIS integration and interactive maps

Course Outline

Develop advanced skills in Python through a real-world case study on water modelling over the 8-week session. See below a detailed course outline.

Session 1: Establishing the Python landscape

This session will introduce the attendees to the various tools in the toolbox. It will look into best practices like setting up dedicated Python environments on your computer. It will look at Visual Studio Code and its integration with GitHub for code sharing and collaboration.

Session 2: Creating functions and classes

This session will be dedicated to creating functions and writing object-oriented code. Attention will be paid to creating docstrings, which are essential elements of all Python functions to document the code behaviour.

Session 3: Preparing data for model input

This session will be used on how Pandas can be used to process time series and combine data from different sources.

Session 4: Setting up a water balance model

Once all the data is in the right format, they can be imported into the water balance model. All data and model parameters are uncertain. Using Python it is easy to explore the model sensitivity to these uncertainties. We will also look at some ways to optimize the model by best fitting the results to the measurements.

Session 5: Presentation of results

This session will look into different ways to visualize the data and the model results using the packages Matplotlib and Plotly. It will be demonstrated how these packages can be used to create dynamic figures and interactive maps.

Session 6: AI-assisted Python

In this session, delve into AI-assisted coding techniques aimed at enhancing coding workflows for modelling. We will learn to leverage AI tools like ChatGPT and the Cursor AI code editor to generate code from natural language for model fitting, uncertainty analysis and also using AI as a learning assistant. We will also utilise AI Teaching Assistant to revisit course methods and concepts, and building a domain-specialized coding GPT to improve the reliability of generated code for specific libraries.

Session 7: DataFrames and GeoDataFrames

During this session we will download data from an online database and demonstrate how it can be imported in QGIS, using the libraries Pandas and GeoPandas. It will also feature a brief primer on the use of PyQGIS.

Session 8: Discussing programming problems

Throughout the course, attendees will be invited to suggest problems from their own work that we can collectively discuss and try to solve. We will select some cases to discuss during this final session of the course.



The course is delivered through units via the learning platform

  • 8 live and interactive sessions of 2 hours over eight weeks on Thursday, 3-5pm Sydney Time

August 1, 8, 15 & 22 – 2024

~ Week break ~

September 5, 12, 19 & 26 – 2024

  • Sessions are recorded & uploaded to the learning platform (LMS – within 2 business days after the session), if you cannot attend live;
  • Pre-and-post-course materials to go through via the LMS;
  • Exercises between the live sessions;
  • Manual of the course and working model download/s;
  • Ability to access all the online course materials for up to a month after the course. The pre-readings/videos and manual/s are available for ongoing learning.


Pre-course reading and video watching is encouraged. There is also an opportunity to tailor the sessions to your direct questions via the initial survey. After the first week you will be given some exercises to complete, prior to the next sessions.


On completion of the course attendees will be issued with a Certificate of Completion.

Python Essentials for water

Ready to embark on your Python journey?

Start with our Python Essentials for water course, designed for beginners and anyone working in the water sector.

During this 3 session course, you will learn the fundamentals of Python, basics of Python syntax and programming concepts designed to give you the confidence to create basic programs to process hydrological data and calculations.

Whether you’re starting from scratch or aiming to sharpen your expertise, our bundle courses in Python (Essentials + Masterclass) have you covered. Register now and elevate your coding journey using Python!


Refund Policy

Frequently Asked Questions (FAQ)