Skip to content

SCHISM learning tutorial

These notebooks show how to set up and run SCHISM with rompy-schism, which extends rompy with everything specific to SCHISM.

The collection has two parts:

  • Tutorial: an ordered path from zero to a tide and wind hindcast. Start here if you are new to rompy or rompy-schism.
  • Examples: self-contained notebooks on specific features. Pick the one you need and adapt it to your data.

All notebooks model the coast off Perth, Western Australia, in early January 2023, on an unstructured mesh made from ETOPO bathymetry, with TPXO9 tides, ERA5 wind and pressure, the GLORYS12 ocean reanalysis and WAVEWATCH III spectra.

Getting started

You need Python with rompy, rompy-schism, Jupyter and pyTMD. See the installation guide.

The example data is in notebooks/schism/data/, so the notebooks run from a clone of this repository without further setup. Each notebook writes its files to a local _output/ folder, which is safe to delete.

To run SCHISM, the notebooks use the public Docker image ghcr.io/rom-py/schism, built with MPI, NetCDF and the WWM wave model, so you only need Docker installed and running. Cells that run SCHISM are skipped if Docker is not available, and everything else still works. If you have your own SCHISM installation, see Running SCHISM.

Note

The pages on this site show the outputs stored in the notebooks, including the results of the SCHISM runs. The documentation build does not run the notebooks or SCHISM.

Tutorial

Work through these in order:

# Notebook You will learn
1 Your first SCHISM model The whole workflow: mesh, tides at the open boundary, settings, generate and run
2 The mesh and the vertical grid The unstructured mesh and its boundaries, bottom friction, 2D and 3D vertical grids
3 Tides and open boundaries Tidal constituents from a tide model, boundary types and bctides.in
4 Atmospheric forcing Wind and air pressure from a reanalysis as sflux files
5 Choosing model settings The param.nml namelist, SCHISM's defaults and rompy-schism's checks
6 A tide and wind hindcast Four days off Perth: forcing, output, checking the run and plotting results
7 Configuration as YAML and the rompy CLI The same model as a YAML file, generated and run from the command line

Examples

Mesh

Notebook Shows
Making a mesh From bathymetry to hgrid.gr3 with gmsh, and checking a mesh

Open boundaries

Notebook Shows
Tidal boundaries Constituents, nodal corrections, the tidal potential, extrapolation and a mean level
Ocean boundaries Water levels from an ocean model, on their own or added to the tide
Baroclinic 3D model Temperature, salinity and currents from an ocean model at the boundary and at the start
Waves with WWM Wave spectra at the boundary and SCHISM coupled with the WWM wave model

Workflows

Notebook Shows
Output Choosing output variables, scribes, reading 2D and 3D output, stations
Hotstart and chained runs Continuing a run from its saved state
Running SCHISM Local and Docker backends, MPI and scribes, and checking a run
Friction sensitivity Generating and comparing variants with different bottom friction