Skip to content
intesarjawadPublic

About

Reproducible weather experiments in Python: fork a forecast, change one thing, and measure what moved.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Stormfork

Reproducible weather experiments in Python: fork a forecast, change one thing, and measure what moved.

Sandy's unedited storms burn toward land, then the relief turns to the storms moved 300 km east as the ledger records their different fates.

What would Hurricane Sandy have done if it had started 300 km further east? Stormfork edits a storm's starting state, runs an AI weather model forward and compares the result with a control, so you can tell an effect from the model's own noise.

Not a forecast. For decisions follow the National Hurricane Center (nhc.noaa.gov) and your local NWS office.

An experiment is three runs

Run Starting state Random seeds
baseline unedited seed S
fork edited the baseline's seeds
control unedited different seeds

The fork shares the baseline's seeds, so the two differ only by the edit. The control differs only by its seeds, and shows how far the model's own variability moves a forecast. An edit is read against the control, not against zero.

The Sandy example runs a WeatherNext Cyclones Mini checkpoint from ERA5 reanalysis. Sandy is inside the model's training period, so the example shows how the model responds to an edit, not what the real storm would have done. Method says what each comparison can and cannot support.

Try it

Python 3.12 and uv 0.13.7. No credentials are needed.

uv sync --frozen
make check
uv run stormfork --help

To explore the bundled sample in a browser, run pnpm install --frozen-lockfile in site/, then pnpm dev, and open /#/e/demo-fixture.

What you can do

  • Run your own fork. stormfork run runs baseline, fork and control. Perturbations describes the four kinds of edit and their limits, and recipes shows how to write and propose an experiment.
  • Check a published one. stormfork verify checks an experiment's evidence, and stormfork rerun reproduces it.
  • Export the evidence. stormfork export writes the tracks, the divergence file and an atlas the site can show.
  • Benchmark a hindcast against the National Hurricane Center's aids: docs/hindcast.md. No hindcast score is published yet.
  • Score public forecasts. stormfork scores collects WeatherNext 2 runs for coastal stations and scores them against observations: docs/scores.md.

Go deeper

Architecture, reproducibility, publication notes and contributing. The code is under the MIT licence; data and model terms are listed in LICENSES.md.

About

Reproducible weather experiments in Python: fork a forecast, change one thing, and measure what moved.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages