OceanVal provides built-in recipes for popular observational datasets. Downloading and wrangling metadata is tedious — recipes take care of it for you. Use the recipe argument with oceanval.add_gridded_comparison, click any row for the exact call to use.
oceanval.add_gridded_comparison( name="temperature", # report name model_variable="thetao", # model NetCDF variable recipe={"temperature": "cobe2"}, # observation recipe climatology=True, # climatological comparison )
OceanVal downloads the observational data automatically when oceanval.matchup is called — in most cases via THREDDS servers, so only what's needed is downloaded. Model and observations are then regridded to a common grid and averaged per month and year, where appropriate.
| Region | Variable | Recipe | Dataset | Water-column |
|---|---|---|---|---|
| Global | Alkalinity | glodap | GLODAPv2.2016b | No |
oceanval.add_gridded_comparison( name="alkalinity", model_variable="talk", recipe={"alkalinity": "glodap"}, climatology=True, ) Annual climatology covering 1972–2013, surface-only. Reported in micromoles per kilogram. See the GLODAPv2 reference. | ||||
| Global | Chlorophyll | occci | Ocean Colour CCI | No |
oceanval.add_gridded_comparison( name="chlorophyll", model_variable="chl", recipe={"chlorophyll": "occci"}, climatology=False, ) Surface chlorophyll, reported in milligrams per cubic metre. The | ||||
| Global | KD490 | occci | Ocean Colour CCI | No |
oceanval.add_gridded_comparison( name="kd490", model_variable="kd490", recipe={"kd490": "occci"}, climatology=False, ) Diffuse attenuation coefficient at 490 nm, reported in inverse metres. | ||||
| Global | Nitrate | woa23 | World Ocean Atlas 2023 | Yes |
oceanval.add_gridded_comparison( name="nitrate", model_variable="no3", recipe={"nitrate": "woa23"}, climatology=True, ) Vertically resolved to ~800 m. WOA23 nutrients use a single long-term climatology — see the WOA23 note below for temperature/salinity decadal periods. | ||||
| Global | Oxygen | woa23 | World Ocean Atlas 2023 | Yes |
oceanval.add_gridded_comparison( name="oxygen", model_variable="o2", recipe={"oxygen": "woa23"}, climatology=True, ) Vertically resolved to ~800 m. | ||||
| Global | pH | glodap | GLODAPv2.2016b | No |
oceanval.add_gridded_comparison( name="ph", model_variable="ph", recipe={"ph": "glodap"}, climatology=True, ) Annual climatology, 1972–2013, surface-only. Reported on the total scale. | ||||
| Global | Phosphate | woa23 | World Ocean Atlas 2023 | Yes |
oceanval.add_gridded_comparison( name="phosphate", model_variable="po4", recipe={"phosphate": "woa23"}, climatology=True, ) Vertically resolved to ~800 m. | ||||
| Global | Salinity | woa23 | World Ocean Atlas 2023 | Yes |
oceanval.add_gridded_comparison( name="salinity", model_variable="so", recipe={"salinity": "woa23"}, start=2005, end=2014, climatology=True, ) Uses a decadal climatology — | ||||
| Global | Silicate | woa23 | World Ocean Atlas 2023 | Yes |
oceanval.add_gridded_comparison( name="silicate", model_variable="si", recipe={"silicate": "woa23"}, climatology=True, ) Vertically resolved to ~800 m. | ||||
| Global | Temperature | cobe2 | COBE-SST 2 | No |
oceanval.add_gridded_comparison( name="temperature", model_variable="thetao", recipe={"temperature": "cobe2"}, climatology=False, ) Monthly sea surface temperature, useful for validating against a full time series rather than a climatology. | ||||
| Global | Temperature | woa23 | World Ocean Atlas 2023 | Yes |
oceanval.add_gridded_comparison( name="temperature", model_variable="thetao", recipe={"temperature": "woa23"}, start=2005, end=2014, climatology=True, ) Uses a decadal climatology, vertically resolved to ~800 m. | ||||
| NW European Shelf | Ammonium | nsbc | North Sea Biogeochemical Climatology | Yes |
oceanval.add_gridded_comparison( name="ammonium", model_variable="ammonium", recipe={"ammonium": "nsbc"}, climatology=True, ) | ||||
| NW European Shelf | Chlorophyll | nsbc | North Sea Biogeochemical Climatology | Yes |
oceanval.add_gridded_comparison( name="chlorophyll", model_variable="chlorophyll", recipe={"chlorophyll": "nsbc"}, climatology=True, ) | ||||
| NW European Shelf | Nitrate | nsbc | North Sea Biogeochemical Climatology | Yes |
oceanval.add_gridded_comparison( name="nitrate", model_variable="nitrate", recipe={"nitrate": "nsbc"}, climatology=True, ) | ||||
| NW European Shelf | Oxygen | nsbc | North Sea Biogeochemical Climatology | Yes |
oceanval.add_gridded_comparison( name="oxygen", model_variable="oxygen", recipe={"oxygen": "nsbc"}, climatology=True, ) | ||||
| NW European Shelf | Phosphate | nsbc | North Sea Biogeochemical Climatology | Yes |
oceanval.add_gridded_comparison( name="phosphate", model_variable="phosphate", recipe={"phosphate": "nsbc"}, climatology=True, ) | ||||
| NW European Shelf | Salinity | nsbc | North Sea Biogeochemical Climatology | Yes |
oceanval.add_gridded_comparison( name="salinity", model_variable="salinity", recipe={"salinity": "nsbc"}, climatology=True, ) | ||||
| NW European Shelf | Silicate | nsbc | North Sea Biogeochemical Climatology | Yes |
oceanval.add_gridded_comparison( name="silicate", model_variable="silicate", recipe={"silicate": "nsbc"}, climatology=True, ) | ||||
| NW European Shelf | Temperature | nsbc | North Sea Biogeochemical Climatology | Yes |
oceanval.add_gridded_comparison( name="temperature", model_variable="temperature", recipe={"temperature": "nsbc"}, climatology=True, ) | ||||
Temperature and salinity from woa23 use decadal climatologies — set start and end within one supported period:
Always check dataset units and the climatology period before comparing with model output — see How to use OceanVal for matching and time-resolution guidance.