Skip to content

Restructure the SCHISM notebooks into a tutorial and examples - #5

Open
rafa-guedes wants to merge 6 commits into
wp5-1from
schism-restructure
Open

rafa-guedes wants to merge 6 commits into
wp5-1from
schism-restructure

Conversation

@rafa-guedes

Copy link
Copy Markdown
Contributor

This PR replaces the SCHISM notebooks with a new collection in the same tutorial and examples layout as XBeach (#3) and SWAN (#4).

The collection

All notebooks model the coast off Perth in early January 2023. Every notebook that needs it runs SCHISM, and the results are committed.

  • notebooks/schism/tutorial/, 7 ordered lessons:

    1. a first tidal model;
    2. the mesh and the vertical grid;
    3. tides and open boundaries;
    4. atmospheric forcing;
    5. model settings (param.nml), SCHISM's defaults and rompy-schism's checks;
    6. a four-day tide and wind hindcast, with checks and analysis;
    7. YAML and the rompy CLI, including rompy run.
  • notebooks/schism/examples/, 9 focused notebooks:

    • making a mesh;
    • tidal boundaries, ocean-model boundaries, a baroclinic 3D model started and forced from GLORYS, waves with WWM;
    • output (scribes, 2D/3D files, stations), hotstart and chained runs, running SCHISM (local, Docker, MPI), friction sensitivity.
  • notebooks/schism/data/, 3.4 MB committed:

    • a mesh of the Perth coast made for the notebooks from ETOPO 2022, with its script (make_mesh.py);
    • TPXO9 tidal constituents for the area as a pyTMD database, with its script (make_tides.py);
    • ERA5 wind and pressure, GLORYS12 ocean reanalysis, and the ETOPO and WAVEWATCH III files shared with the SWAN notebooks.

    It is listed in data/example-data.json. TPXO is free for research and non-commercial use, as the data README says.

  • notebooks/schism/README.md is the index, including a table of where each previous notebook's content went.

Removed

  • The previous SCHISM notebooks (tutorial_01–07, schism_demo). They depended on a downloaded fixture bundle and did not run SCHISM successfully.
  • The fixture bundle's acquisition (scripts/schism_case_data.py, --acquire-schism).
  • The figures docs build and its CI step. It only executed those notebooks; the site is now built with make docs-build, like the committed outputs of the other models.

Site and tooling

  • Metadata: rompy_notebooks metadata on every notebook, the same convention as XBeach and SWAN.
  • Audit:
    • The SCHISM checks use the lesson template and the new paths, and every example is checked.
    • The value-narrative and forcing-depth checks and the execution-contract marker applied only to the previous SCHISM notebooks, so they are removed.
  • Docs pages:
    • schism-tutorial.md, models/schism.md, the gallery, the coverage matrix and the concept-page links are updated.
    • The installation guide now lists the Docker images of all three models.
  • requirements.txt installs rompy-schism from main. The notebooks need the rompy-schism fixes below; change it to a release once one is published.

Dependencies in rompy-schism

The notebooks need these open PRs:

Checks

  • All 16 notebooks executed end to end from a clean kernel, against rompy main and rompy-schism with the PRs above, running SCHISM with the locally built image.
  • The tidal model matches the TPXO prediction at the boundary within about 1 cm RMS.
  • make docs-build (audit and mkdocs build --strict) passes. pytest tests passes.

A mesh of the Perth coast made for the notebooks (make_mesh.py, from
ETOPO 2022), TPXO9 tidal constituents as a pyTMD database
(make_tides.py), ERA5 wind and pressure, GLORYS12 ocean reanalysis and
WAVEWATCH III spectra, for early January 2023. About 3.4 MB.
Seven lessons, from a first tidal model to a tide and wind hindcast and
its YAML configuration, run with the ghcr.io/rom-py/schism image and
committed with their outputs.
Making a mesh, tidal and ocean boundaries, a baroclinic 3D model, waves
with WWM, output, hotstarts, running SCHISM and friction sensitivity.
The previous notebooks used a downloaded fixture bundle and never ran
SCHISM successfully. The README maps each of them to the notebooks that
now cover it.
With SCHISM on the lesson template, the value-narrative and
forcing-depth checks and the execution-contract marker no longer apply
to any notebook, so they are removed.
- Rewrite the SCHISM learning tutorial page, overview and gallery
  section, and update the coverage matrix and concept-page links.
- List the SCHISM data in data/example-data.json and remove the
  downloaded SCHISM fixture bundle, its acquisition script and the
  figures build that only executed the previous SCHISM notebooks.
- Install rompy-schism from main, which needs the fixes the notebooks
  depend on.
- The installation guide now lists the Docker images of all three models.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant