Skip to main content

Tracers and transit times in time-variable hydrologic systems: A gentle introduction to the StorAge Selection (SAS) approach


How can we use tracers to learn something about the volume of storage in a control volume (like a catchment, stream reach, or something else)?

Tracers are an extremely useful tool for understanding flows through complicated systems. But once you've collected your tracer data, how can you analyze it in a way that will provide you with the most information?

One approach is to use StorAge Selection functions. This approach allows for time-variable input and output fluxes, and can even be used when the flow paths through the system are changing in time.

Module Overview

This module provides an introduction to the theory of StorAge Selection (SAS), and its application to the interpretation of tracer observations. The course is intended for scientists who collect timeseries of tracer data, and want to extract from that data an understanding of storage and transport dynamics.

Topics Covered

This course is intended to give participants a hands-on introduction to SAS. A Python module ( will be used throughout to illustrate the ideas, and how to apply them to data. This module runs in a Jupyter notebook, and can be installed with a single command. It may be most convenient to run this on the CUAHSI JupyterHub. Instructions for doing so are provided. In each section of the course, the main ideas will first be introduced qualitatively, then through some hands-on examples using, and finally through more rigorous mathematical derivations.


Some calculus is needed to follow the mathematical derivations, and a little differential equations where we seek analytical solutions. However much of the conceptual and applied material should be accessible to those with only the equivalent of Calc I. Some familiarity with Python is assumed, but anyone with a working knowledge of any coding language (particularly MATLAB or R) should be able to muddle through. Most of the time, code is provided here in the course, and can simply be copied and pasted into a Python script or Jupyter notebook.

Learning Objectives

By the end of this module, participants will gain an intuitive understanding of the SAS approach, the ability to apply their knowledge to tracer data using the Python package, and a familiarity with the underlying mathematical framework. Put another way, by the end of this module:

  • you will be able to explain the conceptual basis of SAS analysis
  • you will be able to apply SAS analysis to synthetic and real tracer datasets
  • you will be able to analyze the results to gain insight about systems
  • you will be able to evaluate different options for SAS analysis

Course Authors

Ciaran J. Harman

Ciaran J. Harman

Dr Ciaran J. Harman is Associate Professor and Russell Croft Faculty Scholar in the Department of Environmental Health and Engineering, a joint department in the Whiting School of Engineering and the Bloomberg School of Public Health at Johns Hopkins University, and holds a joint appointment in Earth and Planetary Science in the Krieger School of Arts and Sciences. Dr Harman's research address fundamental questions about physical, biological and chemical processes controlling, and controlled by, the movement of water through the landscape.

charman1 -at- jhu -dot- edu

Target Audience

The material is targeted at students who have collected tracer data and would like to use SAS to interpret it. These may be undergraduate or graduate students, postdocs, or professors.

Tools Needed

Either access to a Python interpreter (such as a JupyterLab Notebook) on your own machine, or through the CUAHSI JupyterHub

Expected Effort

It is expected that the material can be completed in around 20 hours for those who seek a deep understanding.

Suggested Citation

Harman, C. J., (2020) StorAge Selection (SAS) and : A gentle introduction. HydroLearn.

  1. Course Export

    Export Link

    To customize this course for your own needs, export a copy and import into a new empty course inside Studio. Requires a HydroLearn instructor Studio account.

  2. Course Number

  3. Classes Start

  4. Estimated Effort