OceanVal: automated ocean model validation#
Point OceanVal at your model output. Get back a complete validation report.
OceanVal is a Python package that automates the slow and tedious parts of ocean model validation. It matches your simulation output against gridded and in-situ observations, computes validation statistics, and builds a polished, shareable HTML report, all with a few lines of code.
import oceanval
oceanval.add_gridded_comparison(
name="temperature",
model_variable="thetao",
recipe={"temperature": "woa23"},
start=2005,
end=2014,
climatology=True,
)
oceanval.matchup(sim_dir="/path/to/model/output", start=2005, end=2014)
oceanval.validate()
See a real example report built by OceanVal.
Why OceanVal?#
Fast to first result: install from conda-forge and validate a simulation the same day, not after weeks of scripting.
- Built-in observation recipes: WOA23, COBE2, OCC-CI, GLODAP, and NSBC
datasets are ready to use, with data downloaded and processed for you.
See Data Recipes.
Rigorous statistics: bias, RMSD, correlation, seasonality, spatial patterns, and vertical profiles, computed like-for-like on matched data.
Publication-quality reports: an HTML report you can send to collaborators, with figures, tables, and methods documented automatically.
Works with your model: NEMO, CMEMS, CMIP-style output, and any CF-compliant NetCDF files. FVCOM output is supported via preprocessing.
Reproducible and hackable: every report is generated from Jupyter notebooks you can inspect, edit, and rebuild with
oceanval.rebuild().Compare simulations: build side-by-side comparison reports for multiple runs with
oceanval.compare().
How it works#
1. REGISTER 2. MATCH 3. REPORT
observations --> model + observations --> HTML validation report
(built-in (oceanval.matchup) (oceanval.validate)
recipes or
your own data)
Register the observations to validate against, either with a built-in recipe or your own gridded/in-situ data.
Match your model output with those observations using
oceanval.matchup(). OceanVal finds your files, regrids, and pairs model values with observed values.Report with
oceanval.validate(), which computes the statistics and builds the HTML report in your working directory.
Start here#
I want to… |
Go to |
|---|---|
Install OceanVal |
|
Run my first validation |
|
Understand the full workflow |
|
Use built-in observation datasets |
|
Check my data is compatible |
|
Fix a problem |
|
Look up a function |
About#
OceanVal is developed by the Marine Systems Modelling group at Plymouth Marine Laboratory. It is open source and developed on GitHub, where bug reports and feature requests are welcome.