Data recipes

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.

python
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
GlobalAlkalinityglodapGLODAPv2.2016bNo
python
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.

GlobalChlorophylloccciOcean Colour CCINo
python
oceanval.add_gridded_comparison(
    name="chlorophyll",
    model_variable="chl",
    recipe={"chlorophyll": "occci"},
    climatology=False,
)

Surface chlorophyll, reported in milligrams per cubic metre. The occci recipe also provides KD490.

GlobalKD490occciOcean Colour CCINo
python
oceanval.add_gridded_comparison(
    name="kd490",
    model_variable="kd490",
    recipe={"kd490": "occci"},
    climatology=False,
)

Diffuse attenuation coefficient at 490 nm, reported in inverse metres.

GlobalNitratewoa23World Ocean Atlas 2023Yes
python
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.

GlobalOxygenwoa23World Ocean Atlas 2023Yes
python
oceanval.add_gridded_comparison(
    name="oxygen",
    model_variable="o2",
    recipe={"oxygen": "woa23"},
    climatology=True,
)

Vertically resolved to ~800 m.

GlobalpHglodapGLODAPv2.2016bNo
python
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.

GlobalPhosphatewoa23World Ocean Atlas 2023Yes
python
oceanval.add_gridded_comparison(
    name="phosphate",
    model_variable="po4",
    recipe={"phosphate": "woa23"},
    climatology=True,
)

Vertically resolved to ~800 m.

GlobalSalinitywoa23World Ocean Atlas 2023Yes
python
oceanval.add_gridded_comparison(
    name="salinity",
    model_variable="so",
    recipe={"salinity": "woa23"},
    start=2005, end=2014,
    climatology=True,
)

Uses a decadal climatology — start/end must fall within one supported period (see below).

GlobalSilicatewoa23World Ocean Atlas 2023Yes
python
oceanval.add_gridded_comparison(
    name="silicate",
    model_variable="si",
    recipe={"silicate": "woa23"},
    climatology=True,
)

Vertically resolved to ~800 m.

GlobalTemperaturecobe2COBE-SST 2No
python
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.

GlobalTemperaturewoa23World Ocean Atlas 2023Yes
python
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. start/end must fall within one supported period (see below).

NW European ShelfAmmoniumnsbcNorth Sea Biogeochemical ClimatologyYes
python
oceanval.add_gridded_comparison(
    name="ammonium",
    model_variable="ammonium",
    recipe={"ammonium": "nsbc"},
    climatology=True,
)
NW European ShelfChlorophyllnsbcNorth Sea Biogeochemical ClimatologyYes
python
oceanval.add_gridded_comparison(
    name="chlorophyll",
    model_variable="chlorophyll",
    recipe={"chlorophyll": "nsbc"},
    climatology=True,
)
NW European ShelfNitratensbcNorth Sea Biogeochemical ClimatologyYes
python
oceanval.add_gridded_comparison(
    name="nitrate",
    model_variable="nitrate",
    recipe={"nitrate": "nsbc"},
    climatology=True,
)
NW European ShelfOxygennsbcNorth Sea Biogeochemical ClimatologyYes
python
oceanval.add_gridded_comparison(
    name="oxygen",
    model_variable="oxygen",
    recipe={"oxygen": "nsbc"},
    climatology=True,
)
NW European ShelfPhosphatensbcNorth Sea Biogeochemical ClimatologyYes
python
oceanval.add_gridded_comparison(
    name="phosphate",
    model_variable="phosphate",
    recipe={"phosphate": "nsbc"},
    climatology=True,
)
NW European ShelfSalinitynsbcNorth Sea Biogeochemical ClimatologyYes
python
oceanval.add_gridded_comparison(
    name="salinity",
    model_variable="salinity",
    recipe={"salinity": "nsbc"},
    climatology=True,
)
NW European ShelfSilicatensbcNorth Sea Biogeochemical ClimatologyYes
python
oceanval.add_gridded_comparison(
    name="silicate",
    model_variable="silicate",
    recipe={"silicate": "nsbc"},
    climatology=True,
)
NW European ShelfTemperaturensbcNorth Sea Biogeochemical ClimatologyYes
python
oceanval.add_gridded_comparison(
    name="temperature",
    model_variable="temperature",
    recipe={"temperature": "nsbc"},
    climatology=True,
)
WOA23 decadal periods

Temperature and salinity from woa23 use decadal climatologies — set start and end within one supported period:

  • 1955–1964
  • 1965–1974
  • 1975–1984
  • 1985–1994
  • 1995–2004
  • 2005–2014
  • 2015–2022

Always check dataset units and the climatology period before comparing with model output — see How to use OceanVal for matching and time-resolution guidance.