OceanBench logo. OceanBench
  • Scores
  • Challengers
  • News
  • About
  • Documentation
    • Evaluation methods
    • Technical documentation
    • FAQ
    • Paper
  • Source code
  • Powered by EDITO logo and EU flag EDITO logo and EU flag

Open challenger datasets

import oceanbench

oceanbench.__version__
'0.2.1'

Insert here the code that opens the challenger dataset as challenger_dataset: xarray.Dataset

# SPDX-FileCopyrightText: 2025 Mercator Ocean International <https://www.mercator-ocean.eu/>
#
# SPDX-License-Identifier: EUPL-1.2

from datetime import datetime

import xarray
import dask

# Stage the 35MB-chunk forecasts robustly: read one time-slice at a time, sequentially,
# so to_zarr never bulk-reads the whole variable at once (which hits transient partial-HTTP
# reads -> blosc -1). Pairs with chunks={"time": 1} in the open below.

from oceanbench.core.datetime_utils import generate_dates
from oceanbench.core.remote_http import require_remote_dataset_dimensions, with_remote_http_retries
from oceanbench.core.runtime_configuration import current_runtime_configuration
from oceanbench.core.weekly_stage import maybe_stage_weekly_dataset

_CLOUDFERRO_OCEANBENCH_BASE_URL = "https://s3.waw3-1.cloudferro.com/oceanbench-bucket"
_CLOUDFERRO_ML_FORECASTS_URL = f"{_CLOUDFERRO_OCEANBENCH_BASE_URL}/dev/ml-forecast-outputs"
_LANGYA_LEAD_DAYS_COUNT = 7


def _default_first_day_datetimes() -> list[datetime]:
    return generate_dates("2024-01-03", "2024-12-25", 7)


def _langya_dataset_path(start_datetime: datetime) -> str:
    return f"{_CLOUDFERRO_ML_FORECASTS_URL}/langya/{start_datetime:%Y%m%d}.zarr"


def _prepare_langya_week_dataset(dataset: xarray.Dataset) -> xarray.Dataset:
    week_dataset = require_remote_dataset_dimensions(dataset, ["time"], "langya challenger dataset open")
    week_dataset = week_dataset.isel({"time": slice(0, _LANGYA_LEAD_DAYS_COUNT)})
    week_lead_days_count = week_dataset.sizes["time"]
    return week_dataset.rename({"time": "lead_day_index"}).assign_coords(
        {"lead_day_index": range(week_lead_days_count)}
    )


def _open_langya_week_dataset(first_day_datetime: datetime) -> xarray.Dataset:
    return _prepare_langya_week_dataset(
        xarray.open_dataset(_langya_dataset_path(first_day_datetime), engine="zarr", chunks={"time": 1})
    )


def _remote_langya_dataset(first_day_datetimes: list[datetime]) -> xarray.Dataset:
    return xarray.open_mfdataset(
        list(map(_langya_dataset_path, first_day_datetimes)),
        engine="zarr",
        preprocess=_prepare_langya_week_dataset,
        combine="nested",
        concat_dim="first_day_datetime",
        parallel=False,
    ).assign({"first_day_datetime": first_day_datetimes})


def langya() -> xarray.Dataset:
    first_day_datetimes = _default_first_day_datetimes()

    def open_dataset() -> xarray.Dataset:
        return maybe_stage_weekly_dataset(
            stage_key="challenger",
            dataset_kind="challenger",
            dataset_name="langya",
            first_day_datetimes=first_day_datetimes,
            lead_days_count=_LANGYA_LEAD_DAYS_COUNT,
            open_week_dataset=_open_langya_week_dataset,
            open_remote_dataset=lambda: _remote_langya_dataset(first_day_datetimes),
            attach_source_metadata_when_not_staged=current_runtime_configuration().has_local_stage(),
        )

    return with_remote_http_retries("langya challenger dataset open", open_dataset)


challenger_dataset: xarray.Dataset = langya()
challenger_dataset
<xarray.Dataset> Size: 2TB
Dimensions:             (first_day_datetime: 52, lead_day_index: 7, depth: 32,
                         latitude: 2040, longitude: 4320)
