Skip to content

Decouple publication plotting from Snakemake - #250

Open
clairemerker wants to merge 19 commits into
paper-figuresfrom
decouple-publication-plotting
Open

Decouple publication plotting from Snakemake#250
clairemerker wants to merge 19 commits into
paper-figuresfrom
decouple-publication-plotting

Conversation

@clairemerker

Copy link
Copy Markdown
Contributor

The publication target of snakemake now only writes a manifest, figures are produced by standalone Jupyter notebooks that read that manifest.

Changes

  • evalml publication <config> → now runs one cheap rule (publication_manifest) to create the manifests. Deleted the three figure rules and the python -m evalml.publication renderer CLI to simplify the code.
  • Result NC files (verification, scoremaps) come from evalml experiment as before, the publication target no longer pulls them.
  • New notebooks notebooks/publication/{leadtime,meteogram,scoremaps}.ipynb load the manifest via evalml.publication.resolver.Manifest, style with the packaged evalml.publication.style, and write to output/figures/<truth>/<figure>/.
  • Shared style promoted into the package; plot_meteogram_region.py repointed, old marimo scripts removed.
  • Added an opt-in notebooks dependency group (jupyterlab/nbconvert/ipykernel), core deps and inference/verification/hashing untouched.

Usage

evalml experiment  config/varda-single_paper_stations.yaml   # produce results
evalml publication config/varda-single_paper_stations.yaml   # write manifest

# interactive:
EVALML_MANIFEST=output/publication/<truth>/manifest.json jupyter lab notebooks/publication/

# headless (render without opening the notebook):
EVALML_MANIFEST=output/publication/<truth>/manifest.json \
  jupyter nbconvert --to notebook --execute --inplace notebooks/publication/leadtime.ipynb

See docs/publication_figures.md for the full workflow, config options, and troubleshooting.

clairemerker and others added 19 commits August 4, 2026 11:27
Co-Authored-By: Francesco Zanetta <62377868+frazane@users.noreply.github.com>
Co-Authored-By: Francesco Zanetta <62377868+frazane@users.noreply.github.com>
Co-Authored-By: Francesco Zanetta <62377868+frazane@users.noreply.github.com>
Co-Authored-By: Francesco Zanetta <62377868+frazane@users.noreply.github.com>
Decouple the publication target fully: publication_all now depends only on
publication_manifest (a cheap localrule) and no longer pulls verification or
scoremap NC files. Result files are produced by the experiment workflow
(evalml experiment); the manifest just records their paths and the notebooks
plot whatever exists. Drop the now-unused scoremap input helpers and update the
docs accordingly.

@jonasbhend jonasbhend left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the proposed change for its simplicity. Personally, I would avoid converting the marimo notebooks to jupyter, as I fear this will be harder to work with collaboratively due to its json format and resulting git diff gibberish. Or is this a solved issue (and I am outing myself as being old :-) ).

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.

2 participants