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 |