Coordinates:
  * depth               (depth) float32 128B 0.494 1.541 2.646 ... 453.9 541.1
  * latitude            (latitude) float64 16kB -80.0 -79.92 ... 89.83 89.92
  * lead_day_index      (lead_day_index) int64 56B 0 1 2 3 4 5 6
  * longitude           (longitude) float64 35kB -180.0 -179.9 ... 179.8 179.9
  * first_day_datetime  (first_day_datetime) datetime64[us] 416B 2024-01-03 ....
Data variables:
    so                  (first_day_datetime, lead_day_index, depth, latitude, longitude) float32 411GB dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
    thetao              (first_day_datetime, lead_day_index, depth, latitude, longitude) float32 411GB dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
    uo                  (first_day_datetime, lead_day_index, depth, latitude, longitude) float32 411GB dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
    vo                  (first_day_datetime, lead_day_index, depth, latitude, longitude) float32 411GB dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
    zos                 (first_day_datetime, lead_day_index, latitude, longitude) float32 13GB dask.array<chunksize=(1, 1, 2040, 4320), meta=np.ndarray>
Attributes:
    Conventions:              CF-1.8
    challenger:               langya
    forecast_reference_time:  2024-01-02
    oceanbench_source_kind:   challenger
    oceanbench_source_name:   langya
xarray.Dataset
    • first_day_datetime: 52
    • lead_day_index: 7
    • depth: 32
    • latitude: 2040
    • longitude: 4320
    • depth
      (depth)
      float32
      0.494 1.541 2.646 ... 453.9 541.1
      axis :
      Z
      long_name :
      Depth
      positive :
      down
      standard_name :
      depth
      units :
      m
      array([4.940250e-01, 1.541375e+00, 2.645669e+00, 3.819495e+00, 5.078224e+00,
             6.440614e+00, 7.929560e+00, 9.572997e+00, 1.140500e+01, 1.346714e+01,
             1.581007e+01, 1.849556e+01, 2.159882e+01, 2.521141e+01, 2.944473e+01,
             3.443415e+01, 4.034405e+01, 4.737369e+01, 5.576429e+01, 6.580727e+01,
             7.785385e+01, 9.232607e+01, 1.097293e+02, 1.306660e+02, 1.558507e+02,
             1.861256e+02, 2.224752e+02, 2.660403e+02, 3.181274e+02, 3.802130e+02,
             4.539377e+02, 5.410889e+02], dtype=float32)
    • latitude
      (latitude)
      float64
      -80.0 -79.92 -79.83 ... 89.83 89.92
      axis :
      Y
      long_name :
      Latitude
      standard_name :
      latitude
      units :
      degrees_north
      array([-80.      , -79.916667, -79.833333, ...,  89.75    ,  89.833333,
              89.916667], shape=(2040,))
    • lead_day_index
      (lead_day_index)
      int64
      0 1 2 3 4 5 6
      array([0, 1, 2, 3, 4, 5, 6])
    • longitude
      (longitude)
      float64
      -180.0 -179.9 ... 179.8 179.9
      axis :
      X
      long_name :
      Longitude
      standard_name :
      longitude
      units :
      degrees_east
      array([-180.      , -179.916667, -179.833333, ...,  179.75    ,  179.833333,
              179.916667], shape=(4320,))
    • first_day_datetime
      (first_day_datetime)
      datetime64[us]
      2024-01-03 ... 2024-12-25
      array(['2024-01-03T00:00:00.000000', '2024-01-10T00:00:00.000000',
             '2024-01-17T00:00:00.000000', '2024-01-24T00:00:00.000000',
             '2024-01-31T00:00:00.000000', '2024-02-07T00:00:00.000000',
             '2024-02-14T00:00:00.000000', '2024-02-21T00:00:00.000000',
             '2024-02-28T00:00:00.000000', '2024-03-06T00:00:00.000000',
             '2024-03-13T00:00:00.000000', '2024-03-20T00:00:00.000000',
             '2024-03-27T00:00:00.000000', '2024-04-03T00:00:00.000000',
             '2024-04-10T00:00:00.000000', '2024-04-17T00:00:00.000000',
             '2024-04-24T00:00:00.000000', '2024-05-01T00:00:00.000000',
             '2024-05-08T00:00:00.000000', '2024-05-15T00:00:00.000000',
             '2024-05-22T00:00:00.000000', '2024-05-29T00:00:00.000000',
             '2024-06-05T00:00:00.000000', '2024-06-12T00:00:00.000000',
             '2024-06-19T00:00:00.000000', '2024-06-26T00:00:00.000000',
             '2024-07-03T00:00:00.000000', '2024-07-10T00:00:00.000000',
             '2024-07-17T00:00:00.000000', '2024-07-24T00:00:00.000000',
             '2024-07-31T00:00:00.000000', '2024-08-07T00:00:00.000000',
             '2024-08-14T00:00:00.000000', '2024-08-21T00:00:00.000000',
             '2024-08-28T00:00:00.000000', '2024-09-04T00:00:00.000000',
             '2024-09-11T00:00:00.000000', '2024-09-18T00:00:00.000000',
             '2024-09-25T00:00:00.000000', '2024-10-02T00:00:00.000000',
             '2024-10-09T00:00:00.000000', '2024-10-16T00:00:00.000000',
             '2024-10-23T00:00:00.000000', '2024-10-30T00:00:00.000000',
             '2024-11-06T00:00:00.000000', '2024-11-13T00:00:00.000000',
             '2024-11-20T00:00:00.000000', '2024-11-27T00:00:00.000000',
             '2024-12-04T00:00:00.000000', '2024-12-11T00:00:00.000000',
             '2024-12-18T00:00:00.000000', '2024-12-25T00:00:00.000000'],
            dtype='datetime64[us]')
    • so
      (first_day_datetime, lead_day_index, depth, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
      long_name :
      Salinity
      standard_name :
      sea_water_salinity
      units :
      1e-3
      Array Chunk
      Bytes 382.41 GiB 33.62 MiB
      Shape (52, 7, 32, 2040, 4320) (1, 1, 1, 2040, 4320)
      Dask graph 11648 chunks in 157 graph layers
      Data type float32 numpy.ndarray
      7 52 4320 2040 32
    • thetao
      (first_day_datetime, lead_day_index, depth, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
      long_name :
      Temperature
      standard_name :
      sea_water_potential_temperature
      units :
      degrees_C
      Array Chunk
      Bytes 382.41 GiB 33.62 MiB
      Shape (52, 7, 32, 2040, 4320) (1, 1, 1, 2040, 4320)
      Dask graph 11648 chunks in 157 graph layers
      Data type float32 numpy.ndarray
      7 52 4320 2040 32
    • uo
      (first_day_datetime, lead_day_index, depth, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
      long_name :
      Eastward velocity
      standard_name :
      eastward_sea_water_velocity
      units :
      m s-1
      Array Chunk
      Bytes 382.41 GiB 33.62 MiB
      Shape (52, 7, 32, 2040, 4320) (1, 1, 1, 2040, 4320)
      Dask graph 11648 chunks in 157 graph layers
      Data type float32 numpy.ndarray
      7 52 4320 2040 32
    • vo
      (first_day_datetime, lead_day_index, depth, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 1, 2040, 4320), meta=np.ndarray>
      long_name :
      Northward velocity
      standard_name :
      northward_sea_water_velocity
      units :
      m s-1
      Array Chunk
      Bytes 382.41 GiB 33.62 MiB
      Shape (52, 7, 32, 2040, 4320) (1, 1, 1, 2040, 4320)
      Dask graph 11648 chunks in 157 graph layers
      Data type float32 numpy.ndarray
      7 52 4320 2040 32
    • zos
      (first_day_datetime, lead_day_index, latitude, longitude)
      float32
      dask.array<chunksize=(1, 1, 2040, 4320), meta=np.ndarray>
      long_name :
      Sea surface height
      standard_name :
      sea_surface_height_above_geoid
      units :
      m
      Array Chunk
      Bytes 11.95 GiB 33.62 MiB
      Shape (52, 7, 2040, 4320) (1, 1, 2040, 4320)
      Dask graph 364 chunks in 157 graph layers
      Data type float32 numpy.ndarray
      52 1 4320 2040 7
    • depth
      PandasIndex
      PandasIndex(Index([0.49402499198913574,  1.5413750410079956,  2.6456689834594727,
              3.8194949626922607,   5.078224182128906,   6.440614223480225,
                7.92956018447876,   9.572997093200684,  11.404999732971191,
              13.467140197753906,  15.810070037841797,  18.495559692382812,
              21.598819732666016,  25.211410522460938,  29.444730758666992,
               34.43415069580078,  40.344051361083984,   47.37369155883789,
               55.76428985595703,   65.80726623535156,   77.85385131835938,
                92.3260726928711,  109.72930145263672,  130.66600036621094,
              155.85069274902344,  186.12559509277344,  222.47520446777344,
               266.0403137207031,   318.1274108886719,   380.2130126953125,
               453.9377136230469,   541.0889282226562],
            dtype='float32', name='depth'))
    • latitude
      PandasIndex
      PandasIndex(Index([             -80.0, -79.91666666666667, -79.83333333333333,
                         -79.75, -79.66666666666667, -79.58333333333333,
                          -79.5, -79.41666666666667, -79.33333333333333,
                         -79.25,
             ...
              89.16666666666666,              89.25,  89.33333333333334,
              89.41666666666666,               89.5,  89.58333333333334,
              89.66666666666666,              89.75,  89.83333333333334,
              89.91666666666666],
            dtype='float64', name='latitude', length=2040))
    • lead_day_index
      PandasIndex
      PandasIndex(Index([0, 1, 2, 3, 4, 5, 6], dtype='int64', name='lead_day_index'))
    • longitude
      PandasIndex
      PandasIndex(Index([             -180.0, -179.91666666666666, -179.83333333333334,
                         -179.75, -179.66666666666666, -179.58333333333334,
                          -179.5, -179.41666666666666, -179.33333333333334,
                         -179.25,
             ...
              179.16666666666669,              179.25,  179.33333333333331,
              179.41666666666669,               179.5,  179.58333333333331,
              179.66666666666669,              179.75,  179.83333333333331,
              179.91666666666669],
            dtype='float64', name='longitude', length=4320))
    • first_day_datetime
      PandasIndex
      PandasIndex(DatetimeIndex(['2024-01-03', '2024-01-10', '2024-01-17', '2024-01-24',
                     '2024-01-31', '2024-02-07', '2024-02-14', '2024-02-21',
                     '2024-02-28', '2024-03-06', '2024-03-13', '2024-03-20',
                     '2024-03-27', '2024-04-03', '2024-04-10', '2024-04-17',
                     '2024-04-24', '2024-05-01', '2024-05-08', '2024-05-15',
                     '2024-05-22', '2024-05-29', '2024-06-05', '2024-06-12',
                     '2024-06-19', '2024-06-26', '2024-07-03', '2024-07-10',
                     '2024-07-17', '2024-07-24', '2024-07-31', '2024-08-07',
                     '2024-08-14', '2024-08-21', '2024-08-28', '2024-09-04',
                     '2024-09-11', '2024-09-18', '2024-09-25', '2024-10-02',
                     '2024-10-09', '2024-10-16', '2024-10-23', '2024-10-30',
                     '2024-11-06', '2024-11-13', '2024-11-20', '2024-11-27',
                     '2024-12-04', '2024-12-11', '2024-12-18', '2024-12-25'],
                    dtype='datetime64[us]', name='first_day_datetime', freq=None))
  • Conventions :
    CF-1.8
    challenger :
    langya
    forecast_reference_time :
    2024-01-02
    oceanbench_source_kind :
    challenger
    oceanbench_source_name :
    langya

Evaluation configuration

region = 'global'

Evaluation of challenger dataset using OceanBench

Root Mean Square Deviation (RMSD) of variables compared to GLORYS reanalysis

oceanbench.metrics.rmsd_of_variables_compared_to_glorys_reanalysis(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Sea surface height (m) [sea_surface_height_above_geoid]{surface} 0.073481 0.075157 0.074875 0.076131 0.077246 0.080647 0.082993
Temperature (°C) [sea_water_potential_temperature]{surface} 0.664944 0.647757 0.577568 0.589050 0.600993 0.646476 0.694612
Salinity (PSU) [sea_water_salinity]{surface} 0.866563 0.868737 0.869560 0.872976 0.875823 0.882671 0.888410
Meridional current (m/s) [northward_sea_water_velocity]{surface} 0.124307 0.124007 0.124084 0.124145 0.123878 0.132530 0.136717
Zonal current (m/s) [eastward_sea_water_velocity]{surface} 0.127748 0.128252 0.128910 0.129113 0.129139 0.137007 0.140688
Temperature (°C) [sea_water_potential_temperature]{50m} 0.883657 0.881116 0.855461 0.858037 0.860353 0.898600 0.926456
Salinity (PSU) [sea_water_salinity]{50m} 0.381061 0.381447 0.380922 0.381201 0.381627 0.383642 0.385275
Meridional current (m/s) [northward_sea_water_velocity]{50m} 0.112277 0.111835 0.113504 0.113176 0.112701 0.120162 0.123566
Zonal current (m/s) [eastward_sea_water_velocity]{50m} 0.114694 0.114806 0.116709 0.116524 0.116098 0.122441 0.125538
Temperature (°C) [sea_water_potential_temperature]{100m} 1.024629 1.024427 1.022026 1.026300 1.029606 1.059917 1.080968
Salinity (PSU) [sea_water_salinity]{100m} 0.256270 0.256369 0.256369 0.256632 0.257029 0.258406 0.259317
Meridional current (m/s) [northward_sea_water_velocity]{100m} 0.109232 0.108844 0.110604 0.110197 0.109588 0.115847 0.118681
Zonal current (m/s) [eastward_sea_water_velocity]{100m} 0.114132 0.114046 0.115644 0.115268 0.114781 0.120306 0.122683
Temperature (°C) [sea_water_potential_temperature]{200m} 0.859929 0.859844 0.862029 0.863487 0.865410 0.879913 0.888483
Salinity (PSU) [sea_water_salinity]{200m} 0.160677 0.160700 0.160889 0.161121 0.161473 0.162651 0.163395
Meridional current (m/s) [northward_sea_water_velocity]{200m} 0.106036 0.105861 0.107765 0.107200 0.106395 0.110130 0.111225
Zonal current (m/s) [eastward_sea_water_velocity]{200m} 0.111465 0.111380 0.113237 0.112507 0.111642 0.115273 0.116129
Temperature (°C) [sea_water_potential_temperature]{300m} 0.728503 0.728310 0.730683 0.731779 0.733402 0.746157 0.753220
Salinity (PSU) [sea_water_salinity]{300m} 0.126950 0.126952 0.127181 0.127385 0.127697 0.128809 0.129539
Meridional current (m/s) [northward_sea_water_velocity]{300m} 0.103429 0.103282 0.105147 0.104515 0.103694 0.107016 0.107802
Zonal current (m/s) [eastward_sea_water_velocity]{300m} 0.107446 0.107374 0.109189 0.108504 0.107662 0.110748 0.111335
Temperature (°C) [sea_water_potential_temperature]{500m} 0.562032 0.562529 0.565456 0.567075 0.569199 0.578565 0.584951
Salinity (PSU) [sea_water_salinity]{500m} 0.095224 0.095308 0.095563 0.095805 0.096124 0.096830 0.097455
Meridional current (m/s) [northward_sea_water_velocity]{500m} 0.095018 0.094982 0.096532 0.095871 0.095103 0.098023 0.098598
Zonal current (m/s) [eastward_sea_water_velocity]{500m} 0.098871 0.098843 0.100460 0.099886 0.099224 0.101603 0.101939

Root Mean Square Deviation (RMSD) of Mixed Layer Depth (MLD) compared to GLORYS reanalysis

oceanbench.metrics.rmsd_of_mixed_layer_depth_compared_to_glorys_reanalysis(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Mixed layer depth (m) [ocean_mixed_layer_thickness]{surface} 43.508369 41.945583 39.029495 39.901413 40.64315 42.155636 43.390202

Root Mean Square Deviation (RMSD) of geostrophic currents compared to GLORYS reanalysis

oceanbench.metrics.rmsd_of_geostrophic_currents_compared_to_glorys_reanalysis(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Meridional geostrophic current (m/s) [geostrophic_northward_sea_water_velocity]{surface} 0.227380 0.234452 0.227063 0.242526 0.254940 0.219043 0.222549
Zonal geostrophic current (m/s) [geostrophic_eastward_sea_water_velocity]{surface} 0.170617 0.172885 0.158887 0.161703 0.163453 0.170226 0.180563

Root Mean Square Deviation (RMSD) of variables compared to observations

oceanbench.metrics.rmsd_of_variables_compared_to_observations(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Temperature (°C) [sea_water_potential_temperature]{surface} 0.912465 0.911941 0.818189 0.849885 0.880025 0.951731 0.977392
Temperature (°C) [sea_water_potential_temperature]{0-5m} 0.870754 0.876176 0.812984 0.846279 0.855536 0.907237 0.966076
Temperature (°C) [sea_water_potential_temperature]{5-100m} 0.950844 0.952187 0.906571 0.936326 0.930166 0.972249 1.007846
Temperature (°C) [sea_water_potential_temperature]{100-300m} 0.827663 0.848126 0.829347 0.833413 0.845878 0.857058 0.884400
Temperature (°C) [sea_water_potential_temperature]{300-600m} 0.572644 0.583934 0.577803 0.572927 0.580002 0.610685 0.618646
Salinity (PSU) [sea_water_salinity]{0-5m} 0.275824 0.299090 0.285466 0.330874 0.290480 0.300734 0.299216
Salinity (PSU) [sea_water_salinity]{5-100m} 0.265583 0.262144 0.267598 0.256039 0.273197 0.279033 0.270121
Salinity (PSU) [sea_water_salinity]{100-300m} 0.137102 0.138676 0.139487 0.138535 0.141151 0.140128 0.146165
Salinity (PSU) [sea_water_salinity]{300-600m} 0.092662 0.092538 0.091199 0.091821 0.092086 0.094326 0.095307
Sea level anomaly (m) [sea_surface_height_above_geoid]{surface} 0.112545 0.113568 0.113005 0.113754 0.114323 0.116905 0.117430
Zonal current (m/s) [eastward_sea_water_velocity]{15m} 0.217615 0.217039 0.219337 0.219474 0.217363 0.220084 0.224409
Meridional current (m/s) [northward_sea_water_velocity]{15m} 0.199125 0.198230 0.198910 0.201291 0.200587 0.204581 0.206440

Deviation of Lagrangian trajectories compared to GLORYS reanalysis

oceanbench.metrics.deviation_of_lagrangian_trajectories_compared_to_glorys_reanalysis(
    challenger_dataset,
    region=region,
)
Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6
Lagrangian trajectory deviation (km) []{surface} 11.104867 21.175097 30.502735 39.511009 48.076557

Root Mean Square Deviation (RMSD) of variables compared to GLO12 analysis

oceanbench.metrics.rmsd_of_variables_compared_to_glo12_analysis(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Sea surface height (m) [sea_surface_height_above_geoid]{surface} 0.031031 0.036223 0.036227 0.040466 0.044344 0.052333 0.056221
Temperature (°C) [sea_water_potential_temperature]{surface} 0.426948 0.429485 0.346308 0.388968 0.426408 0.509925 0.573458
Salinity (PSU) [sea_water_salinity]{surface} 0.159780 0.199379 0.226700 0.250821 0.270708 0.291310 0.309216
Meridional current (m/s) [northward_sea_water_velocity]{surface} 0.095800 0.093743 0.083707 0.089965 0.095910 0.116727 0.126977
Zonal current (m/s) [eastward_sea_water_velocity]{surface} 0.095793 0.096218 0.087980 0.093927 0.100135 0.119280 0.129682
Temperature (°C) [sea_water_potential_temperature]{50m} 0.400279 0.445239 0.444145 0.486588 0.526378 0.612996 0.671806
Salinity (PSU) [sea_water_salinity]{50m} 0.073474 0.091886 0.105064 0.116864 0.126996 0.139187 0.147914
Meridional current (m/s) [northward_sea_water_velocity]{50m} 0.075203 0.072914 0.065657 0.071779 0.077756 0.099333 0.109335
Zonal current (m/s) [eastward_sea_water_velocity]{50m} 0.073288 0.073453 0.069175 0.074984 0.080818 0.099817 0.109364
Temperature (°C) [sea_water_potential_temperature]{100m} 0.382133 0.438909 0.461111 0.512091 0.559495 0.654855 0.719874
Salinity (PSU) [sea_water_salinity]{100m} 0.058144 0.073379 0.085428 0.096049 0.104997 0.115258 0.122283
Meridional current (m/s) [northward_sea_water_velocity]{100m} 0.067427 0.066071 0.060312 0.066414 0.072458 0.092673 0.102209
Zonal current (m/s) [eastward_sea_water_velocity]{100m} 0.065541 0.067107 0.065115 0.071016 0.076758 0.094027 0.102550
Temperature (°C) [sea_water_potential_temperature]{200m} 0.271548 0.316306 0.348417 0.393883 0.435112 0.508046 0.552489
Salinity (PSU) [sea_water_salinity]{200m} 0.041146 0.054548 0.065376 0.074700 0.082506 0.091231 0.097435
Meridional current (m/s) [northward_sea_water_velocity]{200m} 0.055965 0.055213 0.050912 0.056787 0.062491 0.079937 0.088263
Zonal current (m/s) [eastward_sea_water_velocity]{200m} 0.053176 0.053974 0.052880 0.058393 0.063799 0.078927 0.086147
Temperature (°C) [sea_water_potential_temperature]{300m} 0.227175 0.268183 0.301188 0.342332 0.379264 0.442687 0.480395
Salinity (PSU) [sea_water_salinity]{300m} 0.034093 0.045705 0.055194 0.063239 0.069965 0.077417 0.082808
Meridional current (m/s) [northward_sea_water_velocity]{300m} 0.051936 0.051533 0.047912 0.053681 0.059237 0.075493 0.083421
Zonal current (m/s) [eastward_sea_water_velocity]{300m} 0.049483 0.050219 0.049013 0.054325 0.059497 0.073656 0.080624
Temperature (°C) [sea_water_potential_temperature]{500m} 0.168903 0.207598 0.240546 0.274996 0.305631 0.352771 0.383877
Salinity (PSU) [sea_water_salinity]{500m} 0.024945 0.034251 0.041944 0.048240 0.053464 0.058653 0.062844
Meridional current (m/s) [northward_sea_water_velocity]{500m} 0.043933 0.045350 0.044386 0.049969 0.055121 0.068041 0.074862
Zonal current (m/s) [eastward_sea_water_velocity]{500m} 0.041650 0.044072 0.045138 0.050376 0.055252 0.066345 0.072252

Root Mean Square Deviation (RMSD) of Mixed Layer Depth (MLD) compared to GLO12 analysis

oceanbench.metrics.rmsd_of_mixed_layer_depth_compared_to_glo12_analysis(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Mixed layer depth (m) [ocean_mixed_layer_thickness]{surface} 32.771263 31.899273 27.489109 29.652927 31.411736 33.998051 36.848274

Root Mean Square Deviation (RMSD) of geostrophic currents compared to GLO12 analysis

oceanbench.metrics.rmsd_of_geostrophic_currents_compared_to_glo12_analysis(
    challenger_dataset,
    region=region,
)
Lead day 1 Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6 Lead day 7
Meridional geostrophic current (m/s) [geostrophic_northward_sea_water_velocity]{surface} 0.207264 0.216921 0.206501 0.225652 0.241241 0.208434 0.215250
Zonal geostrophic current (m/s) [geostrophic_eastward_sea_water_velocity]{surface} 0.142182 0.151248 0.130681 0.137402 0.143870 0.157301 0.173216

Deviation of Lagrangian trajectories compared to GLO12 analysis

oceanbench.metrics.deviation_of_lagrangian_trajectories_compared_to_glo12_analysis(
    challenger_dataset,
    region=region,
)
Lead day 2 Lead day 3 Lead day 4 Lead day 5 Lead day 6
Lagrangian trajectory deviation (km) []{surface} 7.830986 14.090476 19.658655 25.636282 32.046322
 

EDITO, the European Digital Twin Ocean EDITO, the European Digital Twin Ocean